diff --git a/web_easy_switch_company/README.rst b/web_easy_switch_company/README.rst new file mode 100644 index 00000000..7b017a23 --- /dev/null +++ b/web_easy_switch_company/README.rst @@ -0,0 +1,92 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +======================= +web_easy_switch_company +======================= + +This module extend web backend and allow user to switch to another company more easily. + +Configuration +============= + +To configure this module, you need to: + +* Enable multi company in your odoo instance +* Add your user in at least 2 companies, and you will see the switch at the upper right corner + +Usage +===== + +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 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; + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/162/9.0 + + +Known issues / Roadmap +====================== + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. In case of trouble, please +check there if your issue has already been reported. If you spotted it first, +help us smashing it by providing a detailed and welcomed `feedback +`_. + +Credits +======= + +Images +------ + +* Odoo Community Association: `Icon `_. + +Contributors +------------ + +* Copyright: 2014, Groupement Régional Alimentaire de Proximité; +* Author: Sylvain LE GAL (https://twitter.com/legalsylvain); +* Contributor: Nicolas JEUDY - Sudokeys (https://github.com/njeudy) + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +To contribute to this module, please visit https://odoo-community.org. diff --git a/web_easy_switch_company/__openerp__.py b/web_easy_switch_company/__openerp__.py index cad9fa1f..af7e2730 100644 --- a/web_easy_switch_company/__openerp__.py +++ b/web_easy_switch_company/__openerp__.py @@ -22,36 +22,9 @@ { 'name': 'Multicompany - Easy Switch Company', - 'version': '8.0.1.0.0', + 'version': '9.0.1.0.0', 'category': 'web', - 'description': """ -Add menu to allow user to switch to another company more easily -=============================================================== - -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 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é; - * Author: Sylvain LE GAL (https://twitter.com/legalsylvain); - * Licence: AGPL-3 (http://www.gnu.org/licenses/)""", - 'author': "GRAP,Odoo Community Association (OCA)", + 'author': "GRAP,Sudokeys,Odoo Community Association (OCA)", 'website': 'http://www.grap.coop', 'license': 'AGPL-3', 'depends': [ @@ -63,6 +36,6 @@ Copyright, Author and Licence: 'qweb': [ 'static/src/xml/switch_company.xml', ], - 'installable': False, + 'installable': True, 'auto_install': False, } 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 894d3d99..8797720a 100644 --- a/web_easy_switch_company/static/src/js/switch_company.js +++ b/web_easy_switch_company/static/src/js/switch_company.js @@ -1,7 +1,8 @@ /****************************************************************************** Web Easy Switch Company module for OpenERP - Copyright (C) 2014 GRAP (http://www.grap.coop) + Copyright (C) 2014-2015 GRAP (http://www.grap.coop) @author Sylvain LE GAL (https://twitter.com/legalsylvain) + @contributor Nicolas JEUDY (https://github.com/njeudy) This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as @@ -17,18 +18,25 @@ along with this program. If not, see . ******************************************************************************/ -openerp.web_easy_switch_company = function (instance) { +odoo.define('web.web_easy_switch_company',function (require) { + + "use strict"; + + var Widget = require('web.Widget'); + var SystrayMenu = require('web.SystrayMenu'); + var web_client = require('web.web_client'); + var Model = require('web.Model'); /*************************************************************************** - Create an new 'SwitchCompanyWidget' widget that allow users to switch + Create an new 'SwitchCompanyWidget' widget that allow users to switch from a company to another more easily. ***************************************************************************/ - instance.web.SwitchCompanyWidget = instance.web.Widget.extend({ + var SwitchCompanyWidget = Widget.extend({ template:'web_easy_switch_company.SwitchCompanyWidget', /*********************************************************************** - Overload section + Overload section ***********************************************************************/ /** @@ -77,14 +85,14 @@ openerp.web_easy_switch_company = function (instance) { /*********************************************************************** - Custom section + Custom section ***********************************************************************/ /** * helper function to load data from the server */ _fetch: function(model, fields, domain, ctx){ - return new instance.web.Model(model).query(fields).filter(domain).context(ctx).all(); + return new Model(model).query(fields).filter(domain).context(ctx).all(); }, /** @@ -94,17 +102,18 @@ openerp.web_easy_switch_company = function (instance) { _load_data: function(){ var self = this; // Request for current users information + this._fetch('res.users',['company_id'],[['id','=',this.session.uid]]).then(function(res_users){ self.current_company_id = res_users[0].company_id[0]; self.current_company_name = res_users[0].company_id[1]; // Request for other companies // We have to go through fields_view_get to emulate the - // exact (exotic) behavior of the user preferences form in + // exact (exotic) behavior of the user preferences form in // fetching the allowed companies wrt record rules. - // Note: calling res.company.name_search with - // user_preference=True in the context does + // Note: calling res.company.name_search with + // user_preference=True in the context does // not work either. - new instance.web.Model('res.company').call('name_search',{context:{'user_preference':'True'}}).then(function(res){ + new Model('res.company').call('name_search',{context:{'user_preference':'True'}}).then(function(res){ var res_company = res; for ( var i=0 ; i < res_company.length; i++) { var logo_topbar, logo_state; @@ -113,8 +122,8 @@ openerp.web_easy_switch_company = function (instance) { // probably remove the logos from the menu :( logo_topbar = self.session.url( '/web/binary/image', { - model:'res.company', - field: 'logo_topbar', + model:'res.company', + field: 'logo_topbar', id: res_company[i][0] }); if (res_company[i][0] == self.current_company_id){ @@ -138,18 +147,6 @@ openerp.web_easy_switch_company = function (instance) { }); - /*************************************************************************** - Extend 'UserMenu' Widget to insert a 'SwitchCompanyWidget' widget. - ***************************************************************************/ - instance.web.UserMenu = instance.web.UserMenu.extend({ - - init: function(parent) { - this._super(parent); - var switch_button = new instance.web.SwitchCompanyWidget(); - switch_button.appendTo(instance.webclient.$el.find('.oe_systray')); - } - - }); - -}; +SystrayMenu.Items.push(SwitchCompanyWidget); +}); 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 1ffb12b2..c34c9db1 100644 --- a/web_easy_switch_company/static/src/xml/switch_company.xml +++ b/web_easy_switch_company/static/src/xml/switch_company.xml @@ -47,4 +47,3 @@ -