From: Guillaume Pellerin Date: Thu, 16 Mar 2023 15:27:50 +0000 (+0100) Subject: add Origin X-Git-Tag: 2.9.0~71^2~10 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=82b5cc3d2af58aad6b03c94d43934f984b5c52d1;p=teleforma.git add Origin --- diff --git a/teleforma/forms.py b/teleforma/forms.py index c459c77b..d87960b6 100644 --- a/teleforma/forms.py +++ b/teleforma/forms.py @@ -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 index 00000000..e98fefd6 --- /dev/null +++ b/teleforma/migrations/0024_auto_20230316_1627.py @@ -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'), + ), + ] diff --git a/teleforma/models/crfpa.py b/teleforma/models/crfpa.py index 958e3377..354b367f 100755 --- a/teleforma/models/crfpa.py +++ b/teleforma/models/crfpa.py @@ -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" diff --git a/teleforma/urls.py b/teleforma/urls.py index 83a678a1..cbb484aa 100644 --- a/teleforma/urls.py +++ b/teleforma/urls.py @@ -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.*)/complete/$', UserCompleteView.as_view(), name="teleforma-register-complete"), diff --git a/teleforma/views/crfpa.py b/teleforma/views/crfpa.py index d02aa479..2105e2ce 100644 --- a/teleforma/views/crfpa.py +++ b/teleforma/views/crfpa.py @@ -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