The render API was confusing as mixing the access to the report and the rendering env. The ambiguity was present for code such as `report.sudo()._render(record_ids)` where it was not clear if the `sudo()` is needed to access to `report` or to `record_ids`. For low priviledge users (such as portal or public), it was common to use `report.with_user(SUPERUSER_ID)._render(record_ids)`. This PR changes the render methods signature to be `api.model`. The `report_ref` can be: - ir.actions.report external id - ir.actions.report id - ir.actions.report recod - `report_name` value This will allow to call the report methods with any user and no longer need to use `with_user(1)` to render reports as public user. Task-id 2670865 closes odoo/odoo#91341 Related: odoo/upgrade#3650 Related: odoo/enterprise#27323 Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
11 lines
324 B
Python
11 lines
324 B
Python
from odoo import models
|
|
|
|
|
|
class IrActionsReport(models.Model):
|
|
_inherit = 'ir.actions.report'
|
|
|
|
def _get_rendering_context(self, report, docids, data):
|
|
data = super()._get_rendering_context(report, docids, data)
|
|
data['din_header_spacing'] = report.get_paperformat().header_spacing
|
|
return data
|