【问题标题】:Odoo 10 Kanban View: Ordering Kanban Items vertically with drag and dropOdoo 10 看板视图:通过拖放垂直订购看板项目
【发布时间】:2023-03-05 23:36:01
【问题描述】:

我想通过拖放在 Odoo 中订购看板项目。我有自己的整数字段 'k_order' 并将此字段用于模型 _order="k_order"。

看板项目根据 k_order 字段正确显示(排序)。但是当我更改顺序(垂直)时,它不会保存它。刷新浏览器后,回到原来的位置。

如何实现上述行为(排序)?我还为字段 k_order 使用了 widget="handel"。

树视图中的这种排序可以根据需要进行。

【问题讨论】:

    标签: sorting drag-and-drop odoo kanban


    【解决方案1】:

    似乎看板小部件重新排序仅适用于字段sequence,这是odoo模型的默认排序字段。

    你可以看到那部分here -> module web_kanban

        resequence: function (ids) {
            if ((ids.length <= 1) || !this.relation) {
                return;
            }
            new data.DataSet(this, this.relation).resequence(ids).done(function (r) {
                if (!r) {
                    console.warn('Resequence could not be complete. ' +
                        'Maybe the model does not have a "sequence" field?');
                }
            });
        },
    
        resequence_column: function (col) {
            if (_.indexOf(this.fields_keys, 'sequence') > -1) {
                this.dataset.resequence(col.get_ids());
            }
        },
    

    【讨论】:

      【解决方案2】:

      感谢您的提示。我已经做了一个解决方法并在这里发布,因为它可能对其他人有用。我已将“序列”字段映射到我自己的字段“顺序”,其反函数如下;

      my_order = fields.Integer(string="My order field", compute='_compute_order', inverse='_inverse_order',store=True )
      
      
      
      @api.depends('sequence')
      def _compute_order(self):
          for rec in self:
              rec.my_order =rec.sequence
      
      
      def _inverse_order(self):
          for rec in self:
              rec.sequence = rec.my_order
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多