This commit is contained in:
Ross
2025-12-14 21:07:16 +00:00
parent 26d3ff7a2d
commit d6ede37e0b
2 changed files with 21 additions and 30 deletions
+15 -29
View File
@@ -266,15 +266,13 @@ def worker_create(request):
{"rota": rota},
request=request,
)
resp = (
f'<div id="worker-list" hx-swap-oob="true">{worker_list_html}</div>'
+ '<div id="modal" hx-swap-oob="true"></div>'
)
resp = f'<div id="worker-list" hx-swap-oob="true">{worker_list_html}</div>'
response = HttpResponse(resp)
# close modal via HX-Trigger to avoid racing OOB swaps that target #modal
response["HX-Trigger"] = "closeModal"
return response
# If we couldn't render the worker list (no rota), just close modal
response = HttpResponse('<div id="modal" hx-swap-oob="true"></div>')
# If we couldn't render the worker list (no rota), just close modal via trigger
response = HttpResponse('')
response["HX-Trigger"] = "closeModal"
return response
# Non-HTMX POST -> redirect
@@ -332,10 +330,7 @@ def worker_edit(request, rota_id, worker_id):
form.save()
# Return updated worker list OOB and close modal
worker_list_html = render_to_string("rota/partials/worker_list.html", {"rota": rota}, request=request)
resp = (
f'<div id="worker-list" hx-swap-oob="true">{worker_list_html}</div>'
+ '<div id="modal" hx-swap-oob="true"></div>'
)
resp = f'<div id="worker-list" hx-swap-oob="true">{worker_list_html}</div>'
response = HttpResponse(resp)
response["HX-Trigger"] = "closeModal"
return response
@@ -405,10 +400,7 @@ def worker_delete(request, rota_id, worker_id):
rota = get_object_or_404(RotaSchedule, pk=rota_id)
worker_list_html = render_to_string("rota/partials/worker_list.html", {"rota": rota}, request=request)
resp = (
f'<div id="worker-list" hx-swap-oob="true">{worker_list_html}</div>'
+ '<div id="modal" hx-swap-oob="true"></div>'
)
resp = f'<div id="worker-list" hx-swap-oob="true">{worker_list_html}</div>'
response = HttpResponse(resp)
response["HX-Trigger"] = "closeModal"
return response
@@ -515,10 +507,7 @@ def request_leave(request, token=None):
{"leaves": worker.leaves.all(), "token": token},
request=request,
)
resp = (
f'<div id="leave-list" hx-swap-oob="true">{leave_list_html}</div>'
+ '<div id="modal" hx-swap-oob="true"></div>'
)
resp = f'<div id="leave-list" hx-swap-oob="true">{leave_list_html}</div>'
response = HttpResponse(resp)
# Trigger modal close and a leaveUpdated event so client can refresh calendar highlights
response["HX-Trigger"] = "closeModal,leaveUpdated"
@@ -633,7 +622,7 @@ def _oob_update_options_display(request, rota):
{"rota": rota, "options_pretty": options_pretty},
request=request,
)
resp = '<div id="rota-options-display" hx-swap-oob="true">' + options_html + '</div>' + '<div id="modal" hx-swap-oob="true"></div>'
resp = '<div id="rota-options-display" hx-swap-oob="true">' + options_html + '</div>'
response = HttpResponse(resp)
response["HX-Trigger"] = "closeModal"
return response
@@ -943,11 +932,11 @@ def leaves_json(request, worker_id):
"""Return JSON list of leave ranges for a given worker."""
worker = get_object_or_404(Worker, pk=worker_id)
data = []
for l in worker.leaves.all().order_by('start_date'):
for leave in worker.leaves.all().order_by('start_date'):
data.append({
'start': l.start_date.isoformat(),
'end': l.end_date.isoformat(),
'reason': l.reason,
'start': leave.start_date.isoformat(),
'end': leave.end_date.isoformat(),
'reason': leave.reason,
})
return JsonResponse({'leaves': data})
@@ -1100,8 +1089,7 @@ def shift_add(request, rota_id):
resp = (
f'<div id="shift-list" hx-swap-oob="true">{shift_list_html}</div>'
+ '<div id="shift-form" hx-swap-oob="true"></div>'
+ '<div id="modal" hx-swap-oob="true"></div>'
)
)
response = HttpResponse(resp)
response["HX-Trigger"] = "closeModal"
return response
@@ -1146,8 +1134,7 @@ def shift_edit(request, rota_id, idx):
resp = (
f'<div id="shift-list" hx-swap-oob="true">{shift_list_html}</div>'
+ '<div id="shift-form" hx-swap-oob="true"></div>'
+ '<div id="modal" hx-swap-oob="true"></div>'
)
)
response = HttpResponse(resp)
response["HX-Trigger"] = "closeModal"
return response
@@ -1191,8 +1178,7 @@ def shift_delete(request, rota_id, idx):
resp = (
f'<div id="shift-list" hx-swap-oob="true">{shift_list_html}</div>'
+ '<div id="shift-form" hx-swap-oob="true"></div>'
+ '<div id="modal" hx-swap-oob="true"></div>'
)
)
response = HttpResponse(resp)
response["HX-Trigger"] = "closeModal"
return response