Browse Source

Merge branch 'feat-option-to-disable-fee-reminders' of daimrod/coin into master

daimrod 7 years ago
parent
commit
369f9b8eed

+ 1 - 1
coin/members/admin.py

@@ -76,7 +76,7 @@ class MemberAdmin(UserAdmin):
             'organization_name',
             'organization_name',
             'comments')}),
             'comments')}),
         ('Coordonnées', {'fields': (
         ('Coordonnées', {'fields': (
-            'email',
+            ('email', 'send_membership_fees_email'),
             ('home_phone_number', 'mobile_phone_number'),
             ('home_phone_number', 'mobile_phone_number'),
             'address',
             'address',
             ('postal_code', 'city', 'country'))}),
             ('postal_code', 'city', 'country'))}),

+ 2 - 1
coin/members/management/commands/call_for_membership_fees.py

@@ -43,7 +43,8 @@ class Command(BaseCommand):
 
 
         members = Member.objects.filter(status='member')\
         members = Member.objects.filter(status='member')\
                                 .annotate(end=Max('membership_fees__end_date'))\
                                 .annotate(end=Max('membership_fees__end_date'))\
-                                .filter(end__in=end_dates)
+                                .filter(end__in=end_dates)\
+                                .filter(send_membership_fees_email=True)
         if verbosity >= 2:
         if verbosity >= 2:
             self.stdout.write(
             self.stdout.write(
                 "Got {number} members.".format(number=members.count()))
                 "Got {number} members.".format(number=members.count()))

+ 19 - 0
coin/members/migrations/0014_member_send_membership_fees_email.py

@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('members', '0013_auto_20161015_1837'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='member',
+            name='send_membership_fees_email',
+            field=models.BooleanField(default=True, help_text="Certains membres n'ont pas \xe0 recevoir de relance (pr\xe9l\xe8vement automatique, membres d'honneurs, etc.)", verbose_name='relance de cotisation'),
+        ),
+    ]

+ 19 - 0
coin/members/migrations/0015_auto_20170824_2308.py

@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('members', '0014_member_send_membership_fees_email'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='member',
+            name='send_membership_fees_email',
+            field=models.BooleanField(default=True, help_text="Pr\xe9cise si l'utilisateur doit recevoir des mails de relance pour la cotisation. Certains membres n'ont pas \xe0 recevoir de relance (pr\xe9l\xe8vement automatique, membres d'honneurs, etc.)", verbose_name='relance de cotisation'),
+        ),
+    ]

+ 7 - 0
coin/members/models.py

@@ -76,6 +76,10 @@ class Member(CoinLdapSyncMixin, AbstractUser):
                         blank=True,
                         blank=True,
                         verbose_name="Date du dernier email de relance de cotisation envoyé")
                         verbose_name="Date du dernier email de relance de cotisation envoyé")
 
 
+    send_membership_fees_email = models.BooleanField(
+        default=True, verbose_name='relance de cotisation',
+        help_text='Précise si l\'utilisateur doit recevoir des mails de relance pour la cotisation. Certains membres n\'ont pas à recevoir de relance (prélèvement automatique, membres d\'honneurs, etc.)')
+
     # Following fields are managed by the parent class AbstractUser :
     # Following fields are managed by the parent class AbstractUser :
     # username, first_name, last_name, email
     # username, first_name, last_name, email
     # However we hack the model to force theses fields to be required. (see
     # However we hack the model to force theses fields to be required. (see
@@ -276,6 +280,9 @@ class Member(CoinLdapSyncMixin, AbstractUser):
 
 
         :param auto: is it an auto email? (changes slightly template content)
         :param auto: is it an auto email? (changes slightly template content)
         """
         """
+        if auto and not self.send_membership_fees_email:
+            return False
+
         from dateutil.relativedelta import relativedelta
         from dateutil.relativedelta import relativedelta
         from coin.isp_database.models import ISPInfo
         from coin.isp_database.models import ISPInfo