diff --git a/web_tree_many2one_clickable/__init__.py b/web_tree_many2one_clickable/__init__.py new file mode 100644 index 00000000..f6974117 --- /dev/null +++ b/web_tree_many2one_clickable/__init__.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2013 Therp BV (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## diff --git a/web_tree_many2one_clickable/__openerp__.py b/web_tree_many2one_clickable/__openerp__.py new file mode 100644 index 00000000..5dacac43 --- /dev/null +++ b/web_tree_many2one_clickable/__openerp__.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2013 Therp BV (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +{ + "name" : "Clickable many2one widget for tree views", + "version" : "1.0", + "author" : "Therp BV", + "complexity": "normal", + "description": """ +This addon provides a widget to have many2one fields in a tree view open the +linked resource:: + + + +will open the linked partner in a form view. + """, + "category" : "Dependency", + "depends" : [ + 'web', + ], + "data" : [ + 'security/ir.model.access.csv', + ], + "js": [ + 'static/src/js/web_tree_many2one_clickable.js', + ], + "css": [ + ], + "qweb": [ + ], + "auto_install": False, + "installable": True, + "external_dependencies" : { + 'python' : [], + }, +} diff --git a/web_tree_many2one_clickable/static/src/img/icon.png b/web_tree_many2one_clickable/static/src/img/icon.png new file mode 100644 index 00000000..f1006195 Binary files /dev/null and b/web_tree_many2one_clickable/static/src/img/icon.png differ diff --git a/web_tree_many2one_clickable/static/src/js/web_tree_many2one_clickable.js b/web_tree_many2one_clickable/static/src/js/web_tree_many2one_clickable.js new file mode 100644 index 00000000..4203e34e --- /dev/null +++ b/web_tree_many2one_clickable/static/src/js/web_tree_many2one_clickable.js @@ -0,0 +1,45 @@ +//-*- coding: utf-8 -*- +//############################################################################ +// +// OpenERP, Open Source Management Solution +// This module copyright (C) 2013 Therp BV (). +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . +// +//############################################################################ + +openerp.web_tree_many2one_clickable = function(openerp) +{ + openerp.web.list.columns.add( + 'field.many2one_clickable', + 'instance.web_tree_many2one_clickable.Many2OneClickable'); + openerp.web_tree_many2one_clickable.Many2OneClickable = openerp.web.list.Column.extend({ + _format: function (row_data, options) + { + var link = _.escape(row_data[this.id].value[1] || options.value_if_empty); + var code = "_.each(openerp.instances, function(instance) {\n" + + "instance.webclient.action_manager.do_action({" + + "type: 'ir.actions.act_window', \n" + + _.str.sprintf("res_model: '%s',\n", this.relation) + + _.str.sprintf("res_id: %s,\n", row_data[this.id].value[0]) + + "views: [[false, 'form']],\n" + + "target: 'current'\n" + + "})})"; + link = _.str.sprintf('%s', + code, + link) + return link; + }, + }); +}