Odoo 中文社区

    • 注册
    • 登录
    • 搜索
    • 版块
    • 标签
    • 热门
    • 用户
    • 群组

    Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn

    由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

    本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

    开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

    如果您登录系统碰到问题,请在微信公众号留言:

    Crm模块中onchange_stage_id不工作的问题

    Odoo 开发与实施交流
    4
    6
    3455
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • J
      jerry79 最后由 编辑

      在crm_lead_view中,定义的stage_id,

      <br />&nbsp;  &lt;field name=&quot;stage_id&quot; widget=&quot;statusbar&quot; clickable=&quot;True&quot; on_change=&quot;onchange_stage_id(stage_id)&quot;/&gt;<br />
      


      我理解的意思是,在切换stege时,执行这个onchange函数,因为这个stage是可以点击的,因此我通过在界面上直接直接点击statusbar切换stage,但是我在py中的onchange_stage_id函数中增加log发现,点击切换stage的时候,并没有logo输出,我甚至注释掉onchange_stage_id这个函数,也没有任何错误提示。
      请问这个是怎么回事呢?

      1 条回复 最后回复 回复 引用 0
      • C
        ccdos 最后由 编辑

        估计 widget="statusbar"  的时候, onchage 是不触发的

        1 条回复 最后回复 回复 引用 0
        • mrshelly
          mrshelly 最后由 编辑

          statusbar 是一个只读的控件吧?
          你怎么去 change 它呢?

          1 条回复 最后回复 回复 引用 0
          • J
            jerry79 最后由 编辑

            但是clickable是ture,是可以点击触发的,这个不算是只读控件吧。onchange这个函数是OE自带的,如果不能触发,那应该算是OE的bug吧

            1 条回复 最后回复 回复 引用 0
            • W
              winson97 最后由 编辑

              在8.0中,在crm_lead中onchange_stage_id是工作的,但我们自建模块view中使用同样的statusbar widget,onchange却不工作。

              7.0有人报bug,代码修改了,但最后没合并。

              具体的讨论在这:<br / https://bugs.launchpad.net/openerp-web/+bug/1175960 br />

              未合并的代码:

              === modified file 'addons/web/static/src/js/view_form.js'
              --- addons/web/static/src/js/view_form.js 2013-10-10 09:11:25 +0000
              +++ addons/web/static/src/js/view_form.js 2013-10-29 12:33:10 +0000
              @@ -5452,17 +5452,17 @@
                          }
                      });
                  },
              +    set_value_selected: function(val) {
              +        this.set({'value': val});
              +    },
                  on_click_stage: function (ev) {
                      var self = this;
                      var $li = $(ev.currentTarget);
                      var val = parseInt($li.data("id"));
                      if (val != self.get('value')) {
              +            this.set_value_selected(val)
                          this.view.recursive_save().done(function() {
              -                var change = {};
              -                change[self.name] = val;
              -                self.view.dataset.write(self.view.datarecord.id, change).done(function() {
              -                    self.view.reload();
              -                });
              +                self.view.reload();
                          });
                      }
                  },

              1 条回复 最后回复 回复 引用 0
              • First post
                Last post