簡體   English   中英

如何在odoo中檢測看板視圖的拖放事件?

[英]how to detect the drag and drop event of kanban view in odoo?

看板視圖和看板卡

如果我將看板卡從一列拖放到另一列(“分析正在進行中”),如何檢測到卡已移動?

基本上在您的情況下如果您想在看板卡上添加拖放事件,那么在這種情況下,您必須使用default_group_by =“ company_id”設置一個字段,如狀態字段或任何選擇字段或many2one字段的分組

default_group_by主要用於對每個階段相似的看板卡進行分組,作為對datbase表的group_by操作。

default_group_by:

如果通過操作或當前研究未指定分組,則是否應該將看板視圖分組。 如果沒有另外指定分組,則應為要分組的字段名稱。

潛在問題:

但是,存在潛在的問題。 代表沒有任何項目的組的列將不包括在內。 這意味着用戶將無法將項目移動到那些不在的組中,這可能不是我們想要的。

Odoo為此准備了一個答案-名為_group_by_full的可選模型屬性。

_group_by_full:

它應該是一個字典,將(用於分組的字段的)字段名稱映射到返回有關那些字段的所有可用組的信息的方法。

class Store(models.Model):
    @api.model
    def company_groups(self, present_ids, domain, **kwargs):
        companies = self.env['res.company'].search([]).name_get()
        return companies, None

    _name = 'store'
    _group_by_full = {
        'company_id': company_groups,
    }

    name = fields.Char()
    company_id = fields.Many2many('res.company')

上面的代碼確保當顯示按company_id分組的商店對象時,將代表所有可用的公司(不僅是已經擁有商店的公司)。

上面的代碼確保當顯示按company_id分組的商店對象時,將代表所有可用的公司(不僅是已經擁有商店的公司)。

_group_by_full,它返回一個兩個元素的元組:

第一個元素:

兩個元素元組的列表,代表各個組。 列表中的每個元組都必須包含特定組的值(在我們的示例中:特定公司的ID)和該組的用戶友好名稱(在我們的示例中:公司名稱)。 這就是為什么我們可以使用name_get方法的原因,因為它返回(對象ID,對象名稱)元組的列表。

第二要素:

字典,將組的值映射到布爾值,指示是否應在看板視圖中折疊組。 在此字典中不包括組的含義與將其映射為False的含義相同。

例如 :

此版本的company_groups方法將使代表代表ID為1的公司的組在看板視圖中折疊:

您也可以引用crm模塊以更好地了解crm.lead模型,因為它是stage_id字段的看板記錄分組的一個很好的示例。

只需參考以下帖子:

https://www.odoo.com/documentation/8.0/reference/views.html#kanban

http://ludwiktrammer.github.io/odoo/odoo-grouping-kanban-view-empty.html

希望我的回答對您有所幫助:)

在每次拖放事件中,都會調用set_record()

set_record: function(record) {
    var self = this;
    this.id = record.id;
    this.values = {};
    _.each(record, function(v, k) {
        self.values[k] = {
            value: v
        };
    });
    this.record = this.transform_record(record);
},

src: https//github.com/odoo/odoo/blob/8.0/addons/web_kanban/static/src/js/kanban.js#L894

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM