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..6c315521 --- /dev/null +++ b/web_tree_many2one_clickable/__openerp__.py @@ -0,0 +1,52 @@ +# -*- 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": [ + ], + "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..77d0df35 --- /dev/null +++ b/web_tree_many2one_clickable/static/src/js/web_tree_many2one_clickable.js @@ -0,0 +1,55 @@ +//-*- 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) + { + return _.str.sprintf('%s', + this.relation, + row_data[this.id].value[0], + _.escape(row_data[this.id].value[1] || options.value_if_empty)); + }, + }); + + openerp.web.ListView.List.include({ + render: function() + { + var result = this._super(this, arguments), + self = this; + this.$current.delegate('a[data-many2one-clickable-model]', + 'click', function() + { + self.view.do_action({ + type: 'ir.actions.act_window', + res_model: jQuery(this).data('many2one-clickable-model'), + res_id: jQuery(this).data('many2one-clickable-id'), + views: [[false, 'form']], + }); + }); + return result; + }, + }); +}