
如果我将看板卡从一列拖放到另一列(按进度分析),如何检测卡被移动?
发布于 2016-09-22 22:17:43
在每个拖放事件上,将调用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);
},发布于 2016-02-13 06:12:08
基本上,在您的情况下,如果您想在kanban卡上添加拖放事件,那么在这种情况下,您必须使用default_group_by="company_id"设置一个字段,如状态字段或任何选择或many2one字段的分组。
default_group_by主要用于对kanban卡的各个阶段进行分组,如数据库表上的group_by操作。
default_group_by :
如果没有通过操作或当前的研究指定分组,那么是否应该对kanban视图进行分组。当未指定分组时,应该是要分组的字段的名称。
势问题:
然而,也存在一个潜在的问题。表示没有任何项的组的列将不包括在内。这意味着用户将无法将项目移动到那些不存在的组中,这可能不是我们所期望的。
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字段的kanban记录分组的一个很好的例子。
只需参考下面的帖子:
https://www.odoo.com/documentation/8.0/reference/views.html#kanban
http://ludwiktrammer.github.io/odoo/odoo-grouping-kanban-view-empty.html
我希望我的回答能对你有所帮助:)
https://stackoverflow.com/questions/35331531
复制相似问题