콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
2 답글
22419 화면

My problem is that javascript does not find my templates.

The templates are in static/src/xml/status_templates.xml.

I added them to my manifest file with the full path name and *.  ('qweb': ['static/src/xml/*.xml'],)

The templates are:

<?xml version="1.0" encoding="UTF-8"?>
<templates xml:space="preserve">
    <t t-name="tabla_stock_notification.subscription_form">
        <div class="tabla_stock_notifications">
            <form method="post" id="tabla_stock_subscription" enctype="multipart/form-data">
                <div class="input-group">
                    <input type="email" class="form-control" required="required" aria-describedby="tabla-stock-subscription"/>
                    <div class="input-group-append">
                        <button class="btn btn-warning" id="subscribe_stock" type="submit"><i class="fa fa-envelope-o" role="img" aria-label="Subscribe"/></button>
                    </div>
                    <span class="stock_procurement_date"/>
                </div>
            </form>
        </div>
    </t>

The JS

odoo.define('tabla_stock_notification.stock_notification', function(require) {
    'use strict';

var core = require('web.core');
var config = require('web.config');
var publicWidget = require('web.public.widget');
var ajax = require('web.ajax');

var QWeb = core.qweb;

publicWidget.registry.StockNotifications = publicWidget.Widget.extend({
    selector: '#product_details',
    events: {
        'click #subscribe_stock': '_onGetCheckData',
    },

    init: function() {
        console.log('Konstruktor');
        var product_id = $('.product_id').val();
        var stockDiv = $('.tabla_stock_placeholder')
        console.log('Konstruktor, product ID ' + product_id);
        if (product_id != '') {
            ajax.jsonRpc('/stock-status', 'call', {'product_id': parseInt(product_id)}).then(function (data) {
                console.log('Calling stock status and gotten data: ' + data);
                let stock_data = JSON.parse(data);
                if (stock_data.hasOwnProperty('show')) {
                    if (stock_data['show'] == 'form') {
                        stockDiv = $(QWeb.render('tabla_stock_notification.subscription_form', {}));
                    } else if (stock_data['show'] == 'confirm') {
                        stockDiv = $(QWeb.render('tabla_stock_notification.confirm_subscription'));
                    } else if (stock_data['show'] == 'message') {
                        stockDiv = $(QWeb.render('tabla_stock_notification.stock_notification'));
                    };
                };



            });
        };
    },

I'm new to JS widgets. I've tried all that I could find and it never worked. I looked at other modules and I cannot figure out why mine does not work.

I'm just getting error:

Error: QWeb2: Template 'tabla_stock_notification.subscription_form' not found




아바타
취소
작성자 베스트 답변

I had to add:

xmlDependencies: ['/tabla_stock_notification/static/src/xml/status_templates.xml'],

after the selector and it worked.


아바타
취소

I had the same problem, it worked using your advice on Odoo12

Thank you very much

작성자

no problem, glad it helped you!

It's working fine for me (odoov14)

베스트 답변

for odoo 15 please use downbelow snipt in your manifest.py file
'assets': {
'web.assets_backend': [
'module_name/static/src/js/your_js.js',
],
'web.assets_qweb': [
'module_name/static/src/xml/your_xml.xml',
],
},

please upvote the answer if is helps you Thanks.
아바타
취소

It worked for me, thanks!

관련 게시물 답글 화면 활동
0
1월 22
223
0
5월 23
3241
1
1월 23
8034
1
12월 20
7579
1
6월 24
3474