Partner Ledger: fix PDF filename using _get_report_base_filename method

Remove broken controller override (bypassed by l10n_ba_pdv MRO chain).
Add _get_report_base_filename() method on wizard (l10n_ba_pdv pattern).
Pass report_filename via context for l10n_ba_pdv controller to extract.

🤖 assisted by claude
This commit is contained in:
Ernad Husremovic 2026-02-09 14:32:20 +01:00
parent 3d05074af5
commit aefecb045d
5 changed files with 8 additions and 36 deletions

View file

@ -2,7 +2,7 @@
{
'name': 'Odoo 16 Accounting Financial Reports',
'version': '16.0.2.0.9',
'version': '16.0.2.1.1',
'category': 'Invoicing Management',
'description': 'Accounting Reports For Odoo 16, Accounting Financial Reports, '
'Odoo 16 Financial Reports',

View file

@ -1,3 +1 @@
# -*- coding: utf-8 -*-
from . import main

View file

@ -1,29 +1 @@
# -*- coding: utf-8 -*-
import json
from odoo.http import content_disposition, request, route
from odoo.addons.web.controllers.report import ReportController
class CustomReportController(ReportController):
@route()
def report_download(self, data, context=None, token=None):
response = super().report_download(data, context=context, token=token)
try:
requestcontent = json.loads(data)
url = requestcontent[0]
if 'report_partnerledger' in url and context:
ctx = json.loads(context)
report_filename = ctx.get('report_filename')
if report_filename:
response.headers['Content-Disposition'] = content_disposition(
report_filename + '.pdf'
)
except Exception:
pass
return response

View file

@ -16,7 +16,7 @@
<field name="report_type">qweb-pdf</field>
<field name="report_name">accounting_pdf_reports.report_partnerledger</field>
<field name="report_file">accounting_pdf_reports.report_partnerledger</field>
<field name="print_report_name">'Kartica partnera ' + ' '.join(object.partner_ids.mapped('name')) if object.partner_ids else 'Kartica partnera'</field>
<field name="print_report_name">object._get_report_base_filename()</field>
</record>

View file

@ -14,6 +14,11 @@ class AccountPartnerLedger(models.TransientModel):
"the company currency.")
reconciled = fields.Boolean('Reconciled Entries')
def _get_report_base_filename(self):
if self.partner_ids:
return _('Kartica partnera') + ' ' + ', '.join(self.partner_ids.mapped('name'))
return _('Kartica partnera')
def _get_report_data(self, data):
data = self.pre_print_report(data)
data['form'].update({'reconciled': self.reconciled,
@ -22,10 +27,7 @@ class AccountPartnerLedger(models.TransientModel):
def _print_report(self, data):
data = self._get_report_data(data)
if self.partner_ids:
report_filename = _('Kartica partnera') + ' ' + ', '.join(self.partner_ids.mapped('name'))
else:
report_filename = _('Kartica partnera')
report_filename = self._get_report_base_filename()
return self.env.ref(
'accounting_pdf_reports.action_report_partnerledger'
).with_context(landscape=True, report_filename=report_filename).report_action(self, data=data)