Browse Source

- Remove web_easy_switch_company from the __unported__ folder

- The first module is here so we need to remove the placeholder folder
pull/18/head
Adil Houmadi 11 years ago
parent
commit
6856ea47a1
  1. 24
      __unported__/web_easy_switch_company/__init__.py
  2. 71
      __unported__/web_easy_switch_company/__openerp__.py
  3. 23
      __unported__/web_easy_switch_company/controllers/__init__.py
  4. 31
      __unported__/web_easy_switch_company/controllers/main.py
  5. 24
      __unported__/web_easy_switch_company/model/__init__.py
  6. 57
      __unported__/web_easy_switch_company/model/res_company.py
  7. 31
      __unported__/web_easy_switch_company/model/res_users.py
  8. BIN
      __unported__/web_easy_switch_company/static/src/img/icon.png
  9. BIN
      __unported__/web_easy_switch_company/static/src/img/selection-off.png
  10. BIN
      __unported__/web_easy_switch_company/static/src/img/selection-on.png
  11. 153
      __unported__/web_easy_switch_company/static/src/js/switch_company.js
  12. 45
      __unported__/web_easy_switch_company/static/src/xml/switch_company.xml
  13. 17
      __unported__/web_easy_switch_company/view/res_users_view.xml
  14. 20
      placeholder/__init__.py
  15. 51
      placeholder/__openerp__.py

24
__unported__/web_easy_switch_company/__init__.py

@ -1,24 +0,0 @@
# -*- 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import model
from . import controllers

71
__unported__/web_easy_switch_company/__openerp__.py

@ -1,71 +0,0 @@
# -*- 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
{
'name': 'Multicompany - Easy Switch Company',
'version': '1.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',
'website': 'http://www.grap.coop',
'license': 'AGPL-3',
'depends': [
'web',
],
'data': [
'view/res_users_view.xml',
],
'js': [
'static/src/js/switch_company.js',
],
'qweb': [
'static/src/xml/switch_company.xml',
],
'installable': False,
'auto_install': False,
}

23
__unported__/web_easy_switch_company/controllers/__init__.py

@ -1,23 +0,0 @@
# -*- 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import main

31
__unported__/web_easy_switch_company/controllers/main.py

@ -1,31 +0,0 @@
# -*- 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
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)

24
__unported__/web_easy_switch_company/model/__init__.py

@ -1,24 +0,0 @@
# -*- 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import res_users
from . import res_company

57
__unported__/web_easy_switch_company/model/res_company.py

@ -1,57 +0,0 @@
# -*- 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
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)
# 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),
}
),
}

31
__unported__/web_easy_switch_company/model/res_users.py

@ -1,31 +0,0 @@
# -*- 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
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})

BIN
__unported__/web_easy_switch_company/static/src/img/icon.png

Before

Width: 128  |  Height: 128  |  Size: 6.0 KiB

BIN
__unported__/web_easy_switch_company/static/src/img/selection-off.png

Before

Width: 16  |  Height: 16  |  Size: 112 B

BIN
__unported__/web_easy_switch_company/static/src/img/selection-on.png

Before

Width: 16  |  Height: 16  |  Size: 445 B

153
__unported__/web_easy_switch_company/static/src/js/switch_company.js

