diff options
Diffstat (limited to 'archaeological_finds/forms.py')
| -rw-r--r-- | archaeological_finds/forms.py | 35 | 
1 files changed, 34 insertions, 1 deletions
| diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 3cfe13ea9..e3207a2f5 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -30,7 +30,8 @@ from django.utils.translation import ugettext_lazy as _  from ishtar_common.models import Person, valid_id, valid_ids  from archaeological_operations.models import Period, ArchaeologicalSite -from archaeological_context_records.models import DatingType, DatingQuality +from archaeological_context_records.models import DatingType, DatingQuality, \ +    ContextRecord  from archaeological_warehouse.models import Warehouse  import models @@ -40,6 +41,38 @@ from ishtar_common.forms import FormSet, FloatField, \  from ishtar_common.forms_common import get_town_field, SourceSelect +class RecordFormSelection(forms.Form): +    form_label = _("Context record") +    base_models = ['get_first_base_find'] +    associated_models = {'get_first_base_find__context_record': ContextRecord} +    get_first_base_find__context_record = forms.IntegerField( +        label=_(u"Context record"), required=False, +        widget=widgets.JQueryAutoComplete( +            reverse_lazy('autocomplete-contextrecord'), +            associated_model=ContextRecord), +        validators=[valid_id(ContextRecord)]) + +    def __init__(self, *args, **kwargs): +        super(RecordFormSelection, self).__init__(*args, **kwargs) +        # get the current operation and restrict search to it +        cr_pk = None +        if 'data' in kwargs and kwargs['data']: +            cr_pk = kwargs['data'].get( +                'get_first_base_find__context_record') +        if not cr_pk and 'initial' in kwargs and kwargs['initial']: +            cr_pk = kwargs['initial'].get( +                'get_first_base_find__context_record') +        if not cr_pk: +            return +        try: +            cr = ContextRecord.objects.get(pk=cr_pk) +        except ContextRecord.DoesNotExist: +            return +        widget = self.fields['get_first_base_find__context_record'].widget +        widget.source = unicode(widget.source) + "?operation__pk={}".format( +            cr.operation.pk) + +  class FindForm(forms.Form):      file_upload = True      form_label = _("Find") | 
