diff -r 34a75bd8d0b9 -r d48946d164c6 src/notes/api/views/sync.py --- 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(),