This commit is contained in:
Ross
2025-12-15 22:24:11 +00:00
parent 761f52eafa
commit d2e128006a
4 changed files with 56 additions and 34 deletions
+7 -6
View File
@@ -1039,12 +1039,12 @@ def leaves_json(request, worker_id):
return JsonResponse({'leaves': data})
def leaves_global_json(request):
def leaves_global_json(request, rota_id=None):
"""Return JSON list of all leave ranges across all workers."""
from .models import Leave
# Optionally filter by rota_id (provided as query param) so the global
# calendar can be scoped to a particular rota's workers.
rota_id = request.GET.get('rota_id')
rota_id = request.GET.get('rota_id') if rota_id is None else rota_id
qs = Leave.objects.select_related('worker')
if rota_id:
try:
@@ -1078,22 +1078,23 @@ def leaves_global_json(request):
return JsonResponse({'leaves': data})
def leaves_global(request):
def leaves_global(request, rota_id=None):
"""Page showing a global calendar with all leave requests."""
# Provide an empty JSON payload initially; the calendar will fetch the authoritative list
leaves_json = '[]'
return render(request, 'rota/leaves_global.html', {'leaves_json': leaves_json})
selected = rota_id if rota_id is not None else request.GET.get('rota_id')
return render(request, 'rota/leaves_global.html', {'leaves_json': leaves_json, 'rotas': RotaSchedule.objects.all().order_by('name'), 'selected_rota_id': selected})
@require_http_methods(["GET"])
def select_workers_modal(request):
def select_workers_modal(request, rota_id=None):
"""Return an HTMX modal partial that lists workers to apply a selected leave range to.
Query params: start_date, end_date, rota_id (optional)
"""
start_date = request.GET.get('start_date')
end_date = request.GET.get('end_date')
rota_id = request.GET.get('rota_id')
rota_id = request.GET.get('rota_id') if rota_id is None else rota_id
workers = Worker.objects.all()
if rota_id:
try: