From caf2b22574186edd08891eca8bec7971abab8c07 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 9 May 2018 16:16:20 +0200 Subject: Only one main image is possible (refs #4076) --- ishtar_common/forms_common.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'ishtar_common/forms_common.py') diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index 49054ebac..9e082bccf 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -1121,3 +1121,21 @@ class BaseImageForm(ManageOldType): if not data: return 0 return len(get_data_from_formset(data)) + + +class BaseImageFormset(FormSet): + def clean(self): + """ + Verify that no two images are main image + """ + if any(self.errors): + return + have_main = False + for form in self.forms: + is_main = form.cleaned_data.get('is_main', False) + if not is_main: + continue + if is_main and have_main: + raise forms.ValidationError(_(u"Only one image can be a main " + u"image")) + have_main = True \ No newline at end of file -- cgit v1.2.3