Add HTMX endpoint for truncating series images and corresponding result template
This commit is contained in:
@@ -196,6 +196,43 @@ from helpers.cimar import CimarAPI
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@login_required
|
||||
def series_truncate_htmx(request, series_id, start, end):
|
||||
"""HTMX endpoint to truncate a series' images to the given inclusive
|
||||
start/end bounds (zero-based). Returns an HTML fragment with the result.
|
||||
"""
|
||||
series = get_object_or_404(Series, pk=series_id)
|
||||
|
||||
if not series.check_user_can_edit(request.user):
|
||||
return HttpResponse("<div class=\"alert alert-danger\">Permission denied</div>")
|
||||
|
||||
images_removed = []
|
||||
for n, image in enumerate(series.get_images()):
|
||||
if n >= int(start) and n <= int(end):
|
||||
# keep images within bounds
|
||||
continue
|
||||
else:
|
||||
image.removed = True
|
||||
image.image = None
|
||||
image.save()
|
||||
images_removed.append(image.pk)
|
||||
|
||||
# Recalculate stored series size
|
||||
try:
|
||||
series.get_total_image_size(refresh=True)
|
||||
except Exception:
|
||||
# ignore errors when recalculating
|
||||
pass
|
||||
|
||||
# Render a simple message fragment for HTMX swap
|
||||
html = render_to_string(
|
||||
"atlas/partials/truncate_result.html",
|
||||
{"images_removed": images_removed, "series": series},
|
||||
request=request,
|
||||
)
|
||||
return HttpResponse(html)
|
||||
|
||||
|
||||
@login_required
|
||||
def case_search_partial(request):
|
||||
"""Return an HTMX partial listing cases matching the query parameter `q`.
|
||||
|
||||
Reference in New Issue
Block a user