Skip to content

Instantly share code, notes, and snippets.

@a0c
Created August 30, 2018 10:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save a0c/8b295422f3161bd897cec6fc784ccecd to your computer and use it in GitHub Desktop.
Save a0c/8b295422f3161bd897cec6fc784ccecd to your computer and use it in GitHub Desktop.
Odoo: support company_dependent HTML fields
diff --git a/openerp/addons/base/res/ir_property.py b/openerp/addons/base/res/ir_property.py
index b90d182..7a29ac9 100644
--- a/openerp/addons/base/res/ir_property.py
+++ b/openerp/addons/base/res/ir_property.py
@@ -36,6 +36,7 @@ TYPE2FIELD = {
'boolean': 'value_integer',
'integer': 'value_integer',
'text': 'value_text',
+ 'html': 'value_text',
'binary': 'value_binary',
'many2one': 'value_reference',
'date': 'value_datetime',
@@ -65,6 +66,7 @@ class ir_property(osv.osv):
('boolean', 'Boolean'),
('integer', 'Integer'),
('text', 'Text'),
+ ('html', 'Html'),
('binary', 'Binary'),
('many2one', 'Many2One'),
('date', 'Date'),
@@ -122,7 +124,7 @@ class ir_property(osv.osv):
return super(ir_property, self).create(cr, uid, self._update_values(cr, uid, None, values), context=context)
def get_by_record(self, cr, uid, record, context=None):
- if record.type in ('char', 'text', 'selection'):
+ if record.type in ('char', 'text', 'html', 'selection'):
return record.value_text
elif record.type == 'float':
return record.value_float
@@ -167,7 +169,7 @@ class ir_property(osv.osv):
cid = context.get('force_company')
if not cid:
company = self.pool.get('res.company')
- cid = company._company_default_get(cr, uid, model, res[0], context=context)
+ cid = company._company_default_get(cr, context.get('uid', uid), model, res[0], context=context)
return [('fields_id', '=', res[0]), ('company_id', 'in', [cid, False])]
@@ -226,7 +228,7 @@ class ir_property(osv.osv):
# retrieve the properties corresponding to the given record ids
self._cr.execute("SELECT id FROM ir_model_fields WHERE name=%s AND model=%s", (name, model))
field_id = self._cr.fetchone()[0]
- company_id = self.env.context.get('force_company') or self.env['res.company']._company_default_get(model, field_id)
+ company_id = self.env.context.get('force_company') or self.env['res.company'].sudo(user=self._context.get('uid', self._uid))._company_default_get(model, field_id)
refs = {('%s,%s' % (model, id)): id for id in values}
props = self.search([
('fields_id', '=', field_id),
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment