diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-08-18 13:44:22 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-08-18 13:44:22 +0200 |
commit | a6d2faa3ffaa9f468ab17e121be02ce0d7495b99 (patch) | |
tree | 838b2a369a6b10261bb8269366ae5666cb62ecaf /archaeological_finds | |
parent | 8bbc6ecf7389357455739154ff1101dc2c1c42d5 (diff) | |
download | Ishtar-a6d2faa3ffaa9f468ab17e121be02ce0d7495b99.tar.bz2 Ishtar-a6d2faa3ffaa9f468ab17e121be02ce0d7495b99.zip |
Manage operation relation types in context record and find searches (refs #2799)
Diffstat (limited to 'archaeological_finds')
-rw-r--r-- | archaeological_finds/forms.py | 15 | ||||
-rw-r--r-- | archaeological_finds/views.py | 3 |
2 files changed, 17 insertions, 1 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 7b9c68d75..ba6426cae 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -30,7 +30,8 @@ from django.utils.safestring import mark_safe 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_operations.models import Period, ArchaeologicalSite, \ + RelationType as OpeRelationType from archaeological_context_records.models import DatingType, DatingQuality, \ ContextRecord from archaeological_warehouse.models import Warehouse @@ -210,6 +211,9 @@ class FindSelect(TableSelect): reverse_lazy('autocomplete-archaeologicalsite'), associated_model=ArchaeologicalSite), validators=[valid_id(ArchaeologicalSite)]) + ope_relation_types = forms.MultipleChoiceField( + label=_(u"Search within operation relations"), choices=[], + widget=forms.CheckboxSelectMultiple) datings__period = forms.ChoiceField(label=_(u"Period"), choices=[]) # TODO search by warehouse material_types = forms.ChoiceField(label=_(u"Material type"), choices=[]) @@ -256,6 +260,15 @@ class FindSelect(TableSelect): models.RemarkabilityType.get_types() self.fields['remarkabilities'].help_text = \ models.RemarkabilityType.get_help() + self.fields['ope_relation_types'].choices = OpeRelationType.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)) + return ids class FindFormSelection(forms.Form): diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index dc8b191ad..20f73c321 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -69,6 +69,9 @@ find_extra_keys = { get_find = get_item( models.Find, 'get_find', 'find', reversed_bool_fields=['image__isnull'], + relation_types_prefix={ + 'ope_relation_types': + 'base_finds__context_record__operation__'}, base_request={'downstream_treatment__isnull': True}, extra_request_keys=find_extra_keys.copy()) |