Merge lp:~openerp-dev/openerp-web/trunk-kanban-column-vme-2 into lp:openerp-web

Proposed by Vidhin Mehta (OpenERP)
Status: Work in progress
Proposed branch: lp:~openerp-dev/openerp-web/trunk-kanban-column-vme-2
Merge into: lp:openerp-web
Diff against target: 178 lines (+78/-48)
2 files modified
addons/web/static/src/js/views.js (+1/-0)
addons/web_kanban/static/src/js/kanban.js (+77/-48)
To merge this branch: bzr merge lp:~openerp-dev/openerp-web/trunk-kanban-column-vme-2
Reviewer Review Type Date Requested Status
OpenERP R&D Web Team Pending
Review via email: mp+195052@code.launchpad.net
To post a comment you must log in.
3866. By Vidhin Mehta (OpenERP)

[REM]remove unwanted code.

3867. By Vidhin Mehta (OpenERP)

[MERGE]Trunk.

3868. By Vidhin Mehta (OpenERP)

[FIX]

3869. By Vidhin Mehta (OpenERP)

[Merge]Trunk.

3870. By Vidhin Mehta (OpenERP)

[IMP]Refactore code.

3871. By Vidhin Mehta (OpenERP)

[IMP]typo change

3872. By Vidhin Mehta (OpenERP)

[IMP]old code remerged.

3873. By Vidhin Mehta (OpenERP)

[IMP]something

3874. By Mahendra Barad(OpenERP)

[IMP]added the current model in context

3875. By Vidhin Mehta (OpenERP)

[IMP]

3876. By Mahendra Barad(OpenERP)

[REV]revert changes

Unmerged revisions

3876. By Mahendra Barad(OpenERP)

[REV]revert changes

3875. By Vidhin Mehta (OpenERP)

[IMP]

3874. By Mahendra Barad(OpenERP)

[IMP]added the current model in context

3873. By Vidhin Mehta (OpenERP)

[IMP]something

3872. By Vidhin Mehta (OpenERP)

[IMP]old code remerged.

3871. By Vidhin Mehta (OpenERP)

[IMP]typo change

3870. By Vidhin Mehta (OpenERP)

[IMP]Refactore code.

3869. By Vidhin Mehta (OpenERP)

[Merge]Trunk.

3868. By Vidhin Mehta (OpenERP)

[FIX]

3867. By Vidhin Mehta (OpenERP)

