diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index c23f0c37115..35979cd808e 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -409,7 +409,7 @@ class account_invoice(osv.osv): ''' assert len(ids) == 1, 'This option should only be used for a single id at a time.' self.write(cr, uid, ids, {'sent': True}, context=context) - return self.pool['report'].get_action(cr, uid, [], 'account.report_invoice', context=context) + return self.pool['report'].get_action(cr, uid, ids, 'account.report_invoice', context=context) def action_invoice_sent(self, cr, uid, ids, context=None): ''' diff --git a/addons/account/project/wizard/account_analytic_balance_report.py b/addons/account/project/wizard/account_analytic_balance_report.py index 3a3c301cffc..062945fa53e 100644 --- a/addons/account/project/wizard/account_analytic_balance_report.py +++ b/addons/account/project/wizard/account_analytic_balance_report.py @@ -50,6 +50,6 @@ class account_analytic_balance(osv.osv_memory): datas['form']['active_ids'] = context.get('active_ids', False) - return self.pool['report'].get_action(cr, uid, ids, 'account.report_analyticbalance', data=datas, context=context) + return self.pool['report'].get_action(cr, uid, [], 'account.report_analyticbalance', data=datas, context=context) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/project/wizard/account_analytic_cost_ledger_for_journal_report.py b/addons/account/project/wizard/account_analytic_cost_ledger_for_journal_report.py index 125dfda46fb..ab84af4880a 100644 --- a/addons/account/project/wizard/account_analytic_cost_ledger_for_journal_report.py +++ b/addons/account/project/wizard/account_analytic_cost_ledger_for_journal_report.py @@ -49,6 +49,6 @@ class account_analytic_cost_ledger_journal_report(osv.osv_memory): } datas['form']['active_ids'] = context.get('active_ids', False) - return self.pool['report'].get_action(cr, uid, ids, 'account.report_analyticcostledgerquantity', data=datas, context=context) + return self.pool['report'].get_action(cr, uid, [], 'account.report_analyticcostledgerquantity', data=datas, context=context) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/project/wizard/account_analytic_cost_ledger_report.py b/addons/account/project/wizard/account_analytic_cost_ledger_report.py index 5f00c3c9ac5..978863f5900 100644 --- a/addons/account/project/wizard/account_analytic_cost_ledger_report.py +++ b/addons/account/project/wizard/account_analytic_cost_ledger_report.py @@ -49,6 +49,6 @@ class account_analytic_cost_ledger(osv.osv_memory): datas['form']['active_ids'] = context.get('active_ids', False) - return self.pool['report'].get_action(cr, uid, ids, 'account.report_analyticcostledger', data=datas, context=context) + return self.pool['report'].get_action(cr, uid, [], 'account.report_analyticcostledger', data=datas, context=context) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/project/wizard/account_analytic_inverted_balance_report.py b/addons/account/project/wizard/account_analytic_inverted_balance_report.py index ad79c0b33f6..93946960297 100644 --- a/addons/account/project/wizard/account_analytic_inverted_balance_report.py +++ b/addons/account/project/wizard/account_analytic_inverted_balance_report.py @@ -47,6 +47,6 @@ class account_analytic_inverted_balance(osv.osv_memory): 'form': data } datas['form']['active_ids'] = context.get('active_ids', False) - return self.pool['report'].get_action(cr, uid, ids, 'account.report_invertedanalyticbalance', data=datas, context=context) + return self.pool['report'].get_action(cr, uid, [], 'account.report_invertedanalyticbalance', data=datas, context=context) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/project/wizard/account_analytic_journal_report.py b/addons/account/project/wizard/account_analytic_journal_report.py index f2e406bc3a5..d8790e805d8 100644 --- a/addons/account/project/wizard/account_analytic_journal_report.py +++ b/addons/account/project/wizard/account_analytic_journal_report.py @@ -57,7 +57,7 @@ class account_analytic_journal_report(osv.osv_memory): context2 = context.copy() context2['active_model'] = 'account.analytic.journal' context2['active_ids'] = ids_list - return self.pool['report'].get_action(cr, uid, ids, 'account.report_analyticjournal', data=datas, context=context2) + return self.pool['report'].get_action(cr, uid, [], 'account.report_analyticjournal', data=datas, context=context2) def default_get(self, cr, uid, fields, context=None): if context is None: diff --git a/addons/account/wizard/account_financial_report.py b/addons/account/wizard/account_financial_report.py index 6c1b57fa428..721e47193a2 100644 --- a/addons/account/wizard/account_financial_report.py +++ b/addons/account/wizard/account_financial_report.py @@ -89,6 +89,6 @@ class accounting_report(osv.osv_memory): def _print_report(self, cr, uid, ids, data, context=None): data['form'].update(self.read(cr, uid, ids, ['date_from_cmp', 'debit_credit', 'date_to_cmp', 'fiscalyear_id_cmp', 'period_from_cmp', 'period_to_cmp', 'filter_cmp', 'account_report_id', 'enable_filter', 'label_filter','target_move'], context=context)[0]) - return self.pool['report'].get_action(cr, uid, ids, 'account.report_financial', data=data, context=context) + return self.pool['report'].get_action(cr, uid, [], 'account.report_financial', data=data, context=context) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/wizard/account_report_account_balance.py b/addons/account/wizard/account_report_account_balance.py index 3b9d3c21777..9eba5f24b99 100644 --- a/addons/account/wizard/account_report_account_balance.py +++ b/addons/account/wizard/account_report_account_balance.py @@ -21,6 +21,7 @@ from openerp.osv import fields, osv + class account_balance_report(osv.osv_memory): _inherit = "account.common.account.report" _name = 'account.balance.report' @@ -36,6 +37,6 @@ class account_balance_report(osv.osv_memory): def _print_report(self, cr, uid, ids, data, context=None): data = self.pre_print_report(cr, uid, ids, data, context=context) - return self.pool['report'].get_action(cr, uid, ids, 'account.report_trialbalance', data=data, context=context) + return self.pool['report'].get_action(cr, uid, [], 'account.report_trialbalance', data=data, context=context) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/wizard/account_report_aged_partner_balance.py b/addons/account/wizard/account_report_aged_partner_balance.py index c918a1119fd..d7b57eaba02 100644 --- a/addons/account/wizard/account_report_aged_partner_balance.py +++ b/addons/account/wizard/account_report_aged_partner_balance.py @@ -81,6 +81,6 @@ class account_aged_trial_balance(osv.osv_memory): data['form'].update(res) if data.get('form',False): data['ids']=[data['form'].get('chart_account_id',False)] - return self.pool['report'].get_action(cr, uid, ids, 'account.report_agedpartnerbalance', data=data, context=context) + return self.pool['report'].get_action(cr, uid, [], 'account.report_agedpartnerbalance', data=data, context=context) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/wizard/account_report_central_journal.py b/addons/account/wizard/account_report_central_journal.py index 9f22d49afac..a31fef91ae4 100644 --- a/addons/account/wizard/account_report_central_journal.py +++ b/addons/account/wizard/account_report_central_journal.py @@ -21,6 +21,7 @@ from openerp.osv import fields, osv + class account_central_journal(osv.osv_memory): _name = 'account.central.journal' _description = 'Account Central Journal' @@ -32,6 +33,6 @@ class account_central_journal(osv.osv_memory): def _print_report(self, cr, uid, ids, data, context=None): data = self.pre_print_report(cr, uid, ids, data, context=context) - return self.pool['report'].get_action(cr, uid, ids, 'account.report_centraljournal', data=data, context=context) + return self.pool['report'].get_action(cr, uid, [], 'account.report_centraljournal', data=data, context=context) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/wizard/account_report_general_journal.py b/addons/account/wizard/account_report_general_journal.py index 3d9d55b19c1..c35a5920428 100644 --- a/addons/account/wizard/account_report_general_journal.py +++ b/addons/account/wizard/account_report_general_journal.py @@ -21,6 +21,7 @@ from openerp.osv import fields, osv + class account_general_journal(osv.osv_memory): _inherit = "account.common.journal.report" _name = 'account.general.journal' @@ -32,6 +33,6 @@ class account_general_journal(osv.osv_memory): def _print_report(self, cr, uid, ids, data, context=None): data = self.pre_print_report(cr, uid, ids, data, context=context) - return self.pool['report'].get_action(cr, uid, ids, 'account.report_generaljournal', data=data, context=context) + return self.pool['report'].get_action(cr, uid, [], 'account.report_generaljournal', data=data, context=context) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/wizard/account_report_general_ledger.py b/addons/account/wizard/account_report_general_ledger.py index c75477da40a..5f0a302d720 100644 --- a/addons/account/wizard/account_report_general_ledger.py +++ b/addons/account/wizard/account_report_general_ledger.py @@ -59,6 +59,6 @@ class account_report_general_ledger(osv.osv_memory): if data['form']['landscape'] is False: data['form'].pop('landscape') - return self.pool['report'].get_action(cr, uid, ids, 'account.report_generalledger', data=data, context=context) + return self.pool['report'].get_action(cr, uid, [], 'account.report_generalledger', data=data, context=context) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/wizard/account_report_partner_balance.py b/addons/account/wizard/account_report_partner_balance.py index d4b5fb27d14..7485bec67fe 100644 --- a/addons/account/wizard/account_report_partner_balance.py +++ b/addons/account/wizard/account_report_partner_balance.py @@ -44,6 +44,6 @@ class account_partner_balance(osv.osv_memory): context = {} data = self.pre_print_report(cr, uid, ids, data, context=context) data['form'].update(self.read(cr, uid, ids, ['display_partner'])[0]) - return self.pool['report'].get_action(cr, uid, ids, 'account.report_partnerbalance', data=data, context=context) + return self.pool['report'].get_action(cr, uid, [], 'account.report_partnerbalance', data=data, context=context) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/wizard/account_report_partner_ledger.py b/addons/account/wizard/account_report_partner_ledger.py index eb743e32e4f..38ff6988fd7 100644 --- a/addons/account/wizard/account_report_partner_ledger.py +++ b/addons/account/wizard/account_report_partner_ledger.py @@ -58,7 +58,7 @@ class account_partner_ledger(osv.osv_memory): data = self.pre_print_report(cr, uid, ids, data, context=context) data['form'].update(self.read(cr, uid, ids, ['initial_balance', 'filter', 'page_split', 'amount_currency'])[0]) if data['form'].get('page_split') is True: - return self.pool['report'].get_action(cr, uid, ids, 'account.report_partnerledgerother', data=data, context=context) - return self.pool['report'].get_action(cr, uid, ids, 'account.report_partnerledger', data=data, context=context) + return self.pool['report'].get_action(cr, uid, [], 'account.report_partnerledgerother', data=data, context=context) + return self.pool['report'].get_action(cr, uid, [], 'account.report_partnerledger', data=data, context=context) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/wizard/account_report_print_journal.py b/addons/account/wizard/account_report_print_journal.py index 3aafc63acf4..1f6b6e0cf4d 100644 --- a/addons/account/wizard/account_report_print_journal.py +++ b/addons/account/wizard/account_report_print_journal.py @@ -67,8 +67,8 @@ class account_print_journal(osv.osv_memory): data = self.pre_print_report(cr, uid, ids, data, context=context) data['form'].update(self.read(cr, uid, ids, ['sort_selection'], context=context)[0]) if context.get('sale_purchase_only'): - return self.pool['report'].get_action(cr, uid, ids, 'account.report_salepurchasejournal', data=data, context=context) + return self.pool['report'].get_action(cr, uid, [], 'account.report_salepurchasejournal', data=data, context=context) else: - return self.pool['report'].get_action(cr, uid, ids, 'account.report_journal', data=data, context=context) + return self.pool['report'].get_action(cr, uid, [], 'account.report_journal', data=data, context=context) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/wizard/account_vat.py b/addons/account/wizard/account_vat.py index 5cc5c678df1..e7c806be2f9 100644 --- a/addons/account/wizard/account_vat.py +++ b/addons/account/wizard/account_vat.py @@ -61,6 +61,6 @@ class account_vat_declaration(osv.osv_memory): taxcode = taxcode_obj.browse(cr, uid, [taxcode_id], context=context)[0] datas['form']['company_id'] = taxcode.company_id.id - return self.pool['report'].get_action(cr, uid, ids, 'account.report_vat', data=datas, context=context) + return self.pool['report'].get_action(cr, uid, [], 'account.report_vat', data=datas, context=context) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account_analytic_plans/wizard/account_crossovered_analytic.py b/addons/account_analytic_plans/wizard/account_crossovered_analytic.py index ccac123c681..1bdc91f2995 100644 --- a/addons/account_analytic_plans/wizard/account_crossovered_analytic.py +++ b/addons/account_analytic_plans/wizard/account_crossovered_analytic.py @@ -24,6 +24,7 @@ import time from openerp.osv import fields, osv from openerp.tools.translate import _ + class account_crossovered_analytic(osv.osv_memory): _name = "account.crossovered.analytic" _description = "Print Crossovered Analytic" @@ -65,6 +66,6 @@ class account_crossovered_analytic(osv.osv_memory): 'model': 'account.analytic.account', 'form': data } - return self.pool['report'].get_action(cr, uid, ids, 'account_analytic_plans.report_crossoveredanalyticplans', data=datas, context=context) + return self.pool['report'].get_action(cr, uid, [], 'account_analytic_plans.report_crossoveredanalyticplans', data=datas, context=context) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account_budget/wizard/account_budget_analytic.py b/addons/account_budget/wizard/account_budget_analytic.py index a58b804ebbf..bd3bbdc8d99 100644 --- a/addons/account_budget/wizard/account_budget_analytic.py +++ b/addons/account_budget/wizard/account_budget_analytic.py @@ -46,6 +46,6 @@ class account_budget_analytic(osv.osv_memory): 'form': data } datas['form']['ids'] = datas['ids'] - return self.pool['report'].get_action(cr, uid, ids, 'account_budget.report_analyticaccountbudget', data=datas, context=context) + return self.pool['report'].get_action(cr, uid, [], 'account_budget.report_analyticaccountbudget', data=datas, context=context) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account_budget/wizard/account_budget_crossovered_report.py b/addons/account_budget/wizard/account_budget_crossovered_report.py index 96561df5af0..e47ff5cb421 100644 --- a/addons/account_budget/wizard/account_budget_crossovered_report.py +++ b/addons/account_budget/wizard/account_budget_crossovered_report.py @@ -47,6 +47,6 @@ class account_budget_crossvered_report(osv.osv_memory): } datas['form']['ids'] = datas['ids'] datas['form']['report'] = 'analytic-full' - return self.pool['report'].get_action(cr, uid, ids, 'account_budget.report_crossoveredbudget', data=datas, context=context) + return self.pool['report'].get_action(cr, uid, [], 'account_budget.report_crossoveredbudget', data=datas, context=context) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account_budget/wizard/account_budget_crossovered_summary_report.py b/addons/account_budget/wizard/account_budget_crossovered_summary_report.py index 6b676ecc684..d79e6097787 100644 --- a/addons/account_budget/wizard/account_budget_crossovered_summary_report.py +++ b/addons/account_budget/wizard/account_budget_crossovered_summary_report.py @@ -49,6 +49,6 @@ class account_budget_crossvered_summary_report(osv.osv_memory): } datas['form']['ids'] = datas['ids'] datas['form']['report'] = 'analytic-one' - return self.pool['report'].get_action(cr, uid, ids, 'account_budget.report_crossoveredbudget', data=datas, context=context) + return self.pool['report'].get_action(cr, uid, [], 'account_budget.report_crossoveredbudget', data=datas, context=context) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account_budget/wizard/account_budget_report.py b/addons/account_budget/wizard/account_budget_report.py index 2308b5ff9ac..fb1814a9171 100644 --- a/addons/account_budget/wizard/account_budget_report.py +++ b/addons/account_budget/wizard/account_budget_report.py @@ -47,6 +47,6 @@ class account_budget_report(osv.osv_memory): } datas['form']['ids'] = datas['ids'] datas['form']['report'] = 'analytic-full' - return self.pool['report'].get_action(cr, uid, ids, 'account_budget.report_budget', data=datas, context=context) + return self.pool['report'].get_action(cr, uid, [], 'account_budget.report_budget', data=datas, context=context) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account_check_writing/account_voucher.py b/addons/account_check_writing/account_voucher.py index c3abe28eef0..779ff61be44 100644 --- a/addons/account_check_writing/account_voucher.py +++ b/addons/account_check_writing/account_voucher.py @@ -74,26 +74,17 @@ class account_voucher(osv.osv): def print_check(self, cr, uid, ids, context=None): if not ids: - return {} + raise osv.except_osv(_('Printing error'), _('No check selected ')) - check_layout_report = { - 'top' : 'account.print.check.top', - 'middle' : 'account.print.check.middle', - 'bottom' : 'account.print.check.bottom', + data = { + 'id': ids and ids[0], + 'ids': ids, } - check_layout = self.browse(cr, uid, ids[0], context=context).company_id.check_layout - return { - 'type': 'ir.actions.report.xml', - 'report_name':check_layout_report[check_layout], - 'datas': { - 'model':'account.voucher', - 'id': ids and ids[0] or False, - 'ids': ids and ids or [], - 'report_type': 'pdf' - }, - 'nodestroy': True - } + return self.pool['report'].get_action( + cr, uid, [], 'account_check_writing.report_check', data=data, context=context + ) + def create(self, cr, uid, vals, context=None): if vals.get('amount') and vals.get('journal_id') and 'amount_in_word' not in vals: vals['amount_in_word'] = self._amount_to_text(cr, uid, vals['amount'], vals.get('currency_id') or \ diff --git a/addons/account_check_writing/wizard/account_check_batch_printing.py b/addons/account_check_writing/wizard/account_check_batch_printing.py index c3a13e2c687..bf59557d904 100644 --- a/addons/account_check_writing/wizard/account_check_batch_printing.py +++ b/addons/account_check_writing/wizard/account_check_batch_printing.py @@ -20,9 +20,9 @@ ############################################################################## from openerp.tools.translate import _ - from openerp.osv import fields, osv + class account_check_write(osv.osv_memory): _name = 'account.check.write' _description = 'Prin Check in Batch' @@ -64,23 +64,11 @@ class account_check_write(osv.osv_memory): ir_sequence_obj.write(cr, uid, sequence_id, {'number_next': new_value}) #print the checks - check_layout_report = { - 'top' : 'account.print.check.top', - 'middle' : 'account.print.check.middle', - 'bottom' : 'account.print.check.bottom', + data = { + 'id': voucher_ids and voucher_ids[0], + 'ids': voucher_ids, } - check_layout = voucher_obj.browse(cr, uid, voucher_ids[0], context=context).company_id.check_layout - if not check_layout: - check_layout = 'top' - return { - 'type': 'ir.actions.report.xml', - 'report_name':check_layout_report[check_layout], - 'datas': { - 'model':'account.voucher', - 'ids': voucher_ids, - 'report_type': 'pdf' - }, - 'nodestroy': True - } - + return self.pool['report'].get_action( + cr, uid, [], 'account_check_writing.report_check', data=data, context=context + ) diff --git a/addons/account_followup/account_followup.py b/addons/account_followup/account_followup.py index eae361913ad..82ae10a0937 100644 --- a/addons/account_followup/account_followup.py +++ b/addons/account_followup/account_followup.py @@ -188,7 +188,7 @@ class res_partner(osv.osv): 'model': 'account_followup.followup', 'form': data } - return self.pool['report'].get_action(cr, uid, wizard_partner_ids, 'account_followup.report_followup', data=datas, context=context) + return self.pool['report'].get_action(cr, uid, [], 'account_followup.report_followup', data=datas, context=context) def do_partner_mail(self, cr, uid, partner_ids, context=None): if context is None: diff --git a/addons/report/models/report.py b/addons/report/models/report.py index 8dd8a4dce6f..fed6a2335ee 100644 --- a/addons/report/models/report.py +++ b/addons/report/models/report.py @@ -260,11 +260,17 @@ class Report(osv.Model): def get_action(self, cr, uid, ids, report_name, data=None, context=None): """Return an action of type ir.actions.report.xml. + :param ids: Ids of the records to print (if not used, pass an empty list) :param report_name: Name of the template to generate an action for """ if context is None: context = {} + if ids: + if not isinstance(ids, list): + ids = [ids] + context['active_ids'] = ids + report_obj = self.pool['ir.actions.report.xml'] idreport = report_obj.search(cr, uid, [('report_name', '=', report_name)], context=context) try: @@ -272,7 +278,7 @@ class Report(osv.Model): except IndexError: raise osv.except_osv(_('Bad Report'), _('This report is not loaded into the database.')) - action = { + return { 'context': context, 'data': data, 'type': 'ir.actions.report.xml', @@ -280,7 +286,6 @@ class Report(osv.Model): 'report_type': report.report_type, 'report_file': report.report_file, } - return action #-------------------------------------------------------------------------- # Report generation helpers