From ee67d6580110b87d018b40f6ec1e59eb02c19e71 Mon Sep 17 00:00:00 2001 From: Nicolas Seinlet Date: Tue, 29 Jul 2014 12:39:51 +0200 Subject: [PATCH 1/3] handle missing JS files with a console log --- openerp/addons/base/ir/ir_qweb.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/openerp/addons/base/ir/ir_qweb.py b/openerp/addons/base/ir/ir_qweb.py index be4bfe190d9..1d487be020f 100644 --- a/openerp/addons/base/ir/ir_qweb.py +++ b/openerp/addons/base/ir/ir_qweb.py @@ -662,7 +662,7 @@ class DateTimeConverter(osv.AbstractModel): if options and options.get('hide_seconds'): pattern = pattern.replace(":ss", "").replace(":s", "") - + return babel.dates.format_datetime(value, format=pattern, locale=locale) class TextConverter(osv.AbstractModel): @@ -771,7 +771,7 @@ class MonetaryConverter(osv.AbstractModel): lang_code = context.get('lang') or 'en_US' lang = self.pool['res.lang'] - formatted_amount = lang.format(cr, uid, [lang_code], + formatted_amount = lang.format(cr, uid, [lang_code], fmt, Currency.round(cr, uid, display, record[field_name]), grouping=True, monetary=True) @@ -1120,7 +1120,10 @@ class WebAsset(object): except ValueError: self.last_modified = datetime.datetime.strptime(attach[0]['__last_update'], server_format) except Exception: - raise KeyError("Could not find asset '%s' for '%s' addon" % (self.url, module)) + self._missingAsset(module) + + def _missingAsset(self, module): + raise KeyError("Could not find asset '%s' for '%s' addon" % (self.url, module)) @openerp.tools.func.lazy_property def content(self): @@ -1147,6 +1150,11 @@ class JavascriptAsset(WebAsset): else: return '' % self.source + def _missingAsset(self, module): + self.source="console.log('Missing JS source : %s')" % self.url + self.url = None + self.last_modified = datetime.datetime.now() + class StylesheetAsset(WebAsset): rx_import = re.compile(r"""@import\s+('|")(?!'|"|/|https?://)""", re.U) rx_url = re.compile(r"""url\s*\(\s*('|"|)(?!'|"|/|https?://|data:)""", re.U) From 228d4228287e34531b1192f76bfa1fc1af69a7f5 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 12 Aug 2014 14:14:31 +0200 Subject: [PATCH 2/3] Use console.error --- openerp/addons/base/ir/ir_qweb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/addons/base/ir/ir_qweb.py b/openerp/addons/base/ir/ir_qweb.py index 1d487be020f..bfd34615a1d 100644 --- a/openerp/addons/base/ir/ir_qweb.py +++ b/openerp/addons/base/ir/ir_qweb.py @@ -1151,7 +1151,7 @@ class JavascriptAsset(WebAsset): return '' % self.source def _missingAsset(self, module): - self.source="console.log('Missing JS source : %s')" % self.url + self.source = "console.error('Missing javascript asset: %s');" % self.url self.url = None self.last_modified = datetime.datetime.now() From c68ba885634179fb83e00f1f4ac7bd819763978b Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 12 Aug 2014 14:22:05 +0200 Subject: [PATCH 3/3] Added stylesheet warning for missing css asset --- openerp/addons/base/ir/ir_qweb.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/openerp/addons/base/ir/ir_qweb.py b/openerp/addons/base/ir/ir_qweb.py index bfd34615a1d..8ce38a292d3 100644 --- a/openerp/addons/base/ir/ir_qweb.py +++ b/openerp/addons/base/ir/ir_qweb.py @@ -1205,6 +1205,20 @@ class StylesheetAsset(WebAsset): else: return '' % self.source + def _missingAsset(self, module): + self.source = """ + body:before { + background: #ffc; + width: 100%%; + font-size: 14px; + font-family: monospace; + white-space: pre; + content: "Missing stylesheet asset: %s"; + } + """ % self.url + self.url = None + self.last_modified = datetime.datetime.now() + def rjsmin(script): """ Minify js with a clever regex. Taken from http://opensource.perlig.de/rjsmin