Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
1718 Lượt xem

i want to dynamically render rfid_balance everytime i complete the order

here is my attempt:

controller:

from odoo import http

from odoo.http import request


class MQPOSController(http.Controller):

    @http.route('/get_rfid_balance', auth='public', type='json')

    def get_rfid_balance(self):

        partner = request.env['res.partner'].sudo().search([('id', '=', request.env.user.partner_id.id)], limit=1)

        return {

            'rfid_balance': partner.rfid_balance

            }



payment_screen JS

/** @odoo-module */

import { jsonrpc } from "@web/core/network/rpc_service";

import { renderToElement } from "@web/core/utils/render";

import publicWidget from '@web/legacy/js/public/public_widget';

let DynamicSnippets = publicWidget.Widget.extend({

    selector: '.js_dynamic_snippet',

    start: function(){

        jsonrpc('/get_rfid_balance', {}).then((res)=>{

            if (res){

                this.$el.find("#rfid_balance").html(renderToElement('mq_canteen_pos_order.MQPaymentScreenExtension', {res: res}))

            }

        })

    }

});

publicWidget.registry.DynamicSnippets = DynamicSnippets;


payment_screen XML

<?xml version="1.0" encoding="utf-8"?>

<templates id="mq_canteen_pos_order.template" name="mq_canteen_pos_order.template" xml:space="preserve">

    <t t-name="mq_canteen_pos_order.MQPaymentScreenExtension"

        t-inherit="point_of_sale.PaymentScreenButtons" t-inherit-mode="extension" owl="1">

        <!-- Corrected the xpath expression to target the right element -->

        <xpath expr="//span[hasclass('partner-name')]" position="replace">

            <span class="partner-name">

                    <t t-if="currentOrder.get_partner()" t-esc="currentOrder.get_partner().name"/>

                    <t t-else="">Customer</t>

                    <br/>

                    <span style="margin-left:18px;">RFID Balance:</span>

                    <span id="rfid_balance" t-esc="currentOrder.get_partner() ? currentOrder.get_partner().rfid_balance : 'N/A'" />

            </span>

        </xpath>

    </t>

</templates>



Much appreciated if you show me the manifest on how to do it

thanks in advance

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 8 23
4561
1
thg 7 25
1831
4
thg 7 25
3059
0
thg 3 25
1140
5
thg 3 25
2945