diff --git a/jdav_web/mailer/migrations/0008_alter_emailaddress_name.py b/jdav_web/mailer/migrations/0008_alter_emailaddress_name.py new file mode 100644 index 0000000..952bacd --- /dev/null +++ b/jdav_web/mailer/migrations/0008_alter_emailaddress_name.py @@ -0,0 +1,19 @@ +# Generated by Django 4.0.1 on 2024-12-03 23:19 + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('mailer', '0007_emailaddress_internal_only'), + ] + + operations = [ + migrations.AlterField( + model_name='emailaddress', + name='name', + field=models.CharField(max_length=50, unique=True, validators=[django.core.validators.RegexValidator('^[0-9a-zA-Z._-]*$', 'Only alphanumeric characters, ., - and _ are allowed')], verbose_name='name'), + ), + ] diff --git a/jdav_web/mailer/models.py b/jdav_web/mailer/models.py index bed3877..685be2f 100644 --- a/jdav_web/mailer/models.py +++ b/jdav_web/mailer/models.py @@ -22,7 +22,8 @@ alphanumeric = RegexValidator(r'^[0-9a-zA-Z._-]*$', class EmailAddress(models.Model): """Represents an email address, that is forwarded to specific members""" - name = models.CharField(_('name'), max_length=50, validators=[alphanumeric]) + name = models.CharField(_('name'), max_length=50, validators=[alphanumeric], + unique=True) to_members = models.ManyToManyField('members.Member', verbose_name=_('Forward to participants'), blank=True) @@ -63,6 +64,7 @@ class EmailAddressForm(forms.ModelForm): exclude = [] def clean(self): + super(EmailAddressForm, self).clean() group = self.cleaned_data.get('to_groups') members = self.cleaned_data.get('to_members') if not group and not members: