diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-11-03 21:50:47 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-07-08 09:58:49 +0200 |
commit | cc353cb9354fc27e3a4d02e91d9eae66a01208ce (patch) | |
tree | 0981c0e806d4a528c56ab494971995c8f0787052 /ishtar_common | |
parent | fbbfd652ffc9c18e04a8b320ef3e565f4d98c991 (diff) | |
download | Ishtar-cc353cb9354fc27e3a4d02e91d9eae66a01208ce.tar.bz2 Ishtar-cc353cb9354fc27e3a4d02e91d9eae66a01208ce.zip |
JSON types: multi valued choices - fix search index and last panel
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/models_common.py | 14 | ||||
-rw-r--r-- | ishtar_common/wizards.py | 7 |
2 files changed, 15 insertions, 6 deletions
diff --git a/ishtar_common/models_common.py b/ishtar_common/models_common.py index b1c291bee..ecbabcf7a 100644 --- a/ishtar_common/models_common.py +++ b/ishtar_common/models_common.py @@ -970,11 +970,15 @@ class FullSearch(models.Model): # only index year self._update_search_number_field(search_vectors, data.year) continue - for lang in ("simple", settings.ISHTAR_SEARCH_LANGUAGE): - with connection.cursor() as cursor: - cursor.execute("SELECT to_tsvector(%s, %s)", [lang, data]) - row = cursor.fetchone() - search_vectors.append(row[0]) + datas = [data] + if json_field.value_type == "MC": + datas = data + for d in datas: + for lang in ("simple", settings.ISHTAR_SEARCH_LANGUAGE): + with connection.cursor() as cursor: + cursor.execute("SELECT to_tsvector(%s, %s)", [lang, d]) + row = cursor.fetchone() + search_vectors.append(row[0]) new_search_vector = merge_tsvectors(search_vectors) changed = old_search != new_search_vector self.search_vector = new_search_vector diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index 38afa0bfb..9b0ffb48a 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -463,7 +463,6 @@ class Wizard(IshtarWizard): else: value = _("No") elif key in associated_models: - values = [] if type(value) in (tuple, list): values = value elif "," in str(value): @@ -479,6 +478,12 @@ class Wizard(IshtarWizard): value = str(item) rendered_values.append(value) value = " ; ".join(rendered_values) + if key.startswith("data__"): + if isinstance(value, list): + value = ", ".join(value) + if value.startswith("[") and value.endswith("]"): + value = " ; ".join( + [v.strip()[1:-1] for v in value[1:-1].split(",")]) current_form_data.append((lbl, value, "")) if is_formset: |