summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-06-24 16:18:46 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2024-06-24 16:22:52 +0200
commit0663c1251d225a4c40ed93645f3bd8f16ae2acb3 (patch)
tree07615b01bde96b937b7e99a4faa713fe666563ee /ishtar_common
parent8ca8b9b52fd84384c1dd53041710c3721681c346 (diff)
downloadIshtar-0663c1251d225a4c40ed93645f3bd8f16ae2acb3.tar.bz2
Ishtar-0663c1251d225a4c40ed93645f3bd8f16ae2acb3.zip
✨ criteria search: adapt searches for relative search (dates and numbers)
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/forms.py26
-rw-r--r--ishtar_common/models_common.py37
-rw-r--r--ishtar_common/views_item.py7
3 files changed, 29 insertions, 41 deletions
diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py
index c59978730..ec2603bb9 100644
--- a/ishtar_common/forms.py
+++ b/ishtar_common/forms.py
@@ -958,11 +958,8 @@ class HistorySelect(CustomForm, TableSelect):
),
required=False,
)
- created_before = forms.DateField(
- label=_("Created before"), widget=DatePicker, required=False
- )
- created_after = forms.DateField(
- label=_("Created after"), widget=DatePicker, required=False
+ created = forms.DateField(
+ label=_("Created"), widget=DatePicker, required=False
)
history_modifier = forms.IntegerField(
label=_("Last modified by"),
@@ -971,22 +968,17 @@ class HistorySelect(CustomForm, TableSelect):
),
required=False,
)
- modified_before = forms.DateField(
- label=_("Modified before"), widget=DatePicker, required=False
- )
- modified_after = forms.DateField(
- label=_("Modified after"), widget=DatePicker, required=False
+ modified = forms.DateField(
+ label=_("Modified"), widget=DatePicker, required=False
)
locked = forms.NullBooleanField(label=_("Is locked?"))
_explicit_ordering = True
CURRENT_FIELDS = [
"history_creator",
- "created_before",
- "created_after",
+ "created",
"history_modifier",
- "modified_before",
- "modified_after",
+ "modified",
"locked",
]
@@ -1370,16 +1362,14 @@ class GeoItemSelect(DocumentItemSelect): # all geo item can have documents
geodata__data_type = forms.ChoiceField(label=_("Geo - Data type"), choices=[])
geodata__origin = forms.ChoiceField(label=_("Geo - Origin"), choices=[])
geodata__provider = forms.ChoiceField(label=_("Geo - Provider"), choices=[])
- geodata__z__gt = forms.FloatField(label=_("Geo - Z - higher than"))
- geodata__z__lt = forms.FloatField(label=_("Geo - Z - lower than"))
+ geodata__z = forms.FloatField(label=_("Geo - Z"))
geodata__comment = forms.CharField(label=_("Geo - Comment"), max_length=500)
CURRENT_FIELDS = [
"geodata__name",
"geodata__data_type",
"geodata__origin",
"geodata__provider",
- "geodata__z__gt",
- "geodata__z__lt",
+ "geodata__z",
"geodata__comment",
] + DocumentItemSelect.CURRENT_FIELDS
_explicit_ordering = True
diff --git a/ishtar_common/models_common.py b/ishtar_common/models_common.py
index 6d3270db4..ae4b5a64b 100644
--- a/ishtar_common/models_common.py
+++ b/ishtar_common/models_common.py
@@ -881,6 +881,7 @@ class FullSearch(models.Model):
ALT_NAMES = {}
BOOL_FIELDS = []
+ NUMBER_FIELDS = []
REVERSED_BOOL_FIELDS = []
CALLABLE_BOOL_FIELDS = []
BASE_SEARCH_VECTORS = []
@@ -1565,10 +1566,8 @@ class BaseHistorizedItem(
)
DATED_FIELDS = [
- "created__gte",
- "created__lte",
- "last_modified__gte",
- "last_modified__lte",
+ "created",
+ "last_modified",
]
BOOL_FIELDS = ["locked"]
@@ -1582,19 +1581,13 @@ class BaseHistorizedItem(
pgettext_lazy("key for text search", "modified-by"),
"history_modifier__ishtaruser__person__cached_label__iexact",
),
- "created_before": SearchAltName(
- pgettext_lazy("key for text search", "created-before"),
- "created__lte",
+ "created": SearchAltName(
+ pgettext_lazy("key for text search", "created"),
+ "created",
),
- "created_after": SearchAltName(
- pgettext_lazy("key for text search", "created-after"), "created__gte"
- ),
- "modified_before": SearchAltName(
- pgettext_lazy("key for text search", "modified-before"),
- "last_modified__lte",
- ),
- "modified_after": SearchAltName(
- pgettext_lazy("key for text search", "modified-after"), "last_modified__gte"
+ "modified": SearchAltName(
+ pgettext_lazy("key for text search", "modified"),
+ "last_modified",
),
"locked": SearchAltName(
pgettext_lazy("key for text search", "locked"), "locked"
@@ -2928,13 +2921,9 @@ class GeographicItem(models.Model):
"geodata__provider": SearchAltName(
pgettext_lazy("key for text search", "geo-provider"), "geodata__provider__label__iexact"
),
- "geodata__z__gt": SearchAltName(
- pgettext_lazy("key for text search", "z-higher"),
- "geodata__cached_z__gte"
- ),
- "geodata__z__lt": SearchAltName(
- pgettext_lazy("key for text search", "z-lower"),
- "geodata__cached_z__lte"
+ "geodata__z": SearchAltName(
+ pgettext_lazy("key for text search", "z"),
+ "geodata__cached_z"
),
"geodata__comment": SearchAltName(
pgettext_lazy("key for text search", "geo-comment"), "geodata__comment__iexact"
@@ -4193,6 +4182,8 @@ class DynamicRequest:
class GeoItem(GeographicItem):
+ NUMBER_FIELDS = ["geodata__cached_z"]
+
# gis - to be removed
GEO_SOURCE = (("T", _("Town")), ("P", _("Precise")), ("M", _("Polygon")))
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py
index a622fdb9f..03e4a8836 100644
--- a/ishtar_common/views_item.py
+++ b/ishtar_common/views_item.py
@@ -1056,6 +1056,11 @@ def _manage_date(k, dct):
values = dct[k].split(";")
results = []
for value in values:
+ # TODO: manage '*/10/2024' searches?
+ if value.replace('"', "").replace("'", "") == "*":
+ dct.pop(k)
+ dct[k + "__isnull"] = False
+ return
value, date_type = __manage_relative_search(value)
has_today = False
for today in TODAYS:
@@ -1112,6 +1117,8 @@ def _manage_dated_fields(dated_fields, dct):
if not res:
continue
for k in res:
+ if k not in dct:
+ continue
if not dct[k]:
dct.pop(k)
continue