diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-01-04 12:16:14 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-01-04 12:16:45 +0100 |
commit | f458f61e9cc55a188ac87cfab5a1bb90a31b702f (patch) | |
tree | d3295520049aa2747ba001a464ff3b9819c25ffd | |
parent | 29ba4a4051b2b1cb2177e89a995330f2784bf7ff (diff) | |
download | Ishtar-f458f61e9cc55a188ac87cfab5a1bb90a31b702f.tar.bz2 Ishtar-f458f61e9cc55a188ac87cfab5a1bb90a31b702f.zip |
Custom form: warehouse forms
-rw-r--r-- | archaeological_warehouse/forms.py | 18 | ||||
-rw-r--r-- | ishtar_common/models.py | 4 |
2 files changed, 14 insertions, 8 deletions
diff --git a/archaeological_warehouse/forms.py b/archaeological_warehouse/forms.py index f020864ff..f98adc33a 100644 --- a/archaeological_warehouse/forms.py +++ b/archaeological_warehouse/forms.py @@ -30,7 +30,8 @@ from archaeological_finds.models import TreatmentType, FindBasket import models from ishtar_common import widgets from ishtar_common.forms import name_validator, reverse_lazy, \ - get_form_selection, TableSelect, ManageOldType, FinalForm, FormSet + get_form_selection, TableSelect, ManageOldType, FinalForm, FormSet, \ + CustomForm, FieldType from archaeological_finds.forms import FindMultipleFormSelection, \ SelectFindBasketForm @@ -67,9 +68,12 @@ class DivisionFormSet(FormSet): return self.check_duplicate(('division',), _("There are identical divisions.")) + SelectedDivisionFormset = formset_factory( SelectedDivisionForm, can_delete=True, formset=DivisionFormSet) SelectedDivisionFormset.form_label = _(u"Divisions") +SelectedDivisionFormset.form_admin_name = _(u"Warehouse - 020 - Divisions") +SelectedDivisionFormset.form_slug = "warehouse-020-divisions" class WarehouseSelect(TableSelect): @@ -97,8 +101,10 @@ class WarehouseFormSelection(forms.Form): validators=[valid_id(models.Warehouse)]) -class WarehouseForm(ManageOldType, forms.Form): +class WarehouseForm(CustomForm, ManageOldType, forms.Form): form_label = _(u"Warehouse") + form_admin_name = _(u"Warehouse - 010 - General") + form_slug = "warehouse-010-general" associated_models = {'warehouse_type': models.WarehouseType, 'person_in_charge': Person} @@ -127,16 +133,14 @@ class WarehouseForm(ManageOldType, forms.Form): phone = forms.CharField(label=_(u"Phone"), max_length=18, required=False) mobile_phone = forms.CharField(label=_(u"Mobile phone"), max_length=18, required=False) + TYPES = [ + FieldType('warehouse_type', models.WarehouseType) + ] def __init__(self, *args, **kwargs): if 'limits' in kwargs: kwargs.pop('limits') super(WarehouseForm, self).__init__(*args, **kwargs) - self.fields['warehouse_type'].choices = \ - models.WarehouseType.get_types( - initial=self.init_data.get('warehouse_type')) - self.fields['warehouse_type'].help_text = \ - models.WarehouseType.get_help() def save(self, user): dct = self.cleaned_data diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 626770011..4db445c41 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -23,6 +23,7 @@ Models description from cStringIO import StringIO import copy import datetime +import inspect from PIL import Image import logging import os @@ -1686,7 +1687,8 @@ class CustomForm(models.Model): # not very clean... but do not treat inappropriate items continue form = getattr(app_form, form) - if not issubclass(form, CustomForm) \ + if not inspect.isclass(form) \ + or not issubclass(form, CustomForm) \ or not getattr(form, 'form_slug', None): continue cls._register[form.form_slug] = form |