[ADD] customizable qweb rendering, add translate flag on fields through this
bzr revid: xmo@openerp.com-20131008092233-9su66923zthl9jyg
This commit is contained in:
@@ -3,3 +3,4 @@
|
||||
import ir_fields
|
||||
import view
|
||||
import website
|
||||
import ir_qweb
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import itertools
|
||||
|
||||
from openerp.osv import orm, fields
|
||||
|
||||
class QWeb(orm.AbstractModel):
|
||||
""" QWeb object for rendering stuff in the website context
|
||||
|
||||
Website-context rendering needs to add some metadata to rendered fields,
|
||||
as well as render a few fields differently.
|
||||
|
||||
Also, add methods to convert values back to openerp models.
|
||||
"""
|
||||
_name = 'website.qweb'
|
||||
_inherit = 'ir.qweb'
|
||||
|
||||
def get_converter_for(self, field_type):
|
||||
return self.pool.get(
|
||||
'website.qweb.field.' + field_type,
|
||||
self.pool['website.qweb.field'])
|
||||
|
||||
class Field(orm.AbstractModel):
|
||||
_name = 'website.qweb.field'
|
||||
_inherit = 'ir.qweb.field'
|
||||
|
||||
def attributes(self, cr, uid, field_name, record, options,
|
||||
source_element, g_att, t_att, qweb_context):
|
||||
column = record._model._all_columns[field_name].column
|
||||
return itertools.chain(
|
||||
super(Field, self).attributes(cr, uid, field_name, record, options,
|
||||
source_element, g_att, t_att,
|
||||
qweb_context),
|
||||
[('data-oe-translate', 1 if column.translate else 0)]
|
||||
)
|
||||
|
||||
class Float(orm.AbstractModel):
|
||||
_name = 'website.qweb.field.float'
|
||||
_inherit = ['website.qweb.field', 'ir.qweb.field.float']
|
||||
|
||||
class Text(orm.AbstractModel):
|
||||
_name = 'website.qweb.field.text'
|
||||
_inherit = ['website.qweb.field', 'ir.qweb.field.text']
|
||||
|
||||
class Selection(orm.AbstractModel):
|
||||
_name = 'website.qweb.field.selection'
|
||||
_inherit = ['website.qweb.field', 'ir.qweb.field.selection']
|
||||
|
||||
class ManyToOne(orm.AbstractModel):
|
||||
_name = 'website.qweb.field.many2one'
|
||||
_inherit = ['website.qweb.field', 'ir.qweb.field.many2one']
|
||||
|
||||
class HTML(orm.AbstractModel):
|
||||
_name = 'website.qweb.field.html'
|
||||
_inherit = ['website.qweb.field', 'ir.qweb.field.html']
|
||||
|
||||
class Image(orm.AbstractModel):
|
||||
_name = 'website.qweb.field.image'
|
||||
_inherit = ['website.qweb.field', 'ir.qweb.field.image']
|
||||
|
||||
class Currency(orm.AbstractModel):
|
||||
_name = 'website.qweb.field.currency'
|
||||
_inherit = ['website.qweb.field', 'ir.qweb.field.currency']
|
||||
@@ -168,8 +168,9 @@ class website(osv.osv):
|
||||
return self.render(cr, uid, ids, 'website.404', qweb_context)
|
||||
|
||||
try:
|
||||
return view.render(cr, uid, "%s.%s" % (module, xmlid),
|
||||
qweb_context, context=context)
|
||||
return view.render(
|
||||
cr, uid, "%s.%s" % (module, xmlid), qweb_context,
|
||||
engine='website.qweb', context=context)
|
||||
except (AccessError, AccessDenied), err:
|
||||
logger.error(err)
|
||||
qweb_context['error'] = err[1]
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_website_public,website,website.model_website,base.group_public,1,0,0,0
|
||||
access_website,website,website.model_website,base.group_user,1,0,0,0
|
||||
access_website,website,website.model_website,base.group_user,1,0,0,0
|
||||
access_website_converter_test,access_website_converter_test,model_website_converter_test,,1,1,1,1
|
||||
access_website_converter_test_sub,access_website_converter_test_sub,model_website_converter_test_sub,,1,1,1,1
|
||||
access_website_qweb,access_website_qweb,model_website_qweb,,0,0,0,0
|
||||
access_website_qweb_field,access_website_qweb_field,model_website_qweb_field,,0,0,0,0
|
||||
access_website_qweb_field_float,access_website_qweb_field_float,model_website_qweb_field_float,,0,0,0,0
|
||||
access_website_qweb_field_text,access_website_qweb_field_text,model_website_qweb_field_text,,0,0,0,0
|
||||
access_website_qweb_field_selection,access_website_qweb_field_selection,model_website_qweb_field_selection,,0,0,0,0
|
||||
access_website_qweb_field_many2one,access_website_qweb_field_many2one,model_website_qweb_field_many2one,,0,0,0,0
|
||||
access_website_qweb_field_html,access_website_qweb_field_html,model_website_qweb_field_html,,0,0,0,0
|
||||
access_website_qweb_field_image,access_website_qweb_field_image,model_website_qweb_field_image,,0,0,0,0
|
||||
access_website_qweb_field_currency,access_website_qweb_field_currency,model_website_qweb_field_currency,,0,0,0,0
|
||||
|
||||
|
Reference in New Issue
Block a user