diff --git a/pos_customer_required/__manifest__.py b/pos_customer_required/__manifest__.py index 6c9f5d4d..4f2326e7 100644 --- a/pos_customer_required/__manifest__.py +++ b/pos_customer_required/__manifest__.py @@ -21,8 +21,5 @@ 'views/pos_config_view.xml', 'views/pos_order_view.xml', ], - 'demo': [ - 'demo/pos_config.xml', - ], 'installable': True, } diff --git a/pos_customer_required/demo/pos_config.xml b/pos_customer_required/demo/pos_config.xml deleted file mode 100644 index a61f6c6e..00000000 --- a/pos_customer_required/demo/pos_config.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - order - - diff --git a/pos_customer_required/models/pos_config.py b/pos_customer_required/models/pos_config.py index de799c01..7b2103e7 100644 --- a/pos_customer_required/models/pos_config.py +++ b/pos_customer_required/models/pos_config.py @@ -11,16 +11,15 @@ from odoo import fields, models class PosConfig(models.Model): _inherit = 'pos.config' - _REQUIRE_CUSTOMER_KEYS = [ + require_customer = fields.Selection([ ('no', 'Optional'), ('payment', 'Required before paying'), ('order', 'Required before starting the order'), - ] - - require_customer = fields.Selection( - selection=_REQUIRE_CUSTOMER_KEYS, + ], string='Require Customer', + default='no', help="Require customer for orders in this point of sale:\n" "* 'Optional' (customer is optional);\n" "* 'Required before paying';\n" - "* 'Required before starting the order';") + "* 'Required before starting the order';", + ) diff --git a/pos_customer_required/models/pos_order.py b/pos_customer_required/models/pos_order.py index c17aad21..e2ce7945 100644 --- a/pos_customer_required/models/pos_order.py +++ b/pos_customer_required/models/pos_order.py @@ -11,24 +11,13 @@ from odoo import fields, models, exceptions, api, _ class PosOrder(models.Model): _inherit = 'pos.order' - @api.multi - @api.depends('session_id.config_id.require_customer') - def compute_require_customer(self): - for order in self: - order.require_customer = ( - order.session_id.config_id.require_customer == 'order') - - require_customer = fields.Boolean( - compute='compute_require_customer', string='Require customer', - help="True if a customer is required to begin the order.\n" - "See the PoS Config to change this setting") + require_customer = fields.Selection( + related='session_id.config_id.require_customer', + ) @api.constrains('partner_id', 'require_customer') def _check_partner(self): for rec in self: - if ( - rec.session_id.config_id.require_customer == 'order' and - not rec.partner_id - ): + if rec.require_customer != 'no' and not rec.partner_id: raise exceptions.ValidationError(_( 'Customer is required for this order and is missing.')) diff --git a/pos_customer_required/tests/test_pos.py b/pos_customer_required/tests/test_pos.py index ead58f5e..21bfacb4 100644 --- a/pos_customer_required/tests/test_pos.py +++ b/pos_customer_required/tests/test_pos.py @@ -6,7 +6,7 @@ from odoo import exceptions class TestPosRequireCustomer(common.TransactionCase): def setUp(self): super(TestPosRequireCustomer, self).setUp() - self.pos_config = self.env.ref('point_of_sale.pos_config_main') + self.pos_config = self.env.ref('point_of_sale.pos_config_main').copy() def test_customer_not_required(self): self.pos_config.require_customer = 'no' diff --git a/pos_customer_required/views/pos_order_view.xml b/pos_customer_required/views/pos_order_view.xml index 7cd4232a..08953b95 100644 --- a/pos_customer_required/views/pos_order_view.xml +++ b/pos_customer_required/views/pos_order_view.xml @@ -20,7 +20,7 @@ - {'readonly': [('state','=','invoiced')], 'required': [('require_customer','=',True)]} + {'readonly': [('state', '=', 'invoiced')], 'required': [('require_customer', '!=', 'no')]}