--- a/src/notes/api/views/sync.py Tue Jul 25 19:11:26 2017 +0200
+++ b/src/notes/api/views/sync.py Fri Jul 28 19:40:35 2017 +0200
@@ -19,17 +19,23 @@
"""
permission_classes = (permissions.IsAuthenticated,)
- def __filter_object(self, model, user, modified_since):
+ def __filter_object(self, model, user, modified_since, client_id):
+ """
+ Log entries are filtered by model, actor and timestamp.
+ If a client id is given, log entries from this client are ignored.
+ """
log_entries = LogEntry.objects.get_for_model(model).filter(actor=user)
if modified_since:
log_entries = log_entries.filter(timestamp__gte=modified_since)
+ if client_id:
+ log_entries = log_entries.exclude(client=client_id)
return log_entries.order_by('timestamp')
- def __process_log_entries(self, model, user, modified_since):
+ def __process_log_entries(self, model, user, modified_since, client_id):
'''
Process log entries
'''
- log_entries = self.__filter_object(model, user, modified_since)
+ log_entries = self.__filter_object(model, user, modified_since, client_id)
logger.debug("LOG ENTRies %r", list(log_entries))
res = {}
@@ -68,7 +74,7 @@
def get(self, request, format=None):
"""
- Return a list of all users.
+ Return an aggregations of all changes.
"""
modified_since_str = request.query_params.get('modified_since', None)
modified_since = None
@@ -79,8 +85,9 @@
)
user = request.user
- res_sessions = self.__process_log_entries(Session, user, modified_since)
- res_notes = self.__process_log_entries(Note, user, modified_since)
+ client_id = request.META.get('HTTP_AUDITLOG_CLIENT', None)
+ res_sessions = self.__process_log_entries(Session, user, modified_since, client_id)
+ res_notes = self.__process_log_entries(Note, user, modified_since, client_id)
return Response({
'sessions': res_sessions.values(),