From 726fad8832b6258beb588861d003a7fc196d0519 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 16 May 2014 16:09:27 +0200 Subject: [PATCH 1/3] [IMP] res_partner: added a hook to be sure the website is correctly formated. Otherwise the website may consider the website field as local for address like www.odoo.com --- openerp/addons/base/res/res_partner.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/openerp/addons/base/res/res_partner.py b/openerp/addons/base/res/res_partner.py index 6ed0a845dcf..13750611ba1 100644 --- a/openerp/addons/base/res/res_partner.py +++ b/openerp/addons/base/res/res_partner.py @@ -23,6 +23,7 @@ import datetime from lxml import etree import math import pytz +import urlparse import openerp from openerp import SUPERUSER_ID @@ -507,6 +508,14 @@ class res_partner(osv.osv, format_address): if not parent.is_company: parent.write({'is_company': True}) + def _clean_website(self, website): + (scheme, netloc, path, params, query, fragment) = urlparse.urlparse(website) + if not scheme: + if not netloc: + netloc, path = path, '' + website = urlparse.urlunparse(('http', netloc, path, params, query, fragment)) + return website + def write(self, cr, uid, ids, vals, context=None): if isinstance(ids, (int, long)): ids = [ids] @@ -514,6 +523,8 @@ class res_partner(osv.osv, format_address): #is the same as the company of all users that inherit from this partner #(this is to allow the code from res_users to write to the partner!) or #if setting the company_id to False (this is compatible with any user company) + if vals.get('website'): + vals['website'] = self._clean_website(vals['website']) if vals.get('company_id'): for partner in self.browse(cr, uid, ids, context=context): if partner.user_ids: @@ -526,6 +537,8 @@ class res_partner(osv.osv, format_address): return result def create(self, cr, uid, vals, context=None): + if vals.get('website'): + vals['website'] = self._clean_website(vals['website']) new_id = super(res_partner, self).create(cr, uid, vals, context=context) partner = self.browse(cr, uid, new_id, context=context) self._fields_sync(cr, uid, partner, vals, context) From f5368a1badd0ebddc6d0a174cdfd0d0184cf723f Mon Sep 17 00:00:00 2001 From: "Richard Mathot (OpenERP)" Date: Mon, 19 May 2014 17:37:00 +0200 Subject: [PATCH 2/3] [FIX] ir_qweb: Duration widget now displays something --- openerp/addons/base/ir/ir_qweb.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openerp/addons/base/ir/ir_qweb.py b/openerp/addons/base/ir/ir_qweb.py index 5163730ce00..a0c6c5a6471 100644 --- a/openerp/addons/base/ir/ir_qweb.py +++ b/openerp/addons/base/ir/ir_qweb.py @@ -801,7 +801,8 @@ class DurationConverter(osv.AbstractModel): v*secs_per_unit, threshold=1, locale=locale) if section: sections.append(section) - return u' '.join(sections) + return ' '.join(sections) + class RelativeDatetimeConverter(osv.AbstractModel): _name = 'ir.qweb.field.relative' From f99785e29d43bc41acd40b6e72c4e9aeb6601782 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Mon, 19 May 2014 18:15:32 +0200 Subject: [PATCH 3/3] [IMP] ir_qweb: contact widget: handle website info in the contact widget. --- openerp/addons/base/ir/ir_qweb.py | 1 + openerp/addons/base/ir/ir_qweb.xml | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/openerp/addons/base/ir/ir_qweb.py b/openerp/addons/base/ir/ir_qweb.py index a0c6c5a6471..940c7844628 100644 --- a/openerp/addons/base/ir/ir_qweb.py +++ b/openerp/addons/base/ir/ir_qweb.py @@ -847,6 +847,7 @@ class Contact(orm.AbstractModel): 'fax': field_browse.fax, 'city': field_browse.city, 'country_id': field_browse.country_id and field_browse.country_id.name_get()[0][1], + 'website': field_browse.website, 'email': field_browse.email, 'fields': opf, 'object': field_browse, diff --git a/openerp/addons/base/ir/ir_qweb.xml b/openerp/addons/base/ir/ir_qweb.xml index a21a3fcf2af..d021d496fdc 100644 --- a/openerp/addons/base/ir/ir_qweb.xml +++ b/openerp/addons/base/ir/ir_qweb.xml @@ -18,6 +18,10 @@
+
+ + +