summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ishtar_common/forms_common.py40
1 files changed, 39 insertions, 1 deletions
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py
index d4b1b5703..af7933ff6 100644
--- a/ishtar_common/forms_common.py
+++ b/ishtar_common/forms_common.py
@@ -37,7 +37,8 @@ import widgets
from bootstrap_datepicker.widgets import DatePicker
from ishtar_common.templatetags.link_to_window import link_to_window
from forms import FinalForm, FormSet, reverse_lazy, name_validator, \
- TableSelect, ManageOldType, CustomForm, FieldType, FormSetWithDeleteSwitches
+ TableSelect, ManageOldType, CustomForm, FieldType, \
+ FormSetWithDeleteSwitches, IshtarForm, get_data_from_formset
def get_town_field(label=_(u"Town"), required=True):
@@ -1082,3 +1083,40 @@ AuthorFormset = formset_factory(AuthorFormSelection, can_delete=True,
AuthorFormset.form_label = _("Authors")
AuthorFormset.form_admin_name = _(u"Authors")
AuthorFormset.form_slug = "authors"
+
+
+class BaseImageForm(ManageOldType):
+ form_label = _(u"Images")
+ base_model = 'image'
+ associated_models = {'licence': models.LicenseType}
+
+ pk = forms.IntegerField(label=" ", widget=forms.HiddenInput,
+ required=False)
+ image = forms.ImageField(
+ label=_(u"Image"), help_text=mark_safe(get_image_help()),
+ max_length=255, required=False, widget=widgets.ImageFileInput())
+ image_type = forms.ChoiceField(label=_(u"Type"), required=False, choices=[])
+ name = forms.CharField(label=_(u"Name"), max_length=250, required=False)
+ description = forms.CharField(label=_(u"Description"), required=False,
+ widget=forms.Textarea)
+ creation_date = forms.DateField(
+ label=_(u"Creation date"), required=False, widget=DatePicker)
+ licence = widgets.Select2MultipleField(
+ label=_(u"Licence"), required=False
+ )
+ reference = forms.CharField(label=_(u"Ref."), max_length=250,
+ required=False)
+ internal_reference = forms.CharField(label=_(u"Internal ref."),
+ max_length=250, required=False)
+ is_main = forms.BooleanField(label=_(u"Main image"), required=False,
+ initial=False)
+
+ TYPES = [
+ FieldType('image_type', models.ImageType, False),
+ FieldType('licence', models.LicenseType, True),
+ ]
+
+ def count_valid_fields(self, data):
+ if not data:
+ return 0
+ return len(get_data_from_formset(data))