diff options
| author | Géry Debongnie <ged@odoo.com> | 2015-07-23 10:07:18 +0200 |
|---|---|---|
| committer | Géry Debongnie <ged@odoo.com> | 2015-07-23 10:07:18 +0200 |
| commit | 84197b51eeacb7228ea05eef946eba3f6f9725b2 (patch) | |
| tree | d9dbb7a43c23601333c0340787fd6fb1203ace93 | |
| parent | a500f3b01b6399d21baf0e69372736b26f0b35f0 (diff) | |
[FIX] web_kanban: fix problems introduced by someone
Someone really smart decided to change web_kanban by moving something
from web to web_kanban. This makes sense, but it is a problem because
the code in web is not shared between enterprise and community, but
web_kanban is shared.
Also, it was put in kanban_view. If we have a module system in
javascript, is might be a good idea to use it.
So, this commit moves the code in a new file, and update the code to
the last version from enterprise. Yay for two codebase in parallel.
| -rw-r--r-- | addons/web_kanban/static/src/js/kanban_relational.js | 86 | ||||
| -rw-r--r-- | addons/web_kanban/static/src/js/kanban_view.js | 76 | ||||
| -rw-r--r-- | addons/web_kanban/views/web_kanban.xml | 1 |
3 files changed, 87 insertions, 76 deletions
diff --git a/addons/web_kanban/static/src/js/kanban_relational.js b/addons/web_kanban/static/src/js/kanban_relational.js new file mode 100644 index 00000000000..60eb6fcc0ae --- /dev/null +++ b/addons/web_kanban/static/src/js/kanban_relational.js @@ -0,0 +1,86 @@ +odoo.define('web_kanban.Many2ManyKanbanView', function (require) { +"use strict"; + +var common = require('web.form_common'); +var core = require('web.core'); +var data = require('web.data'); +var KanbanView = require('web_kanban.KanbanView'); + +var _t = core._t; + +var X2ManyKanbanView = KanbanView.extend({ + render_pager: function($node, options) { + options = _.extend(options || {}, { + single_page_hidden: true, + }); + this._super($node, options); + }, +}); + +var One2ManyKanbanView = X2ManyKanbanView.extend({ + add_record: function() { + var self = this; + new common.FormViewDialog(this, { + res_model: self.x2m.field.relation, + domain: self.x2m.build_domain(), + context: self.x2m.build_context(), + title: _t("Create: ") + self.x2m.string, + initial_view: "form", + alternative_form_view: self.x2m.field.views ? self.x2m.field.views.form : undefined, + create_function: function(data, options) { + return self.x2m.data_create(data, options); + }, + read_function: function(ids, fields, options) { + return self.x2m.data_read(ids, fields, options); + }, + on_selected: function() { + self.x2m.reload_current_view(); + } + }).open(); + }, +}); + +var Many2ManyKanbanView = X2ManyKanbanView.extend({ + add_record: function() { + var self = this; + new common.SelectCreateDialog(this, { + res_model: this.x2m.field.relation, + domain: new data.CompoundDomain(this.x2m.build_domain(), ["!", ["id", "in", this.dataset.ids]]), + context: this.x2m.build_context(), + title: _t("Add: ") + this.x2m.string, + on_selected: function(element_ids) { + return self.x2m.data_link_multi(element_ids).then(function() { + self.x2m.reload_current_view(); + }); + } + }).open(); + }, + open_record: function(event) { + var self = this; + new common.FormViewDialog(this, { + res_model: this.x2m.field.relation, + res_id: event.data.id, + context: this.x2m.build_context(), + title: _t("Open: ") + this.x2m.string, + write_function: function(id, data) { + return self.x2m.data_update(id, data, {}).done(function() { + self.x2m.reload_current_view(); + }); + }, + alternative_form_view: this.x2m.field.views ? this.x2m.field.views.form : undefined, + parent_view: this.x2m.view, + child_name: this.x2m.name, + read_function: function(ids, fields, options) { + return self.x2m.data_read(ids, fields, options); + }, + form_view_options: {'not_interactible_on_create': true}, + readonly: !this.is_action_enabled('edit') || this.x2m.get("effective_readonly") + }).open(); + }, +}); + +core.view_registry.add('one2many_kanban', One2ManyKanbanView); +core.view_registry.add('many2many_kanban', Many2ManyKanbanView); + +}); + diff --git a/addons/web_kanban/static/src/js/kanban_view.js b/addons/web_kanban/static/src/js/kanban_view.js index cf406179e09..bb697a3a131 100644 --- a/addons/web_kanban/static/src/js/kanban_view.js +++ b/addons/web_kanban/static/src/js/kanban_view.js @@ -774,79 +774,3 @@ return KanbanView; }); - -odoo.define('web_kanban.Many2ManyKanbanView', function (require) { - "use strict"; - var common = require('web.form_common'); - var core = require('web.core'); - var data = require('web.data'); - var KanbanView = require('web_kanban.KanbanView'); - - var _t = core._t; - - var One2ManyKanbanView = KanbanView.extend({ - add_record: function() { - var self = this; - new common.FormViewDialog(this, { - res_model: self.x2m.field.relation, - domain: self.x2m.build_domain(), - context: self.x2m.build_context(), - title: _t("Create: ") + self.x2m.string, - initial_view: "form", - alternative_form_view: self.x2m.field.views ? self.x2m.field.views.form : undefined, - create_function: function(data, options) { - return self.x2m.data_create(data, options); - }, - read_function: function(ids, fields, options) { - return self.x2m.data_read(ids, fields, options); - }, - on_selected: function() { - self.x2m.reload_current_view(); - } - }).open(); - }, - }); - - var Many2ManyKanbanView = KanbanView.extend({ - add_record: function() { - var self = this; - new common.SelectCreateDialog(this, { - res_model: this.x2m.field.relation, - domain: new data.CompoundDomain(this.x2m.build_domain(), ["!", ["id", "in", this.dataset.ids]]), - context: this.x2m.build_context(), - title: _t("Add: ") + this.x2m.string, - on_selected: function(element_ids) { - return self.x2m.data_link_multi(element_ids).then(function() { - self.x2m.reload_current_view(); - }); - } - }).open(); - }, - open_record: function(event) { - var self = this; - new common.FormViewDialog(this, { - res_model: this.x2m.field.relation, - res_id: event.data.id, - context: this.x2m.build_context(), - title: _t("Open: ") + this.x2m.string, - write_function: function(id, data) { - return self.x2m.data_update(id, data, {}).done(function() { - self.x2m.reload_current_view(); - }); - }, - alternative_form_view: this.x2m.field.views ? this.x2m.field.views.form : undefined, - parent_view: this.x2m.view, - child_name: this.x2m.name, - read_function: function(ids, fields, options) { - return self.x2m.data_read(ids, fields, options); - }, - form_view_options: {'not_interactible_on_create': true}, - readonly: !this.is_action_enabled('edit') || this.x2m.get("effective_readonly") - }).open(); - }, - }); - - core.view_registry.add('one2many_kanban', One2ManyKanbanView); - core.view_registry.add('many2many_kanban', Many2ManyKanbanView); - -}); diff --git a/addons/web_kanban/views/web_kanban.xml b/addons/web_kanban/views/web_kanban.xml index f383254636d..ce6d7e9c7b1 100644 --- a/addons/web_kanban/views/web_kanban.xml +++ b/addons/web_kanban/views/web_kanban.xml @@ -7,6 +7,7 @@ <link rel="stylesheet" href="/web_kanban/static/src/less/kanban_view.less"/> <script type="text/javascript" src="/web_kanban/static/src/js/kanban_record.js"></script> + <script type="text/javascript" src="/web_kanban/static/src/js/kanban_relational.js"></script> <script type="text/javascript" src="/web_kanban/static/src/js/kanban_quick_create.js"></script> <script type="text/javascript" src="/web_kanban/static/src/js/kanban_column.js"></script> <script type="text/javascript" src="/web_kanban/static/src/js/kanban_view.js"></script> |
