fix updating a collection if you don't have access to all the cases
This commit is contained in:
+2
-2
@@ -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
@@ -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
@@ -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"]
|
||||
|
||||
Reference in New Issue
Block a user