Skip to content

Commit d2aa309

Browse files
committed
[FIX] chapter7-estate: Fixed action fields
1 parent 0a9d47c commit d2aa309

11 files changed

+27
-48
lines changed

estate/__manifest__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@
1616
'category': 'Sales/Real Estate',
1717
'installable': True,
1818
'auto_install': False,
19-
'description': """Description text""",
19+
'description': """Real estate management tutorial module with properties, offers, types and tags.""",
2020
}

estate/models/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from . import estate_property # noqa: F401
1+
from . import estate_property
22
from . import estate_property_type
33
from . import estate_property_tag
44
from . import estate_property_offer

estate/models/estate_property.py

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,37 @@
1-
from odoo import models, fields
21
from dateutil.relativedelta import relativedelta
32
from datetime import date
3+
from odoo import models, fields, api
44

55

66
class EstateProperty(models.Model):
77
_name = "estate.property"
88
_description = "Real Estate Property"
99

10-
name = fields.Char(string="Property Title", required=True)
11-
description = fields.Text(string="Description")
12-
postcode = fields.Char(string="Postcode")
10+
name = fields.Char(required=True)
11+
description = fields.Text()
12+
postcode = fields.Char()
1313
date_availability = fields.Date(
14-
string="Available From",
1514
default=lambda sself: date.today() + relativedelta(months=3),
1615
copy=False
1716
)
1817
expected_price = fields.Float(string="Expected Price", required=True)
1918
selling_price = fields.Float(
20-
string="Selling Price",
2119
readonly=True,
2220
copy=False
2321
)
24-
25-
bedrooms = fields.Integer(string="Bedrooms", default=2)
26-
living_area = fields.Integer(string="Living Area (sqm)")
27-
facades = fields.Integer(string="Number of Facades")
28-
garage = fields.Boolean(string="Has Garage")
29-
garden = fields.Boolean(string="Has Garden")
30-
garden_area = fields.Integer(string="Garden Area (sqm)")
22+
bedrooms = fields.Integer(default=2)
23+
living_area = fields.Integer()
24+
facades = fields.Integer()
25+
garage = fields.Boolean()
26+
garden = fields.Boolean()
27+
garden_area = fields.Integer()
3128
garden_orientation = fields.Selection(
3229
selection=[
3330
('north', 'North'),
3431
('south', 'South'),
3532
('east', 'East'),
3633
('west', 'West'),
3734
],
38-
string="Garden Orientation"
3935
)
4036
active = fields.Boolean(default=True)
4137
state = fields.Selection(
@@ -46,31 +42,33 @@ class EstateProperty(models.Model):
4642
('sold', 'Sold'),
4743
('cancelled', 'Cancelled'),
4844
],
49-
string="Status",
5045
required=True,
5146
copy=False,
5247
default='new',
5348
)
5449
property_type_id = fields.Many2one(
5550
"estate.property.type",
56-
string="Property Type",
5751
)
5852
salesperson_id = fields.Many2one(
5953
"res.users",
60-
string="Salesman",
6154
default=lambda self: self.env.user,
6255
)
6356
buyer_id = fields.Many2one(
6457
"res.partner",
65-
string="Buyer",
6658
copy=False,
6759
)
6860
tag_ids = fields.Many2many(
6961
"estate.property.tag",
70-
string="Tags",
7162
)
7263
offer_ids = fields.One2many(
7364
"estate.property.offer",
7465
"property_id",
75-
string="Offers",
7666
)
67+
total_area = fields.Float(
68+
compute="_compute_total_area"
69+
)
70+
71+
@api.depends('living_area', 'garden_area')
72+
def _compute_total_area(self):
73+
for record in self:
74+
record.total_area = record.living_area + record.garden_area

estate/models/estate_property_offer.py

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,19 @@
44
class EstatePropertyOffer(models.Model):
55
_name = "estate.property.offer"
66
_description = "Real Estate Property Offer"
7-
87
price = fields.Float(string="Price")
9-
108
status = fields.Selection(
119
[
1210
("accepted", "Accepted"),
1311
("refused", "Refused"),
1412
],
15-
string="Status",
16-
copy=False, # do not copy when duplicating the offer
13+
copy=False,
1714
)
18-
1915
partner_id = fields.Many2one(
2016
"res.partner",
21-
string="Partner",
2217
required=True,
2318
)
24-
2519
property_id = fields.Many2one(
2620
"estate.property",
27-
string="Property",
2821
required=True,
2922
)

estate/models/estate_property_tag.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,4 @@
44
class EstatePropertyTag(models.Model):
55
_name = "estate.property.tag"
66
_description = "Real Estate Property Tag"
7-
8-
name = fields.Char(string="Name", required=True)
7+
name = fields.Char(required=True)

estate/models/estate_property_type.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,4 @@
44
class EstatePropertyType(models.Model):
55
_name = "estate.property.type"
66
_description = "Real Estate Property Type"
7-
8-
name = fields.Char(string="Name", required=True)
7+
name = fields.Char(required=True)

estate/views/estate_menus.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
1-
<!-- /home/odoo/odoo19/tutorials/estate/views/estate_menus.xml -->
21
<odoo>
32
<menuitem id="menu_estate_root" name="Real Estate"/>
43
<menuitem id="menu_estate_advertisements" name="Advertisements" parent="menu_estate_root" sequence="10"/>
54
<menuitem id="menu_estate_properties" name="Properties" parent="menu_estate_advertisements" action="action_estate_property" sequence="10"/>
6-
<!-- Settings / Property Types -->
5+
76
<menuitem id="menu_estate_settings" name="Settings" parent="menu_estate_root" sequence="20"/>
7+
88
<menuitem id="menu_estate_property_types" name="Property Types"
99
parent="menu_estate_settings"
1010
action="action_estate_property_type"
1111
sequence="10"/>
12+
1213
<menuitem id="menu_estate_property_tags" name="Property Tags"
1314
parent="menu_estate_settings"
1415
action="action_estate_property_tag"/>

estate/views/estate_property_offer_views.xml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
<!-- /home/odoo/odoo19/tutorials/estate/views/estate_property_offer_views.xml -->
21
<odoo>
3-
<!-- Offers: List view -->
42
<record id="view_estate_property_offer_list" model="ir.ui.view">
53
<field name="name">estate.property.offer.list</field>
64
<field name="model">estate.property.offer</field>
@@ -13,7 +11,6 @@
1311
</field>
1412
</record>
1513

16-
<!-- Offers: Form view -->
1714
<record id="view_estate_property_offer_form" model="ir.ui.view">
1815
<field name="name">estate.property.offer.form</field>
1916
<field name="model">estate.property.offer</field>

estate/views/estate_property_tag_views.xml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
<!-- /home/odoo/odoo19/tutorials/estate/views/estate_property_tag_views.xml -->
21
<odoo>
3-
<!-- Action for property tags -->
42
<record id="action_estate_property_tag" model="ir.actions.act_window">
53
<field name="name">Property Tags</field>
64
<field name="res_model">estate.property.tag</field>

estate/views/estate_property_type_views.xml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
<!-- /home/odoo/odoo19/tutorials/estate/views/estate_property_type_views.xml -->
21
<odoo>
3-
<!-- Action for property types -->
42
<record id="action_estate_property_type" model="ir.actions.act_window">
53
<field name="name">Property Types</field>
64
<field name="res_model">estate.property.type</field>

0 commit comments

Comments
 (0)