summaryrefslogtreecommitdiff
path: root/archaeological_warehouse/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_warehouse/forms.py')
-rw-r--r--archaeological_warehouse/forms.py74
1 files changed, 42 insertions, 32 deletions
diff --git a/archaeological_warehouse/forms.py b/archaeological_warehouse/forms.py
index ff869c5fb..f045fac1e 100644
--- a/archaeological_warehouse/forms.py
+++ b/archaeological_warehouse/forms.py
@@ -17,8 +17,6 @@
# See the file COPYING for details.
-import datetime
-
from django import forms
from django.conf import settings
from django.utils.translation import ugettext_lazy as _
@@ -31,6 +29,7 @@ from ishtar_common.forms import name_validator, reverse_lazy, \
get_form_selection, TableSelect
from archaeological_finds.forms import FindMultipleFormSelection
+
def get_warehouse_field(label=_(u"Warehouse"), required=True):
# !FIXME hard_link, reverse_lazy doen't seem to work with formsets
url = "/" + settings.URL_PATH + 'autocomplete-warehouse'
@@ -38,16 +37,19 @@ def get_warehouse_field(label=_(u"Warehouse"), required=True):
return forms.IntegerField(widget=widget, label=label, required=required,
validators=[valid_id(models.Warehouse)])
+
class WarehouseForm(forms.Form):
name = forms.CharField(label=_(u"Name"), max_length=40,
- validators=[name_validator])
+ validators=[name_validator])
warehouse_type = forms.ChoiceField(label=_(u"Warehouse type"),
choices=[])
- person_in_charge = forms.IntegerField(label=_(u"Person in charge"),
- widget=widgets.JQueryAutoComplete(
- reverse_lazy('autocomplete-person'), associated_model=models.Person),
- validators=[valid_id(models.Person)],
- required=False)
+ person_in_charge = forms.IntegerField(
+ label=_(u"Person in charge"),
+ widget=widgets.JQueryAutoComplete(
+ reverse_lazy('autocomplete-person'),
+ associated_model=models.Person),
+ validators=[valid_id(models.Person)],
+ required=False)
comment = forms.CharField(label=_(u"Comment"), widget=forms.Textarea,
required=False)
address = forms.CharField(label=_(u"Address"), widget=forms.Textarea,
@@ -66,50 +68,54 @@ class WarehouseForm(forms.Form):
def __init__(self, *args, **kwargs):
super(WarehouseForm, self).__init__(*args, **kwargs)
self.fields['warehouse_type'].choices = \
- models.WarehouseType.get_types()
+ models.WarehouseType.get_types()
self.fields['warehouse_type'].help_text = \
- models.WarehouseType.get_help()
+ models.WarehouseType.get_help()
def save(self, user):
dct = self.cleaned_data
dct['history_modifier'] = user
dct['warehouse_type'] = models.WarehouseType.objects.get(
- pk=dct['warehouse_type'])
+ pk=dct['warehouse_type'])
if 'person_in_charge' in dct and dct['person_in_charge']:
dct['person_in_charge'] = models.Person.objects.get(
- pk=dct['person_in_charge'])
+ pk=dct['person_in_charge'])
new_item = models.Warehouse(**dct)
new_item.save()
return new_item
+
class ContainerForm(forms.Form):
form_label = _(u"Container")
reference = forms.CharField(label=_(u"Ref."))
container_type = forms.ChoiceField(label=_(u"Container type"), choices=[])
- location = forms.IntegerField(label=_(u"Warehouse"),
- widget=widgets.JQueryAutoComplete(
- reverse_lazy('autocomplete-warehouse'), associated_model=models.Warehouse,
- new=True),
- validators=[valid_id(models.Warehouse)])
+ location = forms.IntegerField(
+ label=_(u"Warehouse"),
+ widget=widgets.JQueryAutoComplete(
+ reverse_lazy('autocomplete-warehouse'),
+ associated_model=models.Warehouse, new=True),
+ validators=[valid_id(models.Warehouse)])
comment = forms.CharField(label=_(u"Comment"),
widget=forms.Textarea, required=False)
def __init__(self, *args, **kwargs):
super(ContainerForm, self).__init__(*args, **kwargs)
- self.fields['container_type'].choices = models.ContainerType.get_types()
+ self.fields['container_type'].choices = \
+ models.ContainerType.get_types()
self.fields['container_type'].help_text = \
- models.ContainerType.get_help()
+ models.ContainerType.get_help()
def save(self, user):
dct = self.cleaned_data
dct['history_modifier'] = user
dct['container_type'] = models.ContainerType.objects.get(
- pk=dct['container_type'])
+ pk=dct['container_type'])
dct['location'] = models.Warehouse.objects.get(pk=dct['location'])
new_item = models.Container(**dct)
new_item.save()
return new_item
+
class ContainerSelect(TableSelect):
location = get_warehouse_field()
container_type = forms.ChoiceField(label=_(u"Container type"), choices=[])
@@ -118,9 +124,9 @@ class ContainerSelect(TableSelect):
def __init__(self, *args, **kwargs):
super(ContainerSelect, self).__init__(*args, **kwargs)
self.fields['container_type'].choices = \
- models.ContainerType.get_types()
+ models.ContainerType.get_types()
self.fields['container_type'].help_text = \
- models.ContainerType.get_help()
+ models.ContainerType.get_help()
ContainerFormSelection = get_form_selection(
'ContainerFormSelection', _(u"Container search"), 'container',
@@ -128,23 +134,27 @@ ContainerFormSelection = get_form_selection(
_(u"You should select a container."), new=True,
new_message=_(u"Add a new container"))
+
class BasePackagingForm(forms.Form):
form_label = _(u"Packaging")
- associated_models = {'treatment_type':TreatmentType,
- 'person':Person,
- 'location':models.Warehouse}
+ associated_models = {'treatment_type': TreatmentType,
+ 'person': Person,
+ 'location': models.Warehouse}
treatment_type = forms.IntegerField(label="", widget=forms.HiddenInput)
- person = forms.IntegerField(label=_(u"Packager"),
- widget=widgets.JQueryAutoComplete(reverse_lazy('autocomplete-person'),
- associated_model=Person, new=True),
- validators=[valid_id(Person)])
- start_date = forms.DateField(label=_(u"Date"), required=False,
- widget=widgets.JQueryDate)
+ person = forms.IntegerField(
+ label=_(u"Packager"),
+ widget=widgets.JQueryAutoComplete(
+ reverse_lazy('autocomplete-person'),
+ associated_model=Person, new=True),
+ validators=[valid_id(Person)])
+ start_date = forms.DateField(
+ label=_(u"Date"), required=False, widget=widgets.JQueryDate)
def __init__(self, *args, **kwargs):
super(BasePackagingForm, self).__init__(*args, **kwargs)
self.fields['treatment_type'].initial = \
- TreatmentType.objects.get(txt_idx='packaging').pk
+ TreatmentType.objects.get(txt_idx='packaging').pk
+
class FindPackagingFormSelection(FindMultipleFormSelection):
form_label = _(u"Packaged finds")