Skip to content
Snippets Groups Projects
Unverified Commit f0927315 authored by florimondmanca's avatar florimondmanca
Browse files

add phone number to user and student registration api

parent 66a12d84
No related branches found
No related tags found
1 merge request!4Release version ready to welcome first users
...@@ -23,3 +23,5 @@ class RegistrationFactory(factory.DjangoModelFactory): ...@@ -23,3 +23,5 @@ class RegistrationFactory(factory.DjangoModelFactory):
return '{}.{}@example.net'.format( return '{}.{}@example.net'.format(
printable_only(self.first_name.lower()), printable_only(self.first_name.lower()),
printable_only(self.last_name.lower())) printable_only(self.last_name.lower()))
phone_number = factory.Faker('phone_number', locale='fr')
# Generated by Django 2.1.1 on 2018-09-20 08:11
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('register', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='registration',
name='phone_number',
field=models.CharField(default='', help_text='Numéro de téléphone du lycéen (20 caractères max)', max_length=20, verbose_name='téléphone'),
),
]
...@@ -20,6 +20,11 @@ class Registration(models.Model): ...@@ -20,6 +20,11 @@ class Registration(models.Model):
'Adresse email personnelle du lycéen. ' 'Adresse email personnelle du lycéen. '
'Note : doit être une adresse mail valide.' 'Note : doit être une adresse mail valide.'
)) ))
phone_number = models.CharField(
max_length=20, verbose_name='téléphone',
help_text='Numéro de téléphone du lycéen (20 caractères max)',
blank=False, default='',
)
submitted = models.DateTimeField( submitted = models.DateTimeField(
auto_now_add=True, verbose_name='envoyé le', auto_now_add=True, verbose_name='envoyé le',
help_text="Date d'envoi du dossier d'inscription") help_text="Date d'envoi du dossier d'inscription")
......
...@@ -23,7 +23,7 @@ class RegistrationSerializer(serializers.ModelSerializer): ...@@ -23,7 +23,7 @@ class RegistrationSerializer(serializers.ModelSerializer):
class Meta: # noqa class Meta: # noqa
model = Registration model = Registration
fields = ('id', 'email', 'password', fields = ('id', 'email', 'password',
'first_name', 'last_name', 'first_name', 'last_name', 'phone_number',
'submitted', 'validated',) 'submitted', 'validated',)
extra_kwargs = { extra_kwargs = {
......
...@@ -22,6 +22,7 @@ def create_user_and_student(sender, instance: Registration, ...@@ -22,6 +22,7 @@ def create_user_and_student(sender, instance: Registration,
password=password, password=password,
first_name=instance.first_name, first_name=instance.first_name,
last_name=instance.last_name, last_name=instance.last_name,
phone_number=instance.phone_number,
) )
Student.objects.create( Student.objects.create(
......
...@@ -64,6 +64,10 @@ class UserModelTest(ModelTestCase): ...@@ -64,6 +64,10 @@ class UserModelTest(ModelTestCase):
(User.PROFILE_STUDENT, 'Lycéen'), (User.PROFILE_STUDENT, 'Lycéen'),
(User.PROFILE_TUTOR, 'Tuteur'), (User.PROFILE_TUTOR, 'Tuteur'),
) )
},
'phone_number': {
'blank': True,
'null': True,
} }
} }
model_tests = { model_tests = {
......
...@@ -40,7 +40,7 @@ class CustomUserAdmin(UserAdmin): ...@@ -40,7 +40,7 @@ class CustomUserAdmin(UserAdmin):
fieldsets = ( fieldsets = (
(None, {'fields': ('email', 'password')}), (None, {'fields': ('email', 'password')}),
(_('Personal info'), {'fields': ( (_('Personal info'), {'fields': (
'first_name', 'last_name', 'first_name', 'last_name', 'phone_number',
)}), )}),
(_('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser', (_('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser',
'groups', 'user_permissions')}), 'groups', 'user_permissions')}),
......
# Generated by Django 2.1.1 on 2018-09-20 07:50
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('users', '0002_auto_20180911_2223'),
]
operations = [
migrations.AddField(
model_name='user',
name='phone_number',
field=models.CharField(blank=True, max_length=20, null=True, verbose_name='téléphone'),
),
]
...@@ -77,6 +77,9 @@ class User(AbstractUser): ...@@ -77,6 +77,9 @@ class User(AbstractUser):
choices=PROFILE_CHOICES, choices=PROFILE_CHOICES,
verbose_name='type de profil') verbose_name='type de profil')
phone_number = models.CharField('téléphone',
max_length=20, null=True, blank=True)
@property @property
def student(self): def student(self):
return getattr(self, 'student', None) return getattr(self, 'student', None)
......
...@@ -12,7 +12,7 @@ class UserSerializer(serializers.HyperlinkedModelSerializer): ...@@ -12,7 +12,7 @@ class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta: # noqa class Meta: # noqa
model = User model = User
fields = ('id', 'email', 'profile_type', fields = ('id', 'email', 'profile_type',
'first_name', 'last_name', 'url',) 'first_name', 'last_name', 'phone_number', 'url',)
extra_kwargs = { extra_kwargs = {
'email': {'read_only': True}, 'email': {'read_only': True},
'url': {'view_name': 'api:user-detail'}, 'url': {'view_name': 'api:user-detail'},
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment