From 37f4d2766f9fd6033c4451a070266970add448dc Mon Sep 17 00:00:00 2001 From: vubo Date: Mon, 17 Aug 2015 21:42:08 +0200 Subject: [PATCH] Show all shifts except signed up --- vms/shift/services.py | 22 ++++++++++++++++++++++ vms/shift/views.py | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/vms/shift/services.py b/vms/shift/services.py index f2f47a9..42bf906 100644 --- a/vms/shift/services.py +++ b/vms/shift/services.py @@ -324,6 +324,28 @@ def get_shifts_with_open_slots(j_id): return shift_list +def get_shifts_with_open_slots_for_volunteer(j_id, v_id): + """ + Returns shifts with open slots + all except those for which the volunteer has signed up. + """ + shift_list_by_date = get_shifts_ordered_by_date(j_id) + shift_list = [] + + for shift in shift_list_by_date: + slots_remaining = get_shift_slots_remaining(shift.id) + if slots_remaining > 0 and not is_signed_up(v_id, shift.id): + shift_map = {} + shift_map["id"] = shift.id + shift_map["date"] = shift.date + shift_map["start_time"] = shift.start_time + shift_map["end_time"] = shift.end_time + shift_map["slots_remaining"] = slots_remaining + shift_list.append(shift_map) + + return shift_list + + def get_unlogged_shifts_by_volunteer_id(v_id): # get shifts that the volunteer signed up for and diff --git a/vms/shift/views.py b/vms/shift/views.py index 8dd15c8..44bdbc9 100644 --- a/vms/shift/views.py +++ b/vms/shift/views.py @@ -467,7 +467,7 @@ def list_shifts_sign_up(request, job_id, volunteer_id): if job_id: job = get_job_by_id(job_id) if job: - shift_list = get_shifts_with_open_slots(job_id) + shift_list = get_shifts_with_open_slots_for_volunteer(job_id, volunteer_id) return render( request, 'shift/list_shifts_sign_up.html',