diff options
-rw-r--r-- | archaeological_context_records/forms.py | 4 | ||||
-rw-r--r-- | archaeological_finds/forms.py | 85 |
2 files changed, 39 insertions, 50 deletions
diff --git a/archaeological_context_records/forms.py b/archaeological_context_records/forms.py index 8c29ff2b6..3267f806f 100644 --- a/archaeological_context_records/forms.py +++ b/archaeological_context_records/forms.py @@ -122,11 +122,11 @@ class RecordSelect(CustomForm, TableSelect): class RecordFormSelection(CustomFormSearch): - form_label = _("Context record search") SEARCH_AND_SELECT = True - + form_label = _("Context record search") associated_models = {'pk': models.ContextRecord} currents = {'pk': models.ContextRecord} + pk = forms.IntegerField( label="", required=False, widget=widgets.DataTable( diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 45e8342e7..41ecb5d31 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -50,11 +50,10 @@ from archaeological_operations.widgets import OAWidget from archaeological_warehouse.models import Warehouse from bootstrap_datepicker.widgets import DatePicker from ishtar_common import widgets -from ishtar_common.forms import FormSet, FloatField, \ - reverse_lazy, TableSelect, get_now, FinalForm, \ +from ishtar_common.forms import CustomForm, CustomFormSearch, FormSet, \ + FloatField, reverse_lazy, TableSelect, get_now, FinalForm, \ ManageOldType, FieldType, IshtarForm, FormHeader -from ishtar_common.forms_common import get_town_field, \ - CustomForm +from ishtar_common.forms_common import get_town_field from ishtar_common.models import valid_id, valid_ids, get_current_profile, \ SpatialReferenceSystem from ishtar_common.utils import convert_coordinates_to_point @@ -406,7 +405,9 @@ DatingFormSet.form_admin_name = _(u"Find - 040 - Dating") DatingFormSet.form_slug = "find-040-dating" -class FindSelect(TableSelect): +class FindSelect(CustomForm, TableSelect): + form_admin_name = _(u"Find - 001 - Search") + form_slug = "find-001-search" search_vector = forms.CharField(label=_(u"Full text search"), widget=widgets.SearchWidget) base_finds__cache_short_id = forms.CharField(label=_(u"Short ID")) @@ -463,53 +464,40 @@ class FindSelect(TableSelect): checked = forms.ChoiceField(label=_("Check")) documents__image__isnull = forms.NullBooleanField(label=_(u"Has an image?")) + TYPES = [ + FieldType('datings__period', Period), + FieldType('material_types', models.MaterialType), + FieldType('conservatory_state', models.ConservatoryState), + FieldType('base_finds__batch', models.BatchType), + FieldType('object_types', models.ObjectType), + FieldType('preservation_to_considers', models.TreatmentType), + FieldType('integrities', models.IntegrityType), + FieldType('remarkabilities', models.RemarkabilityType), + + ] + def __init__(self, *args, **kwargs): super(FindSelect, self).__init__(*args, **kwargs) - self.fields['datings__period'].choices = Period.get_types() - self.fields['datings__period'].help_text = Period.get_help() - self.fields['material_types'].choices = \ - models.MaterialType.get_types() - self.fields['material_types'].help_text = \ - models.MaterialType.get_help() - self.fields['conservatory_state'].choices = \ - models.ConservatoryState.get_types() - self.fields['conservatory_state'].help_text = \ - models.ConservatoryState.get_help() - - self.fields['base_finds__batch'].choices = \ - models.BatchType.get_types() - self.fields['base_finds__batch'].help_text = \ - models.BatchType.get_help() - - self.fields['object_types'].choices = \ - models.ObjectType.get_types() - self.fields['checked'].choices = \ - [('', '--')] + list(models.CHECK_CHOICES) - self.fields['preservation_to_considers'].choices = \ - models.TreatmentType.get_types() - self.fields['preservation_to_considers'].help_text = \ - models.TreatmentType.get_help() - self.fields['integrities'].choices = \ - models.IntegrityType.get_types() - self.fields['integrities'].help_text = \ - models.IntegrityType.get_help() - self.fields['remarkabilities'].choices = \ - 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) - self.fields['cr_relation_types'].choices = CRRelationType.get_types( - empty_first=False) + if 'checked' in self.fields: + self.fields['checked'].choices = \ + [('', '--')] + list(models.CHECK_CHOICES) + if 'ope_relation_types' in self.fields: + self.fields['ope_relation_types'].choices = \ + OpeRelationType.get_types(empty_first=False) + if 'cr_relation_types' in self.fields: + 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)) + if 'ope_relation_types' in 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)) + if 'cr_relation_types' in ids: + 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 @@ -530,11 +518,12 @@ class FindSelectWarehouseModule(FindSelect): container__reference = forms.IntegerField(label=_(u"Container ref.")) -class FindFormSelection(forms.Form): +class FindFormSelection(CustomFormSearch): SEARCH_AND_SELECT = True form_label = _("Find search") associated_models = {'pk': models.Find} currents = {'pk': models.Find} + pk = forms.IntegerField( label="", required=False, widget=widgets.DataTable( |