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 /ishtar_common/forms_common.py | |
| parent | f01e5364a177665c19dbb27d31cf3d7cb2fdc418 (diff) | |
| download | Ishtar-c6f7e868e9fa1eb51381c064c930b73b566ff758.tar.bz2 Ishtar-c6f7e868e9fa1eb51381c064c930b73b566ff758.zip | |
Image form for ishtar images (refs #4076)
Diffstat (limited to 'ishtar_common/forms_common.py')
| -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)) | 
