menu backend odoo 9 sub

Hướng dẫn chèn thêm thành phần vào menu backend odoo 9

Menu backend odoo 9?

Menu backend odoo 9 là một thanh menu chứa các tab dẫn đến các module khi người dùng đăng nhập vào hệ thống.

Trong bài viết trước mình đã hướng dẫn cách tạo popup notification odoo 9. Trong bài viết này, mình sẽ tiếp tục hướng dẫn cách sử dụng javascript tương tự bài viết trước.

Hướng dẫn thực hiện.

Tạo file controller để lấy dữ liệu.

import json
import openerp
import openerp.http as http
from openerp.http import request
from openerp.api import Environment

class MenuController(openerp.http.Controller):

@http.route('/get_sale/status', type='json', auth="none")

def status(self):

registry = request.registry
uid = request.session.uid
context = request.session.context
cr = registry.cursor()
env = Environment(cr, uid, context)
return [{'sale_ranking': record.sale_ranking, 'next_target': record.next_target} for record in env['res.users'].search([('id','=',uid)])]

Tạo file template 

<template>

<t t-name="MenuTemplate">

<ul class="nav navbar-nav navbar-right" style="">

<li class="o_menu_sale_ranking"><span t-esc="widget.sale_ranking"/></li>
<li class="o_menu_sale_ranking"><span t-esc="widget.next_target"/></li>

</ul>

</t>

</template>

Tạo file css cho template

.o_menu_sale_ranking{
color: red;
margin: 5px 10px;
}

Tạo file javascript để chèn thành phần vào menu.

odoo.define('menu.menu', function (require) {
"use strict";
var core = require('web.core');
var session = require('web.session');
var ajax = require('web.ajax');
var web_view = require('web.View')
var _t = core._t;
var _lt = core._lt;
var QWeb = core.qweb;
var Widget = require('web.Widget');
var WebClient = require('web.WebClient');
var web_client = require('web.web_client');

var MenuManager = Widget.extend({
template: 'MenuTemplate',

init: function(parent, sale_ranking, next_target) {
this._super(parent, sale_ranking, next_target);
this.sale_ranking = sale_ranking;
this.next_target = next_target;
}
});

WebClient.include({
show_common: function() {
this._super();
var self = this
self.popup_manager = new PopUpManager(this);
self.popup_manager.appendTo(self.$('.openerp_webclient_container'));

this.rpc('/get_sale/status')
.done(function(result) {
_.each(result, function(res) {
self.menu_manager = new MenuManager(this, res.sale_ranking, res.next_target);
self.menu_manager.appendTo(self.$('#oe_main_menu_placeholder'))
});
})
.fail(function(err, ev) {
if(err.code === -32098) {
// Prevent the CrashManager to display an error
// in case of an xhr error not due to a server error
ev.preventDefault();
}
});
});
});

Kết luận:

Mình vừa hướng dẫn các bạn cách chèn thêm phần tử vào menu backend odoo 9. Hy vọng qua bài viết các bạn có thể hiểu được cách thao tác với javascript trong Odoo 9.

Các bạn có thể tham khảo thêm javascript trong odoo tại đây.

Trả lời

Thư điện tử của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

13 − eleven =