Skip to content

Commit 0225b68

Browse files
[IMP] Chapter 7: Added Tags, Buyer, Seller, and Offer models to Estate Module. Improved UI to show all the details about each building
1 parent ce471ef commit 0225b68

File tree

8 files changed

+68
-4
lines changed

8 files changed

+68
-4
lines changed

estate/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
from . import models as models
1+
from . import models

estate/models/__init__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
1-
from . import buildings_model as buildings_model
1+
from . import buildings_model
2+
from . import building_type_model
3+
from . import tags_model
4+
from . import offers_model
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from odoo import models, fields
2+
3+
4+
class building_type_model(models.Model):
5+
_name = "estate.building_type"
6+
_description = "Building Type Model"
7+
8+
name = fields.Char(required=True)

estate/models/buildings_model.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,10 @@ class buildings_model(models.Model):
2929
default="new",
3030
)
3131
post_code = fields.Integer(default=1000)
32+
building_type_id = fields.Many2one("estate.building_type", string="Building Type")
33+
buyer_id = fields.Many2one("res.partner", string="Buyer")
34+
salesperson_id = fields.Many2one(
35+
"res.users", string="Salesperson", default=lambda self: self.env.user
36+
)
37+
tag_ids = fields.Many2many("estate.building_tags", string="Tags")
38+
offer_ids = fields.One2many("estate.offers", "building_id", string="Offers")

estate/models/offers_model.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from odoo import models, fields
2+
3+
4+
class offers_model(models.Model):
5+
_name = "estate.offers"
6+
_description = "Offers Model"
7+
8+
price = fields.Integer(required=True)
9+
status = fields.Selection(
10+
[("accepted", "Accepted"), ("refused", "Refused")],
11+
string="Status",
12+
required=True,
13+
)
14+
building_id = fields.Many2one("estate.buildings", string="Building")
15+
partner_id = fields.Many2one("res.partner", string="Partner")

estate/models/tags_model.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from odoo import models, fields
2+
3+
4+
class building_tags_model(models.Model):
5+
_name = "estate.building_tags"
6+
_description = "Building Tags Model"
7+
8+
name = fields.Char(required=True)
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
2-
access_first_model,access_first_model,model_estate_buildings,base.group_user,1,1,1,0
2+
access_first_model,access_first_model,model_estate_buildings,base.group_user,1,1,1,1
3+
access_building_type_model,access_building_type_model,model_estate_building_type,base.group_user,1,1,1,1
4+
access_building_tags_model,access_building_tags_model,model_estate_building_tags,base.group_user,1,1,1,1
5+
access_offers_model,access_offers_model,model_estate_offers,base.group_user,1,1,1,1

estate/views/views.xml

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
<field name="number_of_rooms"/>
1515
<field name="value"/>
1616
<field name="state"/>
17+
<field name="building_type_id"/>
1718
</list>
1819
</field>
1920
</record>
@@ -27,9 +28,11 @@
2728
<group>
2829
<group>
2930
<field name="name"/>
31+
<field name="tag_ids" widget="many2many_tags"/>
3032
<field name="value"/>
3133
<field name="state"/>
3234
<field name="availability_date"/>
35+
<field name="building_type_id"/>
3336
</group>
3437
<group>
3538
<field name="number_of_rooms"/>
@@ -39,7 +42,24 @@
3942
</group>
4043
<notebook>
4144
<page string="Description">
42-
<field name="description"/>
45+
<group>
46+
<field name="description"/>
47+
</group>
48+
</page>
49+
<page string="Info">
50+
<group>
51+
<field name="buyer_id"/>
52+
<field name="salesperson_id"/>
53+
</group>
54+
</page>
55+
<page string="Offers">
56+
<field name="offer_ids">
57+
<list>
58+
<field name="price"/>
59+
<field name="status"/>
60+
<field name="partner_id"/>
61+
</list>
62+
</field>
4363
</page>
4464
</notebook>
4565
</sheet>

0 commit comments

Comments
 (0)