summaryrefslogtreecommitdiff
path: root/archaeological_finds
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-05-10 19:20:39 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-05-10 19:20:39 +0200
commitf0ac8c7a477d5db2c70d288706fa809630acd73e (patch)
treeb8545c31c4134d581696b9ffa18bddaf11a0348c /archaeological_finds
parent2fbc4e32fc1d90fe2003b72952d6c0a794d987e6 (diff)
downloadIshtar-f0ac8c7a477d5db2c70d288706fa809630acd73e.tar.bz2
Ishtar-f0ac8c7a477d5db2c70d288706fa809630acd73e.zip
Find search: search by context records (and within relations)
Diffstat (limited to 'archaeological_finds')
-rw-r--r--archaeological_finds/forms.py16
-rw-r--r--archaeological_finds/models_finds.py5
2 files changed, 19 insertions, 2 deletions
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'),