Skip to content

Commit f43002f

Browse files
committed
[LINT] estate: correct based on code review
1 parent ffb7f42 commit f43002f

6 files changed

Lines changed: 43 additions & 47 deletions

File tree

estate/__manifest__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
],
1919
'application': True,
2020
'installable': True,
21+
'auto_install': True,
2122
'author': 'Odoo S.A.',
2223
'license': 'LGPL-3',
2324

estate/models/estate_property.py

Lines changed: 32 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,13 @@
66

77

88
class EstateProperty(models.Model):
9-
_name = "estate.property"
9+
_name = 'estate.property'
1010
_description = "estate property"
1111

1212
name = fields.Char(required=True, string="Title")
1313
description = fields.Text()
1414
postcode = fields.Char()
15-
date_availability = fields.Date(
16-
default=lambda self: fields.Date.add(fields.Date.today(), months=3), copy=False
17-
)
15+
date_availability = fields.Date(default=lambda self: fields.Date.add(fields.Date.today(), months=3), copy=False)
1816
expected_price = fields.Float(required=True)
1917
selling_price = fields.Float(readonly=True, copy=False)
2018
bedrooms = fields.Integer(default=2)
@@ -23,17 +21,15 @@ class EstateProperty(models.Model):
2321
garage = fields.Boolean()
2422
garden = fields.Boolean()
2523
garden_area = fields.Integer()
26-
garden_orientation = fields.Selection(
27-
[('north', "North"), ('south', "South"), ('east', "East"), ('west', "West")]
28-
)
24+
garden_orientation = fields.Selection([('north', "North"), ('south', "South"), ('east', "East"), ('west', "West")])
2925
total_area = fields.Integer(compute='_compute_total_area')
30-
property_type_id = fields.Many2one('estate.property.type', string="House Type")
31-
buyer_id = fields.Many2one('res.partner', string="Buyer", copy=False)
32-
seller_id = fields.Many2one('res.users', string="Seller", default=lambda self: self.env.user)
33-
tag_ids = fields.Many2many('estate.property.tag', string="Tags")
34-
offer_ids = fields.One2many('estate.property.offer', 'property_id', string="")
26+
property_type_id = fields.Many2one(comodel_name='estate.property.type', string="House Type")
27+
buyer_id = fields.Many2one(comodel_name='res.partner', string="Buyer", copy=False)
28+
seller_id = fields.Many2one(comodel_name='res.users', string="Seller", default=lambda self: self.env.user)
29+
tag_ids = fields.Many2many(comodel_name='estate.property.tag', string="Tags")
30+
offer_ids = fields.One2many(comodel_name='estate.property.offer', inverse_name='property_id', string="")
3531
best_offer = fields.Float(compute='_compute_best_offer')
36-
active = fields.Boolean("Active", default=True)
32+
active = fields.Boolean(string="Active", default=True)
3733
state = fields.Selection(
3834
string="Status",
3935
selection=[
@@ -48,50 +44,51 @@ class EstateProperty(models.Model):
4844
copy=False,
4945
)
5046

51-
_check_expected_price = models.Constraint(
52-
'CHECK(expected_price > 0)', "The expected price must be stricly positive"
53-
)
47+
_check_expected_price = models.Constraint('CHECK(expected_price > 0)', "The expected price must be stricly positive")
5448

5549
_check_selling_price = models.Constraint('CHECK(selling_price > 0)', "The selling price must be stricly positive")
5650

5751
@api.depends('living_area', 'garden_area')
5852
def _compute_total_area(self):
59-
for record in self:
60-
record.total_area = record.living_area + record.garden_area
53+
for record_property in self:
54+
record_property.total_area = record_property.living_area + record_property.garden_area
6155

6256
@api.depends('offer_ids.price')
6357
def _compute_best_offer(self):
64-
for record in self:
65-
record.best_offer = max(record.offer_ids.mapped('price'), default=0)
58+
for record_property in self:
59+
record_property.best_offer = max(record_property.offer_ids.mapped('price'), default=0)
6660

6761
@api.onchange('garden')
6862
def _onchange_garden(self):
69-
self.garden_area = 10 if self.garden else 0
70-
self.garden_orientation = 'north' if self.garden else ''
63+
if self.garden:
64+
self.garden_area = 10
65+
self.garden_orientation = 'north'
66+
else:
67+
self.garden_area = 0
68+
self.garden_orientation = ''
7169

7270
@api.constrains('selling_price', 'expected_price')
7371
def _check_selling_expected_price(self):
74-
for record in self:
75-
if not float_is_zero(record.selling_price, precision_digits=2) and (
76-
float_compare( record.expected_price * 0.9, record.selling_price, precision_digits=2,) > 0):
72+
for record_property in self:
73+
if not float_is_zero(record_property.selling_price, precision_digits=2) and (
74+
float_compare(record_property.expected_price * 0.9, record_property.selling_price, precision_digits=2) > 0):
7775
raise UserError(self.env._("The selling price must be a least 90% of the expected price!"))
7876

7977
def action_cancel(self):
80-
for record in self:
81-
if record.state == 'sold':
82-
raise UserError(self.env._("Sold properties cannot be cancelled"))
83-
record.state = 'cancelled'
78+
for record_property in self:
79+
if record_property.state == 'sold':
80+
raise UserError(record_property.env._("Sold properties cannot be cancelled"))
81+
record_property.state = 'cancelled'
8482
return True
8583

8684
def action_sold(self):
87-
for record in self:
88-
if record.state == 'cancelled':
89-
raise UserError(self.env_("Canceled properties cannot be sold"))
90-
record.state = 'sold'
85+
for record_property in self:
86+
if record_property.state == 'cancelled':
87+
raise UserError(record_property.env_("Canceled properties cannot be sold"))
88+
record_property.state = 'sold'
9189
return True
9290

9391
@api.ondelete(at_uninstall=False)
9492
def _ondelete(self):
95-
if not any((property_id.state in ('new', 'cancelled')) for property_id in self):
93+
if any((property_id.state not in ('new', 'cancelled')) for property_id in self):
9694
raise UserError(self.env._("You can only delete property in the state New or Cancelled"))
97-

estate/models/estate_property_offer.py

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class EstatePropertyOffer(models.Model):
1313
price = fields.Float(string="Price")
1414
status = fields.Selection([('accepted', "Accepted"), ('refused', "Refused")], copy=False)
1515
partner_id = fields.Many2one('res.partner', required=True)
16-
property_id = fields.Many2one('estate.property', required=True)
16+
property_id = fields.Many2one('estate.property', required=True, ondelete='cascade')
1717
validity = fields.Integer(default=7)
1818
date_deadline = fields.Date(compute='_compute_date_deadline', inverse='_inverse_date_deadline')
1919
property_type_id = fields.Many2one(related='property_id.property_type_id')
@@ -33,9 +33,8 @@ def _inverse_date_deadline(self):
3333

3434
def action_accept_offer(self):
3535
for record in self:
36-
for offer in record.property_id.offer_ids:
37-
if offer.status == 'accepted':
38-
raise UserError(self.env_("Another offer has already been accepted."))
36+
if record.property_id.offer_ids.filtered(lambda offer: offer.status == 'accepted'):
37+
raise UserError(record.env_("Another offer has already been accepted."))
3938
record.status = 'accepted'
4039
record.property_id.buyer_id = record.partner_id
4140
record.property_id.selling_price = record.price
@@ -50,10 +49,10 @@ def action_refuse_offer(self):
5049
@api.model_create_multi
5150
def create(self, vals_list):
5251
for vals in vals_list:
53-
PropertyModel = self.env['estate.property'].browse(vals['property_id'])
54-
if float_compare(vals['price'], PropertyModel.best_offer, precision_digits=2) < 0:
55-
raise UserError(self.env._("The price must be higher than %s", PropertyModel.best_offer))
52+
estate_property = self.env['estate.property'].browse(vals['property_id'])
53+
if float_compare(vals['price'], estate_property.best_offer, precision_digits=2) < 0:
54+
raise UserError(self.env._("The price must be higher than %s", estate_property.best_offer))
5655

57-
PropertyModel.state = 'offer_received'
56+
estate_property.state = 'offer_received'
5857

59-
return super(EstatePropertyOffer, self).create(vals_list)
58+
return super().create(vals_list)

estate/models/estate_property_type.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,3 @@ class EstatePropertyType(models.Model):
1818
def _compute_offer_count(self):
1919
for record in self:
2020
record.offer_count = len(record.offer_ids)
21-

estate/models/res_users.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ class ResUsers(models.Model):
1111
'estate.property',
1212
'seller_id',
1313
string="Available Properties",
14-
domain=[('state', 'in', {'new', 'offer_received'})],
14+
domain=[('state', 'in', ['new', 'offer_received'])],
1515
)

estate_account/models/estate_property.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,4 @@ def action_sold(self):
3030
],
3131
}
3232
)
33-
return super(EstateProperty, self).action_sold()
33+
return super().action_sold()

0 commit comments

Comments
 (0)