From 48f785d786f53c61b46bdb0d5cc6e6bcb1918f65 Mon Sep 17 00:00:00 2001 From: Simon Lejeune Date: Mon, 24 Mar 2014 14:57:23 +0100 Subject: [PATCH] [REF] Moved qweb contact from website to base and removed the from_html method (it never worked) bzr revid: sle@openerp.com-20140324135723-2f8owtcotk3n9jt8 --- openerp/addons/base/__openerp__.py | 1 + openerp/addons/base/ir/ir_qweb.py | 32 ++++++++++++++++++++++++++++++ openerp/addons/base/ir/ir_qweb.xml | 21 ++++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 openerp/addons/base/ir/ir_qweb.xml diff --git a/openerp/addons/base/__openerp__.py b/openerp/addons/base/__openerp__.py index 57ce6b31e32..3d0d3e4dda4 100644 --- a/openerp/addons/base/__openerp__.py +++ b/openerp/addons/base/__openerp__.py @@ -58,6 +58,7 @@ The kernel of OpenERP, needed for all installation. 'ir/osv_memory_autovacuum.xml', 'ir/ir_model_report.xml', 'ir/ir_logging_view.xml', + 'ir/ir_qweb.xml', 'workflow/workflow_view.xml', 'module/module_view.xml', 'module/module_data.xml', diff --git a/openerp/addons/base/ir/ir_qweb.py b/openerp/addons/base/ir/ir_qweb.py index 0b3bf91dc1f..f19a1fa6746 100644 --- a/openerp/addons/base/ir/ir_qweb.py +++ b/openerp/addons/base/ir/ir_qweb.py @@ -808,6 +808,38 @@ class RelativeDatetimeConverter(osv.AbstractModel): return babel.dates.format_timedelta( value - reference, add_direction=True, locale=locale) + +class Contact(orm.AbstractModel): + _name = 'ir.qweb.field.contact' + _inherit = 'ir.qweb.field.many2one' + + def record_to_html(self, cr, uid, field_name, record, column, options=None, context=None): + opf = options.get('fields') or ["name", "address", "phone", "mobile", "fax", "email"] + + if not getattr(record, field_name): + return None + + id = getattr(record, field_name).id + field_browse = self.pool[column._obj].browse(cr, openerp.SUPERUSER_ID, id, context={"show_address": True}) + value = werkzeug.utils.escape( field_browse.name_get()[0][1] ) + + val = { + 'name': value.split("\n")[0], + 'address': werkzeug.utils.escape("\n".join(value.split("\n")[1:])), + 'phone': field_browse.phone, + 'mobile': field_browse.mobile, + 'fax': field_browse.fax, + 'city': field_browse.city, + 'country_id': field_browse.country_id and field_browse.country_id.name_get()[0][1], + 'email': field_browse.email, + 'fields': opf, + 'options': options + } + + html = self.pool["ir.ui.view"].render(cr, uid, "base.contact", val, engine='ir.qweb', context=context).decode('utf8') + + return HTMLSafe(html) + class HTMLSafe(object): """ HTMLSafe string wrapper, Werkzeug's escape() has special handling for objects with a ``__html__`` methods but AFAIK does not provide any such diff --git a/openerp/addons/base/ir/ir_qweb.xml b/openerp/addons/base/ir/ir_qweb.xml new file mode 100644 index 00000000000..25bb4ef8ef9 --- /dev/null +++ b/openerp/addons/base/ir/ir_qweb.xml @@ -0,0 +1,21 @@ + + + + +