Skip to content

Commit b378de7

Browse files
committed
[ADD] estate: define property model, security, actions, and menu
1 parent fbf9ee9 commit b378de7

File tree

8 files changed

+95
-0
lines changed

8 files changed

+95
-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: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
'name': 'Real Estate',
3+
'category': 'Real Estate/Brokerage',
4+
'application': True,
5+
'installable': True,
6+
'depends': ['base'],
7+
'data': [
8+
'security/estate_security.xml',
9+
'security/ir.model.access.csv',
10+
'views/estate_property_views.xml',
11+
'views/estate_menus.xml',
12+
],
13+
'license': 'LGPL-3',
14+
}

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: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
from odoo import fields, models
2+
from datetime import timedelta
3+
4+
5+
class EstateProperty(models.Model):
6+
_name = "estate.property"
7+
_description = "Estate Property"
8+
9+
def _default_availability_date(self):
10+
today_str = fields.Date.context_today(self)
11+
today_date = fields.Date.to_date(today_str)
12+
future_date = today_date + timedelta(days=30)
13+
return future_date.strftime('%Y-%m-%d')
14+
15+
name = fields.Char(required=True)
16+
description = fields.Text()
17+
postcode = fields.Char()
18+
date_availaility = fields.Date(copy=False,default=_default_availability_date)
19+
expected_price = fields.Float(required=True)
20+
selling_price = fields.Float(readonly = True,copy=False)
21+
bedrooms = fields.Integer(default=2)
22+
living_area = fields.Integer()
23+
facades = fields.Integer()
24+
garage = fields.Boolean()
25+
garden = fields.Boolean()
26+
garden_area = fields.Integer()
27+
garden_orientation = fields.Selection(
28+
string = 'Type',
29+
selection=[('North','north'),('South','south'),('East','east'),('West','west')],
30+
help="Type is used to know the direction of the Garden ")
31+
active = fields.Boolean(default = True)
32+
state = fields.Selection([ ('new', 'New'),
33+
('offer_received', 'Offer Received'),
34+
('offer_accepted', 'Offer Accepted'),
35+
('sold', 'Sold'),
36+
('cancelled', 'Cancelled'),],required=True, copy=False, default='new')
37+
38+
39+
40+
41+

estate/security/estate_security.xml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<odoo>
3+
<record id="estate_group_user" model="res.groups">
4+
<field name="name">Agent</field>
5+
<field name="category_id" ref="base.module_category_real_estate_brokerage" />
6+
<field name="implied_ids" eval="[(4, ref('base.group_user'))]" />
7+
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
8+
</record>
9+
10+
<record id="estate_group_manager" model="res.groups">
11+
<field name="name">Manager</field>
12+
<field name="category_id" ref="base.module_category_real_estate_brokerage" />
13+
<field name="implied_ids" eval="[(4, ref('estate_group_user'))]" />
14+
<field name="comment">The user will be able to approve document created by employees.</field>
15+
</record>
16+
17+
</odoo>

estate/security/ir.model.access.csv

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
2+
access_estate_property_user,estate.property user,model_estate_property,estate.estate_group_user,1,1,1,1
3+
access_estate_property_admin,estate.property admin,model_estate_property,estate.estate_group_manager,1,1,1,1

estate/views/estate_menus.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<odoo>
3+
<menuitem id="estate_menu_root" name="Real Estate">
4+
<menuitem id="estate_first_level_menu" name="Settings">
5+
<menuitem id="estate_property_menu_action" action="estate_property_action"/>
6+
</menuitem>
7+
</menuitem>
8+
</odoo>
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<odoo>
3+
<record id="estate_property_action" model="ir.actions.act_window">
4+
<field name="name">Properties</field>
5+
<field name="res_model">estate.property</field>
6+
<field name="view_mode">list,form</field>
7+
</record>
8+
9+
10+
</odoo>

0 commit comments

Comments
 (0)