9
9
import datetime
10
10
11
11
from django .contrib .auth import get_user_model
12
+ from django .core .exceptions import ObjectDoesNotExist
12
13
from django .shortcuts import render
13
14
from django .urls import reverse
14
15
from django .utils import timezone
15
- from django .utils .translation import gettext as _
16
- from django .utils .translation import gettext_lazy as _
16
+ from django .utils .translation import gettext as _ , gettext_lazy as _
17
17
18
- from appointment .forms import StaffDaysOffForm , StaffWorkingHoursForm , PersonalInformationForm , ServiceForm
18
+ from appointment .forms import PersonalInformationForm , ServiceForm , StaffDaysOffForm , StaffWorkingHoursForm
19
19
from appointment .settings import APPOINTMENT_PAYMENT_URL
20
- from appointment .utils .date_time import get_ar_end_time , convert_12_hour_time_to_24_hour_time , \
21
- convert_str_to_time
22
- from appointment .utils .db_helpers import get_all_appointments , get_staff_member_appointment_list , \
23
- get_appointment_by_id , get_all_staff_members , get_staff_member_from_user_id_or_logged_in , \
24
- day_off_exists_for_date_range , working_hours_exist , Appointment , WorkingHours , Service , StaffMember , \
25
- get_user_by_email , EmailVerificationCode , create_new_user
26
- from appointment .utils .db_helpers import get_working_hours_for_staff_and_day , get_appointments_for_date_and_time , \
27
- get_times_from_config , exclude_booked_slots , calculate_slots , \
28
- calculate_staff_slots , check_day_off_for_staff
20
+ from appointment .utils .date_time import convert_12_hour_time_to_24_hour_time , convert_str_to_time , get_ar_end_time
21
+ from appointment .utils .db_helpers import Appointment , EmailVerificationCode , Service , StaffMember , WorkingHours , \
22
+ calculate_slots , calculate_staff_slots , check_day_off_for_staff , create_new_user , day_off_exists_for_date_range , \
23
+ exclude_booked_slots , get_all_appointments , get_all_staff_members , get_appointment_by_id , \
24
+ get_appointments_for_date_and_time , get_staff_member_appointment_list , get_staff_member_from_user_id_or_logged_in , \
25
+ get_times_from_config , get_user_by_email , get_working_hours_for_staff_and_day , working_hours_exist
29
26
from appointment .utils .error_codes import ErrorCode
30
- from appointment .utils .json_context import json_response , get_generic_context
27
+ from appointment .utils .json_context import get_generic_context , json_response
31
28
from appointment .utils .permissions import check_entity_ownership
32
29
from appointment .utils .session import handle_email_change
33
30
@@ -38,11 +35,16 @@ def fetch_user_appointments(user):
38
35
:param user: The user instance.
39
36
:return: A list of appointments.
40
37
"""
41
-
42
38
if user .is_superuser :
43
39
return get_all_appointments ()
44
- staff_member_instance = user .staffmember
45
- return get_staff_member_appointment_list (staff_member_instance )
40
+ try :
41
+ staff_member_instance = user .staffmember
42
+ return get_staff_member_appointment_list (staff_member_instance )
43
+ except ObjectDoesNotExist :
44
+ if user .is_staff :
45
+ return []
46
+
47
+ raise ValueError ("User is not a staff member or a superuser" )
46
48
47
49
48
50
def prepare_appointment_display_data (user , appointment_id ):
@@ -534,4 +536,3 @@ def handle_service_management_request(post_data, files_data=None, service_id=Non
534
536
return None , False , get_error_message_in_form (form = form )
535
537
except Exception as e :
536
538
return None , False , str (e )
537
-
0 commit comments