This commit is contained in:
Ross
2022-03-29 22:26:41 +01:00
parent 926634395a
commit 7704132897
3 changed files with 35 additions and 4 deletions
+28 -2
View File
@@ -24,11 +24,35 @@ def get_authors(request):
return queryset
def get_cases(request):
if request is None:
return Case.objects.none()
if not request.user.groups.filter(name="atlas_editor").exists():
queryset = Case.objects.filter(author__id=request.user.id)
else:
queryset = Case.objects.all()
return queryset
def get_series(request):
if request is None:
return Series.objects.none()
if not request.user.groups.filter(name="atlas_editor").exists():
queryset = Series.objects.filter(author__id=request.user.id)
else:
queryset = Series.objects.all()
return queryset
class CaseFilter(django_filters.FilterSet):
author = django_filters.ModelMultipleChoiceFilter(
queryset=get_authors, null_label="No author"
)
series = django_filters.ModelMultipleChoiceFilter(
queryset=get_series, null_label="No series"
)
differential_case = django_filters.ModelMultipleChoiceFilter(
label="Differential",
field_name="differentialcase__condition",
@@ -55,7 +79,6 @@ class CaseFilter(django_filters.FilterSet):
request=None,
):
if not request.user.groups.filter(name="atlas_editor").exists():
# queryset = queryset.filter(open_access=True) | queryset.filter(author__id=request.user.id)
queryset = queryset.prefetch_related("author").filter(author__id=request.user.id)
super(CaseFilter, self).__init__(
data=data, queryset=queryset, prefix=prefix, request=request
@@ -65,7 +88,10 @@ class CaseFilter(django_filters.FilterSet):
class SeriesFilter(django_filters.FilterSet):
case = django_filters.ModelMultipleChoiceFilter(
queryset=Case.objects.all(), null_label="No case"
queryset=get_cases, null_label="No case"
)
author = django_filters.ModelMultipleChoiceFilter(
queryset=get_authors, null_label="No author"
)
class Meta:
+6 -1
View File
@@ -72,7 +72,6 @@ def findMiddle(input_list):
return input_list[int(middle)]
return (input_list[int(middle)], input_list[int(middle - 1)])
class SynMixin(object):
# class Meta:
# abstract = True
@@ -586,6 +585,12 @@ class CaseCollection(models.Model):
def __str__(self) -> str:
return self.name
def get_author_objects(self):
"""Returns a comma seperated text list of authors"""
authors = [i for i in self.author.all()]
return authors
class CaseDetail(models.Model):
case = models.ForeignKey(Case, on_delete=models.CASCADE)
+1 -1
View File
@@ -455,7 +455,7 @@ class SeriesCreate(RevisionMixin, LoginRequiredMixin, CreateView):
return super().form_invalid(form)
class CaseCollectionUpdate(RevisionMixin, LoginRequiredMixin, UpdateView):
class CaseCollectionUpdate(RevisionMixin, AuthorOrCheckerRequiredMixin, UpdateView):
model = CaseCollection
form_class = CaseCollectionForm