Added locations app
Moved contacts to new model
This commit is contained in:
@@ -1,9 +1,12 @@
|
||||
import requests
|
||||
from django import forms
|
||||
from django.conf import settings
|
||||
from django.db.models import Prefetch
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.shortcuts import render
|
||||
|
||||
from traveller.models import Family
|
||||
|
||||
|
||||
def _get_token():
|
||||
url = 'https://products.api.telstra.com/v2/oauth/token'
|
||||
@@ -81,45 +84,120 @@ class SMSForm(forms.Form):
|
||||
|
||||
|
||||
def _get_numbers(request, queryset):
|
||||
|
||||
send_to_parents = bool(request.POST.get("send_to_parents"))
|
||||
send_to_emergency_contacts = bool(request.POST.get("send_to_emergency_contacts"))
|
||||
only_include_active_travellers = bool(request.POST.get("only_include_active_travellers"))
|
||||
|
||||
numbers = []
|
||||
for traveller in queryset:
|
||||
if only_include_active_travellers and not traveller._is_active():
|
||||
numbers = set()
|
||||
|
||||
families_prefetch = Prefetch(
|
||||
"family_set",
|
||||
queryset=Family.objects.select_related(
|
||||
"contact_A",
|
||||
"contact_B",
|
||||
"emergency_contact_A",
|
||||
"emergency_contact_B",
|
||||
)
|
||||
)
|
||||
|
||||
travellers = queryset.prefetch_related(families_prefetch)
|
||||
|
||||
for traveller in travellers:
|
||||
|
||||
if only_include_active_travellers and not traveller.is_active:
|
||||
continue
|
||||
for family in traveller.get_families():
|
||||
family_numbers, _ = family.get_parsed_numbers(parents=send_to_parents, emergency=send_to_emergency_contacts)
|
||||
if family_numbers:
|
||||
numbers = numbers + family_numbers
|
||||
return list(set(numbers)) # Remove duplicates
|
||||
|
||||
for family in traveller.family_set.all():
|
||||
|
||||
family_numbers, _ = family.get_parsed_numbers(
|
||||
parents=send_to_parents,
|
||||
emergency=send_to_emergency_contacts
|
||||
)
|
||||
|
||||
numbers.update(family_numbers)
|
||||
|
||||
return list(numbers)
|
||||
|
||||
|
||||
def _family_context(queryset):
|
||||
|
||||
families_prefetch = Prefetch(
|
||||
"family_set",
|
||||
queryset=Family.objects.select_related(
|
||||
"contact_A",
|
||||
"contact_B",
|
||||
"emergency_contact_A",
|
||||
"emergency_contact_B",
|
||||
)
|
||||
)
|
||||
|
||||
travellers = queryset.prefetch_related(families_prefetch)
|
||||
|
||||
family_set = []
|
||||
for traveller in queryset:
|
||||
families = traveller.get_families()
|
||||
if len(families) == 0:
|
||||
|
||||
for traveller in travellers:
|
||||
|
||||
families = traveller.family_set.all()
|
||||
|
||||
if not families:
|
||||
family_set.append({
|
||||
'traveller': traveller.__str__(),
|
||||
'has_failed_number': True
|
||||
"traveller": str(traveller),
|
||||
"has_failed_number": True
|
||||
})
|
||||
continue
|
||||
|
||||
for family in families:
|
||||
|
||||
_, failed_numbers = family.get_parsed_numbers(True, True)
|
||||
|
||||
family_context = {
|
||||
'traveller': traveller.__str__(),
|
||||
'has_failed_number': len(failed_numbers) > 0
|
||||
"traveller": str(traveller),
|
||||
"has_failed_number": len(failed_numbers) > 0,
|
||||
}
|
||||
if family.parent_A_phone:
|
||||
family_context['parent_A'] = f"{family.parent_A_firstname} {family.parent_A_lastname} ({family.parent_A_phone})"
|
||||
if family.parent_B_phone:
|
||||
family_context['parent_B'] = f"{family.parent_B_firstname} {family.parent_B_lastname} ({family.parent_B_phone})"
|
||||
if family.emergency_contact_A_phone:
|
||||
family_context['contact_A'] = f"{family.emergency_contact_A_firstname} {family.emergency_contact_A_lastname} ({family.emergency_contact_A_phone})"
|
||||
if family.emergency_contact_B_phone:
|
||||
family_context['contact_B'] = f"{family.emergency_contact_B_firstname} {family.emergency_contact_B_lastname} ({family.emergency_contact_B_phone})"
|
||||
|
||||
# -----------------------
|
||||
# Parent A
|
||||
# -----------------------
|
||||
if family.contact_A:
|
||||
family_context["parent_A"] = (
|
||||
f"{family.contact_A.first_name} "
|
||||
f"{family.contact_A.last_name} "
|
||||
f"({family.contact_A.phone})"
|
||||
)
|
||||
|
||||
# -----------------------
|
||||
# Parent B
|
||||
# -----------------------
|
||||
if family.contact_B:
|
||||
family_context["parent_B"] = (
|
||||
f"{family.contact_B.first_name} "
|
||||
f"{family.contact_B.last_name} "
|
||||
f"({family.contact_B.phone})"
|
||||
)
|
||||
|
||||
# -----------------------
|
||||
# Emergency A
|
||||
# -----------------------
|
||||
if family.emergency_contact_A:
|
||||
family_context["contact_A"] = (
|
||||
f"{family.emergency_contact_A.first_name} "
|
||||
f"{family.emergency_contact_A.last_name} "
|
||||
f"({family.emergency_contact_A.phone})"
|
||||
)
|
||||
|
||||
# -----------------------
|
||||
# Emergency B
|
||||
# -----------------------
|
||||
if family.emergency_contact_B:
|
||||
family_context["contact_B"] = (
|
||||
f"{family.emergency_contact_B.first_name} "
|
||||
f"{family.emergency_contact_B.last_name} "
|
||||
f"({family.emergency_contact_B.phone})"
|
||||
)
|
||||
|
||||
family_set.append(family_context)
|
||||
|
||||
return family_set
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user