]> git.parisson.com Git - teleforma.git/commitdiff
Add siret and course fields to corrector register form
authorYoan Le Clanche <yoanl@pilotsystems.net>
Wed, 26 Aug 2020 12:38:53 +0000 (14:38 +0200)
committerYoan Le Clanche <yoanl@pilotsystems.net>
Wed, 26 Aug 2020 12:38:53 +0000 (14:38 +0200)
teleforma/forms.py
teleforma/models/crfpa.py
teleforma/views/crfpa.py

index 0cf95256d6426bfda9e3616016a7322c4dced747..b8cf9b0226984189f24b8ffb6a873e03f6183e17 100644 (file)
@@ -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
 
 
index 2c74dced64e762eaea9d4cc2144d0e7ee254d7fe..33ff451426db6f0870355f1133b862ffe00d91c7 100755 (executable)
@@ -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')
index 6f03948fb735d5be7799d275927475664f399efa..4ff8dc7ce3522a1fd9ec89cd36ae28efbedb1993 100644 (file)
@@ -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