fix updating a collection if you don't have access to all the cases

This commit is contained in:
Ross
2024-04-10 23:24:41 +01:00
parent e8f862c7bd
commit dff4705d72
3 changed files with 8 additions and 5 deletions
+2 -2
View File
@@ -464,10 +464,10 @@ class CaseSeriesForm(ModelForm):
class CaseCollectionCaseForm(ModelForm):
def __init__(self, *args, user, **kwargs):
def __init__(self, *args, user, collection, **kwargs):
super(CaseCollectionCaseForm, self).__init__(*args, **kwargs)
queryset = get_cases_available_to_user(user)
queryset = get_cases_available_to_user(user, collection=collection)
self.fields["case"] = ModelChoiceField(
required=False,
+4 -1
View File
@@ -1,8 +1,11 @@
from atlas.models import Case
def get_cases_available_to_user(user):
def get_cases_available_to_user(user, collection=None):
"""Returns a queryset of cases available to the user"""
queryset = Case.objects.filter(author=user) | Case.objects.filter(open_access=True)
if collection is not None:
queryset = queryset | collection.cases.all()
return queryset.order_by("pk")
if user.is_superuser:
return Case.objects.all()
+2 -2
View File
@@ -687,12 +687,12 @@ class CaseCollectionUpdate(RevisionMixin, AuthorOrCheckerRequiredMixin, UpdateVi
self.request.POST,
self.request.FILES,
instance=self.object,
form_kwargs={"user": self.request.user},
form_kwargs={"user": self.request.user, "collection": self.object},
)
context["case_formset"].full_clean()
else:
context["case_formset"] = CaseCollectionCaseFormSet(
instance=self.object, form_kwargs={"user": self.request.user}
instance=self.object, form_kwargs={"user": self.request.user, "collection": self.object}
)
context["collection"] = context["casecollection"]