2016-01-16 1 views
0

Я следовал инструкциям в этом сообщенииodoo 8, добавить файл яваскрипта на передний конец сайт

https://www.odoo.com/es_ES/forum/help-1/question/how-to-add-css-and-js-javascript-files-in-openerp-7-odoo-8-module-76719

, чтобы добавить файл яваскрипта к переднему концу (наследуя шаблон из website.assets_frontend)

Когда я регистрирую пользователя, у которого есть разрешение на изменение qweb, загружается js, но когда я вхожу в систему с пользователем без этого разрешения или с анонимным пользователем, сценарий не загружается.

Мне нужен этот сценарий js для анонимных пользователей. Что не так? что мне делать?

<template id="assets_frontend" inherit_id="website.assets_frontend" name="menora_website assets"> 
    <xpath expr="/t" position="inside"> 
    <script type="text/javascript" src="/website_my_module/static/src/js/my_assets.js"></script> 
    </xpath> 
</template> 

этот код работает для пользователя с правами администратора, но не для анонимного пользователя

//my_assets.js 
$(document).ready(function() { 
    "use strict"; 
    var website = openerp.website; var _t = openerp._t; 
    $('#birdthdate').datepicker(); 
}); 
+0

можете ли вы поделиться кодом о том, как добавить javascript в интерфейс? – jkris

+0

Я добавил этот код для унаследованного от website.assets_frontend. \t <шаблон ID = "assets_frontend" inherit_id = "website.assets_frontend" Name = "menora_website активы"> <выражение XPath = позиция "/ т" = "внутри"> <тип скрипта = "текст/JavaScript" SRC = "/ website_my_module/статический/SRC/JS/my_assets.js"> этот код работает для пользователя с правами администратора, но не для анонимного пользователя my_assets.js \t \t $ (документ) .ready (function() { "use strict"; var website = openerp.website; var _t = openerp._t; $ ('# birdthdate'). Datepicker(); }); –

+0

Я, наконец, нашел проблему. Шаблон работал нормально, js-файл был включен в assets_frontend. Проблема была обнаружена в моем javascript-коде - я пытался использовать переменную jquery $ перед загрузкой jquery-библиотек. Другая проблема заключалась в том, что я хотел использовать элементы jquery-ui, но jquery-ui не включен для пользователей портала –

ответ

0

Мое предположение было бы эта линия

<xpath expr="/t" position="inside"> 

Изменение expr="/t" в expr=".", как показано в вашей ссылке

0

Просмотрев мой код и результаты, я заметил, что в фрагменте шаблона работала нормально. JS-файл был загружен или вставлен в миниатюрные активы_frontend ok.

Мой код js не работал, потому что он был вставлен перед определением JQuery. Вот почему глобальная переменная $ еще не определена. Позиция должна быть «после» последнего тега <script> при наследовании шаблона.

Я не пробовал последнее предложение, что я сделал, это вставить тег <script> в конец шаблона, который я создал для пользовательского пользовательского интерфейса. На этом этапе все js-файлы были загружены так, как была определена глобальная переменная $.

Смежные вопросы