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):
|
class CaseCollectionCaseForm(ModelForm):
|
||||||
def __init__(self, *args, user, **kwargs):
|
def __init__(self, *args, user, collection, **kwargs):
|
||||||
super(CaseCollectionCaseForm, self).__init__(*args, **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(
|
self.fields["case"] = ModelChoiceField(
|
||||||
required=False,
|
required=False,
|
||||||
|
|||||||
+4
-1
@@ -1,8 +1,11 @@
|
|||||||
from atlas.models import Case
|
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"""
|
"""Returns a queryset of cases available to the user"""
|
||||||
queryset = Case.objects.filter(author=user) | Case.objects.filter(open_access=True)
|
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")
|
return queryset.order_by("pk")
|
||||||
if user.is_superuser:
|
if user.is_superuser:
|
||||||
return Case.objects.all()
|
return Case.objects.all()
|
||||||
|
|||||||
+2
-2
@@ -687,12 +687,12 @@ class CaseCollectionUpdate(RevisionMixin, AuthorOrCheckerRequiredMixin, UpdateVi
|
|||||||
self.request.POST,
|
self.request.POST,
|
||||||
self.request.FILES,
|
self.request.FILES,
|
||||||
instance=self.object,
|
instance=self.object,
|
||||||
form_kwargs={"user": self.request.user},
|
form_kwargs={"user": self.request.user, "collection": self.object},
|
||||||
)
|
)
|
||||||
context["case_formset"].full_clean()
|
context["case_formset"].full_clean()
|
||||||
else:
|
else:
|
||||||
context["case_formset"] = CaseCollectionCaseFormSet(
|
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"]
|
context["collection"] = context["casecollection"]
|
||||||
|
|||||||
Reference in New Issue
Block a user