]> git.0d.be Git - django-panik-newsletter.git/commitdiff
remove uniqueness requirement for emails
authorFrédéric Péters <fpeters@0d.be>
Sun, 31 Jan 2021 15:30:32 +0000 (16:30 +0100)
committerFrédéric Péters <fpeters@0d.be>
Sun, 31 Jan 2021 15:30:32 +0000 (16:30 +0100)
(this will later allow for stats on bot subscriptions)

newsletter/migrations/0003_auto_20210131_1630.py [new file with mode: 0644]
newsletter/models.py

diff --git a/newsletter/migrations/0003_auto_20210131_1630.py b/newsletter/migrations/0003_auto_20210131_1630.py
new file mode 100644 (file)
index 0000000..f5ff526
--- /dev/null
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.29 on 2021-01-31 16:30
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('newsletter', '0002_auto_20171002_2231'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='subscriber',
+            name='email',
+            field=models.EmailField(max_length=254),
+        ),
+    ]
index c726a0b12c3986201a6df7f5da6c1fee6d4771e3..3c992ce9eb8d733477f11466862c6bed08585e86 100644 (file)
@@ -28,7 +28,7 @@ from ckeditor.fields import RichTextField
 
 
 class Subscriber(models.Model) :
-    email = models.EmailField(unique=True)
+    email = models.EmailField(unique=False)
     inscription_date = models.DateField(auto_now_add=True)
     is_validated = models.NullBooleanField()
     is_registered = models.NullBooleanField()
@@ -38,20 +38,9 @@ class Subscriber(models.Model) :
         return self.email
 
     def save(self, *args, **kwargs):
-        existing_subscriber = Subscriber.objects.filter(email=self.email).first()
-        if existing_subscriber and existing_subscriber.id != self.id:
-            # reset existing subscriber
-            existing_subscriber.is_validated = None
-            existing_subscriber.is_registered = None
-            existing_subscriber.save()
-        else:
-            try:
-                super(Subscriber, self).save(*args, **kwargs)
-            except IntegrityError:
-                # probably concurrent calls, skip that.
-                return
-            if self.is_validated is None:
-                self.send_confirmation_email()
+        super(Subscriber, self).save(*args, **kwargs)
+        if self.is_validated is None:
+            self.send_confirmation_email()
 
     def send_confirmation_email(self):
         self.password = hashlib.sha1(force_bytes(str(random.random()))).hexdigest()