diff options
Diffstat (limited to 'archaeological_operations/forms.py')
-rw-r--r-- | archaeological_operations/forms.py | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index 0faad26a9..246fa88a6 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -30,7 +30,7 @@ from django.db.models import Max from django.forms.formsets import DELETION_FIELD_NAME, TOTAL_FORM_COUNT from django.shortcuts import render_to_response from django.template import RequestContext -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import ugettext_lazy as _, pgettext_lazy from django.utils.safestring import mark_safe from ishtar_common.models import valid_id, PersonType, Person, Town, \ @@ -682,3 +682,30 @@ class GenerateDocForm(forms.Form): super(GenerateDocForm, self).__init__(*args, **kwargs) self.fields['doc_generation'].choices = [('', u'-'*9)] + \ [(choice.pk , unicode(choice)) for choice in choices] + +class AdministrativeActRegisterSelect(TableSelect): + signature_date__year = forms.IntegerField(label=_(u"Year")) + act_type = forms.ChoiceField(label=_("Act type"), choices=[]) + + def __init__(self, *args, **kwargs): + super(AdministrativeActRegisterSelect, self).__init__(*args, **kwargs) + self.fields['act_type'].choices = models.ActType.get_types() + self.fields['act_type'].help_text = models.ActType.get_help() + +class AdministrativeActRegisterFormSelection(forms.Form): + form_label = pgettext_lazy('admin act register',u"Register") + associated_models = {'pk':models.AdministrativeAct} + currents = {'pk':models.AdministrativeAct} + pk = forms.IntegerField(label="", required=False, + widget=widgets.JQueryJqGrid(reverse_lazy('get-administrativeact'), + AdministrativeActRegisterSelect, models.AdministrativeAct, + table_cols='TABLE_COLS', + source_full=reverse_lazy('get-administrativeact-full')), + validators=[valid_id(models.AdministrativeAct)]) + + def clean(self): + cleaned_data = self.cleaned_data + if 'pk' not in cleaned_data or not cleaned_data['pk']: + raise forms.ValidationError(_(u"You should select an administrative" + " act.")) + return cleaned_data |