]> git.parisson.com Git - teleforma.git/commitdiff
add Origin
authorGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Thu, 16 Mar 2023 15:27:50 +0000 (16:27 +0100)
committerGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Thu, 16 Mar 2023 15:27:50 +0000 (16:27 +0100)
teleforma/forms.py
teleforma/migrations/0024_auto_20230316_1627.py [new file with mode: 0644]
teleforma/models/crfpa.py
teleforma/urls.py
teleforma/views/crfpa.py

index c459c77be423b15c3c1330293e506556eb0ab21f..d87960b6847f28255d6184dbc9c2495058ad8cfb 100644 (file)
@@ -19,7 +19,7 @@ from postman.forms import WriteForm as PostmanWriteForm
 from tinymce.widgets import TinyMCE
 
 from .models.core import Conference, Course, Period, payment_schedule_choices
-from .models.crfpa import IEJ, PAY_STATUS_CHOICES, Corrector, NewsItem
+from .models.crfpa import IEJ, PAY_STATUS_CHOICES, Corrector, NewsItem, Origin
 from .models.crfpa import Profile as UserProfile
 from .models.crfpa import Student, Training
 
@@ -219,11 +219,12 @@ class UserForm(ModelForm):
         return user
 
 
-class UserUseYourLawForm(UserForm):
+class UserUseYourLawOriginForm(UserForm):
 
     def save(self, commit=True):
         super(UserSourceForm, self).__save__(*args, **kwargs)
-        self.profile.source = "UseYourLaw"
+        origin = Origin.objects.get_or_create(name="UseYourLaw")
+        self.profile.origin = origin
 
 
 class CorrectorForm(ModelForm):
diff --git a/teleforma/migrations/0024_auto_20230316_1627.py b/teleforma/migrations/0024_auto_20230316_1627.py
new file mode 100644 (file)
index 0000000..e98fefd
--- /dev/null
@@ -0,0 +1,30 @@
+# Generated by Django 3.2.13 on 2023-03-16 16:27
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('teleforma', '0023_auto_20230316_1619'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Origin',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('name', models.CharField(blank=True, max_length=64, null=True, verbose_name='Name')),
+            ],
+        ),
+        migrations.RemoveField(
+            model_name='profile',
+            name='source',
+        ),
+        migrations.AddField(
+            model_name='profile',
+            name='origin',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='profiles', to='teleforma.origin', verbose_name='origin'),
+        ),
+    ]
index 958e3377569fed5829d8db781e184f689414650f..354b367fd49a98230fbe6b94a1201671eaa97105 100755 (executable)
@@ -441,6 +441,7 @@ signals.post_save.connect(create_payment_objects, sender=Student)
 signals.post_save.connect(purge_courses_cache, sender=Student)
 signals.post_delete.connect(update_balance_signal)
 
+
 class Profile(models.Model):
     "User profile extension"
 
@@ -470,8 +471,11 @@ class Profile(models.Model):
                                  max_length=15, blank=True, null=True)
     siret = models.CharField('Siret',
                              max_length=14, blank=True, null=True)
-    source = models.CharField('Source',
-                             max_length=32, blank=True, null=True)
+    origin = models.ForeignKey("Origin", related_name='profiles',
+                             verbose_name=_('origin'),
+                             on_delete=models.SET_NULL,
+                             null=True,
+                             blank=True)
 
     class Meta(MetaCore):
         db_table = app_label + '_' + 'profiles'
@@ -484,6 +488,13 @@ PAY_STATUS_CHOICES = [
 ]
 
 
+class Origin(models.Model):
+    "Origin of the user"
+
+    name = models.CharField('Name',
+                             max_length=64, blank=True, null=True)
+
+
 class Corrector(models.Model):
     "A corrector profile, only used for registration for the moment"
 
index 83a678a1bf1c03963bbc563a9c5a4dc351c2cadf..cbb484aade42b88f741cc136c1b41e620d269abc 100644 (file)
@@ -66,7 +66,7 @@ from .views.crfpa import (AnnalsCourseView, AnnalsIEJView, AnnalsView,
                           RegistrationPDFViewDownload, UserAddView,
                           UserCompleteView, UserLoginView, UsersExportView,
                           UsersView, WriteView, update_training,
-                          UserAddUseYourLawView)
+                          UserAddUseYourLawOriginView)
 from .views.payment import (PaymentStartView, bank_auto, bank_cancel,
                             bank_fail, bank_success)
 
@@ -90,7 +90,7 @@ urlpatterns = [
     # (r'^accounts/register0/$', RegistrationView.as_view(), {'form_class':CustomRegistrationForm}),
     url(r'^accounts/register/$', UserAddView.as_view(),
         name="teleforma-register"),
-    url(r'^accounts/register/uyl/$', UserAddUseYourLawView.as_view(),
+    url(r'^accounts/register/uyl/$', UserAddUseYourLawOriginView.as_view(),
         name="teleforma-register-uyl"),
     url(r'^accounts/register/(?P<username>.*)/complete/$',
         UserCompleteView.as_view(), name="teleforma-register-complete"),
index d02aa4790254e2fead48bc89fad4c8e3408e92d1..2105e2ce2ff889accc71719df6d3c135e1e63382 100644 (file)
@@ -61,7 +61,7 @@ from django.conf import settings
 
 from ..decorators import access_required
 from ..forms import (CorrectorForm, NewsItemForm, UserForm, WriteForm,
-                     get_unique_username, UserUseYourLawForm)
+                     get_unique_username, UserUseYourLawOriginForm)
 from ..models.core import Course, CourseType, Document, NamePaginator, Period
 from ..models.crfpa import (IEJ, Discount, NewsItem, Parameters, Payback,
                             Payment, Profile, Student, Training, months_choices, payment_choices)
@@ -748,11 +748,11 @@ class UserAddView(CreateView):
         return reverse_lazy('teleforma-register-complete', kwargs={'username':self.object.username})
 
 
-class UserAddUseYourLawView(UserAddView):
+class UserAddUseYourLawOriginView(UserAddView):
 
     model = User
     template_name = 'registration/registration_form.html'
-    form_class = UserUseYourLawForm
+    form_class = UserUseYourLawOriginForm