Skip to content

Commit

Permalink
[FIX] Tests and use related field instead of computed
Browse files Browse the repository at this point in the history
  • Loading branch information
ivantodorovich committed Jan 31, 2020
1 parent 9954466 commit 35f8922
Show file tree
Hide file tree
Showing 6 changed files with 11 additions and 40 deletions.
3 changes: 0 additions & 3 deletions pos_customer_required/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,5 @@
'views/pos_config_view.xml',
'views/pos_order_view.xml',
],
'demo': [
'demo/pos_config.xml',
],
'installable': True,
}
14 changes: 0 additions & 14 deletions pos_customer_required/demo/pos_config.xml

This file was deleted.

11 changes: 5 additions & 6 deletions pos_customer_required/models/pos_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,15 @@
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';",
)
19 changes: 4 additions & 15 deletions pos_customer_required/models/pos_order.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,24 +11,13 @@
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.'))
2 changes: 1 addition & 1 deletion pos_customer_required/tests/test_pos.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
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'
Expand Down
2 changes: 1 addition & 1 deletion pos_customer_required/views/pos_order_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<field name="require_customer" invisible="1"/>
</xpath>
<xpath expr="//field[@name='partner_id']" position="attributes">
<attribute name="attrs">{'readonly': [('state','=','invoiced')], 'required': [('require_customer','=',True)]}</attribute>
<attribute name="attrs">{'readonly': [('state','=','invoiced')], 'required': [('require_customer', '!=', 'no')]}</attribute>
</xpath>
</field>
</record>
Expand Down

0 comments on commit 35f8922

Please sign in to comment.