[ADD]:ref attribute support in demo files for reference fields
authorRvo (Open ERP) <rvo@tinyerp.co.in>
Mon, 26 Apr 2010 05:23:45 +0000 (10:53 +0530)
committerRvo (Open ERP) <rvo@tinyerp.co.in>
Mon, 26 Apr 2010 05:23:45 +0000 (10:53 +0530)
bzr revid: rvo@tinyerp.co.in-20100426052345-s351m4qjr717o3m0

bin/addons/base/res/partner/partner_demo.xml
bin/tools/convert.py

index c6de312..f5d70a2 100644 (file)
         <record id="res_partner_asustek_request" model="res.request">
                <field name="name">ASUSTEK-Subject</field>
                <field name="act_to" ref="user_demo"/>
-                       <field name="ref_doc1">res.partner,2</field>
+                       <field name="ref_doc1" ref="res_partner_asus"/>
         </record>
     </data>
 </openerp>
index 36f2740..4a2a879 100644 (file)
@@ -1,6 +1,6 @@
 # -*- coding: utf-8 -*-
 ##############################################################################
-#    
+#
 #    OpenERP, Open Source Management Solution
 #    Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
 #
@@ -15,7 +15,7 @@
 #    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/>.
 #
 ##############################################################################
 
@@ -369,10 +369,10 @@ form: module.record_id""" % (xml_id,)
         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')
@@ -721,6 +721,10 @@ form: module.record_id""" % (xml_id,)
                     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):
@@ -747,6 +751,14 @@ form: module.record_id""" % (xml_id,)
             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" )