Сообщить о проблеме в odoo 12

Я разработал новый отчет для account.invoice в odoo 12, но когда я предполагаю напечатать это, он дает мне следующее предупреждение в ветке 12.0:

Неправильный шаблон отчета "Название шаблона", обратитесь к администратору.

Невозможно отделить файл для сохранения в качестве вложения, поскольку шаблон отчета не содержит атрибутов "data-oe-model" и "data-oe-id" в div с именем класса "article".

В основной ветке он говорит модель данных вместо data-oe-model, data-id вместо data-oe-id и имя класса "page" вместо "class" classname

Если кто-то сталкивался с той же проблемой и нашел решение, пожалуйста, дайте мне знать.

Спасибо

4 ответа

Я решил это с помощью друга:

В вашем external_layout вы должны определить 't-att-data-oe-model' и 't-att-data-oe-id' . Добавь это:

<div class="article o_report_layout_standard" t-att-data-oe-model="o and o._name" t-att-data-oe-id="o and o.id">
    <t t-call="web.address_layout"/>
    <t t-raw="0"/>
</div>

Ранее этот фрагмент кода (v11) был таким:

<div class="article o_report_layout_standard">
    <t t-raw="0" />
</div>

Надеюсь, это решит вашу проблему. Это изменение связано с тем, что отчет теперь можно редактировать в версии 12 с помощью приложения студии.

Да, вам нужно изменить external_layout, в моем случае это был пользовательский макет, и я решил его, используя ниже XML

<template id="custom_layout">
    <!-- Multicompany -->
        <div class="article o_report_layout_standard" t-att-data-oe-model="doc and doc._name" t-att-data-oe-id="doc and doc.id">
            <t t-if ="doc and 'company_id' in doc" >
                <t t-set="company" t-value="doc.company_id"/>
                <t t-set="customer" t-value="doc.partner_id"/>
            </t>
            <t t-call="custom_sale_report_v12.custom_layout_header"/>
            <t t-raw="0"/>
            <t t-call="ce_sale_report_v12.custom_layout_footer"/>
        </div>
    </template>

Я столкнулся с той же проблемой.

Причина заключалась в том, что t-ifсостояние перед <t t-call="web.external_layout">. Ошибка возникает, когда ее значение равно False.

Эта ошибка может произойти, если нет report_type="qweb-html" для report_type="qweb-pdf". Для решения этой проблемы нужно было как... примерно так:

<report
        id="report_invoice_html"
        model="MY_MODEL_NAME"
        string="Invoice HTML"
        name="MODULE.report_invoice_view"
        file="MODULE.report_invoice"
        report_type="qweb-html" />

<report
        id="report_invoice_pdf"
        model="MY_MODEL_NAME"
        string="Invoice PDF"
        name="MODULE.report_invoice_view"
        file="MODULE.report_invoice"
        report_type="qweb-pdf" />

Если вы посмотрите на исходный код Odoo на ir_actions_report.py, вы увидите оператор сравнения set(res_ids)!= Set(html_ids), если HTML-шаблон не существует, он возвращает True, а затем вызывает ошибку

Другие вопросы по тегам