summaryrefslogtreecommitdiff
path: root/addons/web_editor/models/ir_qweb.py
diff options
context:
space:
mode:
authorfwi-odoo <fwi@odoo.com>2016-07-26 12:06:35 +0200
committerThibault Delavallée <tde@openerp.com>2016-08-03 13:42:25 +0200
commita32c1d3c8dfd3d4684f89a6181f3a093dde26ae6 (patch)
tree392ca984f973bbb1c50b66d1a771f6d3c488313b /addons/web_editor/models/ir_qweb.py
parent65fbeb21f6d27068b0a598eb9c84eb35755249a7 (diff)
[MIG] web_editor: migrate to new api
Diffstat (limited to 'addons/web_editor/models/ir_qweb.py')
-rw-r--r--addons/web_editor/models/ir_qweb.py73
1 files changed, 29 insertions, 44 deletions
diff --git a/addons/web_editor/models/ir_qweb.py b/addons/web_editor/models/ir_qweb.py
index b1c0a165e44..ca16f9e86a9 100644
--- a/addons/web_editor/models/ir_qweb.py
+++ b/addons/web_editor/models/ir_qweb.py
@@ -1,9 +1,11 @@
# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
"""
Web_editor-context rendering needs to add some metadata to rendered and allow to edit fields,
as well as render a few fields differently.
-Also, adds methods to convert values back to openerp models.
+Also, adds methods to convert values back to Odoo models.
"""
import ast
@@ -22,22 +24,19 @@ import pytz
from dateutil import parser
from lxml import etree, html
from PIL import Image as I
-import openerp.modules
-
-from odoo import api
+import odoo.modules
-import openerp
-from openerp.osv import orm, fields
-from openerp.tools import ustr, DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT
-from openerp.tools import html_escape as escape
-from openerp.addons.base.ir import ir_qweb
+from odoo import api, models, fields
+from odoo.tools import ustr
+from odoo.tools import html_escape as escape
+from odoo.addons.base.ir import ir_qweb
REMOTE_CONNECTION_TIMEOUT = 2.5
logger = logging.getLogger(__name__)
-class QWeb(orm.AbstractModel):
+class QWeb(models.AbstractModel):
""" QWeb object for rendering editor stuff
"""
_inherit = 'ir.qweb'
@@ -69,7 +68,7 @@ class QWeb(orm.AbstractModel):
#------------------------------------------------------
-class Field(orm.AbstractModel):
+class Field(models.AbstractModel):
_name = 'ir.qweb.field'
_inherit = 'ir.qweb.field'
@@ -98,14 +97,14 @@ class Field(orm.AbstractModel):
return self.value_from_string(element.text_content().strip())
-class Integer(orm.AbstractModel):
+class Integer(models.AbstractModel):
_name = 'ir.qweb.field.integer'
_inherit = 'ir.qweb.field.integer'
value_from_string = int
-class Float(orm.AbstractModel):
+class Float(models.AbstractModel):
_name = 'ir.qweb.field.float'
_inherit = 'ir.qweb.field.float'
@@ -117,7 +116,7 @@ class Float(orm.AbstractModel):
.replace(lang.decimal_point, '.'))
-class ManyToOne(orm.AbstractModel):
+class ManyToOne(models.AbstractModel):
_name = 'ir.qweb.field.many2one'
_inherit = 'ir.qweb.field.many2one'
@@ -146,7 +145,7 @@ class ManyToOne(orm.AbstractModel):
return None
-class Contact(orm.AbstractModel):
+class Contact(models.AbstractModel):
_name = 'ir.qweb.field.contact'
_inherit = 'ir.qweb.field.contact'
@@ -165,18 +164,7 @@ class Contact(orm.AbstractModel):
return node and node.__html__()
-def parse_fuzzy(in_format, value):
- day_first = in_format.find('%d') < in_format.find('%m')
-
- if '%y' in in_format:
- year_first = in_format.find('%y') < in_format.find('%d')
- else:
- year_first = in_format.find('%Y') < in_format.find('%d')
-
- return parser.parse(value, dayfirst=day_first, yearfirst=year_first)
-
-
-class Date(orm.AbstractModel):
+class Date(models.AbstractModel):
_name = 'ir.qweb.field.date'
_inherit = 'ir.qweb.field.date'
@@ -192,11 +180,10 @@ class Date(orm.AbstractModel):
if not value:
return False
- datetime.datetime.strptime(value, DEFAULT_SERVER_DATE_FORMAT)
return value
-class DateTime(orm.AbstractModel):
+class DateTime(models.AbstractModel):
_name = 'ir.qweb.field.datetime'
_inherit = 'ir.qweb.field.datetime'
@@ -205,13 +192,11 @@ class DateTime(orm.AbstractModel):
attrs = super(DateTime, self).attributes(record, field_name, options, values)
value = record[field_name]
if isinstance(value, basestring):
- value = datetime.datetime.strptime(
- value, DEFAULT_SERVER_DATETIME_FORMAT)
+ value = fields.Datetime.from_string(value)
if value:
# convert from UTC (server timezone) to user timezone
- value = fields.datetime.context_timestamp(
- self._cr, self._uid, timestamp=value, context=self.env.context)
- value = value.strftime(DEFAULT_SERVER_DATETIME_FORMAT)
+ value = fields.Datetime.context_timestamp(self, timestamp=value)
+ value = fields.Datetime.to_string(value)
attrs['data-oe-original'] = value
return attrs
@@ -240,10 +225,10 @@ class DateTime(orm.AbstractModel):
exc_info=True)
# format back to string
- return dt.strftime(DEFAULT_SERVER_DATETIME_FORMAT)
+ return fields.Datetime.to_string(dt)
-class Text(orm.AbstractModel):
+class Text(models.AbstractModel):
_name = 'ir.qweb.field.text'
_inherit = 'ir.qweb.field.text'
@@ -252,7 +237,7 @@ class Text(orm.AbstractModel):
return html_to_text(element)
-class Selection(orm.AbstractModel):
+class Selection(models.AbstractModel):
_name = 'ir.qweb.field.selection'
_inherit = 'ir.qweb.field.selection'
@@ -270,7 +255,7 @@ class Selection(orm.AbstractModel):
value, selection))
-class HTML(orm.AbstractModel):
+class HTML(models.AbstractModel):
_name = 'ir.qweb.field.html'
_inherit = 'ir.qweb.field.html'
@@ -284,7 +269,7 @@ class HTML(orm.AbstractModel):
return '\n'.join(content)
-class Image(orm.AbstractModel):
+class Image(models.AbstractModel):
"""
Widget options:
@@ -361,7 +346,7 @@ class Image(orm.AbstractModel):
if sep and sep != '/':
rest.replace(sep, '/')
- path = openerp.modules.get_module_resource(
+ path = odoo.modules.get_module_resource(
match.group('module'), 'static', *(rest.split('/')))
if not path:
@@ -403,7 +388,7 @@ class Image(orm.AbstractModel):
return out.getvalue().encode('base64')
-class Monetary(orm.AbstractModel):
+class Monetary(models.AbstractModel):
_name = 'ir.qweb.field.monetary'
_inherit = 'ir.qweb.field.monetary'
@@ -417,7 +402,7 @@ class Monetary(orm.AbstractModel):
.replace(lang.decimal_point, '.'))
-class Duration(orm.AbstractModel):
+class Duration(models.AbstractModel):
_name = 'ir.qweb.field.duration'
_inherit = 'ir.qweb.field.duration'
@@ -435,14 +420,14 @@ class Duration(orm.AbstractModel):
return float(value)
-class RelativeDatetime(orm.AbstractModel):
+class RelativeDatetime(models.AbstractModel):
_name = 'ir.qweb.field.relative'
_inherit = 'ir.qweb.field.relative'
# get formatting from ir.qweb.field.relative but edition/save from datetime
-class QwebView(orm.AbstractModel):
+class QwebView(models.AbstractModel):
_name = 'ir.qweb.field.qweb'
_inherit = 'ir.qweb.field.qweb'