From a3c0afc94eea6cc8f340aa2781237c795cf7fe3a Mon Sep 17 00:00:00 2001 From: Yoan Le Clanche Date: Wed, 26 Aug 2020 14:38:53 +0200 Subject: [PATCH] Add siret and course fields to corrector register form --- teleforma/forms.py | 22 +++++++++++++++++----- teleforma/models/crfpa.py | 4 ++++ teleforma/views/crfpa.py | 12 ++++++++---- 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/teleforma/forms.py b/teleforma/forms.py index 0cf95256..b8cf9b02 100644 --- a/teleforma/forms.py +++ b/teleforma/forms.py @@ -211,6 +211,8 @@ class CorrectorForm(ModelForm): nationality = CharField(label='Nationalité', max_length=255) ss_number = CharField(label='N° de sécurité sociale', max_length=15) + siret = CharField(label='N° SIRET', + max_length=13, required=False) # corrector period = ModelChoiceField(label='Période', queryset=Period.objects.filter(is_open=True, @@ -219,9 +221,12 @@ class CorrectorForm(ModelForm): pay_status = forms.ChoiceField(choices = PAY_STATUS_CHOICES, label='Statut', widget=forms.Select()) + courses = ModelMultipleChoiceField(label='Matière', + queryset=Course.objects.all().exclude(title="Aucune").order_by('title'), + widget=forms.CheckboxSelectMultiple()) # no model captcha = CaptchaField() - accept = BooleanField() + # accept = BooleanField() class Meta: model = User @@ -233,8 +238,13 @@ class CorrectorForm(ModelForm): self.fields['first_name'].required = True self.fields['last_name'].required = True self.fields['email'].required = True - self.user_fields = ['first_name', 'last_name', 'email', 'address', 'address_detail', 'postal_code', 'city', 'country', 'telephone', 'birthday', 'birthday_place', 'nationality', 'ss_number'] - self.training_fields = ['period', 'pay_status'] + self.user_fields = ['first_name', 'last_name', 'email', 'address', 'address_detail', 'postal_code', 'city', 'country', 'telephone', 'birthday', 'birthday_place', 'nationality', 'ss_number', 'siret'] + self.training_fields = ['courses', 'period', 'pay_status'] + + def clean_siret(self): + if self.data['pay_status'] == 'honoraires' and not self.cleaned_data['siret'].strip(): + raise ValidationError("Le SIRET est obligatoire si vous choississez le statut honoraires") + return self.data['siret'] def save(self, commit=True): @@ -258,15 +268,17 @@ class CorrectorForm(ModelForm): birthday=data['birthday'], birthday_place=data['birthday_place'], ss_number=data['ss_number'], + siret=data['siret'], nationality=data['nationality'] ) if commit: profile.save() - corector = Corrector(user=user, + corrector = Corrector(user=user, period=data.get('period'), pay_status=data.get('pay_status'), ) - corector.save() + corrector.save() + corrector.courses = data.get('courses') return user diff --git a/teleforma/models/crfpa.py b/teleforma/models/crfpa.py index 2c74dced..33ff4514 100755 --- a/teleforma/models/crfpa.py +++ b/teleforma/models/crfpa.py @@ -301,6 +301,9 @@ class Profile(models.Model): nationality = models.CharField('Nationalité', max_length=255, null=True, blank=True) ss_number = models.CharField('Sécurité sociale', max_length=15, blank=True, null=True) + siret = models.CharField('Siret', + max_length=13, blank=True, null=True) + class Meta(MetaCore): db_table = app_label + '_' + 'profiles' verbose_name = _('profile') @@ -317,6 +320,7 @@ class Corrector(Model): user = models.ForeignKey(User, related_name='corrector', verbose_name=_('user'), unique=True) period = models.ForeignKey('Period', related_name='corrector', verbose_name=_('period'), blank=True, null=True, on_delete=models.SET_NULL) + courses = models.ManyToManyField("Course", verbose_name=_("Course"), blank=True, null=True) pay_status = models.CharField('Statut', choices=PAY_STATUS_CHOICES, max_length=64, blank=True, null=True, default='honoraire') diff --git a/teleforma/views/crfpa.py b/teleforma/views/crfpa.py index 6f03948f..4ff8dc7c 100644 --- a/teleforma/views/crfpa.py +++ b/teleforma/views/crfpa.py @@ -432,13 +432,15 @@ class CorrectorXLSBook(object): row.write(10, profile.birthday_place) row.write(11, profile.nationality) row.write(12, profile.ss_number) + row.write(13, profile.siret) if corrector.date_registered: - row.write(13, corrector.date_registered.strftime("%d/%m/%Y")) + row.write(14, corrector.date_registered.strftime("%d/%m/%Y")) else: - row.write(13, "") - row.write(14, str(corrector.period)) - row.write(15, corrector.pay_status) + row.write(14, "") + row.write(15, str(corrector.period)) + row.write(16, corrector.pay_status) + row.write(17, (', ').join([course.title for course in corrector.courses.all()])) return counter + 1 @@ -457,9 +459,11 @@ class CorrectorXLSBook(object): {'name': 'LIEU DE NAISSANCE', 'width': 5000}, {'name': 'NATIONALITE', 'width': 5000}, {'name': 'NUMERO SS', 'width': 5000}, + {'name':"SIRET", 'width':5000}, {'name':"DATE D'INSCRIPTION", 'width':5000}, {'name':"PERIODE", 'width':5000}, {'name':"STATUT", 'width':5000}, + {'name':"MATIERES", 'width':30000}, ] i = 0 -- 2.39.5