From 290f6f1c7feefd0b7659c91bd6a28d82f46d1db8 Mon Sep 17 00:00:00 2001 From: Sylvain LE GAL Date: Mon, 10 Mar 2014 21:13:54 +0100 Subject: [PATCH 1/5] [ADD] new module 'web_easy_switch_company'. --- web_easy_switch_company/__init__.py | 7 ++ web_easy_switch_company/__openerp__.py | 66 ++++++++++ .../controllers/__init__.py | 6 + web_easy_switch_company/controllers/main.py | 13 ++ web_easy_switch_company/model/__init__.py | 7 ++ web_easy_switch_company/model/res_company.py | 32 +++++ web_easy_switch_company/model/res_users.py | 13 ++ .../static/src/img/icon.png | Bin 0 -> 6125 bytes .../static/src/img/selection-off.png | Bin 0 -> 112 bytes .../static/src/img/selection-on.png | Bin 0 -> 445 bytes .../static/src/js/switch_company.js | 115 ++++++++++++++++++ .../static/src/xml/switch_company.xml | 29 +++++ .../view/res_users_view.xml | 15 +++ 13 files changed, 303 insertions(+) create mode 100644 web_easy_switch_company/__init__.py create mode 100644 web_easy_switch_company/__openerp__.py create mode 100644 web_easy_switch_company/controllers/__init__.py create mode 100644 web_easy_switch_company/controllers/main.py create mode 100644 web_easy_switch_company/model/__init__.py create mode 100644 web_easy_switch_company/model/res_company.py create mode 100644 web_easy_switch_company/model/res_users.py create mode 100644 web_easy_switch_company/static/src/img/icon.png create mode 100644 web_easy_switch_company/static/src/img/selection-off.png create mode 100644 web_easy_switch_company/static/src/img/selection-on.png create mode 100644 web_easy_switch_company/static/src/js/switch_company.js create mode 100644 web_easy_switch_company/static/src/xml/switch_company.xml create mode 100644 web_easy_switch_company/view/res_users_view.xml diff --git a/web_easy_switch_company/__init__.py b/web_easy_switch_company/__init__.py new file mode 100644 index 00000000..a14558d4 --- /dev/null +++ b/web_easy_switch_company/__init__.py @@ -0,0 +1,7 @@ +# -*- encoding: utf-8 -*- +################################################################################ +# See __openerp__.py file for Copyright and Licence Informations. +################################################################################ + +import model +import controllers diff --git a/web_easy_switch_company/__openerp__.py b/web_easy_switch_company/__openerp__.py new file mode 100644 index 00000000..8b274345 --- /dev/null +++ b/web_easy_switch_company/__openerp__.py @@ -0,0 +1,66 @@ +# -*- encoding: utf-8 -*- +################################################################################ +# See Copyright and Licence Informations undermentioned. +################################################################################ + +{ + 'name': 'Multicompany - Easy Switch Company', + 'version': '1.0', + 'category': 'web', + 'description': """ +Add menu to allow user to switch to another company more easily +=============================================================== + +Functionnalities : +------------------ + * Add a new menu in the top bar to switch to another company more easily; + * Remove the old behaviour to switch company; + * Remove the display of the current company after the name of the user, + the information is redundant and because the name of the company is displayed + only if company_id != 1 by default. + +Documentations : +---------------- + * Video : http://www.youtube.com/watch?v=Cpm6dg-IEQQ + +Technical informations : +------------------------ + * Create a field function 'logo_topbar' in res_company to have a good resized logo; + +Limits : +-------- + * It would be interesting to show the structure of the companies; + +Copyright and Licence : +----------------------- + * 2014, Groupement Régional Alimentaire de Proximité + * Licence : AGPL-3 (http://www.gnu.org/licenses/) + +Contacts : +---------- + * Sylvain LE GAL (https://twitter.com/legalsylvain); + * for any help or question about this module. + """, + 'author': 'GRAP', + 'website': 'http://www.grap.coop', + 'license': 'AGPL-3', + 'depends': [ + 'web', + ], + 'data': [ + 'view/res_users_view.xml', + ], + 'demo': [], + 'js': [ + 'static/src/js/switch_company.js', + ], + 'css': [], + 'qweb': [ + 'static/src/xml/switch_company.xml', + ], + 'images': [], + 'post_load': '', + 'application': False, + 'installable': True, + 'auto_install': False, +} diff --git a/web_easy_switch_company/controllers/__init__.py b/web_easy_switch_company/controllers/__init__.py new file mode 100644 index 00000000..f02a4515 --- /dev/null +++ b/web_easy_switch_company/controllers/__init__.py @@ -0,0 +1,6 @@ +# -*- encoding: utf-8 -*- +################################################################################ +# See __openerp__.py file for Copyright and Licence Informations. +################################################################################ + +import main diff --git a/web_easy_switch_company/controllers/main.py b/web_easy_switch_company/controllers/main.py new file mode 100644 index 00000000..d9a7c18f --- /dev/null +++ b/web_easy_switch_company/controllers/main.py @@ -0,0 +1,13 @@ +# -*- encoding: utf-8 -*- +################################################################################ +# See __openerp__.py file for Copyright and Licence Informations. +################################################################################ + +import openerp + +class WebEasySwitchCompanyController(openerp.addons.web.http.Controller): + _cp_path = '/web_easy_switch_company/switch' + + @openerp.addons.web.http.jsonrequest + def change_current_company(self, req, company_id): + req.session.model('res.users').change_current_company(company_id) diff --git a/web_easy_switch_company/model/__init__.py b/web_easy_switch_company/model/__init__.py new file mode 100644 index 00000000..cdcfac2d --- /dev/null +++ b/web_easy_switch_company/model/__init__.py @@ -0,0 +1,7 @@ +# -*- encoding: utf-8 -*- +################################################################################ +# See __openerp__.py file for Copyright and Licence Informations. +################################################################################ + +import res_users +import res_company diff --git a/web_easy_switch_company/model/res_company.py b/web_easy_switch_company/model/res_company.py new file mode 100644 index 00000000..8b1fa532 --- /dev/null +++ b/web_easy_switch_company/model/res_company.py @@ -0,0 +1,32 @@ +## -*- encoding: utf-8 -*- +################################################################################# +## See __openerp__.py file for Copyright and Licence Informations. +################################################################################# + +from openerp.osv.orm import Model +from openerp.osv import fields +from openerp.tools import image_resize_image + +class res_company(Model): + _inherit = 'res.company' + + ### Custom Section + def _switch_company_get_companies_from_partner(self, cr, uid, ids, context=None): + return self.pool['res.company'].search(cr, uid, [('partner_id', 'in', ids)], context=context) + + ### Fields function Section + def _get_logo_topbar(self, cr, uid, ids, _field_name, _args, context=None): + result = dict.fromkeys(ids, False) + for record in self.browse(cr, uid, ids, context=context): + size = (48, 48) + result[record.id] = image_resize_image(record.partner_id.image, size) + return result + + ### Columns Section + _columns = { + 'logo_topbar': fields.function(_get_logo_topbar, string="Logo displayed in the switch company menu", + type="binary", store={ + 'res.company': (lambda s, c, u, i, x: i, ['partner_id'], 10), + 'res.partner': (_switch_company_get_companies_from_partner, ['image'], 10), + }), + } diff --git a/web_easy_switch_company/model/res_users.py b/web_easy_switch_company/model/res_users.py new file mode 100644 index 00000000..09dba3d8 --- /dev/null +++ b/web_easy_switch_company/model/res_users.py @@ -0,0 +1,13 @@ +# -*- encoding: utf-8 -*- +################################################################################ +# See __openerp__.py file for Copyright and Licence Informations. +################################################################################ + +from openerp.osv.orm import Model + +class res_users(Model): + _inherit = 'res.users' + + ### Custom Function Section + def change_current_company(self, cr, uid, company_id, context=None): + return self.write(cr, uid, uid, {'company_id': company_id}) diff --git a/web_easy_switch_company/static/src/img/icon.png b/web_easy_switch_company/static/src/img/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ee270eb32c8a2a81c134da15e544c50f69d07315 GIT binary patch literal 6125 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 literal 0 HcmV?d00001 diff --git a/web_easy_switch_company/static/src/img/selection-off.png b/web_easy_switch_company/static/src/img/selection-off.png new file mode 100644 index 0000000000000000000000000000000000000000..c8e922cc52b4e47aeb67397084070164ae6db15a GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+8WPZ!4!i{9h}3D(64B0WqTKz#xXjP<@1eLz_TPgg&ebxsLQ09bVu A-T(jq literal 0 HcmV?d00001 diff --git a/web_easy_switch_company/static/src/img/selection-on.png b/web_easy_switch_company/static/src/img/selection-on.png new file mode 100644 index 0000000000000000000000000000000000000000..8faf7d4def9060c05b2bd335adc56a42a13834e4 GIT binary patch literal 445 zcmV;u0Yd(XP)F4y14e=>LK&E2J>|n? zM3tMqe1E_4{`>1Qx1|4g1e0bWq~F(`Pf=Y~KUqghTTw+?JC=t@Knq!(paDwaYN?V^ z5|+RIePwv@{^_x|zh9g~mS;ic7|<^RGU_VE+L`?HM<-@N)+4HRY6)0sH`a(sCC z_0fZ;H>T{)Vt9qq04-K|S0!!jqDL=p9pq`hvshVLFJD|zjPLuekALqyyuI%IkLRb+ zU5FBh6`SqP*&4X&{r>ZZ@yhLUuM}jIc)zp1 + + + + + diff --git a/web_easy_switch_company/view/res_users_view.xml b/web_easy_switch_company/view/res_users_view.xml new file mode 100644 index 00000000..af433676 --- /dev/null +++ b/web_easy_switch_company/view/res_users_view.xml @@ -0,0 +1,15 @@ + + + + + + res.users.form + res.users + + + + + + + + From f632190ec99064451629c0810b72f6654a6888ef Mon Sep 17 00:00:00 2001 From: Sylvain LE GAL Date: Mon, 10 Mar 2014 23:49:44 +0100 Subject: [PATCH 2/5] [REM] incorrect description in __openerp__.py file --- web_easy_switch_company/__openerp__.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/web_easy_switch_company/__openerp__.py b/web_easy_switch_company/__openerp__.py index 8b274345..a45b4821 100644 --- a/web_easy_switch_company/__openerp__.py +++ b/web_easy_switch_company/__openerp__.py @@ -15,9 +15,6 @@ Functionnalities : ------------------ * Add a new menu in the top bar to switch to another company more easily; * Remove the old behaviour to switch company; - * Remove the display of the current company after the name of the user, - the information is redundant and because the name of the company is displayed - only if company_id != 1 by default. Documentations : ---------------- From 50220e6cb27249a8d2179a7d894cb0e97d30ecc7 Mon Sep 17 00:00:00 2001 From: Sylvain LE GAL Date: Thu, 20 Mar 2014 17:24:45 +0100 Subject: [PATCH 3/5] [ADD] hide the widget if the user has right on only one company. (following Arthru's remark) --- .../static/src/js/switch_company.js | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/web_easy_switch_company/static/src/js/switch_company.js b/web_easy_switch_company/static/src/js/switch_company.js index 279b5724..aac876e3 100644 --- a/web_easy_switch_company/static/src/js/switch_company.js +++ b/web_easy_switch_company/static/src/js/switch_company.js @@ -40,16 +40,22 @@ openerp.web_easy_switch_company = function (instance) { renderElement: function() { var self = this; this._super(); - this.$el.find('.easy_switch_company_company_item').on('click', function(ev) { - var company_id = $(ev.target).data("company-id"); - if (company_id != self.current_company_id){ - var func = '/web_easy_switch_company/switch/change_current_company'; - var param = {'company_id': company_id} - self.rpc(func, param).done(function(res) { - window.location.reload() - }); - } - }); + if (this.companies.length === 1) { + this.$el.hide(); + } + else{ + this.$el.show(); + this.$el.find('.easy_switch_company_company_item').on('click', function(ev) { + var company_id = $(ev.target).data("company-id"); + if (company_id != self.current_company_id){ + var func = '/web_easy_switch_company/switch/change_current_company'; + var param = {'company_id': company_id} + self.rpc(func, param).done(function(res) { + window.location.reload() + }); + } + }); + } }, /*********************************************************************** From e29fead27015559a8a3c2d5c9a576860e8c38696 Mon Sep 17 00:00:00 2001 From: Sylvain LE GAL Date: Sun, 23 Mar 2014 23:30:48 +0100 Subject: [PATCH 4/5] [REF] import conventions & comments. --- web_easy_switch_company/__init__.py | 4 ++-- web_easy_switch_company/__openerp__.py | 26 ++++++++++------------- web_easy_switch_company/model/__init__.py | 4 ++-- 3 files changed, 15 insertions(+), 19 deletions(-) diff --git a/web_easy_switch_company/__init__.py b/web_easy_switch_company/__init__.py index a14558d4..a39596d7 100644 --- a/web_easy_switch_company/__init__.py +++ b/web_easy_switch_company/__init__.py @@ -3,5 +3,5 @@ # See __openerp__.py file for Copyright and Licence Informations. ################################################################################ -import model -import controllers +from . import model +from . import controllers diff --git a/web_easy_switch_company/__openerp__.py b/web_easy_switch_company/__openerp__.py index a45b4821..c1b00a58 100644 --- a/web_easy_switch_company/__openerp__.py +++ b/web_easy_switch_company/__openerp__.py @@ -11,32 +11,28 @@ Add menu to allow user to switch to another company more easily =============================================================== -Functionnalities : ------------------- +Functionnality: +--------------- * Add a new menu in the top bar to switch to another company more easily; * Remove the old behaviour to switch company; -Documentations : ----------------- +Documentations: +--------------- * Video : http://www.youtube.com/watch?v=Cpm6dg-IEQQ -Technical informations : ------------------------- +Technical informations: +----------------------- * Create a field function 'logo_topbar' in res_company to have a good resized logo; Limits : -------- * It would be interesting to show the structure of the companies; -Copyright and Licence : ------------------------ - * 2014, Groupement Régional Alimentaire de Proximité - * Licence : AGPL-3 (http://www.gnu.org/licenses/) - -Contacts : ----------- - * Sylvain LE GAL (https://twitter.com/legalsylvain); - * for any help or question about this module. +Copyright, Author and Licence: +------------------------------ + * Copyright: 2014, Groupement Régional Alimentaire de Proximité + * Author: Sylvain LE GAL (https://twitter.com/legalsylvain); + * Licence: AGPL-3 (http://www.gnu.org/licenses/) """, 'author': 'GRAP', 'website': 'http://www.grap.coop', diff --git a/web_easy_switch_company/model/__init__.py b/web_easy_switch_company/model/__init__.py index cdcfac2d..372fe8b0 100644 --- a/web_easy_switch_company/model/__init__.py +++ b/web_easy_switch_company/model/__init__.py @@ -3,5 +3,5 @@ # See __openerp__.py file for Copyright and Licence Informations. ################################################################################ -import res_users -import res_company +from . import res_users +from . import res_company From 0fe62818be94baafed55c0a734b3b71afa279deb Mon Sep 17 00:00:00 2001 From: Sylvain LE GAL Date: Wed, 2 Apr 2014 11:17:53 +0200 Subject: [PATCH 5/5] [REF] pep8; [REF] change copyright header in each file; [REF] typos in __openerp__.py file; --- web_easy_switch_company/__init__.py | 23 ++++++- web_easy_switch_company/__openerp__.py | 66 +++++++++++-------- .../controllers/__init__.py | 25 +++++-- web_easy_switch_company/controllers/main.py | 24 ++++++- web_easy_switch_company/model/__init__.py | 23 ++++++- web_easy_switch_company/model/res_company.py | 55 +++++++++++----- web_easy_switch_company/model/res_users.py | 26 ++++++-- .../static/src/js/switch_company.js | 22 ++++++- .../static/src/xml/switch_company.xml | 22 ++++++- 9 files changed, 221 insertions(+), 65 deletions(-) diff --git a/web_easy_switch_company/__init__.py b/web_easy_switch_company/__init__.py index a39596d7..f9951759 100644 --- a/web_easy_switch_company/__init__.py +++ b/web_easy_switch_company/__init__.py @@ -1,7 +1,24 @@ # -*- encoding: utf-8 -*- -################################################################################ -# See __openerp__.py file for Copyright and Licence Informations. -################################################################################ +############################################################################## +# +# Web Easy Switch Company module for OpenERP +# Copyright (C) 2014 GRAP (http://www.grap.coop) +# @author Sylvain LE GAL (https://twitter.com/legalsylvain) +# +# 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 . +# +############################################################################## from . import model from . import controllers diff --git a/web_easy_switch_company/__openerp__.py b/web_easy_switch_company/__openerp__.py index c1b00a58..05f0ea9d 100644 --- a/web_easy_switch_company/__openerp__.py +++ b/web_easy_switch_company/__openerp__.py @@ -1,7 +1,24 @@ # -*- encoding: utf-8 -*- -################################################################################ -# See Copyright and Licence Informations undermentioned. -################################################################################ +############################################################################## +# +# Web Easy Switch Company module for OpenERP +# Copyright (C) 2014 GRAP (http://www.grap.coop) +# @author Sylvain LE GAL (https://twitter.com/legalsylvain) +# +# 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': 'Multicompany - Easy Switch Company', @@ -11,49 +28,44 @@ Add menu to allow user to switch to another company more easily =============================================================== -Functionnality: ---------------- +Functionality: +-------------- * Add a new menu in the top bar to switch to another company more easily; * Remove the old behaviour to switch company; Documentations: --------------- * Video : http://www.youtube.com/watch?v=Cpm6dg-IEQQ - -Technical informations: ------------------------ - * Create a field function 'logo_topbar' in res_company to have a good resized logo; -Limits : --------- +Technical information: +---------------------- + * Create a field function 'logo_topbar' in res_company to have a good""" + """resized logo; + +Limits: +------- * It would be interesting to show the structure of the companies; Copyright, Author and Licence: ------------------------------ - * Copyright: 2014, Groupement Régional Alimentaire de Proximité + * Copyright: 2014, Groupement Régional Alimentaire de Proximité; * Author: Sylvain LE GAL (https://twitter.com/legalsylvain); - * Licence: AGPL-3 (http://www.gnu.org/licenses/) - """, + * Licence: AGPL-3 (http://www.gnu.org/licenses/)""", 'author': 'GRAP', 'website': 'http://www.grap.coop', 'license': 'AGPL-3', 'depends': [ - 'web', - ], + 'web', + ], 'data': [ - 'view/res_users_view.xml', - ], - 'demo': [], + 'view/res_users_view.xml', + ], 'js': [ - 'static/src/js/switch_company.js', - ], - 'css': [], + 'static/src/js/switch_company.js', + ], 'qweb': [ - 'static/src/xml/switch_company.xml', - ], - 'images': [], - 'post_load': '', - 'application': False, + 'static/src/xml/switch_company.xml', + ], 'installable': True, 'auto_install': False, } diff --git a/web_easy_switch_company/controllers/__init__.py b/web_easy_switch_company/controllers/__init__.py index f02a4515..b40fe569 100644 --- a/web_easy_switch_company/controllers/__init__.py +++ b/web_easy_switch_company/controllers/__init__.py @@ -1,6 +1,23 @@ # -*- encoding: utf-8 -*- -################################################################################ -# See __openerp__.py file for Copyright and Licence Informations. -################################################################################ +############################################################################## +# +# Web Easy Switch Company module for OpenERP +# Copyright (C) 2014 GRAP (http://www.grap.coop) +# @author Sylvain LE GAL (https://twitter.com/legalsylvain) +# +# 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 . +# +############################################################################## -import main +from . import main diff --git a/web_easy_switch_company/controllers/main.py b/web_easy_switch_company/controllers/main.py index d9a7c18f..40387f90 100644 --- a/web_easy_switch_company/controllers/main.py +++ b/web_easy_switch_company/controllers/main.py @@ -1,10 +1,28 @@ # -*- encoding: utf-8 -*- -################################################################################ -# See __openerp__.py file for Copyright and Licence Informations. -################################################################################ +############################################################################## +# +# Web Easy Switch Company module for OpenERP +# Copyright (C) 2014 GRAP (http://www.grap.coop) +# @author Sylvain LE GAL (https://twitter.com/legalsylvain) +# +# 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 . +# +############################################################################## import openerp + class WebEasySwitchCompanyController(openerp.addons.web.http.Controller): _cp_path = '/web_easy_switch_company/switch' diff --git a/web_easy_switch_company/model/__init__.py b/web_easy_switch_company/model/__init__.py index 372fe8b0..e1bd2b92 100644 --- a/web_easy_switch_company/model/__init__.py +++ b/web_easy_switch_company/model/__init__.py @@ -1,7 +1,24 @@ # -*- encoding: utf-8 -*- -################################################################################ -# See __openerp__.py file for Copyright and Licence Informations. -################################################################################ +############################################################################## +# +# Web Easy Switch Company module for OpenERP +# Copyright (C) 2014 GRAP (http://www.grap.coop) +# @author Sylvain LE GAL (https://twitter.com/legalsylvain) +# +# 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 . +# +############################################################################## from . import res_users from . import res_company diff --git a/web_easy_switch_company/model/res_company.py b/web_easy_switch_company/model/res_company.py index 8b1fa532..000e21e1 100644 --- a/web_easy_switch_company/model/res_company.py +++ b/web_easy_switch_company/model/res_company.py @@ -1,32 +1,57 @@ -## -*- encoding: utf-8 -*- -################################################################################# -## See __openerp__.py file for Copyright and Licence Informations. -################################################################################# +# -*- encoding: utf-8 -*- +############################################################################## +# +# Web Easy Switch Company module for OpenERP +# Copyright (C) 2014 GRAP (http://www.grap.coop) +# @author Sylvain LE GAL (https://twitter.com/legalsylvain) +# +# 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 . +# +############################################################################## -from openerp.osv.orm import Model from openerp.osv import fields +from openerp.osv.orm import Model from openerp.tools import image_resize_image + class res_company(Model): _inherit = 'res.company' - ### Custom Section - def _switch_company_get_companies_from_partner(self, cr, uid, ids, context=None): - return self.pool['res.company'].search(cr, uid, [('partner_id', 'in', ids)], context=context) + # Custom Section + def _switch_company_get_companies_from_partner( + self, cr, uid, ids, context=None): + return self.pool['res.company'].search( + cr, uid, [('partner_id', 'in', ids)], context=context) - ### Fields function Section + # Fields function Section def _get_logo_topbar(self, cr, uid, ids, _field_name, _args, context=None): result = dict.fromkeys(ids, False) for record in self.browse(cr, uid, ids, context=context): size = (48, 48) - result[record.id] = image_resize_image(record.partner_id.image, size) + result[record.id] = image_resize_image( + record.partner_id.image, size) return result - ### Columns Section + # Columns Section _columns = { - 'logo_topbar': fields.function(_get_logo_topbar, string="Logo displayed in the switch company menu", + 'logo_topbar': fields.function( + _get_logo_topbar, + string="Logo displayed in the switch company menu", type="binary", store={ - 'res.company': (lambda s, c, u, i, x: i, ['partner_id'], 10), - 'res.partner': (_switch_company_get_companies_from_partner, ['image'], 10), - }), + 'res.company': (lambda s, c, u, i, x: i, ['partner_id'], 10), + 'res.partner': (_switch_company_get_companies_from_partner, + ['image'], 10), + } + ), } diff --git a/web_easy_switch_company/model/res_users.py b/web_easy_switch_company/model/res_users.py index 09dba3d8..68c6fdfa 100644 --- a/web_easy_switch_company/model/res_users.py +++ b/web_easy_switch_company/model/res_users.py @@ -1,13 +1,31 @@ # -*- encoding: utf-8 -*- -################################################################################ -# See __openerp__.py file for Copyright and Licence Informations. -################################################################################ +############################################################################## +# +# Web Easy Switch Company module for OpenERP +# Copyright (C) 2014 GRAP (http://www.grap.coop) +# @author Sylvain LE GAL (https://twitter.com/legalsylvain) +# +# 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 . +# +############################################################################## from openerp.osv.orm import Model + class res_users(Model): _inherit = 'res.users' - ### Custom Function Section + # Custom Function Section def change_current_company(self, cr, uid, company_id, context=None): return self.write(cr, uid, uid, {'company_id': company_id}) diff --git a/web_easy_switch_company/static/src/js/switch_company.js b/web_easy_switch_company/static/src/js/switch_company.js index aac876e3..05ed6f41 100644 --- a/web_easy_switch_company/static/src/js/switch_company.js +++ b/web_easy_switch_company/static/src/js/switch_company.js @@ -1,6 +1,21 @@ -/******************************************************************************/ -/* See __openerp__.py file for Copyright and Licence Informations. */ -/******************************************************************************/ +/****************************************************************************** + Web Easy Switch Company module for OpenERP + Copyright (C) 2014 GRAP (http://www.grap.coop) + @author Sylvain LE GAL (https://twitter.com/legalsylvain) + + 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_easy_switch_company = function (instance) { @@ -58,6 +73,7 @@ openerp.web_easy_switch_company = function (instance) { } }, + /*********************************************************************** Custom section ***********************************************************************/ diff --git a/web_easy_switch_company/static/src/xml/switch_company.xml b/web_easy_switch_company/static/src/xml/switch_company.xml index ac3880d4..9f540b23 100644 --- a/web_easy_switch_company/static/src/xml/switch_company.xml +++ b/web_easy_switch_company/static/src/xml/switch_company.xml @@ -1,7 +1,23 @@ - - - + + + + + + + + + + + + + + + + + + +