Skip to content

Commit d0c64ea

Browse files
committed
[FIX] util/pg: Fix escaping issue
due to this escaping issue ``\n`` never converted to ``<br>`` so fixing it. as per psql documentation https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-STRINGS-ESCAPE before fix: ``` website_crm=> select description from crm_lead where id=25; description ------------- test + test + etest + (1 row) website_crm=> \q ``` after fix: ``` website_crm_18.0=> select description from crm_lead where id=25; description ---------------------------------- <p>test<br>test<br>etest<br></p> (1 row) ``` upg-2709886 opw-4781422 closes #268 Signed-off-by: Christophe Simonis (chs) <[email protected]>
1 parent 41abe70 commit d0c64ea

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

src/base/tests/test_util.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2109,13 +2109,13 @@ def test_convert_field_to_html(self):
21092109
f1 = self.env["ir.model.fields"].create(
21102110
{"name": "x_testx", "model": "res.partner", "ttype": "text", "model_id": model.id, "translate": True}
21112111
)
2112-
partner = self.env["res.partner"].create({"name": "test Pxtner", "x_testx": "test partner field"})
2113-
default = self.env["ir.default"].create({"field_id": f1.id, "json_value": '"Test text"'})
2112+
partner = self.env["res.partner"].create({"name": "test Pxtner", "x_testx": "test\npartner field"})
2113+
default = self.env["ir.default"].create({"field_id": f1.id, "json_value": '"Test\\ntext"'})
21142114
util.convert_field_to_html(cr, "res.partner", "x_testx")
21152115
util.invalidate(default)
21162116

2117-
self.assertEqual(default.json_value, '"<p>Test text</p>"')
2118-
self.assertEqual(partner.x_testx, "<p>test partner field</p>")
2117+
self.assertEqual(default.json_value, '"<p>Test<br>text</p>"')
2118+
self.assertEqual(partner.x_testx, "<p>test<br>partner field</p>")
21192119

21202120

21212121
class TestRemoveView(UnitTestCase):

src/util/fields.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -698,10 +698,10 @@ def convert_field_to_html(cr, model, field, skip_inherit=()):
698698

699699
# Update ir.default
700700
if table_exists(cr, "ir_default"):
701-
json_value_html = pg_text2html("json_value::json #>> '{}'")
701+
json_value_html = pg_text2html("json_value::jsonb->>0")
702702
query = """
703703
UPDATE ir_default AS d
704-
SET json_value = to_json(({})::text)::text
704+
SET json_value = to_json({})::text
705705
FROM ir_model_fields AS imf
706706
WHERE imf.name = %s
707707
AND imf.model = %s

src/util/pg.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -428,9 +428,9 @@ def pg_text2html(s, wrap="p"):
428428
'https?://[-A-Za-z0-9+&@#/%%?=~_()|!:,.;]*[-A-Za-z0-9+&@#/%%=~_()|]',
429429
'<a href="\&" target="_blank" rel="noreferrer noopener">\&</a>',
430430
'g'),
431-
E'\\n',
431+
E'\n',
432432
'<br>'),
433-
E'\\t',
433+
E'\t',
434434
'&Tab;'),
435435
'{closing_tag}')
436436
END

0 commit comments

Comments
 (0)