Added SMS functions to buses and travellers
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
from datetime import datetime
|
||||
|
||||
import phonenumbers
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.db import models
|
||||
|
||||
|
||||
@@ -271,9 +272,6 @@ class Traveller(models.Model):
|
||||
else:
|
||||
self.address = "Multiple"
|
||||
|
||||
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)
|
||||
|
||||
@@ -320,6 +318,11 @@ class Family(models.Model):
|
||||
def __str__(self):
|
||||
return self.parent_names()
|
||||
|
||||
def clean(self):
|
||||
valid_numbers, failed_numbers = self.get_parsed_numbers(True, True)
|
||||
if len(failed_numbers) > 0:
|
||||
raise ValidationError(f"Phone number {failed_numbers[0]} not valid")
|
||||
|
||||
def parent_names(self):
|
||||
a_name = self.parent_A_firstname
|
||||
b_name = self.parent_B_firstname
|
||||
@@ -343,13 +346,19 @@ class Family(models.Model):
|
||||
numbers.append(self.emergency_contact_A_phone)
|
||||
if self.emergency_contact_B_phone:
|
||||
numbers.append(self.emergency_contact_B_phone)
|
||||
|
||||
valid_numbers = []
|
||||
failed_numbers = []
|
||||
for number in numbers:
|
||||
num = phonenumbers.parse(number, "AU")
|
||||
if phonenumbers.is_valid_number(num):
|
||||
valid_numbers.append(num.national_number)
|
||||
return valid_numbers
|
||||
try:
|
||||
num = phonenumbers.parse(number, "AU")
|
||||
if phonenumbers.is_valid_number(num):
|
||||
valid_numbers.append(f"+{num.country_code}{num.national_number}")
|
||||
else:
|
||||
failed_numbers.append(number)
|
||||
except:
|
||||
failed_numbers.append(number)
|
||||
|
||||
return valid_numbers, failed_numbers
|
||||
|
||||
|
||||
class TravellerRoute(models.Model):
|
||||
|
||||
Reference in New Issue
Block a user