@ -1,153 +0,0 @@
/******************************************************************************
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 <http://www.gnu.org/licenses/>.
******************************************************************************/
openerp.web_easy_switch_company = function (instance) {
/***************************************************************************
Create an new 'SwitchCompanyWidget' widget that allow users to switch
from a company to another more easily.
***************************************************************************/
instance.web.SwitchCompanyWidget = instance.web.Widget.extend({
template:'web_easy_switch_company.SwitchCompanyWidget',
/***********************************************************************
Overload section
***********************************************************************/
/**
* Overload 'init' function to initialize the values of the widget.
*/
init: function(parent){
this._super(parent);
this.companies = [];
this.current_company_id = 0;
this.current_company_name = '';
},
/**
* Overload 'start' function to load datas from DB.
*/
start: function () {
this._super();
this._load_data();
},
/**
* Overload 'renderElement' function to set events on company items.
*/
renderElement: function() {
var self = this;
this._super();
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()
});
}
});
}
},
/***********************************************************************
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();
},
/**
* - Load data of the companies allowed to the current users;
* - Launch the rendering of the current widget;
*/
_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
// fetching the allowed companies wrt record rules.
// Note: calling res.company.name_search with
// user_preference=True in the context does
// not work either.
new instance.web.Model('res.users').call('fields_view_get',{context:{'form_view_ref':'base.view_users_form_simple_modif'}}).then(function(res){
var res_company = res.fields.company_id.selection;
for ( var i=0 ; i < res_company.length; i++) {
var logo_topbar, logo_state;
// TODO: fetching the logo of other companies fails with the
// default res.company record rule, so we should
// probably remove the logos from the menu :(
logo_topbar = self.session.url(
'/web/binary/image', {
model:'res.company',
field: 'logo_topbar',
id: res_company[i][0]
});
if (res_company[i][0] == self.current_company_id){
logo_state = '/web_easy_switch_company/static/src/img/selection-on.png';
}
else{
logo_state = '/web_easy_switch_company/static/src/img/selection-off.png';
}
self.companies.push({
id: res_company[i][0],
name: res_company[i][1],
logo_topbar: logo_topbar,
logo_state: logo_state
});
}
// Update rendering
self.renderElement();
});
});
},
});
/***************************************************************************
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'));
},
});
};

45
__unported__/web_easy_switch_company/static/src/xml/switch_company.xml

@ -1,45 +0,0 @@
<?xml version="1.0" 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 <http://www.gnu.org/licenses/>. -->
<!-- ********************************************************************** -->
<template>
<t t-name="web_easy_switch_company.SwitchCompanyWidget">
<span class="oe_user_menu oe_topbar_item oe_dropdown_toggle oe_dropdown_arrow">
<span>
<t t-esc="widget.current_company_name"/>
</span>
<ul class="oe_dropdown_menu">
<t t-foreach="widget.companies" t-as="company">
<li>
<a class="easy_switch_company_company_item"
href="#"
t-att-data-company-id="company.id">
<img class="oe_topbar_avatar" t-att-src="company.logo_topbar"/>
<img class="oe_topbar_avatar" t-att-src="company.logo_state"/>
<t t-esc="company.name"/>
</a>
</li>
</t>
</ul>
</span>
</t>
</template>

17
__unported__/web_easy_switch_company/view/res_users_view.xml

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<record id="view_res_users_simple_modif_form" model="ir.ui.view">
<field name="name">res.users.form</field>
<field name="model">res.users</field>
<field name="inherit_id" ref="base.view_users_form_simple_modif"/>
<field name="arch" type="xml">
<!-- hide old behaviour to change company -->
<field name="company_id" position="attributes">
<attribute name="invisible">1</attribute>
</field>
</field>
</record>
</data>
</openerp>

20
placeholder/__init__.py

@ -1,20 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# This module copyright (C) 2014 Therp BV (<http://therp.nl>).
#
# 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 <http://www.gnu.org/licenses/>.
#
##############################################################################

51
placeholder/__openerp__.py

@ -1,51 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# This module copyright (C) 2014 Therp BV (<http://therp.nl>).
#
# 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
{
"name": "placeholder",
"version": "1.0",
"author": "Therp BV",
"license": "AGPL-3",
"complexity": "normal",
"description": """
This is a placeholder module because odoo checks if an addons path contains
addons at all. This makes travis fail, so we need this until the first addon is
ported.
Please remove as soon as you commit your first port!
""",
"category": "",
"depends": [
],
"data": [
],
"js": [
],
"css": [
],
"qweb": [
],
"auto_install": False,
"installable": True,
"application": False,
"external_dependencies": {
'python': [],
},
}
Loading…
Cancel
Save