diff --git a/smash/web/api_views/provenance.py b/smash/web/api_views/provenance.py index 6fe1407dd1203360b50a2546c9118f7255978f66..e4b4e2a252ac5c789047956285c54c8c524626cd 100644 --- a/smash/web/api_views/provenance.py +++ b/smash/web/api_views/provenance.py @@ -22,7 +22,7 @@ class ExportLog(BaseDatatableView): 'request_path', 'request_ip_addr' ] - + # set max limit of records returned, this is used to protect our site if someone tries to attack our site # and make it return huge amount of data max_display_length = 10 @@ -31,13 +31,17 @@ class ExportLog(BaseDatatableView): # simple example: search = self.request.GET.get('search[value]', None) if search != '' and search is not None: - inner_qs = Worker.objects.filter(first_name__icontains=search) | Worker.objects.filter(last_name__icontains=search) - qs = qs.filter(modification_author__in=inner_qs) | qs.filter(modification_description__icontains=search) | qs.filter(request_path__icontains=search) | qs.filter(request_ip_addr__icontains=search) - - qs = qs & qs.filter(modified_table__isnull=True, - previous_value__isnull=True, - new_value__isnull=True, - modified_field='', + inner_qs = Worker.objects.filter(first_name__icontains=search) \ + | Worker.objects.filter(last_name__icontains=search) + qs = qs.filter(modification_author__in=inner_qs) \ + | qs.filter(modification_description__icontains=search) \ + | qs.filter(request_path__icontains=search) \ + | qs.filter(request_ip_addr__icontains=search) + + qs = qs & qs.filter(modified_table__isnull=True, + previous_value__isnull=True, + new_value__isnull=True, + modified_field='', request_path__startswith='/export/') return qs @@ -71,7 +75,7 @@ class CompleteLog(BaseDatatableView): 'request_path', 'request_ip_addr' ] - + # set max limit of records returned, this is used to protect our site if someone tries to attack our site # and make it return huge amount of data max_display_length = 10 @@ -80,7 +84,11 @@ class CompleteLog(BaseDatatableView): # simple example: search = self.request.GET.get('search[value]', None) if search != '' and search is not None: - inner_qs = Worker.objects.filter(first_name__icontains=search) | Worker.objects.filter(last_name__icontains=search) - qs = qs.filter(modification_author__in=inner_qs) | qs.filter(modification_description__icontains=search) | qs.filter(request_path__icontains=search) | qs.filter(request_ip_addr__icontains=search) + inner_qs = Worker.objects.filter(first_name__icontains=search) \ + | Worker.objects.filter(last_name__icontains=search) + qs = qs.filter(modification_author__in=inner_qs) \ + | qs.filter(modification_description__icontains=search) \ + | qs.filter(request_path__icontains=search) \ + | qs.filter(request_ip_addr__icontains=search) - return qs \ No newline at end of file + return qs