diff --git a/busManager/coord/context_helpers.py b/busManager/coord/context_helpers.py index 219fb83..a7fedaa 100644 --- a/busManager/coord/context_helpers.py +++ b/busManager/coord/context_helpers.py @@ -171,26 +171,27 @@ def emergency_contacts_context(queryset=None): traveller = travellerRoute.traveller if not traveller._is_active(): continue - parent_a = "" - if travellerRoute.traveller.parent_A_firstname: - parent_a = f"{traveller.parent_A_firstname} {traveller.parent_A_lastname} ({traveller.parent_A_phone})" - parent_b = "" - if travellerRoute.traveller.parent_B_firstname: - parent_b = f"{traveller.parent_B_firstname} {traveller.parent_B_lastname} ({traveller.parent_B_phone})" - contact_a = "" - if travellerRoute.traveller.emergency_contact_A_firstname: - contact_a = f"{traveller.emergency_contact_A_firstname} {traveller.emergency_contact_A_lastname} ({traveller.emergency_contact_A_phone})" - contact_b = "" - if travellerRoute.traveller.emergency_contact_B_firstname: - contact_b = f"{traveller.emergency_contact_B_firstname} {traveller.emergency_contact_B_lastname} ({traveller.emergency_contact_B_phone})" - traveller_list.append({ - 'traveller': traveller, - 'parent_a': parent_a, - 'parent_b': parent_b, - 'contact_a': contact_a, - 'contact_b': contact_b, - 'note': travellerRoute.notes - }) + for family in traveller.get_families(): + parent_a = "" + if family.parent_A_firstname: + parent_a = f"{family.parent_A_firstname} {family.parent_A_lastname} ({family.parent_A_phone})" + parent_b = "" + if family.parent_B_firstname: + parent_b = f"{family.parent_B_firstname} {family.parent_B_lastname} ({family.parent_B_phone})" + contact_a = "" + if family.emergency_contact_A_firstname: + contact_a = f"{family.emergency_contact_A_firstname} {family.emergency_contact_A_lastname} ({family.emergency_contact_A_phone})" + contact_b = "" + if family.emergency_contact_B_firstname: + contact_b = f"{family.emergency_contact_B_firstname} {family.emergency_contact_B_lastname} ({family.emergency_contact_B_phone})" + traveller_list.append({ + 'traveller': traveller, + 'parent_a': parent_a, + 'parent_b': parent_b, + 'contact_a': contact_a, + 'contact_b': contact_b, + 'note': travellerRoute.notes + }) bus_routes.append({'bus': bus, 'drivers': drivers, 'travellers': traveller_list}) return {'routes': bus_routes} diff --git a/busManager/coord/models.py b/busManager/coord/models.py index 370b7e8..6490a60 100644 --- a/busManager/coord/models.py +++ b/busManager/coord/models.py @@ -262,7 +262,7 @@ class Traveller(models.Model): return f"${str(cost * stops)}" def _repopulate_address(self): - families = Family.objects.filter(traveller__id__exact=self.id) + families = self.get_families() if families.count() == 0: self.address = "" elif families.count() == 1: @@ -274,6 +274,9 @@ class Traveller(models.Model): def get_parsed_numbers(self, parents=False, emergency=False): return [] # Moved to family model. To remove from traveller model + def get_families(self): + return Family.objects.filter(traveller__id__exact=self.id) + class Family(models.Model): RELATIONS = [