.
This commit is contained in:
+15
-29
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user