summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_context_records/forms.py2
-rw-r--r--archaeological_files/forms.py6
-rw-r--r--archaeological_finds/forms.py2
-rw-r--r--archaeological_finds/forms_treatments.py14
-rw-r--r--archaeological_finds/models_treatments.py84
-rw-r--r--archaeological_operations/forms.py6
-rw-r--r--archaeological_operations/models.py40
-rw-r--r--archaeological_warehouse/forms.py4
-rw-r--r--archaeological_warehouse/models.py2
-rw-r--r--ishtar_common/forms_common.py8
10 files changed, 142 insertions, 26 deletions
diff --git a/archaeological_context_records/forms.py b/archaeological_context_records/forms.py
index b659c64f1..0504577c5 100644
--- a/archaeological_context_records/forms.py
+++ b/archaeological_context_records/forms.py
@@ -57,7 +57,7 @@ class OperationFormSelection(CustomForm, forms.Form):
validators=[valid_id(Operation)])
-class RecordSelect(CustomForm, TableSelect): # OK
+class RecordSelect(CustomForm, TableSelect):
_model = models.ContextRecord
form_admin_name = _(u"Context record - 001 - Search")
diff --git a/archaeological_files/forms.py b/archaeological_files/forms.py
index f6c6bf48b..3d82dc83f 100644
--- a/archaeological_files/forms.py
+++ b/archaeological_files/forms.py
@@ -46,7 +46,7 @@ from ishtar_common import widgets
from bootstrap_datepicker.widgets import DatePicker
-class FileSelect(TableSelect): # OK
+class FileSelect(TableSelect):
_model = models.File
search_vector = forms.CharField(
@@ -401,7 +401,7 @@ class FinalFileDeleteForm(FinalForm):
confirm_end_msg = _(u"Would you like to delete this archaeological file ?")
-class AdministrativeActFileModifySelect(TableSelect): # OK
+class AdministrativeActFileModifySelect(TableSelect):
_model = AdministrativeAct
search_vector = forms.CharField(
@@ -434,7 +434,7 @@ class AdministrativeActFileModifySelect(TableSelect): # OK
('', '--')] + list(settings.ISHTAR_DPTS)
-class AdministrativeActFileSelect(TableSelect): # OK
+class AdministrativeActFileSelect(TableSelect):
_model = AdministrativeAct
search_vector = forms.CharField(
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py
index c575bc876..358b12477 100644
--- a/archaeological_finds/forms.py
+++ b/archaeological_finds/forms.py
@@ -406,7 +406,7 @@ DatingFormSet.form_admin_name = _(u"Find - 040 - Dating")
DatingFormSet.form_slug = "find-040-dating"
-class FindSelect(CustomForm, TableSelect): # OK
+class FindSelect(CustomForm, TableSelect):
_model = models.Find
form_admin_name = _(u"Find - 001 - Search")
diff --git a/archaeological_finds/forms_treatments.py b/archaeological_finds/forms_treatments.py
index ae6152951..11cfd3173 100644
--- a/archaeological_finds/forms_treatments.py
+++ b/archaeological_finds/forms_treatments.py
@@ -44,16 +44,19 @@ logger = logging.getLogger(__name__)
class TreatmentSelect(TableSelect):
+ _model = models.Treatment
+
search_vector = forms.CharField(
label=_(u"Full text search"), widget=widgets.SearchWidget(
'archaeological-finds', 'treatment'
))
+
label = forms.CharField(label=_(u"Label"))
other_reference = forms.CharField(label=_(u"Other ref."))
year = forms.IntegerField(label=_(u"Year"))
index = forms.IntegerField(label=_(u"Index"))
treatment_types = forms.ChoiceField(label=_(u"Treatment type"), choices=[])
- image = forms.NullBooleanField(label=_(u"Has an image?"))
+ documents__image__isnull = forms.NullBooleanField(label=_(u"Has an image?"))
def __init__(self, *args, **kwargs):
super(TreatmentSelect, self).__init__(*args, **kwargs)
@@ -324,6 +327,8 @@ class DashboardForm(IshtarForm):
class AdministrativeActTreatmentSelect(TableSelect):
+ _model = AdministrativeAct
+
search_vector = forms.CharField(
label=_(u"Full text search"), widget=widgets.SearchWidget(
'archaeological-operations', 'administrativeact'
@@ -343,7 +348,7 @@ class AdministrativeActTreatmentSelect(TableSelect):
label=_(u"Treatment name"), max_length=200)
treatment__year = forms.IntegerField(label=_(u"Treatment year"))
treatment__index = forms.IntegerField(label=_(u"Treatment index"))
- treatment__internal_reference = forms.CharField(
+ treatment__other_reference = forms.CharField(
max_length=200, label=_(u"Treatment internal reference"))
treatment__treatment_types = forms.ChoiceField(label=_(u"Treatment type"),
choices=[])
@@ -406,6 +411,7 @@ class TreatmentFileSelect(TableSelect):
year = forms.IntegerField(label=_(u"Year"))
index = forms.IntegerField(label=_(u"Index"))
type = forms.ChoiceField(label=_(u"Type"), choices=[])
+
in_charge = forms.IntegerField(
label=_(u"In charge"),
widget=widgets.JQueryAutoComplete(
@@ -586,6 +592,8 @@ class DashboardTreatmentFileForm(IshtarForm):
class AdministrativeActTreatmentFileSelect(TableSelect):
+ _model = AdministrativeAct
+
search_vector = forms.CharField(
label=_(u"Full text search"), widget=widgets.SearchWidget(
'archaeological-operations', 'administrativeact'
@@ -601,6 +609,7 @@ class AdministrativeActTreatmentFileSelect(TableSelect):
label=_(u"Signature date after"), widget=DatePicker)
signature_date_before = forms.DateField(
label=_(u"Signature date before"), widget=DatePicker)
+
treatment_file__name = forms.CharField(
label=_(u"Treatment request name"), max_length=200)
treatment_file__year = forms.IntegerField(
@@ -611,6 +620,7 @@ class AdministrativeActTreatmentFileSelect(TableSelect):
max_length=200, label=_(u"Treatment request internal reference"))
treatment_file__type = forms.ChoiceField(
label=_(u"Treatment request type"), choices=[])
+
history_modifier = forms.IntegerField(
label=_(u"Modified by"),
widget=widgets.JQueryAutoComplete(
diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py
index 4ee5fe08b..68a6ebb13 100644
--- a/archaeological_finds/models_treatments.py
+++ b/archaeological_finds/models_treatments.py
@@ -24,7 +24,7 @@ from django.contrib.gis.db import models
from django.db.models import Max, Q
from django.db.models.signals import post_save, post_delete, pre_delete
from django.template.defaultfilters import slugify
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import ugettext_lazy as _, pgettext_lazy
from archaeological_finds.models_finds import Find, FindBasket, TreatmentType
from archaeological_operations.models import ClosedItem, Operation
@@ -33,7 +33,8 @@ from ishtar_common.models import Document, GeneralType, \
ImageModel, BaseHistorizedItem, OwnPerms, HistoricalRecords, Person, \
Organization, ValueGetter, post_save_cache, ShortMenuItem, \
DashboardFormItem
-from ishtar_common.utils import cached_label_changed, get_current_year
+from ishtar_common.utils import cached_label_changed, get_current_year, \
+ TXT_SEARCH_COMMENT
class TreatmentState(GeneralType):
@@ -49,20 +50,17 @@ post_delete.connect(post_save_cache, sender=TreatmentState)
class Treatment(DashboardFormItem, ValueGetter, BaseHistorizedItem,
ImageModel, OwnPerms, ShortMenuItem):
+ SLUG = 'treatment'
SHOW_URL = 'show-treatment'
TABLE_COLS = ('year', 'index', 'treatment_types__label',
'treatment_state__label',
'label', 'person',
'start_date', 'downstream_cached_label',
'upstream_cached_label')
- REVERSED_BOOL_FIELDS = ['image__isnull']
+ REVERSED_BOOL_FIELDS = ['documents__image__isnull']
EXTRA_REQUEST_KEYS = {
- "label": 'label__icontains',
- "other_reference": 'other_reference__icontains',
- "treatment_types": "treatment_types__pk",
"downstream_cached_label": "downstream__cached_label",
"upstream_cached_label": "upstream__cached_label",
- 'image': 'image__isnull',
}
COL_LABELS = {
"downstream_cached_label": _(u"Downstream find"),
@@ -72,7 +70,37 @@ class Treatment(DashboardFormItem, ValueGetter, BaseHistorizedItem,
}
# extra keys than can be passed to save method
EXTRA_SAVED_KEYS = ('items', 'user')
- SLUG = 'treatment'
+
+ # alternative names of fields for searches
+ ALT_NAMES = {
+ 'label': (
+ pgettext_lazy(TXT_SEARCH_COMMENT, u"label"),
+ 'label__icontains'
+ ),
+ 'other_reference': (
+ pgettext_lazy(TXT_SEARCH_COMMENT, u"other-reference"),
+ 'other_reference__icontains'
+ ),
+ 'year': (
+ pgettext_lazy(TXT_SEARCH_COMMENT, u"year"),
+ 'year'
+ ),
+ 'index': (
+ pgettext_lazy(TXT_SEARCH_COMMENT, u"index"),
+ 'index'
+ ),
+ 'documents__image__isnull': (
+ pgettext_lazy(TXT_SEARCH_COMMENT, u"has-image"),
+ 'documents__image__isnull'
+ ),
+ 'treatment_types': (
+ pgettext_lazy(TXT_SEARCH_COMMENT, u"type"),
+ 'treatment_types__label__iexact'
+ ),
+ }
+ for v in ALT_NAMES.values():
+ EXTRA_REQUEST_KEYS[v[0]] = v[1]
+
BASE_SEARCH_VECTORS = [
'treatment_types__label', 'treatment_state__label', 'label', 'goal',
'external_id', 'comment', 'description', 'other_reference',
@@ -497,7 +525,45 @@ class TreatmentFile(DashboardFormItem, ClosedItem, BaseHistorizedItem,
]
INT_SEARCH_VECTORS = ['year', 'index']
PARENT_SEARCH_VECTORS = ['in_charge', 'applicant', 'applicant_organisation']
- SLUG = 'treatmentfile'
+
+ EXTRA_REQUEST_KEYS = {}
+ # alternative names of fields for searches
+ ALT_NAMES = {
+ 'name': (
+ pgettext_lazy(TXT_SEARCH_COMMENT, u"name"),
+ 'name__icontains'
+ ),
+ 'internal_reference': (
+ pgettext_lazy(TXT_SEARCH_COMMENT, u"reference"),
+ 'internal_reference__icontains'
+ ),
+ 'year': (
+ pgettext_lazy(TXT_SEARCH_COMMENT, u"year"),
+ 'year'
+ ),
+ 'index': (
+ pgettext_lazy(TXT_SEARCH_COMMENT, u"index"),
+ 'index'
+ ),
+ 'type': (
+ pgettext_lazy(TXT_SEARCH_COMMENT, u"type"),
+ 'type__label__iexact'
+ ),
+ 'in_charge': (
+ pgettext_lazy(TXT_SEARCH_COMMENT, u"in-charge"),
+ 'in_charge__cached_label__iexact'
+ ),
+ 'applicant': (
+ pgettext_lazy(TXT_SEARCH_COMMENT, u"applicant"),
+ 'applicant__cached_label__iexact'
+ ),
+ 'applicant_organisation': (
+ pgettext_lazy(TXT_SEARCH_COMMENT, u"applicant-organisation"),
+ 'applicant_organisation__cached_label__iexact'
+ ),
+ }
+ for v in ALT_NAMES.values():
+ EXTRA_REQUEST_KEYS[v[0]] = v[1]
# fields
year = models.IntegerField(_(u"Year"), default=get_current_year)
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py
index d57a890eb..cfb62d6ec 100644
--- a/archaeological_operations/forms.py
+++ b/archaeological_operations/forms.py
@@ -471,7 +471,7 @@ RecordRelationsFormSet.form_admin_name = _(u"Operation - 080 - Relations")
RecordRelationsFormSet.form_slug = "operation-080-relations"
-class OperationSelect(TableSelect): # OK
+class OperationSelect(TableSelect):
_model = models.Operation
search_vector = forms.CharField(
@@ -1230,7 +1230,7 @@ class OperationDeletionForm(FinalForm):
#########
-class SiteSelect(TableSelect): # OK
+class SiteSelect(TableSelect):
_model = models.ArchaeologicalSite
search_vector = forms.CharField(
@@ -1376,7 +1376,7 @@ class SiteUnderwaterForm(ManageOldType):
################################################
-class AdministrativeActOpeSelect(TableSelect): # OK
+class AdministrativeActOpeSelect(TableSelect):
_model = models.AdministrativeAct
search_vector = forms.CharField(
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index 082bbd2fe..34a3d2a01 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -1472,6 +1472,46 @@ class AdministrativeAct(BaseHistorizedItem, OwnPerms, ValueGetter):
pgettext_lazy(TXT_SEARCH_COMMENT, u"file-permit-reference"),
'associated_file__permit_reference__iexact'
),
+ 'treatment__name': (
+ pgettext_lazy(TXT_SEARCH_COMMENT, u"treatment-name"),
+ 'treatment__label__icontains'
+ ),
+ 'treatment__other_reference': (
+ pgettext_lazy(TXT_SEARCH_COMMENT, u"treatment-reference"),
+ 'treatment__other_reference__icontains'
+ ),
+ 'treatment__year': (
+ pgettext_lazy(TXT_SEARCH_COMMENT, u"treatment-year"),
+ 'treatment__year'
+ ),
+ 'treatment__index': (
+ pgettext_lazy(TXT_SEARCH_COMMENT, u"treatment-index"),
+ 'treatment__index'
+ ),
+ 'treatment__treatment_types': (
+ pgettext_lazy(TXT_SEARCH_COMMENT, u"treatment-type"),
+ 'treatment__treatment_types__label__iexact'
+ ),
+ 'treatment_file__name': (
+ pgettext_lazy(TXT_SEARCH_COMMENT, u"treatment-file-name"),
+ 'treatment_file__name__icontains'
+ ),
+ 'treatment_file__internal_reference': (
+ pgettext_lazy(TXT_SEARCH_COMMENT, u"treatment-file-reference"),
+ 'treatment_file__internal_reference__icontains'
+ ),
+ 'treatment_file__year': (
+ pgettext_lazy(TXT_SEARCH_COMMENT, u"treatment-file-year"),
+ 'treatment_file__year'
+ ),
+ 'treatment_file__index': (
+ pgettext_lazy(TXT_SEARCH_COMMENT, u"treatment-file-index"),
+ 'treatment_file__index'
+ ),
+ 'treatment_file__type': (
+ pgettext_lazy(TXT_SEARCH_COMMENT, u"treatment-file-type"),
+ 'treatment_file__type__label__iexact'
+ ),
}
for v in ALT_NAMES.values():
EXTRA_REQUEST_KEYS[v[0]] = v[1]
diff --git a/archaeological_warehouse/forms.py b/archaeological_warehouse/forms.py
index 8192e36df..57992c7e2 100644
--- a/archaeological_warehouse/forms.py
+++ b/archaeological_warehouse/forms.py
@@ -78,7 +78,7 @@ SelectedDivisionFormset.form_admin_name = _(u"Warehouse - 020 - Divisions")
SelectedDivisionFormset.form_slug = "warehouse-020-divisions"
-class WarehouseSelect(TableSelect): # OK
+class WarehouseSelect(TableSelect):
_model = models.Warehouse
search_vector = forms.CharField(
@@ -247,7 +247,7 @@ class ContainerModifyForm(ContainerForm):
return cleaned_data
-class ContainerSelect(TableSelect): # OK
+class ContainerSelect(TableSelect):
_model = models.Container
search_vector = forms.CharField(
diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py
index 5105416d6..7ff85f276 100644
--- a/archaeological_warehouse/models.py
+++ b/archaeological_warehouse/models.py
@@ -321,7 +321,7 @@ class Container(LightHistorizedItem, ImageModel):
),
'container_type': (
pgettext_lazy(TXT_SEARCH_COMMENT, u"type"),
- 'warehouse_type__label__iexact'
+ 'container_type__label__iexact'
),
'reference': (
pgettext_lazy(TXT_SEARCH_COMMENT, u"reference"),
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py
index 3745d5f73..48e744c18 100644
--- a/ishtar_common/forms_common.py
+++ b/ishtar_common/forms_common.py
@@ -337,7 +337,7 @@ class OrganizationForm(ManageOldType, NewItemForm):
return new_item
-class OrganizationSelect(TableSelect): # OK
+class OrganizationSelect(TableSelect):
_model = models.Organization
search_vector = forms.CharField(
@@ -456,7 +456,7 @@ class BaseOrganizationForm(forms.ModelForm):
'town', 'postal_code']
-class PersonSelect(TableSelect): # OK
+class PersonSelect(TableSelect):
_model = models.Person
search_vector = forms.CharField(
@@ -589,7 +589,7 @@ class PersonUserFormSelection(PersonFormSelection):
validators=[models.valid_id(models.Person)])
-class IshtarUserSelect(TableSelect): # OK
+class IshtarUserSelect(TableSelect):
_model = models.IshtarUser
search_vector = forms.CharField(
@@ -1183,7 +1183,7 @@ class DocumentForm(forms.ModelForm, CustomForm, ManageOldType):
return item
-class DocumentSelect(TableSelect): # OK
+class DocumentSelect(TableSelect):
_model = models.Document
search_vector = forms.CharField(