From 3ea7d81cf6ec61e367df9df87d42eac00f04fa6f Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Tue, 24 Apr 2007 06:17:56 +0000 Subject: [PATCH] Bugfixed print screen report bzr revid: fp@tinyerp.com-5681448f9d38b057934ae2e3edbfec85bfb924cf --- bin/report/printscreen/ps_form.py | 9 +++++++- bin/report/printscreen/ps_list.py | 37 ++++++++++--------------------- 2 files changed, 20 insertions(+), 26 deletions(-) diff --git a/bin/report/printscreen/ps_form.py b/bin/report/printscreen/ps_form.py index 8968ab55821..b1b6de7106e 100644 --- a/bin/report/printscreen/ps_form.py +++ b/bin/report/printscreen/ps_form.py @@ -62,7 +62,14 @@ class report_printscreen_list(report_int): def create(self, cr, uid, ids, datas, context={}): datas['ids'] = ids - model = pooler.get_pool(cr.dbname).get(datas['model']) + pool = pooler.get_pool(cr.dbname) + model_id = pool.get('ir.model').search(cr, uid, [('model','=',model._name)]) + if model_id: + model_desc = pool.get('ir.model').browse(cr, uid, model_id, context).name + else: + model_desc = model._description + + model = pool.get(datas['model']) result = model.fields_view_get(cr, uid, view_type='tree', context=context) fields_order = self._parse_string(result['arch']) diff --git a/bin/report/printscreen/ps_list.py b/bin/report/printscreen/ps_list.py index a7957f98a63..ce4888e7066 100644 --- a/bin/report/printscreen/ps_list.py +++ b/bin/report/printscreen/ps_list.py @@ -35,8 +35,7 @@ from report import render from xml.dom import minidom import libxml2 import libxslt -import csv; -import sys; + import time, os class report_printscreen_list(report_int): @@ -62,37 +61,25 @@ class report_printscreen_list(report_int): return self._parse_node(dom) def create(self, cr, uid, ids, datas, context={}): + pool = pooler.get_pool(cr.dbname) + model = pool.get(datas['model']) + + model_id = pool.get('ir.model').search(cr, uid, [('model','=',model._name)]) + if model_id: + model_desc = pool.get('ir.model').browse(cr, uid, model_id[0], context).name + else: + model_desc = model._description datas['ids'] = ids model = pooler.get_pool(cr.dbname).get(datas['model']) result = model.fields_view_get(cr, uid, view_type='tree', context=context) + fields_order = self._parse_string(result['arch']) - rows = model.read(cr, uid, datas['ids'], result['fields'].keys() ) - res = self._create_table(uid, datas['ids'], result['fields'], fields_order, rows, context, model._description) + rows = model.read(cr, uid, datas['ids'], result['fields'].keys(), context ) + res = self._create_table(uid, datas['ids'], result['fields'], fields_order, rows, context, model_desc) return (self.obj.get(), 'pdf') def _create_table(self, uid, ids, fields, fields_order, results, context, title=''): - if context['lang']=='fr_FR': - index = 0 - for result in results: - translate_field=[] - french_field = [] - i=0; - for f in fields_order: - if fields[f].has_key('translate') and fields[f]['translate']: - translate_field.append({f:result[f]}) - while i<8: - french_field.append(str(i)) - i+=1 - file_ptr= open('./i18n/fr_FR.csv','r'); - french_data=csv.DictReader(file_ptr,french_field,delimiter=';'); - count = 0 - for tf in translate_field: - for french_dt in french_data: - if french_dt['7'] and french_dt['6'].strip().startswith(tf.items()[0][1].strip()): - result[tf.items()[0][0]] = french_dt['7'].rstrip(',"') - results[index] = result - index+=1; pageSize=[297.0,210.0] impl = minidom.getDOMImplementation()