Refactor collection case view documentation and enhance management view with edit permissions

This commit is contained in:
Ross
2026-04-27 09:42:46 +01:00
parent df7f56f34c
commit 9bae94a595
+20 -22
View File
@@ -4693,21 +4693,18 @@ def collection_case_view_take_user(request, pk, case_number=None, case_id=None):
def collection_case_view_take( def collection_case_view_take(
request, pk, case_number=None, cid=None, passcode=None, case_id=None request, pk, case_number=None, cid=None, passcode=None, case_id=None
): ):
""" """Candidate-facing collection case taking/review screen.
Displays the page from which the user takes a case in the collection
Args: This view is for end users taking a case (or reviewing their answers after
request (_type_): _description_ completion). It should remain answer-focused and must not expose management
pk (int): _description_ edit controls for case content.
case_number (int): _description_
cid (_type_, optional): _description_. Defaults to None. Supports either:
passcode (_type_, optional): _description_. Defaults to None. - ``case_number``: zero-based index within the collection
- ``case_id``: case PK (translated to the collection index)
Raises: Raises:
Http404: If user does not have access Http404: If access is invalid or no case is specified.
Returns:
_type_: _description_
""" """
collection = get_object_or_404(CaseCollection, pk=pk) collection = get_object_or_404(CaseCollection, pk=pk)
@@ -4937,7 +4934,6 @@ def collection_case_view_take(
# Determine whether any prior series will be shown to the candidate. # Determine whether any prior series will be shown to the candidate.
has_priors = any(prior_flag for (_, prior_flag, _) in series_to_load) has_priors = any(prior_flag for (_, prior_flag, _) in series_to_load)
prior_count = prior_cases.count() prior_count = prior_cases.count()
return render( return render(
request, request,
"atlas/collection_case_view_take.html", "atlas/collection_case_view_take.html",
@@ -4972,18 +4968,18 @@ def collection_case_view_take(
@user_is_collection_author_or_atlas_editor @user_is_collection_author_or_atlas_editor
def collection_case_view(request, pk, case_number=None, case_id=None): def collection_case_view(request, pk, case_number=None, case_id=None):
"""Edit/management overview of the case (as part of the collection) """Management view for a case within a collection.
Args: This view is used by collection authors/atlas editors to manage case
request (_type_): _description_ content in collection context. It renders the full case detail template and
pk (_type_): _description_ provides ``can_edit`` for inline editing widgets/partials.
case_number (_type_): _description_
Supports either:
- ``case_number``: zero-based index within the collection
- ``case_id``: case PK (translated to the collection index)
Raises: Raises:
Http404: _description_ Http404: If no valid case is specified.
Returns:
_type_: _description_
""" """
collection = get_object_or_404(CaseCollection, pk=pk) collection = get_object_or_404(CaseCollection, pk=pk)
@@ -5013,6 +5009,7 @@ def collection_case_view(request, pk, case_number=None, case_id=None):
previous = collection.get_previous_case(casedetail.case) previous = collection.get_previous_case(casedetail.case)
next = collection.get_next_case(casedetail.case) next = collection.get_next_case(casedetail.case)
can_edit = case.check_user_can_edit(request.user)
return render( return render(
request, request,
@@ -5027,6 +5024,7 @@ def collection_case_view(request, pk, case_number=None, case_id=None):
"case_number": case_number, "case_number": case_number,
"previous": previous, "previous": previous,
"next": next, "next": next,
"can_edit": can_edit,
"answer": answer, "answer": answer,
"cimar_sid": request.user.userprofile.cimar_sid, "cimar_sid": request.user.userprofile.cimar_sid,
}, },