Add case jump functionality with HTMX support and corresponding template
This commit is contained in:
@@ -1134,6 +1134,46 @@ def collection_options(request):
|
||||
html = render_to_string("atlas/partials/collection_options.html", {"collections": collections}, request=request)
|
||||
return HttpResponse(html)
|
||||
|
||||
|
||||
@login_required
|
||||
def collection_case_jump_partial(request, pk: int):
|
||||
"""Return an HTMX partial containing a jump list for cases in the collection.
|
||||
|
||||
Expects optional GET params:
|
||||
- current: the current case index (0-based) to mark active
|
||||
- cid, passcode: optional candidate identifiers so links include them when present
|
||||
"""
|
||||
# Allow non-HTMX callers to still get the fragment (useful for testing)
|
||||
collection = get_object_or_404(CaseCollection, pk=pk)
|
||||
|
||||
casedetails = (
|
||||
CaseDetail.objects.filter(collection=collection)
|
||||
.select_related('case')
|
||||
.order_by('sort_order')
|
||||
)
|
||||
|
||||
try:
|
||||
current = int(request.GET.get('current', 0) or 0)
|
||||
except Exception:
|
||||
current = 0
|
||||
|
||||
cid = request.GET.get('cid')
|
||||
passcode = request.GET.get('passcode')
|
||||
|
||||
html = render_to_string(
|
||||
'atlas/partials/_collection_case_jump.html',
|
||||
{
|
||||
'collection': collection,
|
||||
'casedetails': casedetails,
|
||||
'current': current,
|
||||
'cid': cid,
|
||||
'passcode': passcode,
|
||||
},
|
||||
request=request,
|
||||
)
|
||||
|
||||
return HttpResponse(html)
|
||||
|
||||
@login_required
|
||||
def remove_cases_from_collection(request):
|
||||
if not request.htmx:
|
||||
|
||||
Reference in New Issue
Block a user