[FIX] change ManyToOne converter to use read on parent record and pass the browse_record's context through
avoids access rights issue, can be used for automagical formatting of address on res.partner bzr revid: xmo@openerp.com-20131202095638-hoj7sxvax5808irc
This commit is contained in:
parent
3e26abe6ee
commit
103cea2da0
|
@ -693,12 +693,11 @@ class ManyToOneConverter(osv.AbstractModel):
|
|||
_name = 'ir.qweb.field.many2one'
|
||||
_inherit = 'ir.qweb.field'
|
||||
|
||||
def value_to_html(self, cr, uid, value, column, options=None, context=None):
|
||||
# value may be a browse_null
|
||||
if not value: return ''
|
||||
name_got = value._model.name_get(
|
||||
cr, openerp.SUPERUSER_ID, value.id, context=context)[0][1]
|
||||
return werkzeug.utils.escape(name_got).replace('\n', '<br>\n')
|
||||
def record_to_html(self, cr, uid, field_name, record, column, options=None, context=None):
|
||||
[read] = record.read([field_name])
|
||||
_, value = read[field_name]
|
||||
|
||||
return werkzeug.utils.escape(value).replace('\n', '<br>\n')
|
||||
|
||||
class HTMLConverter(osv.AbstractModel):
|
||||
_name = 'ir.qweb.field.html'
|
||||
|
|
|
@ -209,15 +209,27 @@ class TestTextExport(TestBasicExport):
|
|||
|
||||
class TestMany2OneExport(TestBasicExport):
|
||||
def test_many2one(self):
|
||||
converter = self.get_converter('many2one')
|
||||
Sub = self.registry('test_converter.test_model.sub')
|
||||
|
||||
id0 = Sub.create(self.cr, self.uid, {'name': "Foo"})
|
||||
value = converter(Sub.browse(self.cr, self.uid, id0))
|
||||
|
||||
id0 = self.Model.create(self.cr, self.uid, {
|
||||
'many2one': Sub.create(self.cr, self.uid, {'name': "Foo"})
|
||||
})
|
||||
id1 = self.Model.create(self.cr, self.uid, {
|
||||
'many2one': Sub.create(self.cr, self.uid, {'name': "Fo<b>o</b>"})
|
||||
})
|
||||
|
||||
def converter(record):
|
||||
column = self.get_column('many2one')
|
||||
model = self.registry('ir.qweb.field.many2one')
|
||||
|
||||
return model.record_to_html(
|
||||
self.cr, self.uid, 'many2one', record, column)
|
||||
|
||||
value = converter(self.Model.browse(self.cr, self.uid, id0))
|
||||
self.assertEqual(value, "Foo")
|
||||
|
||||
id1 = Sub.create(self.cr, self.uid, {'name': "Fo<b>o</b>"})
|
||||
value = converter(Sub.browse(self.cr, self.uid, id1))
|
||||
value = converter(self.Model.browse(self.cr, self.uid, id1))
|
||||
self.assertEqual(value, "Fo<b>o</b>")
|
||||
|
||||
class TestBinaryExport(TestBasicExport):
|
||||
|
|
Loading…
Reference in New Issue