diff options
-rw-r--r-- | archaeological_warehouse/models.py | 2 | ||||
-rw-r--r-- | changelog/en/changelog_2022-06-15.md | 7 | ||||
-rw-r--r-- | changelog/fr/changelog_2023-01-25.md | 7 | ||||
-rw-r--r-- | ishtar_common/models.py | 6 | ||||
-rw-r--r-- | ishtar_common/views_item.py | 20 |
5 files changed, 36 insertions, 6 deletions
diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py index b3bf02a6b..a59371776 100644 --- a/archaeological_warehouse/models.py +++ b/archaeological_warehouse/models.py @@ -319,7 +319,7 @@ class Warehouse( ), "town": SearchAltName( pgettext_lazy("key for text search", "town"), - "precise_town_id__cached_label", + "precise_town_id", ), } GEO_LABEL = "name" diff --git a/changelog/en/changelog_2022-06-15.md b/changelog/en/changelog_2022-06-15.md index 6f2dcd27b..3c29d3a36 100644 --- a/changelog/en/changelog_2022-06-15.md +++ b/changelog/en/changelog_2022-06-15.md @@ -4,6 +4,13 @@ v4.0.45 - 2023- ### Features/improvements ### - Administration: improved display of subcategories (in color) +### Bug fixes ### +- Fix town search for warehouses and organizations +- Fix container search for documents + +### Technical ### +- Migration font-awesome -> fork-awesome +- Inline JS migrated to a dynamic, cacheable settings.js v4.0.44 - 2023-04-17 -------------------- diff --git a/changelog/fr/changelog_2023-01-25.md b/changelog/fr/changelog_2023-01-25.md index 5194c26bf..86a2caa87 100644 --- a/changelog/fr/changelog_2023-01-25.md +++ b/changelog/fr/changelog_2023-01-25.md @@ -4,6 +4,13 @@ v4.0.45 - 2023- ### Fonctionnalités/améliorations ### - Administration : affichage des sous-catégories amélioré (en couleur) +### Corrections de dysfonctionnements ### +- Correction de la recherche commune pour les lieux de conservation et les organisations +- Correction de la recherche contenant pour les documents + +### Technique ### +- Migration de la bibliothèque font-awesome -> fork-awesome +- JS inline migré vers un settings.js dynamique pouvant être mis en cache v4.0.44 - 2023-04-17 diff --git a/ishtar_common/models.py b/ishtar_common/models.py index c4beb0bff..fd3a49789 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -2569,7 +2569,7 @@ class Organization(Address, Merge, OwnPerms, BaseGenderedType, ValueGetter, Main ), "precise_town_id": SearchAltName( pgettext_lazy("key for text search", "precise-town"), - "precise_town_id__cached_label", + "precise_town_id", ), } QA_EDIT = QuickAction( @@ -4056,11 +4056,11 @@ class Document( ), "warehouse_container": SearchAltName( pgettext_lazy("key for text search", "warehouse-container"), - "container__cached_label__iexact", + "wcontainer_id", ), "warehouse_container_ref": SearchAltName( pgettext_lazy("key for text search", "warehouse-container-reference"), - "container_ref__cached_label__iexact", + "wcontainer_ref_id", ), "comment": SearchAltName( pgettext_lazy("key for text search", "comment"), "comment__iexact" diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index 31a96f270..e2214d5dc 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -1066,12 +1066,28 @@ def _manage_hierarchic_fields(model, dct, and_reqs): # TODO: improve query with "IN ()"? continue - if req.endswith("precise_town_id__cached_label"): + if req.endswith("wcontainer_id") or req.endswith("wcontainer_ref_id"): + val = _clean_type_val(dct.pop(req)).strip('"') + if val.startswith('"') and val.endswith('"'): + val = val[1:-1] + vals = [v.replace('"', "") for v in val.split(";")] + container_ids = [] + for val in vals: + q = Container.objects.filter(cached_label__iexact=val).values_list( + "id", flat=True) + if not q.count(): + continue + container_id = q.all()[0] + container_ids.append(container_id) + req = req[1:] # remove "w" + main_req = Q(**{req + "__in": container_ids}) + and_reqs.append(main_req) + + if req.endswith("precise_town_id"): val = _clean_type_val(dct.pop(req)).strip('"') if val.startswith('"') and val.endswith('"'): val = val[1:-1] vals = [v.replace('"', "") for v in val.split(";")] - req = req[:-len("__cached_label")] town_ids = [] for val in vals: q = models.Town.objects.filter(cached_label__iexact=val).values_list( |