diff --git a/docbow_project/docbow/admin.py b/docbow_project/docbow/admin.py index 4d6419f..b85af7b 100644 --- a/docbow_project/docbow/admin.py +++ b/docbow_project/docbow/admin.py @@ -111,6 +111,7 @@ class ContentAdmin(admin.ModelAdmin): class AutomaticForwardingAdmin(admin.ModelAdmin): filter_horizontal = [ 'filetypes', 'originaly_to_user', 'forward_to_user', 'forward_to_list' ] + form = forms.AutomaticForwardingForm diff --git a/docbow_project/docbow/forms.py b/docbow_project/docbow/forms.py index 107d50f..62752f8 100644 --- a/docbow_project/docbow/forms.py +++ b/docbow_project/docbow/forms.py @@ -7,8 +7,10 @@ from django import forms from django.contrib.auth.models import User from django.utils.translation import ugettext as _ from django.contrib.admin.widgets import FilteredSelectMultiple as AdminFilteredSelectMultiple +from django.forms import ValidationError -from models import Document, username, MailingList, FileType, Content, AttachedFile +from models import Document, username, MailingList, FileType, Content, \ + AttachedFile, AutomaticForwarding from uni_form.helpers import FormHelper, Submit, Layout, ButtonHolder import pyuca from widgets import TextInpuWithPredefinedValues, JqueryFileUploadInput @@ -179,3 +181,14 @@ class DelegationForm(Form): first_name = CharField(label=_('Firstname')) last_name = CharField(label=_('Lastname')) email = EmailField(label=_('Email')) + +class AutomaticForwardingForm(ModelForm): + class Meta: + model = AutomaticForwarding + + def clean(self): + cleaned_data = super(AutomaticForwardingForm, self).clean() + if not cleaned_data.get('forward_to_user') and not cleaned_data.get('forward_to_list'): + raise ValidationError(_('A forwarding rule must have at least one recipient, person or list.')) + return cleaned_data + diff --git a/docbow_project/docbow/models.py b/docbow_project/docbow/models.py index d20f8a5..3e52efe 100644 --- a/docbow_project/docbow/models.py +++ b/docbow_project/docbow/models.py @@ -194,10 +194,6 @@ class AutomaticForwarding(Model): + list(self.forward_to_list.all())) } return _('Forward documents of type %(filetypes)s automatically to %(to)s') % ctx - def clean(self): - if not self.forward_to_user.count() and not self.forward_to_list.count(): - raise ValidationError(_('A forwarding rule must have at least one recipient, person or list.')) - class Meta: verbose_name = _('Automatic forwarding rule') verbose_name_plural = _('Automatic forwarding rules') diff --git a/docbow_project/locale/fr/LC_MESSAGES/django.po b/docbow_project/locale/fr/LC_MESSAGES/django.po index eb0c5f4..63752a3 100644 --- a/docbow_project/locale/fr/LC_MESSAGES/django.po +++ b/docbow_project/locale/fr/LC_MESSAGES/django.po @@ -222,7 +222,7 @@ msgstr "Transfert les documents du type %(filetypes)s automatiquement à %(to)s" #: docbow/models.py:197 msgid "A forwarding rule must have at least one recipient, person or list." msgstr "" -"Un destinataire d'origine, au moins, doit correspondre pour que la règle s'applique." +"Une règle de transfert doit contenir au moins un nouveau destinataire; une personne ou une liste." #: docbow/models.py:200 msgid "Automatic forwarding rule"