diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-04-26 13:27:15 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-06-12 08:43:58 +0200 |
commit | c6f7e868e9fa1eb51381c064c930b73b566ff758 (patch) | |
tree | fdf371acaf590c0228b2f920b02599e0b9792f8c | |
parent | f01e5364a177665c19dbb27d31cf3d7cb2fdc418 (diff) | |
download | Ishtar-c6f7e868e9fa1eb51381c064c930b73b566ff758.tar.bz2 Ishtar-c6f7e868e9fa1eb51381c064c930b73b566ff758.zip |
Image form for ishtar images (refs #4076)
-rw-r--r-- | ishtar_common/forms_common.py | 40 |
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)) |