From ca4cc2f8bd154447eecff4dd858aa4be83940dae Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 2 Nov 2011 18:18:54 +0100 Subject: [PATCH] [WIP] Kanban refactoring bzr revid: fme@openerp.com-20111102171854-e565rwcn5vgrebaz --- addons/web_kanban/static/src/js/kanban.js | 252 +++++++++++++----- .../web_kanban/static/src/xml/web_kanban.xml | 54 ++-- 2 files changed, 209 insertions(+), 97 deletions(-) diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index 13d3c9203fc..dbc4e59667d 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -4,35 +4,47 @@ var QWeb = openerp.web.qweb; QWeb.add_template('/web_kanban/static/src/xml/web_kanban.xml'); openerp.web.views.add('kanban', 'openerp.web_kanban.KanbanView'); openerp.web_kanban.KanbanView = openerp.web.View.extend({ + template: "KanbanView", init: function (parent, dataset, view_id, options) { this._super(parent); this.set_default_options(options); this.dataset = dataset; - this.model = dataset.model; + this.model = this.dataset.model; this.view_id = view_id; this.fields_view = {}; - this.group_by = []; - this.source_index = {}; - this.all_display_data = false; + this.fields_keys = []; + this.group_by = null; + this.state = {}; this.groups = []; - this.qweb = new QWeb2.Engine(); - this.qweb.debug = (window.location.search.indexOf('?debug') !== -1); - this.aggregates = {}; - this.NO_OF_COLUMNS = 3; + this.nr_columns = 3; this.form_dialog = new openerp.web.FormDialog(this, {}, this.options.action_views_ids.form, dataset).start(); this.form_dialog.on_form_dialog_saved.add_last(this.on_record_saved); + this.qweb = new QWeb2.Engine(); + this.qweb.debug = (window.location.search.indexOf('?debug') !== -1); + this.qweb.default_dict = { + '_' : _ + } + this.has_been_loaded = $.Deferred(); }, start: function() { this._super(); - return this.rpc("/web/view/load", {"model": this.model, "view_id": this.view_id, "view_type": "kanban"}, this.on_loaded); + this.$groups = this.$element.find('.oe_kanban_groups tr'); + var context = new openerp.web.CompoundContext(this.dataset.get_context()); + return this.rpc('/web/view/load', { + 'model': this.model, + 'view_id': this.view_id, + 'view_type': 'kanban', + context: context + }, this.on_loaded); }, on_loaded: function(data) { - var self = this; this.fields_view = data; + this.fields_keys = _.keys(this.fields_view.fields); this.add_qweb_template(); + this.has_been_loaded.resolve(); }, add_qweb_template: function() { - var group_operator = ["avg", "max", "min", "sum", "count"] + var group_operator = ['avg', 'max', 'min', 'sum', 'count'] for (var i=0, ii=this.fields_view.arch.children.length; i < ii; i++) { var child = this.fields_view.arch.children[i]; if (child.tag === "field") { @@ -50,50 +62,6 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ } } }, - get_qweb_context: function(record) { - return { - record: this.do_transform_record(record), - kanban_color: _.bind(this.kanban_color, this), - kanban_gravatar: _.bind(this.kanban_gravatar, this), - kanban_image: _.bind(this.kanban_image, this), - kanban_text_ellipsis: _.bind(this.kanban_text_ellipsis, this), - '_' : _ - } - }, - kanban_color: function(variable) { - var number_of_color_schemes = 10, - index = 0; - switch (typeof(variable)) { - case 'string': - for (var i=0, ii=variable.length; i - - - +
+ +
+
-
- -
-
+ - - - - - +
- -
-
- -
-
- : -
-
-
-

-
-
+ + + +
+
+ +
+
+ : +
+
+ +
+ + +

+ +
+ +
+ +
+