diff options
| author | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-10-20 21:52:43 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-10-20 21:52:43 +0200 | 
| commit | 8d594a01220d5cbbe9d6e856d1aef04bbb8daf3e (patch) | |
| tree | 1f1887c1153c40cd4323c482856e5f281ec1dc97 /archaeological_warehouse/forms.py | |
| parent | 980bf7d6c548f09636b94fd53e575ab8c2e10d2e (diff) | |
| download | Ishtar-8d594a01220d5cbbe9d6e856d1aef04bbb8daf3e.tar.bz2 Ishtar-8d594a01220d5cbbe9d6e856d1aef04bbb8daf3e.zip | |
Djangoization - Major refactoring (step 6)
Work on wizard, views and forms to dispatch logic in a more
relevant way.
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") | 
