self.$buttons.find('.oe_alternative').toggle(self.grouped_by_m2o);
self.$el.toggleClass('oe_kanban_grouped_by_m2o', self.grouped_by_m2o);
var grouping_fields = self.group_by ? [self.group_by].concat(_.keys(self.aggregates)) : undefined;
- var grouping = new instance.web.Model(self.dataset.model, context, domain).query().group_by(grouping_fields);
+ if (!_.isEmpty(grouping_fields)) {
+ // ensure group_by fields are read.
+ self.fields_keys = _.unique(self.fields_keys.concat(grouping_fields));
+ }
+ var grouping = new instance.web.Model(self.dataset.model, context, domain).query(self.fields_keys).group_by(grouping_fields);
return self.alive($.when(grouping)).done(function(groups) {
self.remove_no_result();
if (groups) {
var self = this;
if (this.group_by) {
// Kanban cards drag'n'drop
- var $columns = this.$el.find('.oe_kanban_column .oe_kanban_column_cards');
+ var prev_widget,is_folded,record;
+ var $columns = this.$el.find('.oe_kanban_column .oe_kanban_column_cards, .oe_kanban_column .oe_kanban_folded_column_cards');
$columns.sortable({
handle : '.oe_kanban_draghandle',
start: function(event, ui) {
self.currently_dragging.index = ui.item.parent().children('.oe_kanban_record').index(ui.item);
- self.currently_dragging.group = ui.item.parents('.oe_kanban_column:first').data('widget');
+ self.currently_dragging.group = prev_widget = ui.item.parents('.oe_kanban_column:first').data('widget');
ui.item.find('*').on('click.prevent', function(ev) {
return false;
});
+ record = ui.item.data('widget');
+ record.$el.bind('mouseup',function(ev,ui){
+ if(is_folded)record.$el.hide();
+ record.$el.unbind('mouseup');
+ })
ui.placeholder.height(ui.item.height());
},
+ over: function(event, ui) {
+ var parent = $(event.target).parent();
+ prev_widget.highlight(false);
+ is_folded = parent.hasClass('oe_kanban_group_folded');
+ if(is_folded){
+ var widget = parent.data('widget');
+ widget.highlight(true);
+ prev_widget = widget;
+ }
+ },
revert: 150,
stop: function(event, ui) {
- var record = ui.item.data('widget');
+ prev_widget.highlight(false);
var old_index = self.currently_dragging.index;
var new_index = ui.item.parent().children('.oe_kanban_record').index(ui.item);
var old_group = self.currently_dragging.group;
this.dataset.write(record.id, data, {}).done(function() {
record.do_reload();
new_group.do_save_sequences();
+ if(new_group.state.folded){
+ new_group.do_action_toggle_fold();
+ record.prependTo(new_group.$records.find('.oe_kanban_column_cards'));
+ }
}).fail(function(error, evt) {
evt.preventDefault();
alert(_t("An error has occured while moving the record to this group: ") + data.message);
self.view.dataset.ids.push(id);
self.do_add_records(records, true);
});
+ },
+ highlight: function(show){
+ if(show){
+ this.$el.addClass('oe_kanban_column_higlight');
+ this.$records.addClass('oe_kanban_column_higlight');
+ }else{
+ this.$el.removeClass('oe_kanban_column_higlight');
+ this.$records.removeClass('oe_kanban_column_higlight');
+ }
}
});