[IMP] kanban :- no group by on field then fix aggregates problems. improve method reload record based on id in kanban view.

bzr revid: ysa@tinyerp.com-20110927054443-6y7oc5zcdlsk0v26
This commit is contained in:
Yogesh (OpenERP)
2011-09-27 11:14:43 +05:30
parent 5e303d0ea4
commit 0928b2d4b6
2 changed files with 29 additions and 23 deletions
+23 -19
View File
@@ -218,7 +218,7 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({
on_record_saved: function(r) {
var id = this.form_dialog.form.datarecord.id;
// TODO fme: reload record instead of all. need refactoring
this.do_actual_search();
this.on_reload_record(id);
},
do_change_color: function(record_id, $e) {
var self = this,
@@ -237,7 +237,7 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({
data[$e.data('name')] = $(this).data('color');
self.dataset.write(id, data, {}, function() {
// TODO fme: reload record instead of all. need refactoring
self.on_reload_record(id, data);
self.on_reload_record(id);
});
$cpicker.remove();
});
@@ -245,28 +245,32 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({
/**
Reload one record in view.
record_id : reload record id.
data : change value in particular record.
*/
on_reload_record: function (record_id, data){
on_reload_record: function (record_id){
var self = this;
for (var i=0, ii=this.all_display_data.length; i < ii; i++) {
for(j=0, jj=this.all_display_data[i].records.length; j < jj; j++) {
if (this.all_display_data[i].records[j].id == record_id) {
_.extend(this.all_display_data[i].records[j], data);
this.$element.find("#main_" + record_id).children().remove();
this.$element.find("#main_" + record_id).append(this.qweb.render('kanban-box', {
record: this.do_transform_record(this.all_display_data[i].records[j]),
kanban_color: this.kanban_color,
kanban_gravatar: this.kanban_gravatar
}));
break;
this.dataset.read_ids([record_id], [], function (records) {
if (records.length > 0) {
for (var i=0, ii=self.all_display_data.length; i < ii; i++) {
for(j=0, jj=self.all_display_data[i].records.length; j < jj; j++) {
if (self.all_display_data[i].records[j].id == record_id) {
_.extend(self.all_display_data[i].records[j], records[0]);
self.$element.find("#main_" + record_id).children().remove();
self.$element.find("#main_" + record_id).append(self.qweb.render('kanban-box', {
record: self.do_transform_record(self.all_display_data[i].records[j]),
kanban_color: self.kanban_color,
kanban_gravatar: self.kanban_gravatar
}));
break;
}
}
}
self.$element.find("#main_" + record_id + " .oe_kanban_action").click(self.on_action_clicked);
self.$element.find("#main_" + record_id + " .oe_kanban_box_show_onclick_trigger").click(function() {
$(this).parent("#main_" + record_id + " .oe_kanban_box").find(".oe_kanban_box_show_onclick").toggle();
});
}
}
this.$element.find("#main_" + record_id + " .oe_kanban_action").click(this.on_action_clicked);
this.$element.find("#main_" + record_id + " .oe_kanban_box_show_onclick_trigger").click(function() {
$(this).parent("#main_" + record_id + " .oe_kanban_box").find(".oe_kanban_box_show_onclick").toggle();
});
},
do_delete: function (id) {
var self = this;
@@ -14,14 +14,16 @@
<div class="oe_fold_column oe_column_heading" t-att-id="'column_' + columns.value">
<t t-if="columns.value and columns.header" t-esc="columns.header"/>
</div>
<div t-foreach="columns.aggregates" t-as="aggregate">
<i><u><t t-esc="aggregate"/>:</u> <t t-esc="aggregate_value"/></i>
</div>
<t t-if="columns.aggregates">
<div t-foreach="columns.aggregates" t-as="aggregate">
<i><u><t t-esc="aggregate"/>:</u> <t t-esc="aggregate_value"/></i>
</div>
</t>
</td>
</tr>
<tr>
<td t-foreach="data" t-as="columns" class="oe_column oe_table_column" t-att-id="'column_' + columns.value" t-attf-style="width: #{Math.round(99 / data.length)}%">
<p class="oe_vertical_text" t-att-id="'column_' + columns.value"><t t-esc="columns.header"/></p>
<p t-if="columns.header" class="oe_vertical_text" t-att-id="'column_' + columns.value"><t t-esc="columns.header"/></p>
<div t-foreach="columns.records" t-as="record" class="oe_fold_column oe_kanban_record" t-att-id="'main_' + record.id"/>
</td>
</tr>