From 53ea7e08bbe6acaa62895b811abe64fe0346b4eb Mon Sep 17 00:00:00 2001 From: Hugo LEVY-FALK Date: Sun, 18 Mar 2018 10:10:56 +0100 Subject: [PATCH] =?UTF-8?q?Les=20champs=20d'identification=20pour=20le=20p?= =?UTF-8?q?aiement=20ne=20sont=20requis=20que=20lorsque=20le=20moyen=20de?= =?UTF-8?q?=20paiement=20est=20activ=C3=A9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- preferences/forms.py | 19 ++++++++++++++++++ .../migrations/0029_auto_20180318_1005.py | 20 +++++++++++++++++++ preferences/models.py | 16 ++++++++------- 3 files changed, 48 insertions(+), 7 deletions(-) create mode 100644 preferences/migrations/0029_auto_20180318_1005.py diff --git a/preferences/forms.py b/preferences/forms.py index fc214f52..a6b8426a 100644 --- a/preferences/forms.py +++ b/preferences/forms.py @@ -143,6 +143,25 @@ class EditAssoOptionForm(ModelForm): self.fields['utilisateur_asso'].label = 'Compte utilisé pour\ faire les modifications depuis /admin' + def clean(self): + cleaned_data = super().clean() + payment = cleaned_data.get('payment') + + if payment == 'NONE': + return cleaned_data + + if not cleaned_data.get('payment_id', ''): + msg = forms.ValidationError("Vous devez spécifier un identifiant \ + de paiement.") + self.add_error('payment_id', msg) + if not cleaned_data.get('payment_pass', ''): + msg = forms.ValidationError("Vous devez spécifier un mot de passe \ + de paiement.") + self.add_error('payment_pass', msg) + + return cleaned_data + + class EditMailMessageOptionForm(ModelForm): """Formulaire d'edition des messages de bienvenue personnalisés""" diff --git a/preferences/migrations/0029_auto_20180318_1005.py b/preferences/migrations/0029_auto_20180318_1005.py new file mode 100644 index 00000000..f94fcb57 --- /dev/null +++ b/preferences/migrations/0029_auto_20180318_1005.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2018-03-18 09:05 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('preferences', '0028_assooption_description'), + ] + + operations = [ + migrations.AlterField( + model_name='assooption', + name='payment_id', + field=models.CharField(blank=True, default='', max_length=255), + ), + ] diff --git a/preferences/models.py b/preferences/models.py index efd32f88..220f8a82 100644 --- a/preferences/models.py +++ b/preferences/models.py @@ -47,7 +47,7 @@ class PreferencesModel(models.Model): def get_cached_value(cls, key): instance = cache.get(cls().__class__.__name__.lower()) if instance == None: - instance = cls.set_in_cache() + instance = cls.set_in_cache() return getattr(instance, key) class Meta: @@ -158,7 +158,7 @@ class OptionalUser(PreferencesModel): @receiver(post_save, sender=OptionalUser) def optionaluser_post_save(sender, **kwargs): - """Ecriture dans le cache""" + """Ecriture dans le cache""" user_pref = kwargs['instance'] user_pref.set_in_cache() @@ -255,7 +255,7 @@ class OptionalMachine(PreferencesModel): @receiver(post_save, sender=OptionalMachine) def optionalmachine_post_save(sender, **kwargs): - """Synchronisation ipv6 et ecriture dans le cache""" + """Synchronisation ipv6 et ecriture dans le cache""" machine_pref = kwargs['instance'] machine_pref.set_in_cache() if machine_pref.ipv6_mode != "DISABLED": @@ -355,7 +355,7 @@ class OptionalTopologie(PreferencesModel): @receiver(post_save, sender=OptionalTopologie) def optionaltopologie_post_save(sender, **kwargs): - """Ecriture dans le cache""" + """Ecriture dans le cache""" topologie_pref = kwargs['instance'] topologie_pref.set_in_cache() @@ -448,7 +448,7 @@ class GeneralOption(PreferencesModel): @receiver(post_save, sender=GeneralOption) def generaloption_post_save(sender, **kwargs): - """Ecriture dans le cache""" + """Ecriture dans le cache""" general_pref = kwargs['instance'] general_pref.set_in_cache() @@ -548,13 +548,15 @@ class AssoOption(PreferencesModel): ('NONE', 'NONE'), ('COMNPAY', 'COMNPAY'), ) - payment = models.CharField(max_length=255, + payment = models.CharField( + max_length=255, choices=PAYMENT, default='NONE', ) payment_id = models.CharField( max_length=255, default='', + blank=True ) payment_pass = AESEncryptedField( max_length=255, @@ -623,7 +625,7 @@ class AssoOption(PreferencesModel): @receiver(post_save, sender=AssoOption) def assooption_post_save(sender, **kwargs): - """Ecriture dans le cache""" + """Ecriture dans le cache""" asso_pref = kwargs['instance'] asso_pref.set_in_cache()