From cc353cb9354fc27e3a4d02e91d9eae66a01208ce Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 3 Nov 2021 21:50:47 +0100 Subject: JSON types: multi valued choices - fix search index and last panel --- ishtar_common/models_common.py | 14 +++++++++----- ishtar_common/wizards.py | 7 ++++++- 2 files changed, 15 insertions(+), 6 deletions(-) (limited to 'ishtar_common') 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: -- cgit v1.2.3