diff options
-rw-r--r-- | archaeological_context_records/models.py | 3 | ||||
-rw-r--r-- | archaeological_finds/forms.py | 16 | ||||
-rw-r--r-- | archaeological_finds/models_finds.py | 5 |
3 files changed, 21 insertions, 3 deletions
diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py index bb3afc899..855ea7d5c 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -202,7 +202,8 @@ class ContextRecord(BaseHistorizedItem, ImageModel, OwnPerms, 'archaeological_sites': 'operation__archaeological_sites__pk', 'cached_label': 'cached_label__icontains', } - RELATION_TYPES_PREFIX = {'ope_relation_types': 'operation__'} + RELATION_TYPES_PREFIX = {'ope_relation_types': 'operation__', + 'cr_relation_types': ''} RELATIVE_SESSION_NAMES = [ ('operation', 'operation__pk'), ('file', 'operation__associated_file__pk')] diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index ee010094b..2e7cc75f5 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -36,7 +36,7 @@ from ishtar_common.models import valid_id, valid_ids, get_current_profile, \ from archaeological_operations.models import Period, ArchaeologicalSite, \ RelationType as OpeRelationType from archaeological_context_records.models import DatingType, DatingQuality, \ - ContextRecord + ContextRecord, RelationType as CRRelationType import models from ishtar_common.forms import FormSet, FloatField, \ @@ -361,9 +361,18 @@ class FindSelect(TableSelect): reverse_lazy('autocomplete-archaeologicalsite'), associated_model=ArchaeologicalSite), validators=[valid_id(ArchaeologicalSite)]) + base_finds__context_record = forms.IntegerField( + label=_("Context record"), + widget=widgets.JQueryAutoComplete( + reverse_lazy('autocomplete-contextrecord'), + associated_model=ContextRecord), + validators=[valid_id(ContextRecord)]) ope_relation_types = forms.MultipleChoiceField( label=_(u"Search within related operations"), choices=[], widget=widgets.CheckboxSelectMultiple) + cr_relation_types = forms.MultipleChoiceField( + label=_(u"Search within related context records"), choices=[], + widget=widgets.CheckboxSelectMultiple) datings__period = forms.ChoiceField(label=_(u"Period"), choices=[]) material_types = forms.ChoiceField(label=_(u"Material type"), choices=[]) object_types = forms.ChoiceField(label=_(u"Object type"), choices=[]) @@ -417,12 +426,17 @@ class FindSelect(TableSelect): models.RemarkabilityType.get_help() self.fields['ope_relation_types'].choices = OpeRelationType.get_types( empty_first=False) + self.fields['cr_relation_types'].choices = CRRelationType.get_types( + empty_first=False) def get_input_ids(self): ids = super(FindSelect, self).get_input_ids() ids.pop(ids.index('ope_relation_types')) for idx, c in enumerate(self.fields['ope_relation_types'].choices): ids.append('ope_relation_types_{}'.format(idx)) + ids.pop(ids.index('cr_relation_types')) + for idx, c in enumerate(self.fields['cr_relation_types'].choices): + ids.append('cr_relation_types_{}'.format(idx)) return ids diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index d33933264..1b4125e80 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -551,7 +551,10 @@ class Find(ValueGetter, BaseHistorizedItem, ImageModel, OwnPerms, REVERSED_BOOL_FIELDS = ['image__isnull'] RELATION_TYPES_PREFIX = { 'ope_relation_types': - 'base_finds__context_record__operation__'} + 'base_finds__context_record__operation__', + 'cr_relation_types': + 'base_finds__context_record__', + } RELATIVE_SESSION_NAMES = [ ('contextrecord', 'base_finds__context_record__pk'), ('operation', 'base_finds__context_record__operation__pk'), |