From aa4a2ed0e7a62da480c714bf4ea8179e90c6d448 Mon Sep 17 00:00:00 2001 From: Ross Date: Sun, 2 May 2021 19:26:38 +0100 Subject: [PATCH] . --- generic/filters.py | 1 + longs/filters.py | 33 +++++++++++++++++++++++++++++---- rapids/filters.py | 15 ++++++++++++++- 3 files changed, 44 insertions(+), 5 deletions(-) diff --git a/generic/filters.py b/generic/filters.py index 3eddff2e..251ab129 100644 --- a/generic/filters.py +++ b/generic/filters.py @@ -1,6 +1,7 @@ import django_filters +from django.contrib.auth.models import User #class UserAnswerFilter(django_filters.FilterSet): # class Meta: diff --git a/longs/filters.py b/longs/filters.py index 4e16f9d9..98cdb4d3 100755 --- a/longs/filters.py +++ b/longs/filters.py @@ -1,16 +1,41 @@ import django_filters -from .models import Long, LongSeries +from .models import Long, LongSeries, Exam +from django.contrib.auth.models import User + +def get_exams(request): + if request is None: + return Exam.objects.none() + + if not request.user.groups.filter(name="long_checker").exists(): + queryset = Exam.objects.filter(author__id=request.user.id) + else: + queryset = Exam.objects.all() + + return queryset + +def get_authors(request): + if request is None: + return User.objects.none() + + if not request.user.groups.filter(name="long_checker").exists(): + queryset = User.objects.filter(id=request.user.id) + else: + queryset = User.objects.all() + + return queryset class LongFilter(django_filters.FilterSet): + exams = django_filters.ModelMultipleChoiceFilter(queryset=get_exams) + author = django_filters.ModelMultipleChoiceFilter(queryset=get_authors) class Meta: model = Long fields = (#"site", - "created_date", "exams", "author") + "created_date", "open_access", "author") def __init__(self, data=None, queryset=None, prefix=None, strict=None, user=None, request=None): - if not request.user.groups.filter(name="longs_checker").exists(): + if not request.user.groups.filter(name="long_checker").exists(): #queryset = queryset.filter(open_access=True) | queryset.filter(author__id=request.user.id) queryset = queryset.filter(author__id=request.user.id) super(LongFilter, self).__init__(data=data, queryset=queryset, prefix=prefix, request=request) @@ -22,7 +47,7 @@ class LongSeriesFilter(django_filters.FilterSet): fields = ("modality","long", "examination", "author") def __init__(self, data=None, queryset=None, prefix=None, strict=None, user=None, request=None): - if not request.user.groups.filter(name="longs_checker").exists(): + if not request.user.groups.filter(name="long_checker").exists(): #queryset = queryset.filter(open_access=True) | queryset.filter(author__id=request.user.id) queryset = queryset.filter(author__id=request.user.id) super(LongSeriesFilter, self).__init__(data=data, queryset=queryset, prefix=prefix, request=request) diff --git a/rapids/filters.py b/rapids/filters.py index 941f7e13..37072de5 100755 --- a/rapids/filters.py +++ b/rapids/filters.py @@ -1,6 +1,7 @@ import django_filters from .models import Rapid, CidUserAnswer, Exam +from django.contrib.auth.models import User def get_exams(request): if request is None: @@ -13,14 +14,26 @@ def get_exams(request): return queryset +def get_authors(request): + if request is None: + return User.objects.none() + + if not request.user.groups.filter(name="rapid_checker").exists(): + queryset = User.objects.filter(id=request.user.id) + else: + queryset = User.objects.all() + + return queryset + class RapidFilter(django_filters.FilterSet): exams = django_filters.ModelMultipleChoiceFilter(queryset=get_exams) + author = django_filters.ModelMultipleChoiceFilter(queryset=get_authors) class Meta: model = Rapid fields = ("normal", "abnormality", "region", "examination", "laterality", #"site", - "created_date", "open_access", "author") + "created_date", "open_access") def __init__(self, data=None, queryset=None, prefix=None, strict=None, user=None, request=None): if not request.user.groups.filter(name="rapid_checker").exists():