diff options
Diffstat (limited to 'archaeological_warehouse/forms.py')
-rw-r--r-- | archaeological_warehouse/forms.py | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/archaeological_warehouse/forms.py b/archaeological_warehouse/forms.py new file mode 100644 index 000000000..33b7ba116 --- /dev/null +++ b/archaeological_warehouse/forms.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Copyright (C) 2010-2012 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. + +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# See the file COPYING for details. + +import datetime + +from django import forms +from django.utils.translation import ugettext_lazy as _ + +from ishtar_common.models import Person, valid_id +from archaeological_finds.models import TreatmentType +import models + +class ContainerSelect(forms.Form): + location = get_warehouse_field() + container_type = forms.ChoiceField(label=_(u"Container type"), choices=[]) + reference = forms.CharField(label=_(u"Reference")) + + def __init__(self, *args, **kwargs): + super(ContainerSelect, self).__init__(*args, **kwargs) + self.fields['container_type'].choices = \ + models.ContainerType.get_types() + self.fields['container_type'].help_text = \ + models.ContainerType.get_help() + +ContainerFormSelection = get_form_selection( + 'ContainerFormSelection', _(u"Container search"), 'container', + models.Container, ContainerSelect, 'get-container', + _(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} + 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) + + def __init__(self, *args, **kwargs): + super(BasePackagingForm, self).__init__(*args, **kwargs) + self.fields['treatment_type'].initial = \ + TreatmentType.objects.get(txt_idx='packaging').pk + +class ItemPackagingFormSelection(ItemMultipleFormSelection): + form_label = _(u"Packaged items") |