~openerp-dev/openobject-server/printscreen_group_no_lief

« back to all changes in this revision

Viewing changes to bin/tools/convert.py

[Merge] trunk-dev-framework

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# -*- coding: utf-8 -*-
2
2
##############################################################################
3
 
#    
 
3
#
4
4
#    OpenERP, Open Source Management Solution
5
5
#    Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
6
6
#
15
15
#    GNU Affero General Public License for more details.
16
16
#
17
17
#    You should have received a copy of the GNU Affero General Public License
18
 
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.     
 
18
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
19
19
#
20
20
##############################################################################
21
21
 
369
369
        domain = rec.get('domain','').encode('utf-8') or '{}'
370
370
        context = rec.get('context','').encode('utf-8') or '{}'
371
371
        res_model = rec.get('res_model','').encode('utf-8')
372
 
        src_model = rec.get('src_model','').encode('utf-8')        
 
372
        src_model = rec.get('src_model','').encode('utf-8')
373
373
        view_type = rec.get('view_type','').encode('utf-8') or 'form'
374
374
        view_mode = rec.get('view_mode','').encode('utf-8') or 'tree,form'
375
 
        
 
375
 
376
376
        usage = rec.get('usage','').encode('utf-8')
377
377
        limit = rec.get('limit','').encode('utf-8')
378
378
        auto_refresh = rec.get('auto_refresh','').encode('utf-8')
720
720
                if f_ref=="null":
721
721
                    f_val = False
722
722
                else:
723
 
                    f_val = self.id_get(cr, f_model, f_ref)
 
723
                    if f_name in model._columns \
 
724
                              and model._columns[f_name]._type == 'reference':
 
725
                        val = self.model_id_get(cr, f_model, f_ref)
 
726
                        f_val = val[0] + ',' + str(val[1])
 
727
                    else:
 
728
                        f_val = self.id_get(cr, f_model, f_ref)
724
729
            else:
725
730
                f_val = _eval_xml(self,field, self.pool, cr, self.uid, self.idref)
726
731
                if model._columns.has_key(f_name):
738
743
    def id_get(self, cr, model, id_str):
739
744
        if id_str in self.idref:
740
745
            return self.idref[id_str]
 
746
        return self.model_id_get(cr, model, id_str)[1]
 
747
 
 
748
    def model_id_get(self, cr, model, id_str):
 
749
        model_data_obj = self.pool.get('ir.model.data')
741
750
        mod = self.module
742
751
        if '.' in id_str:
743
752
            mod,id_str = id_str.split('.')
744
 
        result = self.pool.get('ir.model.data')._get_id(cr, self.uid, mod, id_str)
745
 
        res = self.pool.get('ir.model.data').read(cr, self.uid, [result], ['res_id'])
 
753
        result = model_data_obj._get_id(cr, self.uid, mod, id_str)
 
754
        res = model_data_obj.read(cr, self.uid, [result], ['model', 'res_id'])
746
755
        if res and res[0] and res[0]['res_id']:
747
 
            return int(res[0]['res_id'])
 
756
            return res[0]['model'], int(res[0]['res_id'])
748
757
        return False
749
758
 
750
759
    def parse(self, de):