From 290a444216c9f2b062c3cc4b290dc612f2e26d2a Mon Sep 17 00:00:00 2001 From: Tanner Collin Date: Tue, 24 Jul 2018 00:24:30 +0000 Subject: [PATCH] Add fields to capture user personal information --- .../api/migrations/0007_auto_20180724_0016.py | 157 ++++++++++++++++++ caremyway/api/models.py | 29 +++- caremyway/api/serializers.py | 6 +- 3 files changed, 188 insertions(+), 4 deletions(-) create mode 100644 caremyway/api/migrations/0007_auto_20180724_0016.py diff --git a/caremyway/api/migrations/0007_auto_20180724_0016.py b/caremyway/api/migrations/0007_auto_20180724_0016.py new file mode 100644 index 0000000..afe358a --- /dev/null +++ b/caremyway/api/migrations/0007_auto_20180724_0016.py @@ -0,0 +1,157 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.1 on 2018-07-24 00:16 +from __future__ import unicode_literals + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0006_auto_20180622_0533'), + ] + + operations = [ + migrations.AddField( + model_name='client', + name='alt_address1', + field=models.CharField(default='-', max_length=100), + preserve_default=False, + ), + migrations.AddField( + model_name='client', + name='alt_address2', + field=models.CharField(blank=True, max_length=100), + ), + migrations.AddField( + model_name='client', + name='alt_city', + field=models.CharField(default='-', max_length=32), + preserve_default=False, + ), + migrations.AddField( + model_name='client', + name='alt_name', + field=models.CharField(default='-', max_length=32), + preserve_default=False, + ), + migrations.AddField( + model_name='client', + name='alt_phone_number', + field=models.CharField(default='-', max_length=16, validators=[django.core.validators.RegexValidator(message="Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed.", regex='^\\+?1?\\d{9,15}$')]), + preserve_default=False, + ), + migrations.AddField( + model_name='client', + name='alt_province', + field=models.CharField(default='-', max_length=32), + preserve_default=False, + ), + migrations.AddField( + model_name='manage', + name='relation', + field=models.CharField(blank=True, max_length=32), + ), + migrations.AddField( + model_name='provider', + name='cert_date1', + field=models.DateField(blank=True, default='2018-01-01'), + preserve_default=False, + ), + migrations.AddField( + model_name='provider', + name='cert_date2', + field=models.DateField(blank=True, default='2018-01-01'), + preserve_default=False, + ), + migrations.AddField( + model_name='provider', + name='cert_date3', + field=models.DateField(blank=True, default='2018-01-01'), + preserve_default=False, + ), + migrations.AddField( + model_name='provider', + name='cert_institution1', + field=models.CharField(blank=True, max_length=32), + ), + migrations.AddField( + model_name='provider', + name='cert_institution2', + field=models.CharField(blank=True, max_length=32), + ), + migrations.AddField( + model_name='provider', + name='cert_institution3', + field=models.CharField(blank=True, max_length=32), + ), + migrations.AddField( + model_name='provider', + name='cert_title1', + field=models.CharField(blank=True, max_length=32), + ), + migrations.AddField( + model_name='provider', + name='cert_title2', + field=models.CharField(blank=True, max_length=32), + ), + migrations.AddField( + model_name='provider', + name='cert_title3', + field=models.CharField(blank=True, max_length=32), + ), + migrations.AddField( + model_name='provider', + name='crim_record_check_date', + field=models.DateField(blank=True, default='2018-01-01'), + preserve_default=False, + ), + migrations.AddField( + model_name='provider', + name='emerg_contact_name', + field=models.CharField(default='-', max_length=32), + preserve_default=False, + ), + migrations.AddField( + model_name='provider', + name='emerg_contact_number', + field=models.CharField(default='-', max_length=16, validators=[django.core.validators.RegexValidator(message="Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed.", regex='^\\+?1?\\d{9,15}$')]), + preserve_default=False, + ), + migrations.AddField( + model_name='userinfo', + name='address1', + field=models.CharField(default='-', max_length=100), + preserve_default=False, + ), + migrations.AddField( + model_name='userinfo', + name='address2', + field=models.CharField(blank=True, max_length=100), + ), + migrations.AddField( + model_name='userinfo', + name='city', + field=models.CharField(default='-', max_length=32), + preserve_default=False, + ), + migrations.AddField( + model_name='userinfo', + name='dob', + field=models.DateField(default='2018-01-01'), + preserve_default=False, + ), + migrations.AddField( + model_name='userinfo', + name='postal_code', + field=models.CharField(default='-', max_length=7, validators=[django.core.validators.RegexValidator(message="Phone number must be entered in the format: 'A1B 2C3'.", regex='^[a-zA-Z][0-9][a-zA-Z] [0-9][a-zA-Z][0-9]$')]), + preserve_default=False, + ), + migrations.AddField( + model_name='userinfo', + name='province', + field=models.CharField(default='-', max_length=32), + preserve_default=False, + ), + ] diff --git a/caremyway/api/models.py b/caremyway/api/models.py index b40348d..ed02d7e 100644 --- a/caremyway/api/models.py +++ b/caremyway/api/models.py @@ -3,10 +3,18 @@ from django.contrib.auth.models import User from django.db import models from django.core.validators import RegexValidator +phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', message="Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed.") + # Create your models here. class UserInfo(models.Model): user = models.OneToOneField(User) - phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', message="Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed.") + dob = models.DateField() + address1 = models.CharField(max_length=100) + address2 = models.CharField(max_length=100, blank=True) + city = models.CharField(max_length=32) + province = models.CharField(max_length=32) + postal_code_regex = RegexValidator(regex=r'^[a-zA-Z][0-9][a-zA-Z] [0-9][a-zA-Z][0-9]$', message="Phone number must be entered in the format: 'A1B 2C3'.") + postal_code = models.CharField(validators=[postal_code_regex], max_length=7) phone_number = models.CharField(validators=[phone_regex], max_length=16) def __str__(self): @@ -15,6 +23,12 @@ class UserInfo(models.Model): class Client(models.Model): user = models.OneToOneField(User) business_number = models.CharField(max_length=16) + alt_name = models.CharField(max_length=32) + alt_address1 = models.CharField(max_length=100) + alt_address2 = models.CharField(max_length=100, blank=True) + alt_city = models.CharField(max_length=32) + alt_province = models.CharField(max_length=32) + alt_phone_number = models.CharField(validators=[phone_regex], max_length=16) def __str__(self): return self.user.first_name + ' ' + self.user.last_name @@ -22,6 +36,18 @@ class Client(models.Model): class Provider(models.Model): user = models.OneToOneField(User) sin = models.CharField(max_length=16) + cert_title1 = models.CharField(max_length=32, blank=True) + cert_date1 = models.DateField(blank=True) + cert_institution1 = models.CharField(max_length=32, blank=True) + cert_title2 = models.CharField(max_length=32, blank=True) + cert_date2 = models.DateField(blank=True) + cert_institution2 = models.CharField(max_length=32, blank=True) + cert_title3 = models.CharField(max_length=32, blank=True) + cert_date3 = models.DateField(blank=True) + cert_institution3 = models.CharField(max_length=32, blank=True) + emerg_contact_name = models.CharField(max_length=32) + emerg_contact_number = models.CharField(validators=[phone_regex], max_length=16) + crim_record_check_date = models.DateField(blank=True) def __str__(self): return self.user.first_name + ' ' + self.user.last_name @@ -41,6 +67,7 @@ class Manage(models.Model): client = models.ForeignKey(Client, related_name='employees') provider = models.ForeignKey(Provider, related_name='employers') note = models.CharField(max_length=500, blank=True) + relation = models.CharField(max_length=32, blank=True) approved = models.NullBooleanField(blank=True) deleted = models.BooleanField(default=False) diff --git a/caremyway/api/serializers.py b/caremyway/api/serializers.py index 4ac7f6e..035d863 100644 --- a/caremyway/api/serializers.py +++ b/caremyway/api/serializers.py @@ -8,7 +8,7 @@ from caremyway.api.models import UserInfo, Client, Provider, WorkType, Manage, P class UserInfoSerializer(serializers.ModelSerializer): class Meta: model = UserInfo - fields = ('phone_number',) + fields = ('dob', 'address1', 'address2', 'city', 'province', 'postal_code', 'phone_number') def create(self, validated_data): validated_data['user'] = self.context['request'].user @@ -116,7 +116,7 @@ class ClientSerializer(serializers.ModelSerializer): class Meta: model = Client - fields = ('business_number', 'work_types', 'employees') + fields = ('business_number', 'alt_name', 'alt_address1', 'alt_address2', 'alt_city', 'alt_province', 'alt_phone_number', 'work_types', 'employees') def create(self, validated_data): user = self.context['request'].user @@ -156,7 +156,7 @@ class ProviderSerializer(serializers.ModelSerializer): class Meta: model = Provider - fields = ('sin', 'employers') + fields = ('sin', 'cert_title1', 'cert_date1', 'cert_institution1', 'cert_title2', 'cert_date2', 'cert_institution2', 'cert_title3', 'cert_date3', 'cert_institution3', 'emerg_contact_name', 'emerg_contact_number', 'crim_record_check_date', 'employers') def create(self, validated_data): user = self.context['request'].user