From d1616f53077c7f13311be169357ea5b459bf63cc Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Sun, 1 Sep 2013 16:16:33 +0200 Subject: [PATCH] Unique constraint must be set on both armessage AND sender. fixes #467 --- ..._auto__add_unique_arhistoric_sender_armessage.py} | 12 ++++++------ modoboa/extensions/postfix_autoreply/models.py | 9 ++++++++- 2 files changed, 14 insertions(+), 7 deletions(-) rename modoboa/extensions/postfix_autoreply/migrations/{0003_auto__add_unique_arhistoric_armessage.py => 0003_auto__add_unique_arhistoric_sender_armessage.py} (93%) diff --git a/modoboa/extensions/postfix_autoreply/migrations/0003_auto__add_unique_arhistoric_armessage.py b/modoboa/extensions/postfix_autoreply/migrations/0003_auto__add_unique_arhistoric_sender_armessage.py similarity index 93% rename from modoboa/extensions/postfix_autoreply/migrations/0003_auto__add_unique_arhistoric_armessage.py rename to modoboa/extensions/postfix_autoreply/migrations/0003_auto__add_unique_arhistoric_sender_armessage.py index a1bd293e0..5a06f9029 100644 --- a/modoboa/extensions/postfix_autoreply/migrations/0003_auto__add_unique_arhistoric_armessage.py +++ b/modoboa/extensions/postfix_autoreply/migrations/0003_auto__add_unique_arhistoric_sender_armessage.py @@ -8,13 +8,13 @@ from django.db import models class Migration(SchemaMigration): def forwards(self, orm): - # Adding unique constraint on 'ARhistoric', fields ['armessage'] - db.create_unique(u'postfix_autoreply_arhistoric', ['armessage_id']) + # Adding unique constraint on 'ARhistoric', fields ['sender', 'armessage'] + db.create_unique(u'postfix_autoreply_arhistoric', ['sender', 'armessage_id']) def backwards(self, orm): - # Removing unique constraint on 'ARhistoric', fields ['armessage'] - db.delete_unique(u'postfix_autoreply_arhistoric', ['armessage_id']) + # Removing unique constraint on 'ARhistoric', fields ['sender', 'armessage'] + db.delete_unique(u'postfix_autoreply_arhistoric', ['sender', 'armessage_id']) models = { @@ -94,8 +94,8 @@ class Migration(SchemaMigration): u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) }, u'postfix_autoreply.arhistoric': { - 'Meta': {'object_name': 'ARhistoric'}, - 'armessage': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['postfix_autoreply.ARmessage']", 'unique': 'True'}), + 'Meta': {'unique_together': "(('armessage', 'sender'),)", 'object_name': 'ARhistoric'}, + 'armessage': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['postfix_autoreply.ARmessage']"}), u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'last_sent': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 'sender': ('django.db.models.fields.TextField', [], {}) diff --git a/modoboa/extensions/postfix_autoreply/models.py b/modoboa/extensions/postfix_autoreply/models.py index db1c4c44b..4082ed83d 100644 --- a/modoboa/extensions/postfix_autoreply/models.py +++ b/modoboa/extensions/postfix_autoreply/models.py @@ -2,14 +2,17 @@ from django.db import models from django.utils.translation import ugettext_lazy as _ from modoboa.admin.models import Domain, Mailbox + class Transport(models.Model): domain = models.CharField(max_length=300) method = models.CharField(max_length=255) + class Alias(models.Model): full_address = models.CharField(max_length=255) autoreply_address = models.CharField(max_length=255) + class ARmessage(models.Model): mbox = models.ForeignKey(Mailbox) subject = models.CharField(_('subject'), max_length=255, @@ -20,7 +23,11 @@ class ARmessage(models.Model): help_text=_("Activate/Deactivate your auto reply")) untildate = models.DateTimeField() + class ARhistoric(models.Model): - armessage = models.ForeignKey(ARmessage, unique=True) + armessage = models.ForeignKey(ARmessage) last_sent = models.DateTimeField(auto_now=True) sender = models.TextField() + + class Meta: + unique_together = ("armessage", "sender")