Add resource search panel with HTMX integration for dynamic resource addition
This commit is contained in:
@@ -205,7 +205,14 @@
|
||||
|
||||
{% if can_edit%}
|
||||
<div class="mb-2">
|
||||
{% include 'atlas/partials/resource_search_panel.html' %}
|
||||
<div id="resource-search-panel-placeholder">
|
||||
<button class="btn btn-sm btn-outline-primary"
|
||||
hx-get="{% url 'atlas:resource_search_panel' %}?case_id={{ case.pk }}"
|
||||
hx-target="#resource-search-panel-placeholder"
|
||||
hx-swap="innerHTML">
|
||||
Add Resource
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
|
||||
@@ -50,6 +50,7 @@ urlpatterns = [
|
||||
path("resource/<int:pk>/view", views.resource_view, name="resource_view"),
|
||||
path("resource/<int:pk>/update", views.ResourceUpdate.as_view(), name="resource_update"),
|
||||
path("resource/<int:pk>/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(
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user