Skip to content
Snippets Groups Projects
Commit 4d296c0a authored by florimondmanca's avatar florimondmanca
Browse files

split emergency contact into email, home phone, mobile phone

parent 38bf303a
No related branches found
No related tags found
No related merge requests found
......@@ -22,7 +22,9 @@ class RegistrationAdmin(AutocompleteAddressMixin, admin.ModelAdmin):
class EmergencyContactAdmin(admin.ModelAdmin):
"""Admin panel for emergency contacts."""
list_display = ('last_name', 'first_name', 'contact', 'registration_link',)
list_display = ('last_name', 'first_name',
'email', 'home_phone', 'mobile_phone',
'registration_link',)
list_display_links = ('registration_link',)
# necessary to use emergency contact in Registration's admin autocomplete
......
......@@ -17,7 +17,13 @@ class EmergencyContactFactory(factory.DjangoModelFactory):
first_name = factory.Faker('first_name', locale='fr')
last_name = factory.Faker('last_name', locale='fr')
contact = factory.Faker('phone_number', locale='fr')
@factory.lazy_attribute
def email(self):
return f'{self.first_name}.{self.last_name}@fake.com'
home_phone = factory.Faker('phone_number', locale='fr')
mobile_phone = factory.Faker('phone_number', locale='fr')
class RegistrationFactory(factory.DjangoModelFactory):
......@@ -36,7 +42,7 @@ class RegistrationFactory(factory.DjangoModelFactory):
printable_only(self.first_name.lower()),
printable_only(self.last_name.lower()))
phone = factory.Faker('phone_number')
phone = factory.Faker('phone_number', locale='fr')
date_of_birth = factory.Faker('past_date', start_date='-20y')
address = factory.SubFactory(AddressFactory)
emergency_contact = factory.SubFactory(EmergencyContactFactory)
# Generated by Django 2.0.4 on 2018-05-05 08:46
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('register', '0012_auto_20180414_0016'),
]
operations = [
migrations.RemoveField(
model_name='emergencycontact',
name='contact',
),
migrations.AddField(
model_name='emergencycontact',
name='email',
field=models.EmailField(blank=True, max_length=254, null=True, verbose_name='adresse email'),
),
migrations.AddField(
model_name='emergencycontact',
name='home_phone',
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='téléphone fixe'),
),
migrations.AddField(
model_name='emergencycontact',
name='mobile_phone',
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='téléphone portable'),
),
migrations.AlterField(
model_name='emergencycontact',
name='first_name',
field=models.CharField(help_text='Prénom du contact (50 caractères max).', max_length=50, verbose_name='prénom'),
),
migrations.AlterField(
model_name='emergencycontact',
name='last_name',
field=models.CharField(help_text='Nom du contact (50 caractères max).', max_length=50, verbose_name='nom'),
),
]
......@@ -67,18 +67,27 @@ class EmergencyContact(models.Model):
first_name = models.CharField(
'prénom', max_length=50,
help_text='Prénom du contact (50 caractères max).',
blank=True, default='')
help_text='Prénom du contact (50 caractères max).'
)
last_name = models.CharField(
'nom', max_length=50,
help_text='Nom du contact (50 caractères max).',
blank=True, default='')
contact = models.CharField(
max_length=100,
help_text='Téléphone, adresse email…',
help_text='Nom du contact (50 caractères max).'
)
email = models.EmailField(
verbose_name='adresse email',
blank=True, null=True,
)
home_phone = models.CharField(
'téléphone fixe', max_length=50,
blank=True, null=True,
)
mobile_phone = models.CharField(
'téléphone portable', max_length=50,
blank=True, null=True,
)
def __str__(self):
"""Represent the emergency contact by its full name."""
return '{o.first_name} {o.last_name}'.format(o=self)
class Meta: # noqa
......
......@@ -13,7 +13,8 @@ class EmergencyContactSerializer(serializers.ModelSerializer):
class Meta: # noqa
model = EmergencyContact
fields = ('first_name', 'last_name', 'contact')
fields = ('first_name', 'last_name',
'email', 'home_phone', 'mobile_phone')
class RegistrationSerializer(serializers.ModelSerializer):
......
......@@ -13,15 +13,25 @@ class EmergencyContactTest(ModelTestCase):
'first_name': {
'max_length': 50,
'verbose_name': 'prénom',
'blank': True,
},
'last_name': {
'max_length': 50,
'verbose_name': 'nom',
},
'email': {
'verbose_name': 'adresse email',
'blank': True,
'null': True,
},
'contact': {
'max_length': 100,
'home_phone': {
'verbose_name': 'téléphone fixe',
'blank': True,
'null': True,
},
'mobile_phone': {
'verbose_name': 'téléphone portable',
'blank': True,
'null': True,
},
}
model_tests = {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment