From 2159b045cdf83b9ffa5a979dce41a98d1931f97e Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 2 Feb 2026 09:18:16 +0000 Subject: [PATCH] Add resource search panel with HTMX integration for dynamic resource addition --- atlas/templates/atlas/case_display_block.html | 9 ++++++++- atlas/urls.py | 1 + atlas/views.py | 14 ++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/atlas/templates/atlas/case_display_block.html b/atlas/templates/atlas/case_display_block.html index b153d898..2e8c4468 100755 --- a/atlas/templates/atlas/case_display_block.html +++ b/atlas/templates/atlas/case_display_block.html @@ -205,7 +205,14 @@ {% if can_edit%}
- {% include 'atlas/partials/resource_search_panel.html' %} +
+ +
{% endif %} diff --git a/atlas/urls.py b/atlas/urls.py index 2ff9b81e..824d7145 100755 --- a/atlas/urls.py +++ b/atlas/urls.py @@ -50,6 +50,7 @@ urlpatterns = [ path("resource//view", views.resource_view, name="resource_view"), path("resource//update", views.ResourceUpdate.as_view(), name="resource_update"), path("resource//delete", views.ResourceDelete.as_view(), name="resource_delete"), + path("resource-search-panel/", views.resource_search_panel, name="resource_search_panel"), path("resource-search-widget/", views.resource_search_widget, name="resource_search_widget"), path( diff --git a/atlas/views.py b/atlas/views.py index f3dd8d13..434f1a89 100755 --- a/atlas/views.py +++ b/atlas/views.py @@ -4160,6 +4160,20 @@ def resource_search_widget(request): return render(request, "atlas/partials/resource_search_widget_results.html", {"results": results, "field": field, "case_id": case_id}) +@login_required +def resource_search_panel(request): + """HTMX endpoint: return the full resource search panel HTML fragment. + + Expects optional GET param `case_id` to prefill the hidden field. + """ + case_id = request.GET.get("case_id") + return render(request, "atlas/partials/resource_search_panel.html", { + "case": (Case.objects.filter(pk=case_id).first() if case_id else None), + "site_queryset": Site.objects.all(), + "subspecialty_queryset": Subspecialty.objects.all(), + }) + + @login_required @require_POST def case_attach_resource(request, pk):