Skip to content

Commit 06c2487

Browse files
committed
[IMP] estate: polish code coding guidelines wise
Improve syntax of menu item Improve syntax in all views Set id name coding guidelines wise
1 parent 26b7079 commit 06c2487

File tree

10 files changed

+96
-63
lines changed

10 files changed

+96
-63
lines changed

estate/models/estate_property.py

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from odoo import models, fields, api
44
from odoo.exceptions import UserError, ValidationError
5-
from odoo.tools.float_utils import float_compare
5+
from odoo.tools.float_utils import float_compare, float_is_zero
66

77

88
class EstateProperty(models.Model):
@@ -14,7 +14,7 @@ class EstateProperty(models.Model):
1414
description = fields.Text()
1515
postcode = fields.Char()
1616
date_availability = fields.Date(copy=False, default=fields.Date.today() + relativedelta(months=3))
17-
expected_price = fields.Float(required=True)
17+
expected_price = fields.Float(required=True, default=0)
1818
selling_price = fields.Float(readonly=True, copy=False)
1919
bedrooms = fields.Integer(default=2)
2020
living_area = fields.Float(string="Living Area (sqm)")
@@ -24,7 +24,8 @@ class EstateProperty(models.Model):
2424
garden_area = fields.Float(string="Garden Area (sqm)")
2525
garden_orientation = fields.Selection(
2626
string="Garden Orientation",
27-
selection=[('north', 'North'),
27+
selection=[
28+
('north', 'North'),
2829
('south', 'South'),
2930
('east', 'East'),
3031
('west', 'West')
@@ -41,9 +42,9 @@ class EstateProperty(models.Model):
4142
],
4243
default="new"
4344
)
44-
type_id = fields.Many2one("estate.property.type")
45-
buyer = fields.Many2one("res.partner", copy=False)
46-
salesperson = fields.Many2one("res.users", default=lambda self: self.env.user)
45+
property_type_id = fields.Many2one("estate.property.type")
46+
buyer_id = fields.Many2one("res.partner", copy=False)
47+
salesperson_id = fields.Many2one("res.users", default=lambda self: self.env.user)
4748
tag_ids = fields.Many2many("estate.property.tag")
4849
offer_ids = fields.One2many("estate.property.offer", "property_id", string="Offers")
4950
total_area = fields.Float(compute="_compute_total_area")
@@ -85,22 +86,17 @@ def sold_property(self):
8586
else:
8687
record.state = 'sold'
8788

88-
_check_expected_price = models.Constraint(
89-
'CHECK(expected_price >= 0)',
90-
'expected price must be positive'
91-
)
92-
93-
_check_selling_price = models.Constraint(
94-
'CHECK(selling_price >= 0)',
95-
'selling price must be positive'
89+
_check_price = models.Constraint(
90+
'CHECK(selling_price >= 0 AND expected_price>=0)',
91+
'selling price and expected_price must be positive'
9692
)
9793

9894
@api.constrains('selling_price', 'expected_price', 'state')
9995
def _check_selling_price(self):
10096
for record in self:
101-
if record.state in ['sold', 'offer_accepted']:
97+
if not float_is_zero(record.selling_price, precision_digits=2):
10298
if float_compare(record.selling_price, 0.9 * record.expected_price, precision_digits=2) < 0:
103-
raise ValidationError("the selling price is lower")
99+
raise ValidationError("the selling price lower")
104100

105101
@api.ondelete(at_uninstall=True)
106102
def _unlink_check_state_of_property(self):

estate/models/estate_property_offer.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class EstatePropertyOffer(models.Model):
1818
)
1919
partner_id = fields.Many2one("res.partner", required=True)
2020
property_id = fields.Many2one("estate.property", required=True)
21-
property_type_id = fields.Many2one(related="property_id.type_id", store=True)
21+
property_type_id = fields.Many2one(related="property_id.property_type_id", store=True)
2222
validity = fields.Integer(default=7)
2323
date_deadline = fields.Date(compute="_compute_deadline", inverse="_inverse_deadline")
2424

@@ -35,13 +35,13 @@ def _inverse_deadline(self):
3535

3636
def action_accept(self):
3737
for record in self:
38-
if record.property_id.buyer:
38+
if record.property_id.buyer_id:
3939
raise UserError("Property already accepted")
4040
else:
4141
record.status = 'accepted'
4242
record.property_id.selling_price = record.price
4343
record.property_id.state = 'offer_accepted'
44-
record.property_id.buyer = record.partner_id
44+
record.property_id.buyer_id = record.partner_id
4545

4646
def action_refuse(self):
4747
for record in self:

estate/models/estate_property_type.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class EstatePropertyType(models.Model):
77
_order = "sequence, name"
88

99
name = fields.Char(required=True)
10-
property_ids = fields.One2many('estate.property', 'type_id')
10+
property_ids = fields.One2many('estate.property', 'property_type_id')
1111
sequence = fields.Integer(string="Sequence", default=1)
1212
offer_count = fields.Integer(compute="_compute_total_offers")
1313
offer_ids = fields.One2many("estate.property.offer", "property_type_id")

estate/models/res_users.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ class ResUsers(models.Model):
66

77
property_ids = fields.One2many(
88
"estate.property",
9-
"salesperson",
9+
"salesperson_id",
1010
string="Estate Properties",
1111
domain=[("state", "!=", "sold")],
1212
)

estate/views/estate_menus.xml

Lines changed: 40 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,45 @@
11
<?xml version="1.0"?>
22
<odoo>
3-
<menuitem id="real_estate_menu" name="Real Estate">
4-
</menuitem>
3+
<menuitem
4+
id="estate_menu_root"
5+
name="Real Estate"
6+
/>
57

6-
<menuitem id="advertisements_menu" name="Advertisements" parent="real_estate_menu" sequence="1">
7-
<menuitem id="properties_menu_action1" action="estate_property_action"/>
8-
</menuitem>
8+
<menuitem
9+
id="estate_menu_advertisements"
10+
name="Advertisements"
11+
parent="estate_menu_root"
12+
sequence="1"
13+
/>
914

10-
<menuitem id="setting_menu" name="Setting" parent="real_estate_menu" sequence="2">
11-
<menuitem id="properties_menu_action2" action="estate_property_type_action"/>
12-
<menuitem id="properties_menu_action3" action="estate_property_tag_action"/>
13-
</menuitem>
15+
<menuitem
16+
id="estate_menu_setting"
17+
name="Setting"
18+
parent="estate_menu_root"
19+
sequence="2"
20+
/>
21+
22+
<menuitem
23+
id="estate_menu_estate_property_action"
24+
name="Properties"
25+
parent="estate_menu_advertisements"
26+
action="estate_property_action"
27+
sequence="1"
28+
/>
29+
30+
<menuitem
31+
id="estate_menu_estate_property_type_action"
32+
name="Property Types"
33+
parent="estate_menu_setting"
34+
action="estate_property_type_action"
35+
sequence="1"
36+
/>
37+
38+
<menuitem
39+
id="estate_menu_estate_property_tag_action"
40+
name="Property Tags"
41+
parent="estate_menu_setting"
42+
action="estate_property_tag_action"
43+
sequence="2"
44+
/>
1445
</odoo>

estate/views/estate_property_offer_views.xml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?xml version="1.0"?>
22
<odoo>
3-
<record id="estate_property_offer_list" model="ir.ui.view">
3+
<record id="estate_property_offer_view_list" model="ir.ui.view">
4+
<field name="name">estate.property.offer.view.list</field>
45
<field name="model">estate.property.offer</field>
56
<field name="arch" type="xml">
67
<list decoration-danger="status == 'refused'" decoration-success="status == 'accepted'">
@@ -14,7 +15,8 @@
1415
</field>
1516
</record>
1617

17-
<record id="estate_property_offer_form" model="ir.ui.view">
18+
<record id="estate_property_offer_view_form" model="ir.ui.view">
19+
<field name="name">estate.property.offer.view.form</field>
1820
<field name="model">estate.property.offer</field>
1921
<field name="arch" type="xml">
2022
<form>
@@ -34,7 +36,7 @@
3436
<record id="estate_property_offer_action" model="ir.actions.act_window">
3537
<field name="name">Property type Offer</field>
3638
<field name="res_model">estate.property.offer</field>
37-
<field name="view_mode">list</field>
38-
<field name="domain">[("property_id.type_id", "=", active_id)]</field>
39+
<field name="view_mode">list,form</field>
40+
<field name="domain">[("property_id.property_type_id", "=", active_id)]</field>
3941
</record>
4042
</odoo>
Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,42 @@
11
<?xml version="1.0"?>
22
<odoo>
3-
<record id="estate_property_tag_search" model="ir.ui.view">
3+
<record id="estate_property_tag_view_search" model="ir.ui.view">
4+
<field name="name">estate.property.tag.view.search</field>
45
<field name="model">estate.property.tag</field>
56
<field name="arch" type="xml">
6-
<search string="Search Properties">
7+
<search>
78
<field name="name"/>
89
</search>
910
</field>
1011
</record>
1112

12-
<record id="estate_property_tag_list" model="ir.ui.view">
13+
<record id="estate_property_tag_view_list" model="ir.ui.view">
14+
<field name="name">estate.property.tag.view.list</field>
1315
<field name="model">estate.property.tag</field>
1416
<field name="arch" type="xml">
15-
<list string="List" editable="top">
17+
<list string="List" editable="bottom">
1618
<field name="name"/>
1719
</list>
1820
</field>
1921
</record>
2022

21-
<record id="estate_property_tag_form" model="ir.ui.view">
23+
<record id="estate_property_tag_view_form" model="ir.ui.view">
24+
<field name="name">estate.property.tag.view.form</field>
2225
<field name="model">estate.property.tag</field>
2326
<field name="arch" type="xml">
2427
<form>
2528
<sheet>
2629
<group>
27-
<group>
28-
<field name="name"/>
29-
</group>
30+
<field name="name"/>
3031
</group>
31-
<notebook>
32-
</notebook>
3332
</sheet>
3433
</form>
3534
</field>
3635
</record>
3736

3837
<record id="estate_property_tag_action" model="ir.actions.act_window">
39-
<field name="name">Property tag</field>
38+
<field name="name">Property Tags</field>
4039
<field name="res_model">estate.property.tag</field>
4140
<field name="view_mode">list,form</field>
42-
<field name="context">{"search_default_available":1}</field>
4341
</record>
4442
</odoo>

estate/views/estate_property_type_views.xml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?xml version="1.0"?>
22
<odoo>
3-
<record id="estate_property_type_list" model="ir.ui.view">
3+
<record id="estate_property_type_view_list" model="ir.ui.view">
4+
<field name="name">estate.property.type.view.list</field>
45
<field name="model">estate.property.type</field>
56
<field name="arch" type="xml">
67
<list>
@@ -11,8 +12,9 @@
1112
</field>
1213
</record>
1314

14-
<record id="estate_property_type_form" model="ir.ui.view">
15-
<field name="model">estate.property.type</field>
15+
<record id="estate_property_type_view_form" model="ir.ui.view">
16+
<field name="name">estate.property.type.view.form</field>
17+
<field name="model">estate.property.type</field>
1618
<field name="arch" type="xml">
1719
<form>
1820
<sheet>
@@ -39,7 +41,7 @@
3941
</record>
4042

4143
<record id="estate_property_type_action" model="ir.actions.act_window">
42-
<field name="name">Property type</field>
44+
<field name="name">Property Types</field>
4345
<field name="res_model">estate.property.type</field>
4446
<field name="view_mode">list,form</field>
4547
</record>

estate/views/estate_property_views.xml

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?xml version="1.0"?>
22
<odoo>
3-
<record id="estate_property_search" model="ir.ui.view">
3+
<record id="estate_property_view_search" model="ir.ui.view">
4+
<field name="name">estate.property.view.search</field>
45
<field name="model">estate.property</field>
56
<field name="arch" type="xml">
67
<search string="Search Properties">
@@ -10,30 +11,34 @@
1011
<field name="expected_price"/>
1112
<field name="selling_price"/>
1213
<field name="facades"/>
13-
<field name="type_id"/>
14+
<field name="property_type_id"/>
1415
<filter string="Available" name="available" domain="['|' ,('state', '=', 'new'), ('state', '=', 'offer_received')]"/>
1516
<field name="living_area" filter_domain="[('living_area','>=',self)]"/>
1617
</search>
1718
</field>
1819
</record>
1920

20-
<record id="estate_property_list" model="ir.ui.view">
21+
<record id="estate_property_view_list" model="ir.ui.view">
22+
<field name="name">estate.property.view.list</field>
2123
<field name="model">estate.property</field>
2224
<field name="arch" type="xml">
2325
<list decoration-success="state == 'offer_received' or state == 'offer_accepted'" decoration-bf="state == 'offer_accepted'" decoration-muted="state == 'sold'">
2426
<field name="name"/>
27+
<field name="property_type_id"/>
28+
<field name="postcode"/>
2529
<field name="bedrooms"/>
30+
<field name="tag_ids" widget="many2many_tags" options="{'color_field': 'color'}"/>
2631
<field name="total_area"/>
32+
<field name="expected_price"/>
2733
<field name="selling_price"/>
28-
<field name="date_availability" optional="hidden"/>
29-
<field name="tag_ids" widget="many2many_tags" options="{'color_field': 'color'}"/>
30-
<field name="type_id"/>
3134
<field name="living_area"/>
35+
<field name="date_availability" optional="hidden"/>
3236
</list>
3337
</field>
3438
</record>
3539

36-
<record id="estate_property_form" model="ir.ui.view">
40+
<record id="estate_property_view_form" model="ir.ui.view">
41+
<field name="name">estate.property.view.form</field>
3742
<field name="model">estate.property</field>
3843
<field name="arch" type="xml">
3944
<form>
@@ -46,13 +51,12 @@
4651
<group>
4752
<group>
4853
<field name="tag_ids" widget="many2many_tags" options="{'color_field': 'color'}"/>
49-
<field name="type_id" options="{'no_create': true, 'no_open': true, 'no_edit': true}"/>
54+
<field name="property_type_id" options="{'no_create': true, 'no_open': true, 'no_edit': true}"/>
5055
<field name="name"/>
5156
<field name="state"/>
5257
<field name="date_availability"/>
5358
</group>
5459
<group>
55-
5660
<field name="expected_price"/>
5761
<field name="selling_price"/>
5862
<field name="best_offer"/>
@@ -84,8 +88,8 @@
8488
</page>
8589
<page string="Other Info">
8690
<group>
87-
<field name="buyer"/>
88-
<field name="salesperson"/>
91+
<field name="buyer_id"/>
92+
<field name="salesperson_id"/>
8993
</group>
9094
</page>
9195
</notebook>
@@ -98,7 +102,7 @@
98102
<field name="name">estate.property.view.kanban</field>
99103
<field name="model">estate.property</field>
100104
<field name="arch" type="xml">
101-
<kanban default_group_by='type_id' records_draggable='False'>
105+
<kanban default_group_by='property_type_id' records_draggable='False'>
102106
<field name="state"/>
103107
<templates>
104108
<t t-name="card">

estate_account/models/estate_property.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class EstateProperty(models.Model):
77
def sold_property(self):
88
for record in self:
99
self.env['account.move'].create({
10-
'partner_id': self.buyer.id,
10+
'partner_id': self.buyer_id.id,
1111
'move_type': 'out_invoice',
1212
'invoice_line_ids': [
1313
Command.create({

0 commit comments

Comments
 (0)