Add resource search panel with HTMX integration for dynamic resource addition
This commit is contained in:
@@ -205,7 +205,14 @@
|
|||||||
|
|
||||||
{% if can_edit%}
|
{% if can_edit%}
|
||||||
<div class="mb-2">
|
<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>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ urlpatterns = [
|
|||||||
path("resource/<int:pk>/view", views.resource_view, name="resource_view"),
|
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>/update", views.ResourceUpdate.as_view(), name="resource_update"),
|
||||||
path("resource/<int:pk>/delete", views.ResourceDelete.as_view(), name="resource_delete"),
|
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("resource-search-widget/", views.resource_search_widget, name="resource_search_widget"),
|
||||||
|
|
||||||
path(
|
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})
|
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
|
@login_required
|
||||||
@require_POST
|
@require_POST
|
||||||
def case_attach_resource(request, pk):
|
def case_attach_resource(request, pk):
|
||||||
|
|||||||
Reference in New Issue
Block a user