【问题标题】:how to one click logout in odoo 9如何在odoo 9中一键注销
【发布时间】:2016-07-05 12:19:42
【问题描述】:

我想为 odoo 创建一个单击注销,所以我创建了 odoo 主题并添加了一个用于注销的图标,当您单击该图标时,用户会注销。所以我在 .xml 中有一段代码

<xpath expr="//ul[@class='nav navbar-nav navbar-right oe_user_menu_placeholder']" position="inside">
    <li><a href="#" class="logout" title="Logout"><i class="fa fa-sign-out"></i></a></li>
</xpath>

在java脚本代码.js中

var UserMenu = require('web.UserMenu');
var user_menu=new UserMenu(self);
$(document).ready(function () {
$( ".logout").click(function() {
  $( ".logout").click(function() {
         user_menu.on_menu_logout();
   });
  });
});

所以我调用 web 模块的 on_menu_logout() 函数和 on_menu_logout() 也被调用但在函数 this.trigger('user_logout'); 函数没有调用。因此,如果您有任何想法,请与我分享以解决此问题。

【问题讨论】:

    标签: javascript jquery xml odoo-9


    【解决方案1】:

    另一种方法是调用控制注销的 http 控制器。

    控制器的路由是“/web/session/logout”

    当调用这个控制器时,它会立即注销用户并结束他的会话。

    你可以在你的javascript中这样调用这个控制器:

    为此,Session() 对象(通常可通过 openerp.session 获得)上存在一个较低级别的 API:rpc 方法。

    此方法仅采用绝对路径(要调用的 JSON 路由的绝对 URL)和属性到值的映射(作为关键字参数传递给 Python 方法)。此函数获取 Python 方法的返回值,并转换为 JSON。

    例如,调用DataSet()控制器的resequence:

    var session = require('web.session');
    session.rpc('/web/session/logout', {}).then(function (result) {
    console.log('Logout Successful')
    }, function () {
    // an error occured during during call
    });
    

    【讨论】:

    • thanx@Bhavya 回复,但该代码将生成错误,Odoo 服务器错误回溯(最近一次调用最后一次):文件“/usr/lib/python2.7/dist- packages/openerp/http.py”,第 646 行,在 _handle_exception 返回 super(JsonRequest, self)._handle_exception(exception) 文件“/usr/lib/python2.7/dist-packages/openerp/http.py”,第 683 行,在调度结果 = self._call_function(**self.params) 文件“/usr/lib/python2.7/dist-packages/openerp/http.py”,第 295 行,在 _call_function 中引发 werkzeug.exceptions.BadRequest(msg % 参数)BadRequest:400:错误请求
    • 函数声明为能够处理 'http' 类型的请求,但使用 'json' 类型的请求调用,这意味着我们应该使用 'http' 类型的请求调用控制器,所以建议我如何在“http”类型的请求中调用函数。
    【解决方案2】:

    我得到了解决这个问题的答案,我们不需要任何额外的 javascript 来解决这个问题,只需按照此代码并将属性 t-attf-href 添加到 一个标签,所以按照这个代码,即

    <li><a t-attf-href="/web/session/logout?redirect=/web/login" title="Logout"><i class="fa fa-sign-out iconsize"></i></a></li>
    

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多