diff --git a/addons/base/static/src/js/views.js b/addons/base/static/src/js/views.js
index 8ef14a3edbf..7a7d1f1d02d 100644
--- a/addons/base/static/src/js/views.js
+++ b/addons/base/static/src/js/views.js
@@ -42,7 +42,11 @@ openerp.base.ActionManager = openerp.base.Controller.extend({
if (this.viewmanager) {
this.viewmanager.stop();
}
- this.viewmanager = new openerp.base.ViewManagerAction(this.session, this.element_id, action, true);
+ var sidebar = true;
+ if(action.no_sidebar) {
+ sidebar = false;
+ }
+ this.viewmanager = new openerp.base.ViewManagerAction(this.session, this.element_id, action, sidebar);
this.viewmanager.start();
}
break;
diff --git a/addons/base_dashboard/controllers/main.py b/addons/base_dashboard/controllers/main.py
index 72ef9b2464a..a223deda6be 100644
--- a/addons/base_dashboard/controllers/main.py
+++ b/addons/base_dashboard/controllers/main.py
@@ -1,4 +1,4 @@
-from base.controllers.main import View
+from base.controllers.main import View, clean_action
import openerpweb
class Dashboard(View):
@@ -7,11 +7,11 @@ class Dashboard(View):
@openerpweb.jsonrequest
def load(self, req, node_attrs):
- self.action_id = int(node_attrs['name'])
+ action_id = int(node_attrs['name'])
actions = req.session.model('ir.actions.actions')
- result = actions.read([self.action_id],['type'], req.session.context)
+ result = actions.read([action_id],['type'], req.session.context)
if not result:
raise _('Action not found!')
- self.action = req.session.model(result[0]['type']).read([self.action_id], False, req.session.context)[0]
-
- return {'action': self.action}
\ No newline at end of file
+ action = req.session.model(result[0]['type']).read([action_id], False, req.session.context)[0]
+ clean_action(action, req.session)
+ return {'action': action}
\ No newline at end of file
diff --git a/addons/base_dashboard/static/src/js/dashboard.js b/addons/base_dashboard/static/src/js/dashboard.js
index 7382e0b064d..aeb26be995c 100644
--- a/addons/base_dashboard/static/src/js/dashboard.js
+++ b/addons/base_dashboard/static/src/js/dashboard.js
@@ -18,12 +18,11 @@ openerp.base.form.Board = openerp.base.form.Widget.extend({
jQuery('body').append(
jQuery('
', {'id': 'dashboard_template'}).load('/base_dashboard/static/src/dashboard_template.html',self.on_loaded).hide()
)
-
},
on_loaded: function() {
var children = this.node.children;
- var get_column = ['first', 'second', 'third'];
+
var board = jQuery('#dashboard').dashboard({
layoutClass:'layout'
});
@@ -32,22 +31,18 @@ openerp.base.form.Board = openerp.base.form.Widget.extend({
var ch_widgets = children[ch].children;
for(var chld = 0; chld < ch_widgets.length; chld++) {
var widget_type = ch_widgets[chld].tag;
- var board_element = board.element.find('[id=column-'+get_column[chld]+']');
- var widget = new (openerp.base.form.widgets.get_object(widget_type)) (this.view, ch_widgets[chld], board_element);
- board.addWidget({
- 'id': ch_widgets[chld].attrs.name,
- 'title': ch_widgets[chld].attrs.string,
- 'url': widget.start()
- }, board_element)
+ var widget = new (openerp.base.form.widgets.get_object(widget_type)) (this.view, ch_widgets[chld], board, chld);
+ widget.start();
}
}
}
});
openerp.base.form.Action = openerp.base.form.Widget.extend({
- init: function(view, node, column) {
- this._super(view, node, column);
- this.template = "Action";
+ init: function(view, node, board,child_index) {
+ this._super(view, node, board,child_index);
+ this.board = board;
+ this.child_index = child_index;
},
start: function() {
this._super.apply(this, arguments);
@@ -59,9 +54,25 @@ openerp.base.form.Action = openerp.base.form.Widget.extend({
on_load_action: function(result) {
var action = result.action;
- action_manager = new openerp.base.ActionManager(this.session, this.$element.attr('id'));
+ if(action.search_view)
+ action.search_view = false;
+ action.no_sidebar = true;
+
+ var node_attrs = this.node.attrs;
+ var get_column = ['first', 'second', 'third'];
+ var board_element = this.board.element.find('[id=column-'+get_column[this.child_index]+']');
+
+ this.board.addWidget({
+ 'id': node_attrs.name,
+ 'title': node_attrs.string,
+ }, board_element);
+
+ var content_id = node_attrs.name+'-widgetcontent';
+ this.board.getWidget(node_attrs.name).element.find('.widgetcontent').attr('id',content_id)
+
+ action_manager = new openerp.base.ActionManager(this.session, content_id);
action_manager.start();
- action_manager.do_action(action);
+ this.board.getWidget(node_attrs.name).url = action_manager.do_action(action);
}
})