summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
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
commitb97cceab25f6d5a5b12dcf6a40f4a4775ebeea5d (patch)
tree0981c0e806d4a528c56ab494971995c8f0787052 /ishtar_common
parent3c5ed0f4ca035fa3e9334498a227f4d4cf69ed1d (diff)
downloadIshtar-b97cceab25f6d5a5b12dcf6a40f4a4775ebeea5d.tar.bz2
Ishtar-b97cceab25f6d5a5b12dcf6a40f4a4775ebeea5d.zip
JSON types: multi valued choices - fix search index and last panel
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/models_common.py14
-rw-r--r--ishtar_common/wizards.py7
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: