summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/board/static/src/js/dashboard.js8
-rw-r--r--addons/board/static/tests/dashboard_tests.js16
-rw-r--r--addons/web/controllers/main.py19
3 files changed, 23 insertions, 20 deletions
diff --git a/addons/board/static/src/js/dashboard.js b/addons/board/static/src/js/dashboard.js
index ee8f720a9df..09c9c4e2559 100644
--- a/addons/board/static/src/js/dashboard.js
+++ b/addons/board/static/src/js/dashboard.js
@@ -20,7 +20,7 @@ FormView.include({
*/
init: function (viewInfo) {
this._super.apply(this, arguments);
- this.controllerParams.viewID = viewInfo.view_id;
+ this.controllerParams.customViewID = viewInfo.custom_view_id;
},
});
@@ -33,7 +33,7 @@ FormController.include({
}),
init: function (parent, model, renderer, params) {
this._super.apply(this, arguments);
- this.viewID = params.viewID;
+ this.customViewID = params.customViewID;
},
//--------------------------------------------------------------------------
@@ -63,9 +63,9 @@ FormController.include({
var board = this.renderer.getBoard();
var arch = QWeb.render('DashBoard.xml', _.extend({}, board));
return this._rpc({
- route: '/web/view/add_custom',
+ route: '/web/view/edit_custom',
params: {
- view_id: this.viewID,
+ custom_id: this.customViewID,
arch: arch,
}
}).then(dataManager.invalidate.bind(dataManager));
diff --git a/addons/board/static/tests/dashboard_tests.js b/addons/board/static/tests/dashboard_tests.js
index 4a6f25f5950..505883a5f4b 100644
--- a/addons/board/static/tests/dashboard_tests.js
+++ b/addons/board/static/tests/dashboard_tests.js
@@ -124,8 +124,8 @@ QUnit.test('basic functionality, with one sub action', function (assert) {
if (route === '/web/dataset/search_read') {
assert.deepEqual(args.domain, [['foo', '!=', 'False']], "the domain should be passed");
}
- if (route === '/web/view/add_custom') {
- assert.step('add custom');
+ if (route === '/web/view/edit_custom') {
+ assert.step('edit custom');
return $.when(true);
}
return this._super.apply(this, arguments);
@@ -156,7 +156,7 @@ QUnit.test('basic functionality, with one sub action', function (assert) {
form.$('.oe_fold').click();
assert.ok(form.$('.oe_content').is(':visible'), "content is visible again");
- assert.verifySteps(['load action', 'add custom', 'add custom']);
+ assert.verifySteps(['load action', 'edit custom', 'edit custom']);
assert.strictEqual($('.modal').length, 0, "should have no modal open");
@@ -184,7 +184,7 @@ QUnit.test('basic functionality, with one sub action', function (assert) {
assert.strictEqual($('.modal').length, 0, "should have no modal open");
assert.strictEqual(form.$('.oe_action').length, 0, "should have no displayed action");
- assert.verifySteps(['load action', 'add custom', 'add custom', 'add custom', 'add custom']);
+ assert.verifySteps(['load action', 'edit custom', 'edit custom', 'edit custom', 'edit custom']);
form.destroy();
});
@@ -293,8 +293,8 @@ QUnit.test('can drag and drop a view', function (assert) {
views: [[4, 'list']],
});
}
- if (route === '/web/view/add_custom') {
- assert.step('add custom');
+ if (route === '/web/view/edit_custom') {
+ assert.step('edit custom');
return $.when(true);
}
return this._super.apply(this, arguments);
@@ -340,8 +340,8 @@ QUnit.test('twice the same action in a dashboard', function (assert) {
views: [[4, 'list'],[5, 'kanban']],
});
}
- if (route === '/web/view/add_custom') {
- assert.step('add custom');
+ if (route === '/web/view/edit_custom') {
+ assert.step('edit custom');
return $.when(true);
}
return this._super.apply(this, arguments);
diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py
index 6b73f28ca7d..91d178bc69c 100644
--- a/addons/web/controllers/main.py
+++ b/addons/web/controllers/main.py
@@ -961,14 +961,17 @@ class DataSet(http.Controller):
class View(http.Controller):
- @http.route('/web/view/add_custom', type='json', auth="user")
- def add_custom(self, view_id, arch):
- CustomView = request.env['ir.ui.view.custom']
- CustomView.create({
- 'user_id': request.session.uid,
- 'ref_id': view_id,
- 'arch': arch
- })
+ @http.route('/web/view/edit_custom', type='json', auth="user")
+ def edit_custom(self, custom_id, arch):
+ """
+ Edit a custom view
+
+ :param int custom_id: the id of the edited custom view
+ :param str arch: the edited arch of the custom view
+ :returns: dict with acknowledged operation (result set to True)
+ """
+ custom_view = request.env['ir.ui.view.custom'].browse(custom_id)
+ custom_view.write({ 'arch': arch })
return {'result': True}
class Binary(http.Controller):