如何在 Odoo 16 中向发票门户视图添加按钮

问题描述 投票:0回答:2

我一直在尝试添加一个按钮来向 Odoo 中发票的门户视图添加签名,我怀疑问题出在我正在使用的外部 ID 上(或者可能是版权问题?),但我已经尝试在视图部分查找门户外部 ID,但我尝试过的方法似乎都不起作用,继承视图并以传统方式更改它们似乎不起作用,可能是什么问题?这是我当前的实现


    `<odoo>
        <record id="portal_invoice_signature_button_payment" model="ir.ui.view">
            <field name="name">Portal Invoice Signature Button with Payment</field>
            <field name="model">account.move</field>
            <field name="inherit_id" ref="account_payment.portal_invoice_page_inherit_payment"/>
            <field name="arch" type="xml">
                <!-- Positioning the "Accept and Sign" button below the "Pay Now" button using class -->
                <xpath expr="//div[contains(@class, 'd-grid')]/a[contains(@class, 'btn-primary')]" position="after">
                    <div class="d-grid mt-2">
                        <button type="button" class="btn btn-secondary btn-block" id="acceptAndSign" data-bs-toggle="modal" data-bs-target="#signatureModal">
                            <i class="fa fa-pencil-square-o"/> Accept and Sign
                        </button>
                    </div>
                </xpath>

                <!-- Modal for the signature pad -->
                <xpath expr="//div[@id='invoice_content']" position="before">
                    <div class="modal fade" id="signatureModal" tabindex="-1" aria-labelledby="signatureModalLabel" aria-hidden="true">
                        <div class="modal-dialog">
                            <div class="modal-content">
                                    <div class="modal-header">
                                    <h5 class="modal-title" id="signatureModalLabel">Please Sign Below</h5>
                                    <button type="button" class="btn-close" data-bs-dismiss="modal" a ia-label="Close"></button>
                                </div>
                                <div class="modal-body">
                                    <canvas id="signatureCanvas" width="400" height="200"></canvas>
                                </div>
                                <div class="modal-footer">
                                    <button type="button" class="btn btn-secondary" data-bs-    dismiss="modal">Close</button>
                                    <button type="button" class="btn btn-primary"     id="saveSignatureModal">Save Signature</button>
                                </div>
                            </div>
                        </div>
                    </div>
                </xpath>
            </field>
        </record>
    </odoo>`

目标是添加一个“接受并签名”按钮,以触发我的发票模型中的签名 UMD

我尝试更改外部ID,我一直在使用的一些外部ID包括account.portal_invoice_page外部id、account_ payment.portal_invoice_page_inherit_ payment等,我还添加了一个安全文件,因为我认为这可能会导致按钮不会出现在门户视图中,也许我在实施时可能会遗漏一些东西

python xml odoo erp
2个回答
1
投票

您不应该像继承门户模板一样继承门户模板 后端模板,因为它是一个网页模板。

要继承发票门户模板,请尝试以下代码。

<?xml version="1.0" encoding="utf-8"?>
<odoo>
   <template id="portal_invoice_template_inherit"
      inherit_id="account.portal_invoice_page">
      <xpath expr="//div[hasclass('flex-column')]/div" position="inside">
         <div class="d-flex gap-1 flex-lg-column flex-xl-row mt-2">
            <div class="flex-grow-1">
               <a class="btn btn-primary d-block"
                  href="#"
                  title="Accept and Sign">
               <i class="fa fa-pencil-square-o"/>
               Accept and Sign
               </a>
            </div>
         </div>
      </xpath>
   </template>
</odoo>

预期输出如下。

enter image description here


-2
投票
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
    
    <template id="custom_sale_order_portal_template" inherit_id="sale.sale_order_portal_template">
        <xpath expr="//div[@id='sale_order_sidebar_button']" position="replace">
          <div class="d-flex flex-column gap-2" id="sale_order_sidebar_button">
            <a t-if="sale_order._has_to_be_signed()" role="button" class="btn btn-primary d-block" data-bs-toggle="modal" data-bs-target="#modalaccept" href="#">
              <i class="fa fa-check"/><t t-if="sale_order._has_to_be_paid()"> Sign &amp; Pay</t><t t-else=""> Accept &amp; Sign</t>
            </a>
            <a t-elif="sale_order._has_to_be_paid()" role="button" id="o_sale_portal_paynow" data-bs-toggle="modal" data-bs-target="#modalaccept" href="#" t-att-class="'d-block %s' % ('btn btn-light' if sale_order.transaction_ids else 'btn btn-primary')" >
              <i class="fa fa-check"/> <t t-if="not sale_order.signature">Accept &amp; Pay</t><t t-else="">Pay Now</t>
            </a>
            <div class="o_download_pdf d-flex gap-1 flex-lg-column flex-xl-row">
              <div class="flex-grow-1">
                <a class="btn btn-secondary o_print_btn o_portal_invoice_print d-block" t-att-href="sale_order.get_portal_url(report_type='pdf')" id="print_invoice_report" title="View Details" target="_blank"><i class="fa fa-print"/> View Details</a>
              </div>
            </div>
          </div>
        </xpath>
    </template>
</odoo>
© www.soinside.com 2019 - 2024. All rights reserved.