From 82fdaa342ebc6f1ce0b63811113164cf54266e3c Mon Sep 17 00:00:00 2001 From: Yoan Le Clanche Date: Mon, 18 Mar 2024 11:55:00 +0100 Subject: [PATCH] Add retractation date --- teleforma/forms.py | 7 ++++++ .../migrations/0028_auto_20240318_1139.py | 23 +++++++++++++++++++ teleforma/models/crfpa.py | 1 + teleforma/views/core.py | 9 +++----- teleforma/views/crfpa.py | 9 +------- 5 files changed, 35 insertions(+), 14 deletions(-) create mode 100644 teleforma/migrations/0028_auto_20240318_1139.py diff --git a/teleforma/forms.py b/teleforma/forms.py index 9301fb45..40c84ec6 100644 --- a/teleforma/forms.py +++ b/teleforma/forms.py @@ -346,4 +346,11 @@ class RetractationForm(ModelForm): class Meta: model = Student fields = ['stop_retractation'] + + def save(self, commit=True): + student = super(RetractationForm, self).save(commit=False) + student.stop_retractation_date = datetime.now() + if commit: + student.save() + return student \ No newline at end of file diff --git a/teleforma/migrations/0028_auto_20240318_1139.py b/teleforma/migrations/0028_auto_20240318_1139.py new file mode 100644 index 00000000..d9880a41 --- /dev/null +++ b/teleforma/migrations/0028_auto_20240318_1139.py @@ -0,0 +1,23 @@ +# Generated by Django 3.2.13 on 2024-03-18 11:39 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('teleforma', '0027_student_stop_retractation'), + ] + + operations = [ + migrations.AddField( + model_name='student', + name='stop_retractation_date', + field=models.DateTimeField(blank=True, null=True, verbose_name='Date de renonciation'), + ), + migrations.AlterField( + model_name='student', + name='stop_retractation', + field=models.BooleanField(default=False, verbose_name='En accédant au contenu de la plateforme, je renonce de ce fait à mon droit de rétractation.'), + ), + ] diff --git a/teleforma/models/crfpa.py b/teleforma/models/crfpa.py index 58cef310..5b8c3f57 100644 --- a/teleforma/models/crfpa.py +++ b/teleforma/models/crfpa.py @@ -213,6 +213,7 @@ class Student(models.Model): payment_generated = models.BooleanField(_('échances générées'), default=False) stop_retractation = models.BooleanField('En accédant au contenu de la plateforme, je renonce de ce fait à mon droit de rétractation.', default=False) + stop_retractation_date = models.DateTimeField('Date de renonciation', blank=True, null=True) def __str__(self): try: diff --git a/teleforma/views/core.py b/teleforma/views/core.py index 7a838f6e..dc87aaa6 100644 --- a/teleforma/views/core.py +++ b/teleforma/views/core.py @@ -598,8 +598,6 @@ class CourseView(CourseAccessMixin, DetailView): def dispatch(self, *args, **kwargs): # redirect to a retractation page if the student has paid in the 14 last days - print(args) - print(kwargs) student = None # import pdb;pdb.set_trace() try: @@ -611,11 +609,10 @@ class CourseView(CourseAccessMixin, DetailView): two_week_ago = None two_week_ago = datetime.datetime.now() - datetime.timedelta(days=14) old_payments = student.payments.filter(date_paid__lt=two_week_ago).count() - print(old_payments) if old_payments: - pass - # student.stop_retractation = True - # student.save() + student.stop_retractation = True + student.stop_retractation_date = datetime.datetime.now() + student.save() else: payment_in_retractation_period = student.payments.filter(date_paid__gte=two_week_ago).count() if payment_in_retractation_period: diff --git a/teleforma/views/crfpa.py b/teleforma/views/crfpa.py index 0429e61e..bb507b67 100644 --- a/teleforma/views/crfpa.py +++ b/teleforma/views/crfpa.py @@ -775,19 +775,12 @@ class RetractationView(CourseAccessMixin, DetailView, UpdateView): model = Course form_class = RetractationForm template_name = 'teleforma/retractation.html' - - def get_context_data(self, **kwargs): - context = super(RetractationView, self).get_context_data(**kwargs) - return context def get_form_kwargs(self): kwargs = super(RetractationView, self).get_form_kwargs() kwargs['instance'] = self.request.user.student.get() return kwargs - - def post(self, request, *args, **kwargs): - return FormView.post(self, request, *args, **kwargs) - + def get_success_url(self): return reverse_lazy('teleforma-desk-period-course', kwargs = {'pk': self.kwargs['pk'], 'period_id': self.kwargs['period_id']}) -- 2.39.5