Skip to content

Commit 458d930

Browse files
committed
[ADD] estate: Architecture, app, models, security
Chapter 2 – Created the base structure for a new custom Odoo application. Chapter 3 – Implemented primary models with essential fields and basic logic. Chapter 4 – Added ACLs and basic security rules for controlled data access.
1 parent b68a192 commit 458d930

File tree

7 files changed

+90
-0
lines changed

7 files changed

+90
-0
lines changed

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: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
'name': "Real Estate",
3+
'version': '1.0',
4+
'depends': ['base'],
5+
'author': "Harsh Tiwari",
6+
'category': 'Category',
7+
'application': True,
8+
'description': """
9+
Description text
10+
""",
11+
'license': 'LGPL-3',
12+
'data': [
13+
'views/estate_menus.xml',
14+
'views/estate_property_views.xml',
15+
'security/ir.model.access.csv'
16+
]
17+
}

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: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
from odoo import models, fields
2+
3+
4+
class EstateProperty(models.Model):
5+
_name = "estate.property"
6+
_description = "Estate Property"
7+
8+
name = fields.Char(required=True)
9+
description = fields.Text()
10+
postcode = fields.Char()
11+
date_avaliability = 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(selection=[('north', 'North'), ('south', 'South'), ('east', 'East'), ('west', 'West')])
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,0,0,0

estate/views/estate_menus.xml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<odoo>
2+
<menuitem id="estate_menu_root"
3+
name="Estate Property"
4+
action="action_estate" />
5+
6+
<menuitem id="estate_menu_property"
7+
name="Properties"
8+
parent="estate_menu_root"
9+
action="action_estate_property" />
10+
11+
<menuitem id="property_menu"
12+
name="Configuration"
13+
parent="estate_menu_root"
14+
action="action_estate_configure" />
15+
</odoo>
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<odoo>
2+
<record id="action_estate" model="ir.actions.act_window">
3+
<field name="name">Estate Property</field>
4+
<field name="res_model">estate.property</field>
5+
<field name="view_mode">list,form</field>
6+
<field name="help" type="html">
7+
<p class="o_view_nocontent_smiling_face">
8+
Estate Property Home!
9+
</p>
10+
</field>
11+
</record>
12+
13+
<record id="action_estate_property" model="ir.actions.act_window">
14+
<field name="name">Estate Property</field>
15+
<field name="res_model">estate.property</field>
16+
<field name="view_mode">list,form</field>
17+
<field name="help" type="html">
18+
<p class="o_view_nocontent_smiling_face">
19+
Create New Property!
20+
</p>
21+
</field>
22+
</record>
23+
24+
<record id="action_estate_configure" model="ir.actions.act_window">
25+
<field name="name">Estate Property</field>
26+
<field name="res_model">estate.property</field>
27+
<field name="view_mode">list,form</field>
28+
<field name="help" type="html">
29+
<p class="o_view_nocontent_smiling_face">
30+
Empty!
31+
</p>
32+
</field>
33+
</record>
34+
</odoo>

0 commit comments

Comments
 (0)