[MERGE]Trunk.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'addons/web/static/src/js/views.js'
2--- addons/web/static/src/js/views.js 2013-11-25 16:05:06 +0000
3+++ addons/web/static/src/js/views.js 2013-11-27 10:06:00 +0000
4@@ -1415,6 +1415,7 @@
5 } else {
6 self.do_action({"type":"ir.actions.act_window_close"});
7 return result_handler();
8+
9 }
10 };
11
12
13=== modified file 'addons/web_kanban/static/src/js/kanban.js'
14--- addons/web_kanban/static/src/js/kanban.js 2013-10-30 18:09:41 +0000
15+++ addons/web_kanban/static/src/js/kanban.js 2013-11-27 10:06:00 +0000
16@@ -190,41 +190,39 @@
17 this.dataset.index = null;
18 this.do_switch_view('form');
19 },
20+ get_action: function(){
21+ var self = this;
22+ var stage_management = this.fields_view.arch.attrs['stage_management'];
23+ var action = {
24+ name: _t("Add New Column"),
25+ res_model: this.group_by_field.relation,
26+ views: [[false, 'form']],
27+ type: 'ir.actions.act_window',
28+ target: "new",
29+ context: self.dataset.get_context(),
30+ flags: {
31+ action_buttons: true,
32+ }
33+ };
34+ var stage_option = this.fields_view.arch.attrs['stage_options'];
35+ if(!stage_option)return action;
36+ stage_option = instance.web.py_eval(stage_option);
37+ var context = (this.dataset.get_context()).eval();
38+ if (stage_option['group_by'] === this.group_by && stage_management && context[stage_option['default_context_key']]){
39+ action.context = (new openerp.web.CompoundContext(context)).add({'default_action':'create'});
40+ action.res_model = stage_management;
41+ }
42+ return action
43+ },
44 do_add_group: function() {
45 var self = this;
46- self.do_action({
47- name: _t("Add column"),
48- res_model: self.group_by_field.relation,
49- views: [[false, 'form']],
50- type: 'ir.actions.act_window',
51- target: "new",
52- context: self.dataset.get_context(),
53- flags: {
54- action_buttons: true,
55- }
56- });
57+ self.do_action(this.get_action());
58 var am = instance.webclient.action_manager;
59 var form = am.dialog_widget.views.form.controller;
60 form.on("on_button_cancel", am.dialog, am.dialog.close);
61 form.on('record_created', self, function(r) {
62- (new instance.web.DataSet(self, self.group_by_field.relation)).name_get([r]).done(function(new_record) {
63- am.dialog.close();
64- var domain = self.dataset.domain.slice(0);
65- domain.push([self.group_by, '=', new_record[0][0]]);
66- var dataset = new instance.web.DataSetSearch(self, self.dataset.model, self.dataset.get_context(), domain);
67- var datagroup = {
68- get: function(key) {
69- return this[key];
70- },
71- value: new_record[0],
72- length: 0,
73- aggregates: {},
74- };
75- var new_group = new instance.web_kanban.KanbanGroup(self, [], datagroup, dataset);
76- self.do_add_groups([new_group]).done(function() {
77- $(window).scrollTo(self.groups.slice(-1)[0].$el, { axis: 'x' });
78- });
79- });
80+ am.dialog.close();
81+ self.do_reload();
82 });
83 },
84 do_search: function(domain, context, group_by) {
85@@ -399,8 +397,8 @@
86 stop: function(event, ui) {
87 var stop_index = ui.item.index();
88 if (start_index !== stop_index) {
89- var $start_column = $('.oe_kanban_groups_records .oe_kanban_column').eq(start_index);
90- var $stop_column = $('.oe_kanban_groups_records .oe_kanban_column').eq(stop_index);
91+ var $start_column = self.$('.oe_kanban_groups_records .oe_kanban_column').eq(start_index);
92+ var $stop_column = self.$('.oe_kanban_groups_records .oe_kanban_column').eq(stop_index);
93 var method = (start_index > stop_index) ? 'insertBefore' : 'insertAfter';
94 $start_column[method]($stop_column);
95 var tmp_group = self.groups.splice(start_index, 1)[0];
96@@ -742,34 +740,65 @@
97 do_action_toggle_fold: function() {
98 this.do_toggle_fold();
99 },
100+ get_action: function(){
101+ var self = this;
102+ var parent_widget = self.getParent();
103+ var stage_management = parent_widget.fields_view.arch.attrs['stage_management'];
104+ var action = {
105+ name: _t("Edit Column"),
106+ res_id: this.value,
107+ res_model: this.view.group_by_field.relation,
108+ views: [[false, 'form']],
109+ type: 'ir.actions.act_window',
110+ target: "new",
111+ context: this.dataset.context,
112+ flags: {
113+ action_buttons: true,
114+ }
115+ }
116+ var stage_option = parent_widget.fields_view.arch.attrs['stage_options'];
117+ if(!stage_option)return action;
118+ stage_option = instance.web.py_eval(stage_option);
119+ var context = (this.dataset.get_context()).eval();
120+ if (stage_option['group_by'] === this.view.group_by && stage_management && context[stage_option['default_context_key']]){
121+ action.context = (new openerp.web.CompoundContext(context)).add({'current_model':this.dataset.model, active_id:this.value, 'default_action':'write'});
122+ action.res_model = stage_management;
123+ delete action['res_id'];
124+ }
125+ return action
126+ },
127 do_action_edit: function() {
128 var self = this;
129- self.do_action({
130- res_id: this.value,
131- name: _t("Edit column"),
132- res_model: self.view.group_by_field.relation,
133- views: [[false, 'form']],
134- type: 'ir.actions.act_window',
135- target: "new",
136- flags: {
137- action_buttons: true,
138- }
139- });
140+ self.do_action(this.get_action());
141 var am = instance.webclient.action_manager;
142 var form = am.dialog_widget.views.form.controller;
143 form.on("on_button_cancel", am.dialog, am.dialog.close);
144- form.on('record_saved', self, function() {
145+ form.on('record_saved record_created', self, function() {
146 am.dialog.close();
147 self.view.do_reload();
148 });
149 },
150 do_action_delete: function() {
151 var self = this;
152- if (confirm(_t("Are you sure to remove this column ?"))) {
153- (new instance.web.DataSet(self, self.view.group_by_field.relation)).unlink([self.value]).done(function(r) {
154- self.view.do_reload();
155- });
156- }
157+ var func = function(){
158+ if (confirm(_t("Are you sure to remove this column ?"))) {
159+ (new instance.web.DataSet(self, res_model, context)).unlink([self.value]).done(function(r) {
160+ self.view.do_reload();
161+ });
162+ }
163+ }
164+ var res_model = self.view.group_by_field.relation;
165+ var parent_widget = self.getParent();
166+ var stage_management = parent_widget.fields_view.arch.attrs['stage_management'];
167+ var stage_option = parent_widget.fields_view.arch.attrs['stage_options'];
168+ if(!stage_option)return func();
169+ stage_option = instance.web.py_eval(stage_option);
170+ var context = (this.dataset.get_context()).eval();
171+ if (stage_option['group_by'] === this.view.group_by && stage_management && context[stage_option['default_context_key']]){
172+ res_model = stage_management;
173+ context = (new openerp.web.CompoundContext(context)).add({'current_model': this.dataset.model});
174+ }
175+ return func();
176 },
177 do_save_sequences: function() {
178 var self = this;