def reviewlog(request): data = request.GET.copy() if not data.get('start') and not data.get('end'): today = date.today() data['start'] = date(today.year, today.month, 1) form = ReviewLogForm(data) approvals = ActivityLog.objects.review_log() if not acl.check_unlisted_addons_reviewer(request): # Only display logs related to unlisted versions to users with the # right permission. list_channel = amo.RELEASE_CHANNEL_LISTED approvals = approvals.filter(versionlog__version__channel=list_channel) if form.is_valid(): data = form.cleaned_data if data['start']: approvals = approvals.filter(created__gte=data['start']) if data['end']: approvals = approvals.filter(created__lt=data['end']) if data['search']: term = data['search'] approvals = approvals.filter( Q(commentlog__comments__icontains=term) | Q(addonlog__addon__name__localized_string__icontains=term) | Q(user__display_name__icontains=term) | Q(user__username__icontains=term)).distinct() pager = amo.utils.paginate(request, approvals, 50) data = context(request, form=form, pager=pager) return render(request, 'reviewers/reviewlog.html', data)