Skip to content

Commit b69f8cc

Browse files
committed
[ADD] estate: finish Chapters 2-4 (module & model)
Setup and install real estate module Declaring model class and creating estate property table in database via odoo orm implementing access rights
1 parent 781b590 commit b69f8cc

6 files changed

Lines changed: 249 additions & 0 deletions

File tree

estate/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . import models

estate/__manifest__.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
'name': 'Real Estate',
3+
'version': '1.0',
4+
'license': 'LGPL-3',
5+
'summary': 'Real estate advertisement management',
6+
'description': """
7+
Real Estate tutorial module.
8+
""",
9+
'author': 'Parth Sawant',
10+
'depends': ['base'],
11+
'category': 'Real Estate',
12+
'data':[
13+
'security/ir.model.access.csv',
14+
],
15+
'demo': [
16+
'demo/demo.xml',
17+
],
18+
'application': True,
19+
'installable': True,
20+
}

estate/demo/demo.xml

Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
1+
<odoo>
2+
<data>
3+
4+
<record id="property_1" model="estate.property">
5+
<field name="name">Modern Downtown Apartment</field>
6+
<field name="description">Sleek apartment in the heart of the city</field>
7+
<field name="postcode">10001</field>
8+
<field name="date_availability">2025-06-01</field>
9+
<field name="expected_price">250000</field>
10+
<field name="selling_price">245000</field>
11+
<field name="bedrooms">2</field>
12+
<field name="living_area">85</field>
13+
<field name="facades">1</field>
14+
<field name="garage">False</field>
15+
<field name="garden">False</field>
16+
<field name="garden_area">0</field>
17+
<field name="garden_orientation">north</field>
18+
</record>
19+
20+
<record id="property_2" model="estate.property">
21+
<field name="name">Suburban Family Home</field>
22+
<field name="description">Spacious home with a large backyard</field>
23+
<field name="postcode">20002</field>
24+
<field name="date_availability">2025-07-15</field>
25+
<field name="expected_price">450000</field>
26+
<field name="selling_price">440000</field>
27+
<field name="bedrooms">4</field>
28+
<field name="living_area">180</field>
29+
<field name="facades">3</field>
30+
<field name="garage">True</field>
31+
<field name="garden">True</field>
32+
<field name="garden_area">120</field>
33+
<field name="garden_orientation">south</field>
34+
</record>
35+
36+
<record id="property_3" model="estate.property">
37+
<field name="name">Cozy Studio Near University</field>
38+
<field name="description">Compact studio ideal for students</field>
39+
<field name="postcode">30003</field>
40+
<field name="date_availability">2025-05-01</field>
41+
<field name="expected_price">95000</field>
42+
<field name="selling_price">90000</field>
43+
<field name="bedrooms">1</field>
44+
<field name="living_area">35</field>
45+
<field name="facades">1</field>
46+
<field name="garage">False</field>
47+
<field name="garden">False</field>
48+
<field name="garden_area">0</field>
49+
<field name="garden_orientation">east</field>
50+
</record>
51+
52+
<record id="property_4" model="estate.property">
53+
<field name="name">Luxury Beachfront Villa</field>
54+
<field name="description">Stunning villa with direct beach access</field>
55+
<field name="postcode">40004</field>
56+
<field name="date_availability">2025-09-01</field>
57+
<field name="expected_price">1200000</field>
58+
<field name="selling_price">1150000</field>
59+
<field name="bedrooms">5</field>
60+
<field name="living_area">350</field>
61+
<field name="facades">4</field>
62+
<field name="garage">True</field>
63+
<field name="garden">True</field>
64+
<field name="garden_area">500</field>
65+
<field name="garden_orientation">south</field>
66+
</record>
67+
68+
<record id="property_5" model="estate.property">
69+
<field name="name">Countryside Cottage</field>
70+
<field name="description">Charming cottage surrounded by nature</field>
71+
<field name="postcode">50005</field>
72+
<field name="date_availability">2025-08-01</field>
73+
<field name="expected_price">175000</field>
74+
<field name="selling_price">170000</field>
75+
<field name="bedrooms">2</field>
76+
<field name="living_area">90</field>
77+
<field name="facades">2</field>
78+
<field name="garage">False</field>
79+
<field name="garden">True</field>
80+
<field name="garden_area">200</field>
81+
<field name="garden_orientation">west</field>
82+
</record>
83+
84+
<record id="property_6" model="estate.property">
85+
<field name="name">City Center Penthouse</field>
86+
<field name="description">Exclusive penthouse with panoramic views</field>
87+
<field name="postcode">60006</field>
88+
<field name="date_availability">2025-10-01</field>
89+
<field name="expected_price">850000</field>
90+
<field name="selling_price">820000</field>
91+
<field name="bedrooms">3</field>
92+
<field name="living_area">210</field>
93+
<field name="facades">2</field>
94+
<field name="garage">True</field>
95+
<field name="garden">False</field>
96+
<field name="garden_area">0</field>
97+
<field name="garden_orientation">north</field>
98+
</record>
99+
100+
<record id="property_7" model="estate.property">
101+
<field name="name">Industrial Loft Conversion</field>
102+
<field name="description">Trendy loft in a converted warehouse</field>
103+
<field name="postcode">70007</field>
104+
<field name="date_availability">2025-06-15</field>
105+
<field name="expected_price">320000</field>
106+
<field name="selling_price">310000</field>
107+
<field name="bedrooms">2</field>
108+
<field name="living_area">130</field>
109+
<field name="facades">1</field>
110+
<field name="garage">False</field>
111+
<field name="garden">False</field>
112+
<field name="garden_area">0</field>
113+
<field name="garden_orientation">east</field>
114+
</record>
115+
116+
<record id="property_8" model="estate.property">
117+
<field name="name">Hillside Bungalow</field>
118+
<field name="description">Peaceful bungalow with valley views</field>
119+
<field name="postcode">80008</field>
120+
<field name="date_availability">2025-07-01</field>
121+
<field name="expected_price">290000</field>
122+
<field name="selling_price">280000</field>
123+
<field name="bedrooms">3</field>
124+
<field name="living_area">110</field>
125+
<field name="facades">2</field>
126+
<field name="garage">True</field>
127+
<field name="garden">True</field>
128+
<field name="garden_area">80</field>
129+
<field name="garden_orientation">west</field>
130+
</record>
131+
132+
<record id="property_9" model="estate.property">
133+
<field name="name">Gated Community Townhouse</field>
134+
<field name="description">Secure townhouse in a premium gated complex</field>
135+
<field name="postcode">90009</field>
136+
<field name="date_availability">2025-11-01</field>
137+
<field name="expected_price">530000</field>
138+
<field name="selling_price">515000</field>
139+
<field name="bedrooms">3</field>
140+
<field name="living_area">150</field>
141+
<field name="facades">2</field>
142+
<field name="garage">True</field>
143+
<field name="garden">True</field>
144+
<field name="garden_area">60</field>
145+
<field name="garden_orientation">south</field>
146+
</record>
147+
148+
<record id="property_10" model="estate.property">
149+
<field name="name">Riverside Duplex</field>
150+
<field name="description">Beautiful duplex with riverside views</field>
151+
<field name="postcode">10010</field>
152+
<field name="date_availability">2025-08-15</field>
153+
<field name="expected_price">390000</field>
154+
<field name="selling_price">375000</field>
155+
<field name="bedrooms">4</field>
156+
<field name="living_area">160</field>
157+
<field name="facades">3</field>
158+
<field name="garage">True</field>
159+
<field name="garden">True</field>
160+
<field name="garden_area">90</field>
161+
<field name="garden_orientation">east</field>
162+
</record>
163+
164+
<record id="property_11" model="estate.property">
165+
<field name="name">Mountain Cabin Retreat</field>
166+
<field name="description">Rustic cabin with stunning mountain views</field>
167+
<field name="postcode">11011</field>
168+
<field name="date_availability">2025-09-15</field>
169+
<field name="expected_price">210000</field>
170+
<field name="selling_price">200000</field>
171+
<field name="bedrooms">2</field>
172+
<field name="living_area">75</field>
173+
<field name="facades">1</field>
174+
<field name="garage">False</field>
175+
<field name="garden">True</field>
176+
<field name="garden_area">150</field>
177+
<field name="garden_orientation">south</field>
178+
179+
</record>
180+
181+
<record id="property_12" model="estate.property">
182+
<field name="name">Historic Downtown Loft</field>
183+
<field name="description">Unique loft in a historic building</field>
184+
<field name="postcode">12012</field>
185+
<field name="date_availability">2025-10-15</field>
186+
<field name="expected_price">280000</field>
187+
<field name="selling_price">270000</field>
188+
<field name="bedrooms">1</field>
189+
<field name="living_area">95</field>
190+
<field name="facades">2</field>
191+
<field name="garage">False</field>
192+
<field name="garden">False</field>
193+
<field name="garden_area">0</field>
194+
<field name="garden_orientation">north</field>
195+
</record>
196+
197+
</data>
198+
</odoo>

estate/models/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . import estate_property

estate/models/estate_property.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from odoo import fields, models
2+
3+
4+
class EstateProperty(models.Model):
5+
_name = 'estate.property'
6+
_description = 'Real Estate Property'
7+
8+
name = fields.Char(required=True)
9+
description = fields.Text()
10+
postcode = fields.Char()
11+
date_availability = fields.Date()
12+
expected_price = fields.Float(required=True)
13+
selling_price = fields.Float()
14+
bedrooms = fields.Integer()
15+
living_area = fields.Integer()
16+
facades = fields.Integer()
17+
garage = fields.Boolean()
18+
garden = fields.Boolean()
19+
garden_area = fields.Integer()
20+
garden_orientation = fields.Selection(
21+
selection=[
22+
('north', 'North'),
23+
('south', 'South'),
24+
('east', 'East'),
25+
('west', 'West'),
26+
]
27+
)
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
2+
estate.access_estate_property,access_estate_property,estate.model_estate_property,base.group_user,1,1,1,1

0 commit comments

Comments
 (0)