diff --git a/addons/account/data/payment_receipt_data.xml b/addons/account/data/payment_receipt_data.xml
index 2b15ae5427a..7cfcc760e18 100644
--- a/addons/account/data/payment_receipt_data.xml
+++ b/addons/account/data/payment_receipt_data.xml
@@ -6,7 +6,7 @@
Print Receipt
client_action_multi
-
+
action
account.payment
diff --git a/addons/account/test/account_report.yml b/addons/account/test/account_report.yml
index 7ea73c1dd75..b3ac442aa81 100644
--- a/addons/account/test/account_report.yml
+++ b/addons/account/test/account_report.yml
@@ -14,9 +14,8 @@
-
!python {model: account.invoice, id: False}: |
import os
- import odoo.report
from odoo import tools
- data, format = odoo.report.render_report(self.env.cr, self.env.uid, [ref('account.account_invoice_customer0')], 'account.report_invoice', {}, {})
+ data, format = ref('account.report_invoice').render(ref('account.account_invoice_customer0'))
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'account-invoice.'+format), 'wb+').write(data)
-
@@ -24,9 +23,8 @@
-
!python {model: res.partner, id: False}: |
import os
- import odoo.report
from odoo import tools
- data, format = odoo.report.render_report(self.env.cr, self.env.uid, [ref('base.res_partner_1'),ref('base.res_partner_2'),ref('base.res_partner_12')], 'account.report_overdue', {}, {})
+ data, format = ref('account.report_overdue').render([ref('base.res_partner_1'),ref('base.res_partner_2'),ref('base.res_partner_12')])
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/views/account_report.xml b/addons/account/views/account_report.xml
index 9d3e9b215c9..ddf5cb21cb0 100644
--- a/addons/account/views/account_report.xml
+++ b/addons/account/views/account_report.xml
@@ -13,7 +13,7 @@
attachment="(object.state in ('open','paid')) and ('INV'+(object.number or '').replace('/','')+'.pdf')"
/>
-
+
(object.type == 'out_invoice' and object.state == 'draft' and 'Draft Invoice' or
object.type == 'out_invoice' and object.state in ('open','paid') and 'Invoice'+'-'+(object.number) or
object.type == 'out_refund' and object.state == 'draft' and 'Credit Note' or
@@ -33,7 +33,7 @@
file="account.report_invoice_duplicate"
attachment_use="False"
/>
-
+
(object.type == 'out_invoice' and object.state == 'draft' and 'Duplicate Invoice' or
object.type == 'out_invoice' and object.state in ('open','paid') and 'Duplicate Invoice'+'-'+(object.number) or
object.type == 'out_refund' and object.state == 'draft' and 'Duplicate Credit Note' or
@@ -52,7 +52,7 @@
name="account.report_overdue"
file="account.report_overdue"
/>
-
+
'Due Payments'+'-'+(object.name)
diff --git a/addons/base_import_module/tests/test_module/test.xml b/addons/base_import_module/tests/test_module/test.xml
index 8e3df933e2a..80e24a4293b 100644
--- a/addons/base_import_module/tests/test_module/test.xml
+++ b/addons/base_import_module/tests/test_module/test.xml
@@ -7,7 +7,7 @@
Hagrid
- My Company Tagline
+ My Company Tagline
diff --git a/addons/base_setup/models/res_config.py b/addons/base_setup/models/res_config.py
index ceeb7c3bdbf..8db758ccc31 100644
--- a/addons/base_setup/models/res_config.py
+++ b/addons/base_setup/models/res_config.py
@@ -28,7 +28,7 @@ class BaseConfigSettings(models.TransientModel):
" * Checked : Partners are visible for every companies, even if a company is defined on the partner.\n"
" * Unchecked : Each company can see only its partner (partners where company is defined). Partners not related to a company are visible for all companies.")
default_custom_report_footer = fields.Boolean("Custom Report Footer")
- rml_footer = fields.Text(related="company_id.rml_footer", string='Custom Report Footer', help="Footer text displayed at the bottom of all reports.")
+ report_footer = fields.Text(related="company_id.report_footer", string='Custom Report Footer', help="Footer text displayed at the bottom of all reports.")
group_multi_currency = fields.Boolean(string='Allow multi currencies',
implied_group='base.group_multi_currency',
help="Allows to work in a multi currency environment")
diff --git a/addons/event/report/event_event_reports.xml b/addons/event/report/event_event_reports.xml
index 2f81b7b0e3b..341d69702c2 100644
--- a/addons/event/report/event_event_reports.xml
+++ b/addons/event/report/event_event_reports.xml
@@ -25,7 +25,7 @@
name="event.event_registration_report_template_badge"
file="event.event_registration_report_template_badge"
paperformat="event.paperformat_euro_lowmargin"/>
-
+
'Registration Event'+'-'+(object.name)
diff --git a/addons/hr_attendance/report/hr_employee_badge.xml b/addons/hr_attendance/report/hr_employee_badge.xml
index 8da14a63e85..0ee61507e08 100644
--- a/addons/hr_attendance/report/hr_employee_badge.xml
+++ b/addons/hr_attendance/report/hr_employee_badge.xml
@@ -7,7 +7,7 @@
report_type="qweb-pdf"
name="hr_attendance.print_employee_badge"
file="hr_attendance.print_employee_badge"/>
-
+
'Print Badge'+'-'+(object.name)
diff --git a/addons/hr_expense/report/report_expense_sheet.xml b/addons/hr_expense/report/report_expense_sheet.xml
index e033d7920c1..6511dcbcf0c 100644
--- a/addons/hr_expense/report/report_expense_sheet.xml
+++ b/addons/hr_expense/report/report_expense_sheet.xml
@@ -106,7 +106,7 @@
name="hr_expense.report_expense_sheet"
file="hr_expense.report_expense_sheet"
/>
-
+
'Expenses'+'-'+(object.employee_id.name)+'-'+(object.name)
diff --git a/addons/hr_holidays/report/hr_holidays_reports.xml b/addons/hr_holidays/report/hr_holidays_reports.xml
index b033dbf3679..bea309eb923 100644
--- a/addons/hr_holidays/report/hr_holidays_reports.xml
+++ b/addons/hr_holidays/report/hr_holidays_reports.xml
@@ -10,7 +10,7 @@
file="hr_holidays.report_holidayssummary"
menu="False"/>
-
+
diff --git a/addons/hr_payroll/tests/test_payslip_flow.py b/addons/hr_payroll/tests/test_payslip_flow.py
index 7ab0fad275a..54de80bfbba 100644
--- a/addons/hr_payroll/tests/test_payslip_flow.py
+++ b/addons/hr_payroll/tests/test_payslip_flow.py
@@ -2,10 +2,7 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import os
-from datetime import datetime
-from dateutil.relativedelta import relativedelta
-from odoo.report import render_report
from odoo.tools import config, test_reports
from odoo.addons.hr_payroll.tests.common import TestPayslipBase
@@ -72,14 +69,14 @@ class TestPayslipFlow(TestPayslipBase):
})
# I print the payslip report
- data, format = render_report(self.env.cr, self.env.uid, richard_payslip.ids, 'hr_payroll.report_payslip', {}, {})
+ data, data_format = self.env.ref('hr_payroll.action_report_payslip').render(richard_payslip.ids)
if config.get('test_report_directory'):
- open(os.path.join(config['test_report_directory'], 'hr_payroll-payslip.'+ format), 'wb+').write(data)
+ open(os.path.join(config['test_report_directory'], 'hr_payroll-payslip.'+ data_format), 'wb+').write(data)
# I print the payslip details report
- data, format = render_report(self.env.cr, self.env.uid, richard_payslip.ids, 'hr_payroll.report_payslipdetails', {}, {})
+ data, data_format = self.env.ref('hr_payroll.payslip_details_report').render(richard_payslip.ids)
if config.get('test_report_directory'):
- open(os.path.join(config['test_report_directory'], 'hr_payroll-payslipdetails.'+ format), 'wb+').write(data)
+ open(os.path.join(config['test_report_directory'], 'hr_payroll-payslipdetails.'+ data_format), 'wb+').write(data)
# I print the contribution register report
context = {'model': 'hr.contribution.register', 'active_ids': [self.ref('hr_payroll.hr_houserent_register')]}
diff --git a/addons/hr_payroll/views/hr_payroll_report.xml b/addons/hr_payroll/views/hr_payroll_report.xml
index c6e02324f0a..6b1e8a94637 100644
--- a/addons/hr_payroll/views/hr_payroll_report.xml
+++ b/addons/hr_payroll/views/hr_payroll_report.xml
@@ -17,7 +17,7 @@
name="hr_payroll.report_payslip"
file="hr_payroll.report_payslip"
/>
-
+
(object.employee_id.name)+'-'+'Payslip'
-
+
(object.name)
diff --git a/addons/l10n_ca/data/res_company_data.xml b/addons/l10n_ca/data/res_company_data.xml
index 11adcbd01d4..fdc19388202 100644
--- a/addons/l10n_ca/data/res_company_data.xml
+++ b/addons/l10n_ca/data/res_company_data.xml
@@ -1,7 +1,6 @@
- us_letter
diff --git a/addons/l10n_ch/report/isr_report.xml b/addons/l10n_ch/report/isr_report.xml
index 23ff2f70758..1cabbd8c056 100644
--- a/addons/l10n_ch/report/isr_report.xml
+++ b/addons/l10n_ch/report/isr_report.xml
@@ -27,7 +27,7 @@
menu="False"
/>
-
+
'ISR-' + object.number
-
+
Invoice
pos.order
qweb-pdf
@@ -18,7 +18,7 @@
'Invoice'+'-'+(object.name)
-
+
Sales Details
report.point_of_sale.details
qweb-pdf
diff --git a/addons/product/report/product_reports.xml b/addons/product/report/product_reports.xml
index 2c7a58336d0..0e48f95aa27 100644
--- a/addons/product/report/product_reports.xml
+++ b/addons/product/report/product_reports.xml
@@ -8,7 +8,7 @@
report_type="qweb-pdf"
name="product.report_productlabel"
file="product.report_productlabel"/>
-
+
'Products Labels'+'-'+(object.name)
@@ -19,7 +19,7 @@
report_type="qweb-pdf"
name="product.report_producttemplatelabel"
file="product.report_producttemplatelabel"/>
-
+
'Products Labels'+'-'+(object.name)
diff --git a/addons/purchase/report/purchase_reports.xml b/addons/purchase/report/purchase_reports.xml
index a266c4d0147..33524f2342c 100644
--- a/addons/purchase/report/purchase_reports.xml
+++ b/addons/purchase/report/purchase_reports.xml
@@ -8,7 +8,7 @@
name="purchase.report_purchaseorder"
file="purchase.report_purchaseorder"
/>
-
+
(object.state in ('draft', 'sent') and 'Request for Quotation'+'-'+(object.name) or 'Purchase Order'+'-'+(object.name))
@@ -20,7 +20,7 @@
name="purchase.report_purchasequotation"
file="purchase.report_purchasequotation"
/>
-
+
'Request for Quotation'+'-'+(object.name)
diff --git a/addons/purchase_requisition/report/purchase_requisition_report.xml b/addons/purchase_requisition/report/purchase_requisition_report.xml
index 98b73254c11..0870c38afb0 100644
--- a/addons/purchase_requisition/report/purchase_requisition_report.xml
+++ b/addons/purchase_requisition/report/purchase_requisition_report.xml
@@ -9,7 +9,7 @@
name="purchase_requisition.report_purchaserequisitions"
file="purchase_requisition.report.report_purchaserequisitions"
/>
-
+
'Tender'+'-'+(object.name)
diff --git a/addons/report/controllers/main.py b/addons/report/controllers/main.py
index 7e0fd9f8123..43771252ccb 100644
--- a/addons/report/controllers/main.py
+++ b/addons/report/controllers/main.py
@@ -110,11 +110,6 @@ class ReportController(Controller):
response.headers.add('Content-Disposition', content_disposition(filename))
response.set_cookie('fileToken', token)
return response
- elif type == 'controller':
- reqheaders = Headers(request.httprequest.headers)
- response = Client(request.httprequest.app, BaseResponse).get(url, headers=reqheaders, follow_redirects=True)
- response.set_cookie('fileToken', token)
- return response
else:
return
except Exception as e:
diff --git a/addons/report/models/__init__.py b/addons/report/models/__init__.py
index c983832539e..5e9033225cf 100644
--- a/addons/report/models/__init__.py
+++ b/addons/report/models/__init__.py
@@ -3,7 +3,7 @@
from . import abstract_report
from . import base_config_settings
-from . import ir_actions_report_xml
+from . import ir_actions_report
from . import ir_http
from . import ir_qweb
from . import report
diff --git a/addons/report/models/ir_actions_report_xml.py b/addons/report/models/ir_actions_report.py
similarity index 87%
rename from addons/report/models/ir_actions_report_xml.py
rename to addons/report/models/ir_actions_report.py
index 8461815e389..cc46523c0b2 100644
--- a/addons/report/models/ir_actions_report_xml.py
+++ b/addons/report/models/ir_actions_report.py
@@ -4,7 +4,7 @@
from odoo import api, fields, models
class ir_actions_report(models.Model):
- _inherit = 'ir.actions.report.xml'
+ _inherit = 'ir.actions.report'
paperformat_id = fields.Many2one('report.paperformat', 'Paper format')
print_report_name = fields.Char('Printed Report Name',
@@ -12,7 +12,7 @@ class ir_actions_report(models.Model):
@api.multi
def associated_view(self):
- """Used in the ir.actions.report.xml form view in order to search naively after the view(s)
+ """Used in the ir.actions.report form view in order to search naively after the view(s)
used in the rendering.
"""
self.ensure_one()
diff --git a/addons/report/models/report.py b/addons/report/models/report.py
index 55abb28a638..b581bf0a613 100644
--- a/addons/report/models/report.py
+++ b/addons/report/models/report.py
@@ -186,7 +186,7 @@ class Report(models.Model):
html = html.decode('utf-8') # Ensure the current document is utf-8 encoded.
- # Get the ir.actions.report.xml record we are working on.
+ # Get the ir.actions.report record we are working on.
report = self._get_report_from_name(report_name)
# Check if we have to save the report or if we have to get one from the db.
save_in_attachment = self._check_attachment_use(docids, report)
@@ -267,7 +267,7 @@ class Report(models.Model):
@api.noguess
def get_action(self, docids, report_name, data=None, config=True):
- """Return an action of type ir.actions.report.xml.
+ """Return an action of type ir.actions.report.
:param docids: id/ids/browserecord of the records to print (if not used, pass an empty list)
:param report_name: Name of the template to generate an action for
@@ -297,14 +297,14 @@ class Report(models.Model):
active_ids = docids
context = dict(self.env.context, active_ids=active_ids)
- report = self.env['ir.actions.report.xml'].with_context(context).search([('report_name', '=', report_name)])
+ report = self.env['ir.actions.report'].with_context(context).search([('report_name', '=', report_name)])
if not report:
raise UserError(_("Bad Report Reference") + _("This report is not loaded into the database: %s.") % report_name)
return {
'context': context,
'data': data,
- 'type': 'ir.actions.report.xml',
+ 'type': 'ir.actions.report',
'report_name': report.report_name,
'report_type': report.report_type,
'report_file': report.report_file,
@@ -515,10 +515,10 @@ class Report(models.Model):
@api.model
def _get_report_from_name(self, report_name):
- """Get the first record of ir.actions.report.xml having the ``report_name`` as value for
+ """Get the first record of ir.actions.report having the ``report_name`` as value for
the field report_name.
"""
- report_obj = self.env['ir.actions.report.xml']
+ report_obj = self.env['ir.actions.report']
qwebtypes = ['qweb-pdf', 'qweb-html']
conditions = [('report_type', 'in', qwebtypes), ('report_name', '=', report_name)]
context = self.env['res.users'].context_get()
diff --git a/addons/report/models/report_paperformat.py b/addons/report/models/report_paperformat.py
index a97a1dfd3e0..08235f3060b 100644
--- a/addons/report/models/report_paperformat.py
+++ b/addons/report/models/report_paperformat.py
@@ -60,7 +60,7 @@ class report_paperformat(models.Model):
header_line = fields.Boolean('Display a header line', default=False)
header_spacing = fields.Integer('Header spacing', default=35)
dpi = fields.Integer('Output DPI', required=True, default=90)
- report_ids = fields.One2many('ir.actions.report.xml', 'paperformat_id', 'Associated reports', help="Explicitly associated reports")
+ report_ids = fields.One2many('ir.actions.report', 'paperformat_id', 'Associated reports', help="Explicitly associated reports")
@api.constrains('format')
def _check_format_or_page(self):
diff --git a/addons/report/models/res_company.py b/addons/report/models/res_company.py
index 85683e6edc1..61fa63fea86 100644
--- a/addons/report/models/res_company.py
+++ b/addons/report/models/res_company.py
@@ -29,17 +29,10 @@ class ResCompany(models.Model):
@api.model_cr
def init(self):
- # set a default paperformat based on rml one.
for company in self.search([('paperformat_id', '=', False)]):
paperformat_euro = self.env.ref('report.paperformat_euro', False)
- paperformat_us = self.env.ref('report.paperformat_us', False)
- paperformat_id = {
- 'a4': paperformat_euro and paperformat_euro.id or False,
- 'us_letter': paperformat_us and paperformat_us.id or False,
- }.get(company.rml_paper_format) or paperformat_euro
-
- if paperformat_id:
- company.write({'paperformat_id': paperformat_id})
+ if paperformat_euro:
+ company.write({'paperformat_id': paperformat_euro.id})
sup = super(ResCompany, self)
if hasattr(sup, 'init'):
diff --git a/addons/report/static/src/js/client_action.js b/addons/report/static/src/js/client_action.js
index 041a7af383b..60265c0a49d 100644
--- a/addons/report/static/src/js/client_action.js
+++ b/addons/report/static/src/js/client_action.js
@@ -180,7 +180,7 @@ var ReportAction = Widget.extend(ControlPanelMixin, {
on_click_print: function () {
var action = {
- 'type': 'ir.actions.report.xml',
+ 'type': 'ir.actions.report',
'report_type': 'qweb-pdf',
'report_name': this.report_name,
'report_file': this.report_file,
diff --git a/addons/report/static/src/js/qwebactionmanager.js b/addons/report/static/src/js/qwebactionmanager.js
index 3f477bf7d16..3c8fee859e3 100644
--- a/addons/report/static/src/js/qwebactionmanager.js
+++ b/addons/report/static/src/js/qwebactionmanager.js
@@ -44,7 +44,6 @@ var make_report_url = function (action) {
var report_urls = {
'qweb-html': '/report/html/' + action.report_name,
'qweb-pdf': '/report/pdf/' + action.report_name,
- 'controller': action.report_file,
};
// We may have to build a query string with `action.data`. It's the place
// were report's using a wizard to customize the output traditionally put
@@ -69,7 +68,7 @@ var make_report_url = function (action) {
};
ActionManager.include({
- ir_actions_report_xml: function (action, options) {
+ ir_actions_report: function (action, options) {
var self = this;
action = _.clone(action);
@@ -132,14 +131,6 @@ ActionManager.include({
return self.do_action('report.client_action', client_action_options);
}
});
- } else if (action.report_type === 'controller') {
- framework.blockUI();
- var response = [
- report_urls.controller,
- action.report_type,
- ];
- var c = crash_manager;
- return trigger_download(self.getSession(), response, c, action, options);
} else {
return self._super(action, options);
}
diff --git a/addons/report/tests/test_reports.py b/addons/report/tests/test_reports.py
index d1e85494f48..9995067fdec 100644
--- a/addons/report/tests/test_reports.py
+++ b/addons/report/tests/test_reports.py
@@ -14,7 +14,7 @@ _logger = logging.getLogger(__name__)
class TestReports(odoo.tests.TransactionCase):
def test_reports(self):
domain = [('report_type', 'like', 'qweb')]
- for report in self.env['ir.actions.report.xml'].search(domain):
+ for report in self.env['ir.actions.report'].search(domain):
report_model = 'report.%s' % report.report_name
try:
self.env[report_model]
diff --git a/addons/report/views/ir_actions_report_views.xml b/addons/report/views/ir_actions_report_views.xml
index d0202203b76..7b52158a047 100644
--- a/addons/report/views/ir_actions_report_views.xml
+++ b/addons/report/views/ir_actions_report_views.xml
@@ -2,9 +2,9 @@
- ir.actions.report.xml.form.inherit
+ ir.actions.report.form.inherit
- ir.actions.report.xml
+ ir.actions.report
@@ -18,7 +18,7 @@
act_report_xml_view_inherit
- ir.actions.report.xml
+ ir.actions.report
diff --git a/addons/report/views/report_paperformat_views.xml b/addons/report/views/report_paperformat_views.xml
index 433ed8cc304..2141f63b914 100644
--- a/addons/report/views/report_paperformat_views.xml
+++ b/addons/report/views/report_paperformat_views.xml
@@ -42,7 +42,7 @@
Reports
- ir.actions.report.xml
+ ir.actions.report
form
tree,form
diff --git a/addons/report/views/templates.xml b/addons/report/views/templates.xml
index c9f6f6157b4..667013df74f 100644
--- a/addons/report/views/templates.xml
+++ b/addons/report/views/templates.xml
@@ -138,7 +138,7 @@