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')]}