Display html in tree view

Is it possible to display html as a tree?

For example, add strong to the line <strong> MY STRING </strong>

I am trying to use widget = "html", but a strong tag is visible!

.py

@api.depends('name') def _get_html(self): self.html_text = "<strong>" + str(self.name) + "</strong>" html_text = fields.Char(compute='_get_html') 

.xml

 <field name="html_text"/> 
+5
source share
1 answer

To enable HTML list view, you need to override the _format () method as shown below (for Odoo v10)

Js

 odoo.define('html_in_tree_field.web_ext', function (require) { "use strict"; var Listview = require('web.ListView'); var formats = require('web.formats'); Listview.Column.include({ _format: function (row_data, options) { // Removed _.escape() function to display html content. // Before : return _.escape(formats.format_value(row_data[this.id].value, this, options.value_if_empty)); return formats.format_value(row_data[this.id].value, this, options.value_if_empty); } }); }); 

XML to add above JS.

 <?xml version="1.0" encoding="utf-8"?> <odoo> <template id="assets_ext" inherit_id="web.assets_backend"> <xpath expr="." position="inside"> <script type="text/javascript" src="/html_in_tree_field/static/src/js/web_ext.js"></script> </xpath> </template> </odoo> 

__ __ manifest. RU

 { ... ... 'data': [ ... 'views/above_xml_filename.xml', ], .... } 
+7
source

Source: https://habr.com/ru/post/1269833/


All Articles