[IMP] KanbanView: replaced DataGroup by QueryGroup
bzr revid: fme@openerp.com-20121016132003-r8fn1g246th9y9e1
This commit is contained in:
parent
73950424bb
commit
510db55cfb
|
@ -202,6 +202,9 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
|
||||||
domain.push([self.group_by, '=', new_record[0][0]]);
|
domain.push([self.group_by, '=', new_record[0][0]]);
|
||||||
var dataset = new instance.web.DataSetSearch(self, self.dataset.model, self.dataset.get_context(), domain);
|
var dataset = new instance.web.DataSetSearch(self, self.dataset.model, self.dataset.get_context(), domain);
|
||||||
var datagroup = {
|
var datagroup = {
|
||||||
|
get: function(key) {
|
||||||
|
return this[key];
|
||||||
|
},
|
||||||
value: new_record[0],
|
value: new_record[0],
|
||||||
length: 0,
|
length: 0,
|
||||||
aggregates: {},
|
aggregates: {},
|
||||||
|
@ -225,8 +228,14 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
|
||||||
self.grouped_by_m2o = (self.group_by_field.type === 'many2one');
|
self.grouped_by_m2o = (self.group_by_field.type === 'many2one');
|
||||||
self.$buttons.find('.oe_alternative').toggle(self.grouped_by_m2o);
|
self.$buttons.find('.oe_alternative').toggle(self.grouped_by_m2o);
|
||||||
self.$el.toggleClass('oe_kanban_grouped_by_m2o', self.grouped_by_m2o);
|
self.$el.toggleClass('oe_kanban_grouped_by_m2o', self.grouped_by_m2o);
|
||||||
self.datagroup = new instance.web.DataGroup(self, self.dataset.model, domain, context, self.group_by ? [self.group_by] : []);
|
var grouping = new instance.web.Model(self.dataset.model, context, domain).query().group_by(self.group_by);
|
||||||
self.datagroup.list(self.fields_keys, self.do_process_groups, self.do_process_dataset);
|
$.when(grouping).then(function(groups) {
|
||||||
|
if (groups) {
|
||||||
|
self.do_process_groups(groups);
|
||||||
|
} else {
|
||||||
|
self.do_process_dataset();
|
||||||
|
}
|
||||||
|
})
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
do_process_groups: function(groups) {
|
do_process_groups: function(groups) {
|
||||||
|
@ -238,7 +247,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
|
||||||
groups_array = [];
|
groups_array = [];
|
||||||
return $.when.apply(null, _.map(groups, function (group, index) {
|
return $.when.apply(null, _.map(groups, function (group, index) {
|
||||||
var dataset = new instance.web.DataSetSearch(self, self.dataset.model,
|
var dataset = new instance.web.DataSetSearch(self, self.dataset.model,
|
||||||
new instance.web.CompoundContext(self.dataset.get_context(), group.context), group.domain);
|
new instance.web.CompoundContext(self.dataset.get_context(), group.model.context()), group.model.domain());
|
||||||
return dataset.read_slice(self.fields_keys.concat(['__last_update']), { 'limit': self.limit })
|
return dataset.read_slice(self.fields_keys.concat(['__last_update']), { 'limit': self.limit })
|
||||||
.pipe(function(records) {
|
.pipe(function(records) {
|
||||||
self.dataset.ids.push.apply(self.dataset.ids, dataset.ids);
|
self.dataset.ids.push.apply(self.dataset.ids, dataset.ids);
|
||||||
|
@ -252,7 +261,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
|
||||||
});
|
});
|
||||||
self.do_clear_groups();
|
self.do_clear_groups();
|
||||||
},
|
},
|
||||||
do_process_dataset: function(dataset) {
|
do_process_dataset: function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
this.$el.remove('oe_kanban_grouped').addClass('oe_kanban_ungrouped');
|
this.$el.remove('oe_kanban_grouped').addClass('oe_kanban_ungrouped');
|
||||||
this.add_group_mutex.exec(function() {
|
this.add_group_mutex.exec(function() {
|
||||||
|
@ -516,8 +525,8 @@ instance.web_kanban.KanbanGroup = instance.web.Widget.extend({
|
||||||
this.aggregates = {};
|
this.aggregates = {};
|
||||||
this.value = this.title = null;
|
this.value = this.title = null;
|
||||||
if (this.group) {
|
if (this.group) {
|
||||||
this.value = group.value;
|
this.value = group.get('value');
|
||||||
this.title = group.value;
|
this.title = group.get('value');
|
||||||
if (this.value instanceof Array) {
|
if (this.value instanceof Array) {
|
||||||
this.title = this.value[1];
|
this.title = this.value[1];
|
||||||
this.value = this.value[0];
|
this.value = this.value[0];
|
||||||
|
@ -525,11 +534,11 @@ instance.web_kanban.KanbanGroup = instance.web.Widget.extend({
|
||||||
var field = this.view.group_by_field;
|
var field = this.view.group_by_field;
|
||||||
if (!_.isEmpty(field)) {
|
if (!_.isEmpty(field)) {
|
||||||
try {
|
try {
|
||||||
this.title = instance.web.format_value(group.value, field, false);
|
this.title = instance.web.format_value(group.get('value'), field, false);
|
||||||
} catch(e) {}
|
} catch(e) {}
|
||||||
}
|
}
|
||||||
_.each(this.view.aggregates, function(value, key) {
|
_.each(this.view.aggregates, function(value, key) {
|
||||||
self.aggregates[value] = group.aggregates[key];
|
self.aggregates[value] = group.get('aggregates')[key];
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -540,7 +549,7 @@ instance.web_kanban.KanbanGroup = instance.web.Widget.extend({
|
||||||
var key = this.view.group_by + '-' + this.value;
|
var key = this.view.group_by + '-' + this.value;
|
||||||
if (!this.view.state.groups[key]) {
|
if (!this.view.state.groups[key]) {
|
||||||
this.view.state.groups[key] = {
|
this.view.state.groups[key] = {
|
||||||
folded: group?group.folded:false
|
folded: group ? group.get('folded') : false
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
this.state = this.view.state.groups[key];
|
this.state = this.view.state.groups[key];
|
||||||
|
@ -674,7 +683,7 @@ instance.web_kanban.KanbanGroup = instance.web.Widget.extend({
|
||||||
do_action_edit: function() {
|
do_action_edit: function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
self.do_action({
|
self.do_action({
|
||||||
res_id: this.group.value[0],
|
res_id: this.value,
|
||||||
name: _t("Edit column"),
|
name: _t("Edit column"),
|
||||||
res_model: self.view.group_by_field.relation,
|
res_model: self.view.group_by_field.relation,
|
||||||
views: [[false, 'form']],
|
views: [[false, 'form']],
|
||||||
|
@ -695,7 +704,7 @@ instance.web_kanban.KanbanGroup = instance.web.Widget.extend({
|
||||||
do_action_delete: function() {
|
do_action_delete: function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
if (confirm(_t("Are you sure to remove this column ?"))) {
|
if (confirm(_t("Are you sure to remove this column ?"))) {
|
||||||
(new instance.web.DataSet(self, self.view.group_by_field.relation)).unlink([self.group.value[0]]).then(function(r) {
|
(new instance.web.DataSet(self, self.view.group_by_field.relation)).unlink([self.value]).then(function(r) {
|
||||||
self.view.do_reload();
|
self.view.do_reload();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
<div class="oe_fold_column">
|
<div class="oe_fold_column">
|
||||||
<div t-attf-class="oe_kanban_group_title #{widget.undefined_title ? 'oe_kanban_group_title_undefined' : ''}">
|
<div t-attf-class="oe_kanban_group_title #{widget.undefined_title ? 'oe_kanban_group_title_undefined' : ''}">
|
||||||
<span><t t-esc="widget.title"/></span>
|
<span><t t-esc="widget.title"/></span>
|
||||||
<span class="oe_kanban_group_length oe_tag" style="position:relative; top:-2px;"><t t-esc="widget.group.length"/></span>
|
<span class="oe_kanban_group_length oe_tag" style="position:relative; top:-2px;"><t t-esc="widget.group.get('length')"/></span>
|
||||||
</div>
|
</div>
|
||||||
<ul class="oe_kanban_aggregates">
|
<ul class="oe_kanban_aggregates">
|
||||||
<li t-foreach="widget.aggregates" t-as="aggregate">
|
<li t-foreach="widget.aggregates" t-as="aggregate">
|
||||||
|
|
Loading…
Reference in New Issue