最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

python - Odoo 16, How to change report name after .report_action() call, or how to use data object to extract name in report.xml

programmeradmin1浏览0评论

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.

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论
ok 不同模板 switch ($forum['model']) { /*case '0': include _include(APP_PATH . 'view/htm/read.htm'); break;*/ default: include _include(theme_load('read', $fid)); break; } } break; case '10': // 主题外链 / thread external link http_location(htmlspecialchars_decode(trim($thread['description']))); break; case '11': // 单页 / single page $attachlist = array(); $imagelist = array(); $thread['filelist'] = array(); $threadlist = NULL; $thread['files'] > 0 and list($attachlist, $imagelist, $thread['filelist']) = well_attach_find_by_tid($tid); $data = data_read_cache($tid); empty($data) and message(-1, lang('data_malformation')); $tidlist = $forum['threads'] ? page_find_by_fid($fid, $page, $pagesize) : NULL; if ($tidlist) { $tidarr = arrlist_values($tidlist, 'tid'); $threadlist = well_thread_find($tidarr, $pagesize); // 按之前tidlist排序 $threadlist = array2_sort_key($threadlist, $tidlist, 'tid'); } $allowpost = forum_access_user($fid, $gid, 'allowpost'); $allowupdate = forum_access_mod($fid, $gid, 'allowupdate'); $allowdelete = forum_access_mod($fid, $gid, 'allowdelete'); $access = array('allowpost' => $allowpost, 'allowupdate' => $allowupdate, 'allowdelete' => $allowdelete); $header['title'] = $thread['subject']; $header['mobile_link'] = $thread['url']; $header['keywords'] = $thread['keyword'] ? $thread['keyword'] : $thread['subject']; $header['description'] = $thread['description'] ? $thread['description'] : $thread['brief']; $_SESSION['fid'] = $fid; if ($ajax) { empty($conf['api_on']) and message(0, lang('closed')); $apilist['header'] = $header; $apilist['extra'] = $extra; $apilist['access'] = $access; $apilist['thread'] = well_thread_safe_info($thread); $apilist['thread_data'] = $data; $apilist['forum'] = $forum; $apilist['imagelist'] = $imagelist; $apilist['filelist'] = $thread['filelist']; $apilist['threadlist'] = $threadlist; message(0, $apilist); } else { include _include(theme_load('single_page', $fid)); } break; default: message(-1, lang('data_malformation')); break; } ?>