Skip to content

Commit ced49e0

Browse files
committed
[IMP] real_estate: add security rules, views, and UI enhancements
Added access control rules for the real_estate module to restrict and manage user permissions. Implemented list and form views for the estate.property model, including search functionality. Customized list and form views with additional fields. These enhancements provide the necessary security and user interface elements..
1 parent 85beafe commit ced49e0

File tree

8 files changed

+146
-15
lines changed

8 files changed

+146
-15
lines changed

real_estate/__init__.py

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

real_estate/__manifest__.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,14 @@
33
'version': '1.0',
44
'depends': ['base'],
55
'author': "Megha Tulsyani",
6-
# # data files containing optionally loaded demonstration data
7-
# 'demo': [
8-
# 'demo/demo_data.xml',
9-
# ],
6+
'category': 'Ecommerce For Properties',
7+
'data' :[
8+
9+
'security/ir.model.access.csv',
10+
'views/real_estate_views.xml',
11+
'views/real_estate_menus.xml',
12+
],
13+
'license': 'LGPL-3',
1014
'installable': True,
11-
'application': True,
12-
}
15+
'application': True
16+
}

real_estate/data/real_estate.xml

Whitespace-only changes.

real_estate/models/__init__.py

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

real_estate/models/real_estate.py

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,45 @@
11
from odoo import models, fields
2+
from dateutil.relativedelta import relativedelta
23

34
class RealEstate(models.Model):
45
_name = "real.estate"
56
_description = "This is a real estate module"
6-
7-
7+
8+
89
name = fields.Char(required=True)
910
description = fields.Text()
1011
postcode = fields.Char()
11-
date_availability = fields.Date()
12+
date_availability = fields.Date(
13+
string="Availability From",
14+
default=lambda self: fields.Date.today() + relativedelta(months=3),
15+
copy=False,)
16+
1217
expected_price = fields.Float(required=True)
13-
selling_price = fields.Float()
14-
bedrooms = fields.Integer()
15-
living_area = fields.Integer()
18+
selling_price = fields.Float(readonly=True,copy=False)
19+
bedrooms = fields.Integer(default=2)
20+
living_area = fields.Integer(string="Living Area (sqm)")
1621
facades = fields.Integer()
1722
garage = fields.Boolean()
1823
garden = fields.Boolean()
1924
garden_area = fields.Integer()
25+
active = fields.Boolean(default=True)
2026
garden_orientation = fields.Selection(
2127
selection=[
2228
('north','North'),
2329
('south','South'),
2430
('east','East'),
2531
('west','West')
2632
]
27-
)
33+
)
34+
state = fields.Selection(
35+
selection=[
36+
('new','New'),
37+
('offer received','Offer Received'),
38+
('offer accepted','Offer Accepted'),
39+
('sold','Sold'),
40+
('cancelled','Cancelled'),
41+
],
42+
copy = False,
43+
required= True,
44+
default='new'
45+
)
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+
real_estate.access_real_estate,access_real_estate,real_estate.model_real_estate,base.group_user,1,1,1,1
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
3+
<odoo>
4+
<!-- Root menu -->
5+
<menuitem id="estate_menu_root" name="Real Estate" />
6+
7+
<!-- First level submenu under root -->
8+
<menuitem id="estate_menu_advertisements" name="Advertisements" parent="estate_menu_root"/>
9+
10+
<!-- Action menu under first level -->
11+
<menuitem id="estate_property_menu_action" parent="estate_menu_advertisements" action="real_estate_main_action"/>
12+
</odoo>
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
3+
<odoo>
4+
<record id="real_estate_main_action" model="ir.actions.act_window">
5+
<field name="name">Estate Property</field>
6+
<field name="res_model">real.estate</field>
7+
<field name="view_mode">list,form</field>
8+
<field name="help" type="html">
9+
<p class="o_view_nocontent_smiling_face">
10+
Define a new Property
11+
</p>
12+
<p>
13+
Create a Propety to sell/Buy.
14+
</p>
15+
</field>
16+
</record>
17+
18+
<record id="real_estate_list_view" model="ir.ui.view">
19+
<field name="name">real.estate.list</field>
20+
<field name="model">real.estate</field>
21+
<field name="arch" type="xml">
22+
<list>
23+
<field name="name" />
24+
<field name="postcode" />
25+
<field name="bedrooms" />
26+
<field name="living_area" />
27+
<field name="expected_price" />
28+
<field name="selling_price" />
29+
<field name="date_availability" />
30+
</list>
31+
</field>
32+
</record>
33+
<record id="real_estate_form_view" model="ir.ui.view">
34+
<field name="name">real.estate.form</field>
35+
<field name="model">real.estate</field>
36+
<field name="arch" type="xml">
37+
<form>
38+
<sheet>
39+
<group>
40+
<h1>
41+
<field name="name"/>
42+
</h1>
43+
</group>
44+
<separator />
45+
<group>
46+
<group col="2">
47+
<field name="postcode"/>
48+
<field name="date_availability"/>
49+
</group>
50+
<group>
51+
<field name="expected_price" />
52+
<field name="selling_price" />
53+
</group>
54+
</group>
55+
<separator />
56+
<notebook>
57+
<page string="Description">
58+
<group>
59+
<field name="description" />
60+
<field name="bedrooms" />
61+
<field name="living_area" />
62+
<field name="facades" />
63+
<field name="garage" />
64+
<field name="garden" />
65+
<field name="garden_area" />
66+
<field name="garden_orientation" />
67+
</group>
68+
</page>
69+
</notebook>
70+
</sheet>
71+
</form>
72+
</field>
73+
</record>
74+
75+
<record id="real_estate_search_view" model="ir.ui.view">
76+
<field name="name">real.estate.search</field>
77+
<field name="model">real.estate</field>
78+
<field name="arch" type="xml">
79+
<search>
80+
<field name="name" />
81+
<field name="postcode" />
82+
<field name="expected_price" />
83+
<field name="bedrooms" />
84+
<field name="living_area" />
85+
<field name="facades" />
86+
<separator />
87+
<filter string="Archived" name="inactive" domain="[('active', '=', False)]" />
88+
<filter string="Available" name="available" domain="[('state', 'in', ('new', 'offer_received'))]"></filter>
89+
<group string="Group By">
90+
<filter string="Postcode" name="postcode" context="{'group_by': 'postcode'}" />
91+
</group>
92+
</search>
93+
</field>
94+
</record>
95+
</odoo>

0 commit comments

Comments
 (0)