I have a problem where I cannot get my filename to be a custom one when passing in a data object to .report_action() in Odoo 16.
If I use it as expected [something].report_action(rec,{}), it'll be all good, no issues with getting the custom filename to work because the report will have access to the record object and object.name will work in the report.xml. However, if I need to pass extra data such as .report_action(rec, data=[some_object]), the docids (rec.id) will not be propagated to the report.xml anymore and the custom name will fail, leading to the file simply being named after the string of the report action.
How can I solve this? Any insight ?
Some code pointers below for clarity
for rec in self:
return self.env.ref('inbound_route.report_inbound_pallets_list').report_action(rec, data=create_dummy_pallets_list(rec))
This will return a data object, but no docids.
for rec in self:
return self.env.ref('inbound_route.report_inbound_pallets_list').report_action(rec)
This returns docids, but no added context.
<report
id="report_inbound_pallets_list"
string="List of Inbound Pallets"
model="stock.picking"
report_type="qweb-pdf"
name="inbound_route.inbound_pallets_list"
file="inbound_route.inbound_pallets_list"
print_report_name="'%s_inbound_pallets_list' % (object.name)"
/>
The report in the first example will rename the file to List of Inbound Pallets, because the object is none as there is no set docids. In the second example it will name it correctly using print_report_name, but no added data object ofcourse.
Is there any workaround for this or any suggestions ?
Tried to pass extra data object to report_action(), it works but gets rid of the docids and as such removes custom file naming. I'd like to keep my data object but be able to keep custom filenaming also.