From eb5fa511ec12eb4914033d6a75868d4cbe5cc2a9 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Fri, 22 Feb 2013 10:35:01 +0100 Subject: [PATCH 01/16] [IMP] product: declare the product_pricelist report using XML only. bzr revid: vmt@openerp.com-20130222093501-c32md2uig2zo7481 --- addons/product/product_report.xml | 3 ++- addons/product/report/product_pricelist.py | 2 -- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/addons/product/product_report.xml b/addons/product/product_report.xml index 6135fe64bca..791063696c4 100644 --- a/addons/product/product_report.xml +++ b/addons/product/product_report.xml @@ -9,6 +9,7 @@ name="product.pricelist" rml="product/report/product_pricelist.rml" menu="False" - auto="False"/> + parser="product.report.product_pricelist.product_pricelist" + /> diff --git a/addons/product/report/product_pricelist.py b/addons/product/report/product_pricelist.py index 5e9f8cf0a8a..9fd32035c64 100644 --- a/addons/product/report/product_pricelist.py +++ b/addons/product/report/product_pricelist.py @@ -126,6 +126,4 @@ class product_pricelist(report_sxw.rml_parse): price = self.formatLang(res[0]['list_price'], digits=sale_price_digits, currency_obj=pricelist.currency_id) return price -report_sxw.report_sxw('report.product.pricelist','product.product','addons/product/report/product_pricelist.rml',parser=product_pricelist) - # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From 76ec85fca1977465a0bb033c895ec77dc622a47e Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Fri, 22 Feb 2013 13:48:23 +0100 Subject: [PATCH 02/16] [IMP] report: use openerp.report.render_report() instead of LocalService().create(). bzr revid: vmt@openerp.com-20130222124823-6u7cqzj3d60buud5 --- addons/edi/models/edi.py | 5 +---- addons/email_template/email_template.py | 9 ++++----- addons/marketing_campaign/marketing_campaign.py | 1 - addons/survey/wizard/survey_answer.py | 6 +++--- addons/survey/wizard/survey_send_invitation.py | 6 +++--- 5 files changed, 11 insertions(+), 16 deletions(-) diff --git a/addons/edi/models/edi.py b/addons/edi/models/edi.py index 4d524e63818..239b543e194 100644 --- a/addons/edi/models/edi.py +++ b/addons/edi/models/edi.py @@ -29,7 +29,6 @@ import urllib2 import openerp import openerp.release as release -import openerp.netsvc as netsvc from openerp.osv import osv, fields from openerp.tools.translate import _ from openerp.tools.safe_eval import safe_eval as eval @@ -418,9 +417,7 @@ class EDIMixin(object): ('usage','=','default')]) if matching_reports: report = ir_actions_report.browse(cr, uid, matching_reports[0]) - report_service = 'report.' + report.report_name - service = netsvc.LocalService(report_service) - (result, format) = service.create(cr, uid, [record.id], {'model': self._name}, context=context) + result, format = openerp.report.render_report(cr, uid, [record.id], report.report_name, {'model': self._name}, context=context) eval_context = {'time': time, 'object': record} if not report.attachment or not eval(report.attachment, eval_context): # no auto-saving of report as attachment, need to do it manually diff --git a/addons/email_template/email_template.py b/addons/email_template/email_template.py index 743384059b4..518c72fa179 100644 --- a/addons/email_template/email_template.py +++ b/addons/email_template/email_template.py @@ -23,7 +23,7 @@ import base64 import logging -from openerp import netsvc +import openerp from openerp.osv import osv, fields from openerp.osv import fields from openerp import tools @@ -331,16 +331,15 @@ class email_template(osv.osv): # Add report in attachments if template.report_template: report_name = self.render_template(cr, uid, template.report_name, template.model, res_id, context=context) - report_service = 'report.' + report_xml_pool.browse(cr, uid, template.report_template.id, context).report_name + report_service = report_xml_pool.browse(cr, uid, template.report_template.id, context).report_name # Ensure report is rendered using template's language ctx = context.copy() if template.lang: ctx['lang'] = self.render_template(cr, uid, template.lang, template.model, res_id, context) - service = netsvc.LocalService(report_service) - (result, format) = service.create(cr, uid, [res_id], {'model': template.model}, ctx) + result, format = openerp.report.render_report(cr, uid, [res_id], report_service, {'model': template.model}, ctx) result = base64.b64encode(result) if not report_name: - report_name = report_service + report_name = 'report.' + report_service ext = "." + format if not report_name.endswith(ext): report_name += ext diff --git a/addons/marketing_campaign/marketing_campaign.py b/addons/marketing_campaign/marketing_campaign.py index d4b05c50127..dfa13259383 100644 --- a/addons/marketing_campaign/marketing_campaign.py +++ b/addons/marketing_campaign/marketing_campaign.py @@ -32,7 +32,6 @@ import re from openerp.addons.decimal_precision import decimal_precision as dp from openerp.osv import fields, osv -from openerp import netsvc from openerp.tools.translate import _ _intervalTypes = { diff --git a/addons/survey/wizard/survey_answer.py b/addons/survey/wizard/survey_answer.py index d935eb92ade..903937af441 100644 --- a/addons/survey/wizard/survey_answer.py +++ b/addons/survey/wizard/survey_answer.py @@ -25,8 +25,9 @@ from lxml import etree import os from time import strftime -from openerp import addons, netsvc, tools +from openerp import addons, tools from openerp.osv import fields, osv +import openerp.report from openerp.tools import to_xml from openerp.tools.translate import _ from openerp.tools.safe_eval import safe_eval @@ -463,8 +464,7 @@ class survey_question_wiz(osv.osv_memory): return (False, Exception('Report name and Resources ids are required !!!')) try: uid = 1 - service = netsvc.LocalService(report_name); - (result, format) = service.create(cr, uid, res_ids, {}, context) + result, format = openerp.report.render_report(cr, uid, res_ids, report_name[len('report.'):], {}, context) ret_file_name = addons.get_module_resource('survey', 'report') + file_name + '.pdf' fp = open(ret_file_name, 'wb+'); fp.write(result); diff --git a/addons/survey/wizard/survey_send_invitation.py b/addons/survey/wizard/survey_send_invitation.py index 4913ca09eab..5d96d0246f9 100644 --- a/addons/survey/wizard/survey_send_invitation.py +++ b/addons/survey/wizard/survey_send_invitation.py @@ -26,8 +26,9 @@ import os import datetime import socket -from openerp import addons, netsvc, tools +from openerp import addons, tools from openerp.osv import fields, osv +import openerp.report from openerp.tools.translate import _ @@ -85,8 +86,7 @@ Thanks,''') % (name, self.pool.get('ir.config_parameter').get_param(cr, uid, 'we return (False, Exception('Report name and Resources ids are required !!!')) try: ret_file_name = addons.get_module_resource('survey', 'report') + file_name + '.pdf' - service = netsvc.LocalService(report_name); - (result, format) = service.create(cr, uid, res_ids, {}, {}) + result, format = openerp.report.render_report(cr, uid, res_ids, report_name[len('report.'):], {}, {}) fp = open(ret_file_name, 'wb+'); fp.write(result); fp.close(); From 5029451905f9e90ca3b85c95505c73de7c2a40a9 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Fri, 22 Feb 2013 14:35:11 +0100 Subject: [PATCH 03/16] [IMP] report yml test: use openerp.report.render_report() instead of LocalService().create(). bzr revid: vmt@openerp.com-20130222133511-y07w3etca8onb73x --- addons/account/test/account_report.yml | 10 +++--- .../test/acount_analytic_plans_report.yml | 7 ++-- .../test/account_payment_report.yml | 5 +-- .../test/account_voucher_report.yml | 5 +-- addons/delivery/test/delivery_cost.yml | 5 +-- addons/hr_expense/test/expense_process.yml | 5 +-- addons/hr_payroll/test/hr_payroll_report.yml | 7 ++-- .../test/hr_timesheet_invoice_report.yml | 5 +-- addons/l10n_fr/test/l10n_fr_report.yml | 10 +++--- .../test/payment_advice.yml | 7 ++-- addons/l10n_lu/test/l10n_lu_report.yml | 5 +-- addons/mrp/test/order_process.yml | 10 +++--- addons/mrp_repair/test/mrp_repair_report.yml | 5 +-- .../test/point_of_sale_report.yml | 35 +++++++++++-------- addons/purchase/test/ui/print_report.yml | 10 +++--- .../test/purchase_requisition.yml | 5 +-- .../test/report_intrastat_report.yml | 5 +-- .../sale_stock/test/picking_order_policy.yml | 5 +-- addons/stock/test/stock_report.yml | 25 +++++++------ 19 files changed, 102 insertions(+), 69 deletions(-) diff --git a/addons/account/test/account_report.yml b/addons/account/test/account_report.yml index 0064a1d2556..7a2d09486e4 100644 --- a/addons/account/test/account_report.yml +++ b/addons/account/test/account_report.yml @@ -14,8 +14,9 @@ - !python {model: account.invoice}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.account.invoice').create(cr, uid, [ref('account.account_invoice_customer0')], {}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref('account.account_invoice_customer0')], 'account.invoice', {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'account-invoice.'+format), 'wb+').write(data) @@ -24,8 +25,9 @@ - !python {model: res.partner}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.account.overdue').create(cr, uid, [ref('base.res_partner_1'),ref('base.res_partner_2'),ref('base.res_partner_12')], {}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref('base.res_partner_1'),ref('base.res_partner_2'),ref('base.res_partner_12')], 'account.overdue', {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'account-report_overdue.'+format), 'wb+').write(data) - diff --git a/addons/account_analytic_plans/test/acount_analytic_plans_report.yml b/addons/account_analytic_plans/test/acount_analytic_plans_report.yml index 7f891332aeb..6aa67a3052a 100644 --- a/addons/account_analytic_plans/test/acount_analytic_plans_report.yml +++ b/addons/account_analytic_plans/test/acount_analytic_plans_report.yml @@ -3,8 +3,9 @@ - !python {model: account.analytic.account}: | import os, time - from openerp import netsvc, tools + import openerp.report + from openerp import tools data_dict = {'model': 'account.analytic.account', 'form': {'date1':time.strftime("%Y-01-01"),'date2':time.strftime('%Y-%m-%d'),'journal_ids':[6,0,(ref('account.cose_journal_sale'))],'ref':ref('account.analytic_root'),'empty_line':True,'id':ref('account.analytic_root'),'context':{}}} - (data, format) = netsvc.LocalService('report.account.analytic.account.crossovered.analytic').create(cr, uid, [ref('account.analytic_root')], data_dict, {}) + data, format = openerp.report.render_report(cr, uid, [ref('account.analytic_root')], 'account.analytic.account.crossovered.analytic', data_dict, {}) if tools.config['test_report_directory']: - file(os.path.join(tools.config['test_report_directory'], 'account_analytic_plans-crossovered_analyitic.'+format), 'wb+').write(data) \ No newline at end of file + file(os.path.join(tools.config['test_report_directory'], 'account_analytic_plans-crossovered_analyitic.'+format), 'wb+').write(data) diff --git a/addons/account_payment/test/account_payment_report.yml b/addons/account_payment/test/account_payment_report.yml index 055e2804ee3..3def62de429 100644 --- a/addons/account_payment/test/account_payment_report.yml +++ b/addons/account_payment/test/account_payment_report.yml @@ -3,7 +3,8 @@ - !python {model: payment.order}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.payment.order').create(cr, uid, [ref('payment_order_1')], {}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref('payment_order_1')], 'payment.order', {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'account_payment-payment_order_report.'+format), 'wb+').write(data) diff --git a/addons/account_voucher/test/account_voucher_report.yml b/addons/account_voucher/test/account_voucher_report.yml index e8dbde413f2..96e96e4bdfd 100644 --- a/addons/account_voucher/test/account_voucher_report.yml +++ b/addons/account_voucher/test/account_voucher_report.yml @@ -20,7 +20,8 @@ - !python {model: account.voucher}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.voucher.cash_receipt.drcr').create(cr, uid, [ref("account_voucher_voucheraxelor0again")], {}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref("account_voucher_voucheraxelor0again")], 'voucher.cash_receipt.drcr', {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'account_voucher-report.'+format), 'wb+').write(data) diff --git a/addons/delivery/test/delivery_cost.yml b/addons/delivery/test/delivery_cost.yml index 8fc7a8b7afe..34ecb165ee1 100644 --- a/addons/delivery/test/delivery_cost.yml +++ b/addons/delivery/test/delivery_cost.yml @@ -32,11 +32,12 @@ - !python {model: stock.picking}: | import os - from openerp import netsvc, tools + import openerp.report + from openerp import tools sale = self.pool.get('sale.order') sale_order = sale.browse(cr, uid, ref("sale.sale_order_6")) ship_ids = [x.id for x in sale_order.picking_ids] - (data, format) = netsvc.LocalService('report.sale.shipping').create(cr, uid, ship_ids, {}, {}) + data, format = openerp.report.render_report(cr, uid, ship_ids, 'sale.shipping', {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'delivery-shipping'+format), 'wb+').write(data) - diff --git a/addons/hr_expense/test/expense_process.yml b/addons/hr_expense/test/expense_process.yml index b563f30afa9..e3fb635a9a3 100644 --- a/addons/hr_expense/test/expense_process.yml +++ b/addons/hr_expense/test/expense_process.yml @@ -42,7 +42,8 @@ - !python {model: hr.expense.expense}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.hr.expense').create(cr, uid, [ref('hr_expense.sep_expenses')], {}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref('hr_expense.sep_expenses')], 'hr.expense', {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'hr_expense-report.'+format), 'wb+').write(data) diff --git a/addons/hr_payroll/test/hr_payroll_report.yml b/addons/hr_payroll/test/hr_payroll_report.yml index 9681134f270..ab4b0fa97e1 100644 --- a/addons/hr_payroll/test/hr_payroll_report.yml +++ b/addons/hr_payroll/test/hr_payroll_report.yml @@ -5,7 +5,8 @@ - !python {model: hr.payslip}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.payslip.pdf').create(cr, uid, [ref('hr_payroll.hr_payslip_salaryslipofbonamyforjune0')], {}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref('hr_payroll.hr_payslip_salaryslipofbonamyforjune0')], 'payslip.pdf', {}, {}) if tools.config['test_report_directory']: - file(os.path.join(tools.config['test_report_directory'], 'hr_payroll-payslip_report.'+format), 'wb+').write(data) \ No newline at end of file + file(os.path.join(tools.config['test_report_directory'], 'hr_payroll-payslip_report.'+format), 'wb+').write(data) diff --git a/addons/hr_timesheet_invoice/test/hr_timesheet_invoice_report.yml b/addons/hr_timesheet_invoice/test/hr_timesheet_invoice_report.yml index 9f7be9e53b3..39c3161f244 100644 --- a/addons/hr_timesheet_invoice/test/hr_timesheet_invoice_report.yml +++ b/addons/hr_timesheet_invoice/test/hr_timesheet_invoice_report.yml @@ -3,8 +3,9 @@ - !python {model: account.analytic.line}: | import os, time - from openerp import netsvc, tools + import openerp.report + from openerp import tools data_dict = {'model': 'ir.ui.menu', 'form': {'date_from': time.strftime('%Y-%m-01'), 'employee_ids': [[6,0,[ref('hr.employee_fp'), ref('hr.employee_qdp'),ref('hr.employee_al')]]], 'journal_ids': [[6,0,[ref('hr_timesheet.analytic_journal')]]], 'date_to': time.strftime('%Y-%m-%d')}} - (data, format) = netsvc.LocalService('report.account.analytic.profit').create(cr, uid, [], data_dict, {}) + data, format = openerp.report.render_report(cr, uid, [], 'account.analytic.profit', data_dict, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'hr_timesheet_invoice-account_analytic_profit_report.'+format), 'wb+').write(data) diff --git a/addons/l10n_fr/test/l10n_fr_report.yml b/addons/l10n_fr/test/l10n_fr_report.yml index 44db53d0a77..25de74dd313 100644 --- a/addons/l10n_fr/test/l10n_fr_report.yml +++ b/addons/l10n_fr/test/l10n_fr_report.yml @@ -3,8 +3,9 @@ - !python {model: account.move.line}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.l10n.fr.bilan').create(cr, uid, [], {'model':'account.move.line', 'form':{'fiscalyear_id': ref('account.data_fiscalyear')}}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [], 'l10n.fr.bilan', {'model':'account.move.line', 'form':{'fiscalyear_id': ref('account.data_fiscalyear')}}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'l10n_fr-bilan_report.'+format), 'wb+').write(data) @@ -13,7 +14,8 @@ - !python {model: account.move.line}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.l10n.fr.compute_resultant').create(cr, uid, [], {'model':'account.move.line', 'form':{'fiscalyear_id': ref('account.data_fiscalyear')}}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [], 'l10n.fr.compute_resultant', {'model':'account.move.line', 'form':{'fiscalyear_id': ref('account.data_fiscalyear')}}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'l10n_fr-compute_resultant_report.'+format), 'wb+').write(data) diff --git a/addons/l10n_in_hr_payroll/test/payment_advice.yml b/addons/l10n_in_hr_payroll/test/payment_advice.yml index ff391dd5363..0b4b16a629c 100644 --- a/addons/l10n_in_hr_payroll/test/payment_advice.yml +++ b/addons/l10n_in_hr_payroll/test/payment_advice.yml @@ -36,7 +36,8 @@ - !python {model: hr.payroll.advice}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.payroll.advice').create(cr, uid, [ref('l10n_in_hr_payroll.payment_advice_1')], {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref('l10n_in_hr_payroll.payment_advice_1')], 'payroll.advice', {}, {}) if tools.config['test_report_directory']: - file(os.path.join(tools.config['test_report_directory'], 'l10n_in_hr_payroll_summary report'+format), 'wb+').write(data) \ No newline at end of file + file(os.path.join(tools.config['test_report_directory'], 'l10n_in_hr_payroll_summary report'+format), 'wb+').write(data) diff --git a/addons/l10n_lu/test/l10n_lu_report.yml b/addons/l10n_lu/test/l10n_lu_report.yml index cacb3015ab2..0ee032d581c 100644 --- a/addons/l10n_lu/test/l10n_lu_report.yml +++ b/addons/l10n_lu/test/l10n_lu_report.yml @@ -9,8 +9,9 @@ - !python {model: res.partner}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.l10n_lu.tax.report.print').create(cr, uid, [], {'model':'ir.ui.menu', 'form':{'tax_code_id': ref('account_tax_code_id_r1'), 'period_id': ref('account.period_1')}}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [], 'l10n_lu.tax.report.print', {'model':'ir.ui.menu', 'form':{'tax_code_id': ref('account_tax_code_id_r1'), 'period_id': ref('account.period_1')}}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'l10n_lu-vat_report.'+format), 'wb+').write(data) diff --git a/addons/mrp/test/order_process.yml b/addons/mrp/test/order_process.yml index 89331d5c255..acbfea48182 100644 --- a/addons/mrp/test/order_process.yml +++ b/addons/mrp/test/order_process.yml @@ -215,9 +215,10 @@ - !python {model: mrp.production}: | import os - from openerp import netsvc, tools + import openerp.report + from openerp import tools order = self.browse(cr, uid, ref("mrp_production_test1")) - (data, format) = netsvc.LocalService('report.bom.structure').create(cr, uid, [order.bom_id.id], {}, {}) + data, format = openerp.report.render_report(cr, uid, [order.bom_id.id], 'bom.structure', {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'mrp-bom_structure_report.'+format), 'wb+').write(data) - @@ -225,8 +226,9 @@ - !python {model: mrp.production}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.mrp.production.order').create(cr, uid, [ref("mrp_production_test1")], {}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref("mrp_production_test1")], 'mrp.production.order', {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'mrp-production_order_report.'+format), 'wb+').write(data) - diff --git a/addons/mrp_repair/test/mrp_repair_report.yml b/addons/mrp_repair/test/mrp_repair_report.yml index 5d66064f61d..166ace684d3 100644 --- a/addons/mrp_repair/test/mrp_repair_report.yml +++ b/addons/mrp_repair/test/mrp_repair_report.yml @@ -3,7 +3,8 @@ - !python {model: mrp.repair}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.repair.order').create(cr, uid, [ref('mrp_repair.mrp_repair_rmrp0')], {}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref('mrp_repair.mrp_repair_rmrp0')], 'repair.order', {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'mrp_repair-order_report.'+format), 'wb+').write(data) diff --git a/addons/point_of_sale/test/point_of_sale_report.yml b/addons/point_of_sale/test/point_of_sale_report.yml index 00a675ac152..af034c8f23e 100644 --- a/addons/point_of_sale/test/point_of_sale_report.yml +++ b/addons/point_of_sale/test/point_of_sale_report.yml @@ -3,8 +3,9 @@ - !python {model: pos.order}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.pos.details_summary').create(cr, uid, [ref('point_of_sale.pos_order_pos1')], {}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref('point_of_sale.pos_order_pos1')], 'pos.details_summary', {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'point_of_sale-details_summary report'+format), 'wb+').write(data) @@ -13,8 +14,9 @@ - !python {model: pos.order}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.pos.invoice').create(cr, uid, [ref('point_of_sale.pos_order_pos1')], {}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref('point_of_sale.pos_order_pos1')], 'pos.invoice', {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'point_of_sale-invoice report'+format), 'wb+').write(data) @@ -23,8 +25,9 @@ - !python {model: pos.order}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.pos.lines').create(cr, uid, [ref('point_of_sale.pos_order_pos1')], {}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref('point_of_sale.pos_order_pos1')], 'pos.lines', {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'point_of_sale-lines report'+format), 'wb+').write(data) @@ -33,8 +36,9 @@ - !python {model: pos.order}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.pos.receipt').create(cr, uid, [ref('point_of_sale.pos_order_pos1')], {}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref('point_of_sale.pos_order_pos1')], 'pos.receipt', {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'point_of_sale-receipt report'+format), 'wb+').write(data) @@ -54,9 +58,10 @@ - !python {model: pos.order}: | import os, time - from openerp import netsvc, tools + import openerp.report + from openerp import tools data_dict = {'model':'ir.ui.menu', 'form':{'date_start': time.strftime('%Y-%m-%d'), 'date_end': time.strftime('%Y-%m-%d'),'user_id':[ref('base.user_root')] }} - (data, format) = netsvc.LocalService('report.pos.sales.user').create(cr, uid, [ref('point_of_sale.pos_order_pos1')], data_dict, {}) + data, format = openerp.report.render_report(cr, uid, [ref('point_of_sale.pos_order_pos1')], 'pos.sales.user', data_dict, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'point_of_sale-sales_user_report'+format), 'wb+').write(data) - @@ -64,8 +69,9 @@ - !python {model: pos.order}: | import os, time - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.pos.payment.report').create(cr, uid, [ref('point_of_sale.pos_order_pos0')], {}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref('point_of_sale.pos_order_pos0')], 'pos.payment.report', {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'point_of_sale-payment_report'+format), 'wb+').write(data) - @@ -73,8 +79,9 @@ - !python {model: pos.order}: | import os, time - from openerp import netsvc, tools + import openerp.report + from openerp import tools data_dict = {'model':'ir.ui.menu', 'form':{'user_id':[ref('base.user_root'),ref('base.user_demo')] }} - (data, format) = netsvc.LocalService('report.pos.payment.report.user').create(cr, uid, [ref('point_of_sale.pos_order_pos1')], data_dict, {}) + data, format = openerp.report.render_report(cr, uid, [ref('point_of_sale.pos_order_pos1')], 'pos.payment.report.user', data_dict, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'point_of_sale-payment_user_report'+format), 'wb+').write(data) diff --git a/addons/purchase/test/ui/print_report.yml b/addons/purchase/test/ui/print_report.yml index c5a9448e497..5ab1854576a 100644 --- a/addons/purchase/test/ui/print_report.yml +++ b/addons/purchase/test/ui/print_report.yml @@ -3,8 +3,9 @@ - !python {model: purchase.order}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.purchase.quotation').create(cr, uid, [ref('purchase.purchase_order_1'),ref('purchase.purchase_order_2')], {}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref('purchase.purchase_order_1'), ref('purchase.purchase_order_2')], 'purchase.quotation', {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'purchase-request_quotation'+format), 'wb+').write(data) - @@ -12,7 +13,8 @@ - !python {model: purchase.order}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.purchase.order').create(cr, uid, [ref('purchase.purchase_order_1'),ref('purchase.purchase_order_2')], {}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref('purchase.purchase_order_1'),ref('purchase.purchase_order_2')], 'purchase.order', {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'purchase-purchase_order_report'+format), 'wb+').write(data) diff --git a/addons/purchase_requisition/test/purchase_requisition.yml b/addons/purchase_requisition/test/purchase_requisition.yml index 8fd36e07d71..ac1e4bea89c 100644 --- a/addons/purchase_requisition/test/purchase_requisition.yml +++ b/addons/purchase_requisition/test/purchase_requisition.yml @@ -83,7 +83,8 @@ - !python {model: purchase.requisition}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.purchase.requisition').create(cr, uid, [ref('purchase_requisition.requisition1')], {}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref('purchase_requisition.requisition1')], 'purchase.requisition', {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'purchase_requisition-purchase_requisition_report.'+format), 'wb+').write(data) diff --git a/addons/report_intrastat/test/report_intrastat_report.yml b/addons/report_intrastat/test/report_intrastat_report.yml index e51bfbbe748..687f605b901 100644 --- a/addons/report_intrastat/test/report_intrastat_report.yml +++ b/addons/report_intrastat/test/report_intrastat_report.yml @@ -14,7 +14,8 @@ - !python {model: account.invoice}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.account.invoice.intrastat').create(cr, uid, [ref('test_invoice_1')], {}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref('test_invoice_1')], 'account.invoice.intrastat', {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'report_intrastat-intrastat_report.'+format), 'wb+').write(data) diff --git a/addons/sale_stock/test/picking_order_policy.yml b/addons/sale_stock/test/picking_order_policy.yml index f761dfb65db..1df3626880f 100644 --- a/addons/sale_stock/test/picking_order_policy.yml +++ b/addons/sale_stock/test/picking_order_policy.yml @@ -162,8 +162,9 @@ - !python {model: sale.order}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.sale.order').create(cr, uid, [ref('sale.sale_order_6')], {}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref('sale.sale_order_6')], 'sale.order', {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'sale-sale_order.'+format), 'wb+').write(data) diff --git a/addons/stock/test/stock_report.yml b/addons/stock/test/stock_report.yml index b1590a4d819..2b062742294 100644 --- a/addons/stock/test/stock_report.yml +++ b/addons/stock/test/stock_report.yml @@ -3,8 +3,9 @@ - !python {model: stock.location}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.lot.stock.overview').create(cr, uid, [ref('location_refrigerator')], {}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref('location_refrigerator')], 'lot.stock.overview', {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'stock-overview'+format), 'wb+').write(data) - @@ -12,8 +13,9 @@ - !python {model: stock.location}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.lot.stock.overview_all').create(cr, uid, [ref('location_refrigerator')], {}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref('location_refrigerator')], 'lot.stock.overview_all', {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'stock-overviewall'+format), 'wb+').write(data) - @@ -21,8 +23,9 @@ - !python {model: stock.inventory}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.stock.inventory.move').create(cr, uid, [ref('stock_inventory_icecream')], {}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref('stock_inventory_icecream')], 'stock.inventory.move', {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'stock-stock_inventory_move.'+format), 'wb+').write(data) - @@ -30,8 +33,9 @@ - !python {model: stock.picking}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.stock.picking.list').create(cr, uid, [ref('outgoing_shipment')], {}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref('outgoing_shipment')], 'stock.picking.list', {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'stock-picking_list'+format), 'wb+').write(data) - @@ -39,8 +43,9 @@ - !python {model: product.product}: | import os - from openerp import netsvc, tools - (data, format) = netsvc.LocalService('report.stock.product.history').create(cr, uid, [ref('product_icecream')], {}, {}) + import openerp.report + from openerp import tools + data, format = openerp.report.render_report(cr, uid, [ref('product_icecream')], 'stock.product.history', {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'stock-product_stock_report.'+format), 'wb+').write(data) From 303b5304c88e8b619fb4b26f0f3f20a1022c7911 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Fri, 22 Feb 2013 16:59:32 +0100 Subject: [PATCH 04/16] [IMP] account: report.account.overdue is now only declared in XML (with the new `parser` attribute). bzr revid: vmt@openerp.com-20130222155932-vv0txsjq3ipzt9nz --- addons/account/account_report.xml | 2 +- addons/account/report/account_print_overdue.py | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/addons/account/account_report.xml b/addons/account/account_report.xml index 0017409f416..6e121c9f5a5 100644 --- a/addons/account/account_report.xml +++ b/addons/account/account_report.xml @@ -11,7 +11,7 @@ - + Date: Fri, 22 Feb 2013 17:10:29 +0100 Subject: [PATCH 05/16] [IMP] removed unused netsvc imports. bzr revid: vmt@openerp.com-20130222161029-zecwro75yra2vz0d --- addons/account/account_financial_report.py | 1 - addons/account/installer.py | 2 +- addons/account/wizard/account_state_open.py | 1 - addons/account_followup/tests/test_account_followup.py | 2 -- addons/account_voucher/test/case5_suppl_usd_usd.yml | 1 - addons/account_voucher/test/sales_payment.yml | 1 - addons/account_voucher/test/sales_receipt.yml | 1 - addons/crm/report/report_businessopp.py | 1 - addons/document_ftp/ftpserver/abstracted_fs.py | 2 +- addons/document_webdav/dav_fs.py | 2 +- addons/document_webdav/webdav_server.py | 1 - addons/fetchmail/fetchmail.py | 1 - addons/hr_attendance/report/attendance_by_month.py | 2 +- addons/hr_evaluation/test/test_hr_evaluation.yml | 4 ++-- addons/hr_payroll_account/hr_payroll_account.py | 1 - addons/hr_timesheet_sheet/test/test_hr_timesheet_sheet.yml | 1 - addons/l10n_fr_rib/bank.py | 1 - addons/mrp_operations/mrp_operations.py | 1 - addons/point_of_sale/report/pos_report.py | 1 - addons/procurement/schedulers.py | 1 - addons/purchase/wizard/purchase_order_group.py | 1 - addons/report_webkit/webkit_report.py | 1 - addons/sale/wizard/sale_line_invoice.py | 1 - addons/sale/wizard/sale_make_invoice.py | 1 - addons/stock/wizard/stock_return_picking.py | 1 - addons/stock_location/procurement_pull.py | 1 - addons/survey/survey.py | 2 +- 27 files changed, 7 insertions(+), 29 deletions(-) diff --git a/addons/account/account_financial_report.py b/addons/account/account_financial_report.py index 1d9a4a794eb..492d1a3419a 100644 --- a/addons/account/account_financial_report.py +++ b/addons/account/account_financial_report.py @@ -24,7 +24,6 @@ from datetime import datetime from dateutil.relativedelta import relativedelta from operator import itemgetter -from openerp import netsvc from openerp import pooler from openerp.osv import fields, osv import openerp.addons.decimal_precision as dp diff --git a/addons/account/installer.py b/addons/account/installer.py index d02e7196d4d..c00b80071b8 100644 --- a/addons/account/installer.py +++ b/addons/account/installer.py @@ -26,7 +26,7 @@ from operator import itemgetter from os.path import join as opj import time -from openerp import netsvc, tools +from openerp import tools from openerp.tools.translate import _ from openerp.osv import fields, osv diff --git a/addons/account/wizard/account_state_open.py b/addons/account/wizard/account_state_open.py index 5d0ae6b66bd..1351b8f0ac1 100644 --- a/addons/account/wizard/account_state_open.py +++ b/addons/account/wizard/account_state_open.py @@ -20,7 +20,6 @@ ############################################################################## from openerp.osv import osv -from openerp import netsvc from openerp.tools.translate import _ class account_state_open(osv.osv_memory): diff --git a/addons/account_followup/tests/test_account_followup.py b/addons/account_followup/tests/test_account_followup.py index 8ddf3f82288..015c68c73d4 100644 --- a/addons/account_followup/tests/test_account_followup.py +++ b/addons/account_followup/tests/test_account_followup.py @@ -5,8 +5,6 @@ import datetime from openerp import tools from openerp.tests.common import TransactionCase -from openerp import netsvc - class TestAccountFollowup(TransactionCase): def setUp(self): """ setUp ***""" diff --git a/addons/account_voucher/test/case5_suppl_usd_usd.yml b/addons/account_voucher/test/case5_suppl_usd_usd.yml index ace88e0bd4d..917e2366f56 100644 --- a/addons/account_voucher/test/case5_suppl_usd_usd.yml +++ b/addons/account_voucher/test/case5_suppl_usd_usd.yml @@ -125,7 +125,6 @@ - !python {model: account.voucher}: | import time - from openerp import netsvc vals = {} voucher_id = self.browse(cr, uid, ref('account_voucher_case_5_supplier_flow')) for item in voucher_id.line_dr_ids: diff --git a/addons/account_voucher/test/sales_payment.yml b/addons/account_voucher/test/sales_payment.yml index 37264de114a..71e605d5651 100644 --- a/addons/account_voucher/test/sales_payment.yml +++ b/addons/account_voucher/test/sales_payment.yml @@ -37,7 +37,6 @@ I will create and post an account voucher of amount 450.0 for the partner Seagate. - !python {model: account.voucher}: | - from openerp import netsvc vals = {} journal_id = self.default_get(cr, uid, ['journal_id']).get('journal_id',None) res = self.onchange_partner_id(cr, uid, [], ref("base.res_partner_19"), journal_id, 0.0, 1, ttype='receipt', date=False) diff --git a/addons/account_voucher/test/sales_receipt.yml b/addons/account_voucher/test/sales_receipt.yml index dc5602753fd..d27083b4513 100644 --- a/addons/account_voucher/test/sales_receipt.yml +++ b/addons/account_voucher/test/sales_receipt.yml @@ -45,7 +45,6 @@ I create and post a voucher payment of amount 30000.0 for the partner Seagate - !python {model: account.voucher}: | - from openerp import netsvc vals = {} journal_id = self.default_get(cr, uid, ['journal_id']).get('journal_id',None) res = self.onchange_partner_id(cr, uid, [], ref("base.res_partner_19"), journal_id, 0.0, 1, ttype='receipt', date=False) diff --git a/addons/crm/report/report_businessopp.py b/addons/crm/report/report_businessopp.py index 45e36cf7046..c057673d57f 100644 --- a/addons/crm/report/report_businessopp.py +++ b/addons/crm/report/report_businessopp.py @@ -20,7 +20,6 @@ ############################################################################## import os, time -from openerp import netsvc import random import StringIO diff --git a/addons/document_ftp/ftpserver/abstracted_fs.py b/addons/document_ftp/ftpserver/abstracted_fs.py index b746f189700..a04beecef83 100644 --- a/addons/document_ftp/ftpserver/abstracted_fs.py +++ b/addons/document_ftp/ftpserver/abstracted_fs.py @@ -9,7 +9,7 @@ import errno import glob import fnmatch -from openerp import pooler, netsvc, sql_db +from openerp import pooler, sql_db import openerp.service from openerp.service import security from openerp.osv import osv diff --git a/addons/document_webdav/dav_fs.py b/addons/document_webdav/dav_fs.py index 1781a02d76e..bba5199121d 100644 --- a/addons/document_webdav/dav_fs.py +++ b/addons/document_webdav/dav_fs.py @@ -37,7 +37,7 @@ except ImportError: from DAV.davcmd import copyone, copytree, moveone, movetree, delone, deltree import openerp -from openerp import pooler, sql_db, netsvc +from openerp import pooler, sql_db import openerp.service from openerp.tools import misc diff --git a/addons/document_webdav/webdav_server.py b/addons/document_webdav/webdav_server.py index 90b42fd8b5f..1804b9bfdb2 100644 --- a/addons/document_webdav/webdav_server.py +++ b/addons/document_webdav/webdav_server.py @@ -36,7 +36,6 @@ import logging import openerp -from openerp import netsvc from dav_fs import openerp_dav_handler from openerp.tools.config import config try: diff --git a/addons/fetchmail/fetchmail.py b/addons/fetchmail/fetchmail.py index fdc37e99ee1..270e50d5655 100644 --- a/addons/fetchmail/fetchmail.py +++ b/addons/fetchmail/fetchmail.py @@ -34,7 +34,6 @@ import zipfile import base64 from openerp import addons -from openerp import netsvc from openerp.osv import fields, osv from openerp import tools from openerp.tools.translate import _ diff --git a/addons/hr_attendance/report/attendance_by_month.py b/addons/hr_attendance/report/attendance_by_month.py index 69ce9511ac2..528de04b8dd 100644 --- a/addons/hr_attendance/report/attendance_by_month.py +++ b/addons/hr_attendance/report/attendance_by_month.py @@ -23,7 +23,7 @@ from datetime import datetime, timedelta from dateutil.relativedelta import relativedelta import time -from openerp import netsvc, pooler +from openerp import pooler from openerp.report import report_sxw from openerp.report.interface import report_rml from openerp.report.interface import toxml diff --git a/addons/hr_evaluation/test/test_hr_evaluation.yml b/addons/hr_evaluation/test/test_hr_evaluation.yml index ba0a77221c9..3244e37302e 100644 --- a/addons/hr_evaluation/test/test_hr_evaluation.yml +++ b/addons/hr_evaluation/test/test_hr_evaluation.yml @@ -101,8 +101,8 @@ - !python {model: hr.evaluation.report}: | import os, time - from openerp import netsvc, tools + from openerp import tools ctx={} data_dict={'state': 'done', 'rating': 2, 'employee_id': ref("hr.employee_fp")} from openerp.tools import test_reports - test_reports.try_report_action(cr, uid, 'hr_evaluation_evaluation_0',wiz_data=data_dict, context=ctx, our_module='hr_evaluation') \ No newline at end of file + test_reports.try_report_action(cr, uid, 'hr_evaluation_evaluation_0',wiz_data=data_dict, context=ctx, our_module='hr_evaluation') diff --git a/addons/hr_payroll_account/hr_payroll_account.py b/addons/hr_payroll_account/hr_payroll_account.py index b15000dd12f..07aff9001b6 100644 --- a/addons/hr_payroll_account/hr_payroll_account.py +++ b/addons/hr_payroll_account/hr_payroll_account.py @@ -20,7 +20,6 @@ # ############################################################################## import time -from openerp import netsvc from datetime import date, datetime, timedelta from openerp.osv import fields, osv diff --git a/addons/hr_timesheet_sheet/test/test_hr_timesheet_sheet.yml b/addons/hr_timesheet_sheet/test/test_hr_timesheet_sheet.yml index f2477b7c3f0..0cffabd0721 100644 --- a/addons/hr_timesheet_sheet/test/test_hr_timesheet_sheet.yml +++ b/addons/hr_timesheet_sheet/test/test_hr_timesheet_sheet.yml @@ -60,7 +60,6 @@ - !python {model: hr_timesheet_sheet.sheet}: | uid = ref('base.user_root') - from openerp import netsvc try: self.button_confirm(cr, uid, [ref('hr_timesheet_sheet_sheet_deddk0')], {"active_ids": [ref("hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form")],"active_id": ref("hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form"), diff --git a/addons/l10n_fr_rib/bank.py b/addons/l10n_fr_rib/bank.py index 8ad86932a34..26e10053141 100644 --- a/addons/l10n_fr_rib/bank.py +++ b/addons/l10n_fr_rib/bank.py @@ -19,7 +19,6 @@ # ############################################################################## -from openerp import netsvc from openerp.osv import fields, osv from openerp.tools.translate import _ diff --git a/addons/mrp_operations/mrp_operations.py b/addons/mrp_operations/mrp_operations.py index cce27d3a6c2..c069def7554 100644 --- a/addons/mrp_operations/mrp_operations.py +++ b/addons/mrp_operations/mrp_operations.py @@ -21,7 +21,6 @@ from openerp.osv import fields from openerp.osv import osv -from openerp import netsvc import time from datetime import datetime from openerp.tools.translate import _ diff --git a/addons/point_of_sale/report/pos_report.py b/addons/point_of_sale/report/pos_report.py index f0dbcfcad88..0179c7bcf45 100644 --- a/addons/point_of_sale/report/pos_report.py +++ b/addons/point_of_sale/report/pos_report.py @@ -21,7 +21,6 @@ from openerp.osv import fields, osv import time -from openerp import netsvc from openerp import tools class report_transaction_pos(osv.osv): diff --git a/addons/procurement/schedulers.py b/addons/procurement/schedulers.py index c09d9a22a16..b377ff34103 100644 --- a/addons/procurement/schedulers.py +++ b/addons/procurement/schedulers.py @@ -21,7 +21,6 @@ from datetime import datetime from dateutil.relativedelta import relativedelta -from openerp import netsvc from openerp import pooler from openerp.osv import osv from openerp.osv import fields diff --git a/addons/purchase/wizard/purchase_order_group.py b/addons/purchase/wizard/purchase_order_group.py index b47f4e608a8..ba6e9f4723c 100644 --- a/addons/purchase/wizard/purchase_order_group.py +++ b/addons/purchase/wizard/purchase_order_group.py @@ -21,7 +21,6 @@ import time from openerp.osv import fields, osv -from openerp import netsvc from openerp import pooler from openerp.osv.orm import browse_record, browse_null from openerp.tools.translate import _ diff --git a/addons/report_webkit/webkit_report.py b/addons/report_webkit/webkit_report.py index b6c273f8852..5c981175a94 100644 --- a/addons/report_webkit/webkit_report.py +++ b/addons/report_webkit/webkit_report.py @@ -42,7 +42,6 @@ from mako.template import Template from mako.lookup import TemplateLookup from mako import exceptions -from openerp import netsvc from openerp import pooler from report_helper import WebKitHelper from openerp.report.report_sxw import * diff --git a/addons/sale/wizard/sale_line_invoice.py b/addons/sale/wizard/sale_line_invoice.py index fe8432fc7db..e6bb46226ab 100644 --- a/addons/sale/wizard/sale_line_invoice.py +++ b/addons/sale/wizard/sale_line_invoice.py @@ -21,7 +21,6 @@ from openerp.osv import osv, fields from openerp.tools.translate import _ -from openerp import netsvc class sale_order_line_make_invoice(osv.osv_memory): _name = "sale.order.line.make.invoice" diff --git a/addons/sale/wizard/sale_make_invoice.py b/addons/sale/wizard/sale_make_invoice.py index 608ae0493df..04d241f6724 100644 --- a/addons/sale/wizard/sale_make_invoice.py +++ b/addons/sale/wizard/sale_make_invoice.py @@ -20,7 +20,6 @@ from openerp.osv import fields, osv from openerp.tools.translate import _ -from openerp import netsvc class sale_make_invoice(osv.osv_memory): _name = "sale.make.invoice" diff --git a/addons/stock/wizard/stock_return_picking.py b/addons/stock/wizard/stock_return_picking.py index bc149f86176..a41633fd4ec 100644 --- a/addons/stock/wizard/stock_return_picking.py +++ b/addons/stock/wizard/stock_return_picking.py @@ -19,7 +19,6 @@ # ############################################################################## -from openerp import netsvc import time from openerp.osv import osv,fields diff --git a/addons/stock_location/procurement_pull.py b/addons/stock_location/procurement_pull.py index 9f5dfb77375..5b030b5befe 100644 --- a/addons/stock_location/procurement_pull.py +++ b/addons/stock_location/procurement_pull.py @@ -19,7 +19,6 @@ ############################################################################## from openerp.osv import osv -from openerp import netsvc from openerp.tools.translate import _ class procurement_order(osv.osv): diff --git a/addons/survey/survey.py b/addons/survey/survey.py index 241b9739016..d0c59159a3d 100644 --- a/addons/survey/survey.py +++ b/addons/survey/survey.py @@ -25,7 +25,7 @@ from dateutil.relativedelta import relativedelta from time import strftime import os -from openerp import netsvc, tools +from openerp import tools from openerp.osv import fields, osv from openerp.tools.translate import _ From 64a35f6859aaecf5bb3de623b1fde70277017ae7 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 25 Feb 2013 14:34:23 +0100 Subject: [PATCH 06/16] [REV] purchase: re-establish a call to netsvc.LocalService to make sure it still works. bzr revid: vmt@openerp.com-20130225133423-8wj7fg4n56o0v3w7 --- addons/purchase/test/ui/print_report.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/addons/purchase/test/ui/print_report.yml b/addons/purchase/test/ui/print_report.yml index 5ab1854576a..94cf49655b6 100644 --- a/addons/purchase/test/ui/print_report.yml +++ b/addons/purchase/test/ui/print_report.yml @@ -13,8 +13,7 @@ - !python {model: purchase.order}: | import os - import openerp.report - from openerp import tools - data, format = openerp.report.render_report(cr, uid, [ref('purchase.purchase_order_1'),ref('purchase.purchase_order_2')], 'purchase.order', {}, {}) + from openerp import netsvc, tools + (data, format) = netsvc.LocalService('report.purchase.order').create(cr, uid, [ref('purchase.purchase_order_1'),ref('purchase.purchase_order_2')], {}, {}) if tools.config['test_report_directory']: file(os.path.join(tools.config['test_report_directory'], 'purchase-purchase_order_report'+format), 'wb+').write(data) From 8ea6553948589f8b0a5150fa49faf6ba4d25fa8f Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Fri, 22 Mar 2013 16:22:07 +0100 Subject: [PATCH 07/16] [REF] report_webkit: removed unneeded __init__. bzr revid: vmt@openerp.com-20130322152207-uxxirv4q3dxjzkpu --- addons/report_webkit/ir_report.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/addons/report_webkit/ir_report.py b/addons/report_webkit/ir_report.py index 8b8f99b8ebf..954fb42645f 100644 --- a/addons/report_webkit/ir_report.py +++ b/addons/report_webkit/ir_report.py @@ -51,9 +51,6 @@ def register_report(name, model, tmpl_path, parser=rml_parse): class ReportXML(osv.osv): - def __init__(self, pool, cr): - super(ReportXML, self).__init__(pool, cr) - def register_all(self,cursor): value = super(ReportXML, self).register_all(cursor) cursor.execute("SELECT * FROM ir_act_report_xml WHERE report_type = 'webkit'") From 36d25e4d781d73ec8eaa9bf896a51cdbbb681fa4 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Fri, 22 Mar 2013 16:23:56 +0100 Subject: [PATCH 08/16] [REF] report_webkit: removed register_all() method: It was wrong: only the auto=True reports should have been registered by that method to respect the framework behavior. And those auto=True reports should not be registered anymore: the framework will always look them up in the database. bzr revid: vmt@openerp.com-20130322152356-n66b7igi68pv78ip --- addons/report_webkit/ir_report.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/addons/report_webkit/ir_report.py b/addons/report_webkit/ir_report.py index 954fb42645f..1aa49e58ea1 100644 --- a/addons/report_webkit/ir_report.py +++ b/addons/report_webkit/ir_report.py @@ -51,14 +51,6 @@ def register_report(name, model, tmpl_path, parser=rml_parse): class ReportXML(osv.osv): - def register_all(self,cursor): - value = super(ReportXML, self).register_all(cursor) - cursor.execute("SELECT * FROM ir_act_report_xml WHERE report_type = 'webkit'") - records = cursor.dictfetchall() - for record in records: - register_report(record['report_name'], record['model'], record['report_rml']) - return value - def unlink(self, cursor, user, ids, context=None): """Delete report and unregister it""" trans_obj = self.pool.get('ir.translation') From 6e146e1551e1bd4f17d057e2feb63a862dde6201 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Fri, 22 Mar 2013 16:27:41 +0100 Subject: [PATCH 09/16] [REF] report_webkit: unlink/create/write are wrong. Their changes are not propagated to other processes in a multi-process setting. It means that now calling these on auto=False webkit reports will not have the desired effect. But really they can be updated to use the new XML parser attribute, and the create/write/unlink features should be on the base class, not in this module. bzr revid: vmt@openerp.com-20130322152741-zdmwga2u7uqsv2c3 --- addons/report_webkit/ir_report.py | 56 ------------------------------- 1 file changed, 56 deletions(-) diff --git a/addons/report_webkit/ir_report.py b/addons/report_webkit/ir_report.py index 1aa49e58ea1..45eca8e6835 100644 --- a/addons/report_webkit/ir_report.py +++ b/addons/report_webkit/ir_report.py @@ -50,62 +50,6 @@ def register_report(name, model, tmpl_path, parser=rml_parse): class ReportXML(osv.osv): - - def unlink(self, cursor, user, ids, context=None): - """Delete report and unregister it""" - trans_obj = self.pool.get('ir.translation') - trans_ids = trans_obj.search( - cursor, - user, - [('type', '=', 'report'), ('res_id', 'in', ids)] - ) - trans_obj.unlink(cursor, user, trans_ids) - - # Warning: we cannot unregister the services at the moment - # because they are shared across databases. Calling a deleted - # report will fail so it's ok. - - res = super(ReportXML, self).unlink( - cursor, - user, - ids, - context - ) - return res - - def create(self, cursor, user, vals, context=None): - "Create report and register it" - res = super(ReportXML, self).create(cursor, user, vals, context) - if vals.get('report_type','') == 'webkit': - # I really look forward to virtual functions :S - register_report( - vals['report_name'], - vals['model'], - vals.get('report_rml', False) - ) - return res - - def write(self, cr, uid, ids, vals, context=None): - "Edit report and manage it registration" - if isinstance(ids, (int, long)): - ids = [ids,] - for rep in self.browse(cr, uid, ids, context=context): - if rep.report_type != 'webkit': - continue - if vals.get('report_name', False) and \ - vals['report_name'] != rep.report_name: - report_name = vals['report_name'] - else: - report_name = rep.report_name - - register_report( - report_name, - vals.get('model', rep.model), - vals.get('report_rml', rep.report_rml) - ) - res = super(ReportXML, self).write(cr, uid, ids, vals, context) - return res - _name = 'ir.actions.report.xml' _inherit = 'ir.actions.report.xml' _columns = { From 6c25104e4a742bbac10968a622ec273fc46be788 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Fri, 22 Mar 2013 16:28:31 +0100 Subject: [PATCH 10/16] [REF] report_webkit: removed unneeded _name and instanciation. bzr revid: vmt@openerp.com-20130322152831-reep4p8lx7aqp6so --- addons/report_webkit/ir_report.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/addons/report_webkit/ir_report.py b/addons/report_webkit/ir_report.py index 45eca8e6835..cdef0b78e58 100644 --- a/addons/report_webkit/ir_report.py +++ b/addons/report_webkit/ir_report.py @@ -50,7 +50,6 @@ def register_report(name, model, tmpl_path, parser=rml_parse): class ReportXML(osv.osv): - _name = 'ir.actions.report.xml' _inherit = 'ir.actions.report.xml' _columns = { 'webkit_header': fields.property( @@ -69,6 +68,4 @@ class ReportXML(osv.osv): but memory and disk usage is wider') } -ReportXML() - # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From 59445aedeaaa174a2d29da98f654ee88a189e587 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Fri, 22 Mar 2013 16:34:05 +0100 Subject: [PATCH 11/16] [REF] report_webkit: removed unused code, updated code. bzr revid: vmt@openerp.com-20130322153405-6x4egthrqwf2tlev --- addons/report_webkit/ir_report.py | 47 +++++++++---------------------- 1 file changed, 13 insertions(+), 34 deletions(-) diff --git a/addons/report_webkit/ir_report.py b/addons/report_webkit/ir_report.py index cdef0b78e58..db35e56e9b4 100644 --- a/addons/report_webkit/ir_report.py +++ b/addons/report_webkit/ir_report.py @@ -29,43 +29,22 @@ # ############################################################################## -from openerp.osv import fields, osv -import openerp.report.interface -from openerp.report.report_sxw import rml_parse +from openerp.osv import fields, orm -from webkit_report import WebKitParser - -def register_report(name, model, tmpl_path, parser=rml_parse): - """Register the report into the services""" - name = 'report.%s' % name - if name in openerp.report.interface.report_int._reports: - service = openerp.report.interface.report_int._reports[name] - if isinstance(service, WebKitParser): - #already instantiated properly, skip it - return - if hasattr(service, 'parser'): - parser = service.parser - del openerp.report.interface.report_int._reports[name] - WebKitParser(name, model, tmpl_path, parser=parser) - - -class ReportXML(osv.osv): +class ir_actions_report_xml(orm.Model): _inherit = 'ir.actions.report.xml' _columns = { - 'webkit_header': fields.property( - 'ir.header_webkit', - type='many2one', - relation='ir.header_webkit', - string='Webkit Header', - help="The header linked to the report", - view_load=True, - required=True - ), - 'webkit_debug' : fields.boolean('Webkit debug', help="Enable the webkit engine debugger"), - 'report_webkit_data': fields.text('Webkit Template', help="This template will be used if the main report file is not found"), - 'precise_mode':fields.boolean('Precise Mode', help='This mode allow more precise element \ - position as each object is printed on a separate HTML.\ - but memory and disk usage is wider') + 'webkit_header': fields.property('ir.header_webkit', + type='many2one', relation='ir.header_webkit', + string='Webkit Header', help="The header linked to the report", + view_load=True, required=True), + 'webkit_debug': fields.boolean('Webkit debug', + help="Enable the webkit engine debugger"), + 'report_webkit_data': fields.text('Webkit Template', + help="This template will be used if the main report file is not found"), + 'precise_mode': fields.boolean('Precise Mode', + help="This mode allow more precise element position as each object" + " is printed on a separate HTML but memory and disk usage are wider.") } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From 56a1787b9a8a8a5e31e7b823a92dda4314129257 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Fri, 22 Mar 2013 17:20:45 +0100 Subject: [PATCH 12/16] [REF]: report_webkit: override render_report() for the webkit report. bzr revid: vmt@openerp.com-20130322162045-wmy2fyvvo0rqwc9p --- addons/report_webkit/ir_report.py | 39 +++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/addons/report_webkit/ir_report.py b/addons/report_webkit/ir_report.py index db35e56e9b4..676b7c6088d 100644 --- a/addons/report_webkit/ir_report.py +++ b/addons/report_webkit/ir_report.py @@ -29,8 +29,11 @@ # ############################################################################## +import openerp from openerp.osv import fields, orm +from webkit_report import WebKitParser + class ir_actions_report_xml(orm.Model): _inherit = 'ir.actions.report.xml' _columns = { @@ -47,4 +50,40 @@ class ir_actions_report_xml(orm.Model): " is printed on a separate HTML but memory and disk usage are wider.") } + def render_report(self, cr, uid, res_ids, name, data, context=None): + """ + Look up a report definition and render the report for the provided IDs. + """ + import operator + import os + opj = os.path.join + + # First lookup in the deprecated place, because if the report definition + # has not been updated, it is more likely the correct definition is there. + # Only reports with custom parser sepcified in Python are still there. + if 'report.' + name in openerp.report.interface.report_int._reports: + new_report = openerp.report.interface.report_int._reports['report.' + name] + if not isinstance(new_report, WebKitParser): + new_report = None + else: + cr.execute("SELECT * FROM ir_act_report_xml WHERE report_name=%s and report_type=%s", (name, 'webkit')) + r = cr.dictfetchone() + if r: + if r['parser']: + parser = operator.attrgetter(r['parser'])(openerp.addons) + kwargs = { 'parser': parser } + else: + kwargs = {} + + new_report = WebKitParser('report.'+r['report_name'], + r['model'], opj('addons',r['report_rml'] or '/'), + header=r['header'], register=False, **kwargs) + else: + new_report = None + + if new_report: + return new_report + else: + super(ir_actions_report_xml, self).render_report(cr, uid, res_ids, name, data, context) + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From fb75458fe70417b03eb55052134aeb5fb6ee147f Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Fri, 22 Mar 2013 17:22:04 +0100 Subject: [PATCH 13/16] [REF] base_report_designer: modifying auto=True reports do not need to update any local registry. bzr revid: vmt@openerp.com-20130322162204-y994f0uih5qmd9gf --- addons/base_report_designer/base_report_designer.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/addons/base_report_designer/base_report_designer.py b/addons/base_report_designer/base_report_designer.py index 180a534b07f..92d5a44e465 100644 --- a/addons/base_report_designer/base_report_designer.py +++ b/addons/base_report_designer/base_report_designer.py @@ -57,11 +57,6 @@ class report_xml(osv.osv): 'report_rml_content': str(sxw2rml(sxwval, xsl=fp.read())), }) - # FIXME: this should be moved to an override of the ir.actions.report_xml.create() method - cr.commit() - pool.get('ir.actions.report.xml').register_all(cr) - openerp.modules.registry.RegistryManager.signal_registry_change(cr.dbname) - return True def report_get(self, cr, uid, report_id, context=None): From 3bee1cc4cd24858d1b0b5616439d05e1a1f5ebcf Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 25 Mar 2013 13:36:44 +0100 Subject: [PATCH 14/16] [FIX] report_webkit: the registering function was passing the correct parser to the Report class, but in fact, its default was wrong (None would never work). bzr revid: vmt@openerp.com-20130325123644-v3a9p6oj8qh2a6tb --- addons/report_webkit/webkit_report.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/report_webkit/webkit_report.py b/addons/report_webkit/webkit_report.py index da05f73902e..f22b338ec18 100644 --- a/addons/report_webkit/webkit_report.py +++ b/addons/report_webkit/webkit_report.py @@ -116,12 +116,12 @@ class WebKitParser(report_sxw): """Custom class that use webkit to render HTML reports Code partially taken from report openoffice. Thanks guys :) """ - def __init__(self, name, table, rml=False, parser=False, - header=True, store=False): + def __init__(self, name, table, rml=False, parser=rml_parse, + header=True, store=False, register=True): self.parser_instance = False self.localcontext = {} report_sxw.__init__(self, name, table, rml, parser, - header, store) + header, store, register=register) def get_lib(self, cursor, uid): """Return the lib wkhtml path""" From 0a0cad1622d344fd147787c464f9fee1dc8714a6 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 25 Mar 2013 13:37:41 +0100 Subject: [PATCH 15/16] [REF] report_webkit: make it possible for LocalService to discover the webkit reports that only live in the database. bzr revid: vmt@openerp.com-20130325123741-cg0639iz7as0pzsu --- addons/report_webkit/ir_report.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/report_webkit/ir_report.py b/addons/report_webkit/ir_report.py index 676b7c6088d..4b64a54c420 100644 --- a/addons/report_webkit/ir_report.py +++ b/addons/report_webkit/ir_report.py @@ -50,9 +50,9 @@ class ir_actions_report_xml(orm.Model): " is printed on a separate HTML but memory and disk usage are wider.") } - def render_report(self, cr, uid, res_ids, name, data, context=None): + def _lookup_report(self, cr, name): """ - Look up a report definition and render the report for the provided IDs. + Look up a report definition. """ import operator import os @@ -60,7 +60,7 @@ class ir_actions_report_xml(orm.Model): # First lookup in the deprecated place, because if the report definition # has not been updated, it is more likely the correct definition is there. - # Only reports with custom parser sepcified in Python are still there. + # Only reports with custom parser specified in Python are still there. if 'report.' + name in openerp.report.interface.report_int._reports: new_report = openerp.report.interface.report_int._reports['report.' + name] if not isinstance(new_report, WebKitParser): @@ -84,6 +84,6 @@ class ir_actions_report_xml(orm.Model): if new_report: return new_report else: - super(ir_actions_report_xml, self).render_report(cr, uid, res_ids, name, data, context) + return super(ir_actions_report_xml, self)._lookup_report(cr, name) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From b3514c7192d9c13a1409ffb235296352f486b680 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 25 Mar 2013 15:52:30 +0100 Subject: [PATCH 16/16] [REF] hr_expense: use the new Model.print_report(). bzr revid: vmt@openerp.com-20130325145230-lyc83krt9am6dcf3 --- addons/hr_expense/test/expense_process.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/addons/hr_expense/test/expense_process.yml b/addons/hr_expense/test/expense_process.yml index c13ee320a9b..e9339e24a95 100644 --- a/addons/hr_expense/test/expense_process.yml +++ b/addons/hr_expense/test/expense_process.yml @@ -36,9 +36,7 @@ I print a report of the expenses. - !python {model: hr.expense.expense}: | - import os - import openerp.report - from openerp import tools - data, format = openerp.report.render_report(cr, uid, [ref('hr_expense.sep_expenses')], 'hr.expense', {}, {}) - if tools.config['test_report_directory']: - file(os.path.join(tools.config['test_report_directory'], 'hr_expense-report.'+format), 'wb+').write(data) + data, format = self.print_report(cr, uid, [ref('hr_expense.sep_expenses')], 'hr.expense', {}, {}) + if openerp.tools.config['test_report_directory']: + import os + file(os.path.join(openerp.tools.config['test_report_directory'], 'hr_expense-report.'+format), 'wb+').write(data)