summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2019-02-13 16:10:41 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2019-02-13 16:10:41 +0100
commit5e772bf651eb5a30fbeddec9b7fb693d9c9d95c3 (patch)
treebf872a432739b1864d1a404e60dab26db55ea4c0
parentd9749c52cdf0e5dab24ccf2dc10699a4434453e8 (diff)
downloadIshtar-5e772bf651eb5a30fbeddec9b7fb693d9c9d95c3.tar.bz2
Ishtar-5e772bf651eb5a30fbeddec9b7fb693d9c9d95c3.zip
Container search: more fields
-rw-r--r--archaeological_finds/models_finds.py2
-rw-r--r--archaeological_warehouse/forms.py79
-rw-r--r--archaeological_warehouse/models.py61
3 files changed, 131 insertions, 11 deletions
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py
index e5d56e99c..c4e6abb54 100644
--- a/archaeological_finds/models_finds.py
+++ b/archaeological_finds/models_finds.py
@@ -884,7 +884,7 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, OwnPerms,
'cr_relation_types':
SearchAltName(
pgettext_lazy("key for text search",
- u"context-record-relation-type"),
+ u"context-record-relation-type"),
'cr_relation_types'),
'datings__period':
SearchAltName(
diff --git a/archaeological_warehouse/forms.py b/archaeological_warehouse/forms.py
index 0ac3ddeae..b6bff3d5b 100644
--- a/archaeological_warehouse/forms.py
+++ b/archaeological_warehouse/forms.py
@@ -23,18 +23,24 @@ import datetime
from django import forms
from django.conf import settings
from django.forms.formsets import formset_factory
-from django.utils.safestring import mark_safe
from django.utils.translation import ugettext_lazy as _
from ishtar_common.models import Person, valid_id
-from archaeological_finds.models import TreatmentType, FindBasket
+from archaeological_operations.models import ArchaeologicalSite
+from archaeological_context_records.models import ContextRecord
+from archaeological_finds.models import TreatmentType, FindBasket, \
+ MaterialType, ObjectType, IntegrityType, RemarkabilityType, \
+ ConservatoryState, AlterationType, AlterationCauseType, \
+ TreatmentEmergencyType
import models
+
from ishtar_common import widgets
+from archaeological_operations.widgets import OAWidget
from bootstrap_datepicker.widgets import DatePicker
+
from ishtar_common.forms import name_validator, reverse_lazy, \
- get_form_selection, TableSelect, ManageOldType, FinalForm, FormSet, \
+ get_form_selection, ManageOldType, FinalForm, FormSet, \
CustomForm, FieldType, HistorySelect
-from ishtar_common.forms_common import get_image_help
from archaeological_finds.forms import FindMultipleFormSelection, \
SelectFindBasketForm
@@ -263,12 +269,65 @@ class ContainerSelect(HistorySelect):
container_type = forms.ChoiceField(label=_(u"Container type"), choices=[])
reference = forms.CharField(label=_(u"Ref."))
- def __init__(self, *args, **kwargs):
- super(ContainerSelect, self).__init__(*args, **kwargs)
- self.fields['container_type'].choices = \
- models.ContainerType.get_types()
- self.fields['container_type'].help_text = \
- models.ContainerType.get_help()
+ code_patriarche = forms.IntegerField(label=_(u"Code PATRIARCHE"),
+ widget=OAWidget)
+ archaeological_sites = forms.IntegerField(
+ label=_("Archaeological site (attached to the operation)"),
+ widget=widgets.JQueryAutoComplete(
+ reverse_lazy('autocomplete-archaeologicalsite'),
+ associated_model=ArchaeologicalSite),
+ validators=[valid_id(ArchaeologicalSite)])
+ archaeological_sites_context_record = forms.IntegerField(
+ label=_("Archaeological site (attached to the context record)"),
+ widget=widgets.JQueryAutoComplete(
+ reverse_lazy('autocomplete-archaeologicalsite'),
+ associated_model=ArchaeologicalSite),
+ validators=[valid_id(ArchaeologicalSite)])
+ context_record = forms.IntegerField(
+ label=_("Context record"),
+ widget=widgets.JQueryAutoComplete(
+ reverse_lazy('autocomplete-contextrecord'),
+ associated_model=ContextRecord),
+ validators=[valid_id(ContextRecord)])
+ description = forms.CharField(label=_(u"Find - Description"))
+ material_types = forms.IntegerField(
+ label=_(u"Material type"),
+ widget=widgets.JQueryAutoComplete(
+ reverse_lazy('autocomplete-materialtype'),
+ associated_model=MaterialType),
+ )
+ object_types = forms.IntegerField(
+ label=_(u"Object type"),
+ widget=widgets.JQueryAutoComplete(
+ reverse_lazy('autocomplete-objecttype'),
+ associated_model=ObjectType),
+ )
+ integrities = forms.ChoiceField(label=_(u"Integrity / interest"),
+ choices=[])
+ remarkabilities = forms.ChoiceField(label=_(u"Remarkability"),
+ choices=[])
+ conservatory_state = forms.ChoiceField(label=_(u"Conservatory state"),
+ choices=[])
+ alterations = forms.ChoiceField(
+ label=_(u"Alteration"), choices=[])
+ alteration_causes = forms.ChoiceField(
+ label=_(u"Alteration cause"), choices=[])
+ preservation_to_considers = forms.ChoiceField(
+ choices=[], label=_(u"Preservation type"))
+ treatment_emergency = forms.ChoiceField(
+ choices=[], label=_(u"Treatment emergency")
+ )
+
+ TYPES = [
+ FieldType('integrities', IntegrityType),
+ FieldType('remarkabilities', RemarkabilityType),
+ FieldType('conservatory_state', ConservatoryState),
+ FieldType('alterations', AlterationType),
+ FieldType('alteration_causes', AlterationCauseType),
+ FieldType('preservation_to_considers', TreatmentType),
+ FieldType('treatment_emergency', TreatmentEmergencyType),
+ FieldType('container_type', models.ContainerType)
+ ]
ContainerFormSelection = get_form_selection(
diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py
index 42a9bb310..ad2e2da68 100644
--- a/archaeological_warehouse/models.py
+++ b/archaeological_warehouse/models.py
@@ -367,6 +367,67 @@ class Container(LightHistorizedItem, OwnPerms):
pgettext_lazy("key for text search", u"reference"),
'reference__iexact'
),
+ 'code_patriarche':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"code-patriarche"),
+ 'finds__base_finds__context_record__operation__'
+ 'code_patriarche__iexact'
+ ),
+ 'archaeological_sites':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"site"),
+ 'finds__base_finds__context_record__operation__'
+ 'archaeological_sites__cached_label__icontains'),
+ 'archaeological_sites_context_record':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"context-record-site"),
+ 'finds__base_finds__context_record__archaeological_site__'
+ 'cached_label__icontains'),
+ 'context_record':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"context-record"),
+ 'finds__base_finds__context_record__cached_label__icontains'),
+ 'material_types':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"material"),
+ 'finds__material_types__label__iexact'),
+ 'object_types':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"object-type"),
+ 'finds__object_types__label__iexact'),
+ 'preservation_to_considers':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"preservation"),
+ 'finds__preservation_to_considers__label__iexact'),
+ 'conservatory_state':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"conservatory"),
+ 'finds__conservatory_state__label__iexact'),
+ 'integrities':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"integrity"),
+ 'finds__integrities__label__iexact'),
+ 'remarkabilities':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"remarkability"),
+ 'finds__remarkabilities__label__iexact'),
+ 'alterations':
+ SearchAltName(
+ pgettext_lazy(u"key for text search", u"alterations"),
+ 'finds__alterations__label__iexact'),
+ 'alteration_causes':
+ SearchAltName(
+ pgettext_lazy(u"key for text search", u"alteration-causes"),
+ 'finds__alteration_causes__label__iexact'),
+ 'treatment_emergency':
+ SearchAltName(
+ pgettext_lazy(u"key for text search", u"treatment-emergency"),
+ 'finds__treatment_emergency__label__iexact'),
+ 'description':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"find-description"),
+ 'finds__description__iexact'),
+
}
objects = ExternalIdManager()