# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
domain = rec.get('domain','').encode('utf-8') or '{}'
context = rec.get('context','').encode('utf-8') or '{}'
res_model = rec.get('res_model','').encode('utf-8')
- src_model = rec.get('src_model','').encode('utf-8')
+ src_model = rec.get('src_model','').encode('utf-8')
view_type = rec.get('view_type','').encode('utf-8') or 'form'
view_mode = rec.get('view_mode','').encode('utf-8') or 'tree,form'
-
+
usage = rec.get('usage','').encode('utf-8')
limit = rec.get('limit','').encode('utf-8')
auto_refresh = rec.get('auto_refresh','').encode('utf-8')
f_val = False
else:
f_val = self.id_get(cr, f_model, f_ref)
+ if f_name in model._columns \
+ and model._columns[f_name]._type == 'reference':
+ model_name = self.model_get(cr, f_ref)
+ f_val = model_name + ',' + str(f_val)
else:
f_val = _eval_xml(self,field, self.pool, cr, self.uid, self.idref)
if model._columns.has_key(f_name):
return int(res[0]['res_id'])
return False
+ def model_get(self, cr, id_str):
+ model_data_obj = self.pool.get('ir.model.data')
+ id = model_data_obj.search(cr, self.uid, [('name', '=', id_str)])
+ res = model_data_obj.read(cr, self.uid, id, ['model'])
+ if res and res[0] and res[0]['model']:
+ return res[0]['model']
+ return False
+
def parse(self, de):
if not de.tag in ['terp', 'openerp']:
self.logger.notifyChannel("init", netsvc.LOG_ERROR, "Mismatch xml format" )