diff --git a/pos_config_single_user/__init__.py b/pos_config_single_user/__init__.py new file mode 100644 index 0000000..cc89676 --- /dev/null +++ b/pos_config_single_user/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import pos diff --git a/pos_config_single_user/__manifest__.py b/pos_config_single_user/__manifest__.py new file mode 100644 index 0000000..7712ddb --- /dev/null +++ b/pos_config_single_user/__manifest__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# © 2014-2016 Akretion (Alexis de Lattre ) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + 'name': 'POS Config Single User', + 'version': '10.0.1.0.0', + 'category': 'Point Of Sale', + 'license': 'AGPL-3', + 'summary': 'Configure on each pos.config a single user allowed to start it', + 'description': """ +POS Config Single User +====================== + +New parameter on pos.config: the (only) user allowed to start sessions of this pos.config. + +This module has been written by Alexis de Lattre from Akretion . + """, + 'author': 'Akretion', + 'website': 'http://www.akretion.com', + 'depends': ['point_of_sale'], + 'data': ['pos_view.xml'], + 'installable': True, +} diff --git a/pos_config_single_user/pos.py b/pos_config_single_user/pos.py new file mode 100644 index 0000000..173e618 --- /dev/null +++ b/pos_config_single_user/pos.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# © 2014-2016 Akretion (Alexis de Lattre ) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models, fields, api, _ +from openerp.exceptions import UserError + + +class PosConfig(models.Model): + _inherit = 'pos.config' + + allowed_user_id = fields.Many2one( + 'res.users', string="Allowed User", + help="If you select a user, only this user will be allowed to start " + "sessions for this POS", ondelete='restrict') + + @api.multi + def open_session_cb(self): + self.ensure_one() + if ( + self.allowed_user_id and + self.allowed_user_id != self.env.user): + raise UserError(_( + "The POS '%s' can be used only by user '%s'.") % ( + self.name, + self.allowed_user_id.name)) + return super(PosConfig, self).open_session_cb() diff --git a/pos_config_single_user/pos_view.xml b/pos_config_single_user/pos_view.xml new file mode 100644 index 0000000..3cd2c43 --- /dev/null +++ b/pos_config_single_user/pos_view.xml @@ -0,0 +1,21 @@ + + + + + + + + pos_config_single_user.pos.config + pos.config + + + + + + + + + diff --git a/pos_config_single_user/static/description/icon.png b/pos_config_single_user/static/description/icon.png new file mode 100644 index 0000000..1a60d0e Binary files /dev/null and b/pos_config_single_user/static/description/icon.png differ