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( | 
