Skip to content

Commit 3cc107f

Browse files
committed
[IMP] estate: add property type,tag, offers, buyer and salesperson
Add new menu item property type and tags Add buyer and salesperson fields Add offer section
1 parent 21cd935 commit 3cc107f

12 files changed

+208
-41
lines changed

estate/__init__.py

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

estate/__manifest__.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
{
2-
'name':'Estate',
2+
'name': 'Estate',
33
'depends': ['base'],
44
'license': 'AGPL-3',
5-
'data':[
5+
'data': [
66
'security/ir.model.access.csv',
77
'views/estate_property_views.xml',
8-
'views/estate_menus.xml'
8+
'views/estate_menus.xml',
9+
'views/estate_property_type_views.xml',
10+
'views/estate_property_tag_views.xml'
911
]
1012
}

estate/models/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
11
from . import estate_property
2+
from . import estate_property_type
3+
from . import estate_property_tag
4+
from . import estate_property_offer

estate/models/estate_property.py

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44

55
class EstateProperty(models.Model):
6-
_name = 'estate_property'
6+
_name = 'estate.property'
77
_description = "Real Estate Property"
88

99
name = fields.Char(required=True)
@@ -18,22 +18,26 @@ class EstateProperty(models.Model):
1818
garage = fields.Boolean()
1919
garden = fields.Boolean()
2020
garden_area = fields.Integer(string="Garden Area (sqm)")
21-
garden_orientation=fields.Selection(
22-
string='Garden Orientation',
21+
garden_orientation = fields.Selection(
22+
string="Garden Orientation",
2323
selection=[('north', 'North'),
2424
('south', 'South'),
25-
('east','East'),
26-
('west','West')
25+
('east', 'East'),
26+
('west', 'West')
2727
]
2828
)
29-
active=fields.Boolean(default=False)
30-
state=fields.Selection(
29+
active = fields.Boolean(default=False)
30+
state = fields.Selection(
3131
selection=[
32-
('new','New'),
33-
('offer_received','Offer Received'),
34-
('offer_accepted','Offer Accepted'),
35-
('sold','Sold'),
36-
('cancelled','Cancelled')
32+
('new', 'New'),
33+
('offer_received', 'Offer Received'),
34+
('offer_accepted', 'Offer Accepted'),
35+
('sold', 'Sold'),
36+
('cancelled', 'Cancelled')
3737
]
3838
)
39-
39+
property_type_id = fields.Many2one("estate.property.type")
40+
buyer = fields.Many2one("res.partner", copy=False)
41+
salesperson = fields.Many2one("res.users")
42+
tag_ids = fields.Many2many("estate.property.tag")
43+
offer_ids = fields.One2many("estate.property.offer", "property_id", string="Offers")
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
from odoo import models,fields
2+
3+
4+
class EstatePropertyOffer(models.Model):
5+
_name='estate.property.offer'
6+
_description="Estate Property Offer"
7+
8+
price=fields.Float()
9+
status=fields.Selection(
10+
selection=[
11+
('accepted', 'Accepted'),
12+
('refused', 'Refused')
13+
]
14+
)
15+
partner_id = fields.Many2one("res.partner", required=True)
16+
property_id = fields.Many2one("estate.property", required=True)
17+
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from odoo import models,fields
2+
3+
4+
class EstatePropertyTag(models.Model):
5+
_name='estate.property.tag'
6+
_description="Estate Property Tag"
7+
8+
name=fields.Char()
9+
property_ids = fields.Many2many('estate.property')
10+
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
from odoo import models, fields
2+
3+
4+
class EstatePropertyType(models.Model):
5+
_name = 'estate.property.type'
6+
_description = "Real Estate Property Type"
7+
8+
name = fields.Char(required=True)
9+
property_ids = fields.One2many('estate.property','property_type_id')
Lines changed: 3 additions & 0 deletions
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"
22
"access_estate_property","access.estate.property","model_estate_property","base.group_user",1,1,1,1
3+
"access_estate_property_type","access.estate.property.type","model_estate_property_type","base.group_user",1,1,1,1
4+
"access_estate_property_tag","access.estate.property.tag","model_estate_property_tag","base.group_user",1,1,1,1
5+
"access_estate_property_offer","access.estate.property.offer","model_estate_property_offer","base.group_user",1,1,1,1

estate/views/estate_menus.xml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
<?xml version="1.0"?>
22
<odoo>
33
<menuitem id="real_estate_menu" name="Real Estate">
4-
<menuitem id="advertisements_menu" name="Advertisements" sequence="1">
5-
<menuitem id="properties_menu_action" action="estate_property_action"/>
6-
</menuitem>
4+
</menuitem>
5+
6+
<menuitem id="advertisements_menu" name="Advertisements" parent="real_estate_menu" sequence="1">
7+
<menuitem id="properties_menu_action1" action="estate_property_action"/>
8+
</menuitem>
9+
10+
<menuitem id="setting_menu" name="Setting" parent="real_estate_menu" sequence="2">
11+
<menuitem id="properties_menu_action2" action="estate_property_type_action"/>
12+
<menuitem id="properties_menu_action3" action="estate_property_tag_action"/>
713
</menuitem>
814
</odoo>
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<?xml version="1.0"?>
2+
<odoo>
3+
<record id="estate_property_type_search" model="ir.ui.view">
4+
<field name="model">estate.property.tag</field>
5+
<field name="arch" type="xml">
6+
<search string="Search Properties">
7+
<field name="name"/>
8+
</search>
9+
</field>
10+
</record>
11+
12+
<record id="estate_property_type_list" model="ir.ui.view">
13+
<field name="model">estate.property.tag</field>
14+
<field name="arch" type="xml">
15+
<list string="List">
16+
<field name="name"/>
17+
</list>
18+
</field>
19+
</record>
20+
21+
<record id="estate_property_type_form" model="ir.ui.view">
22+
<field name="model">estate.property.tag</field>
23+
<field name="arch" type="xml">
24+
<form string="form1">
25+
<sheet>
26+
<group>
27+
<group>
28+
<field name="name"/>
29+
</group>
30+
</group>
31+
<notebook>
32+
</notebook>
33+
</sheet>
34+
</form>
35+
</field>
36+
</record>
37+
38+
<record id="estate_property_tag_action" model="ir.actions.act_window">
39+
<field name="name">Property tag</field>
40+
<field name="res_model">estate.property.tag</field>
41+
<field name="view_mode">list,form</field>
42+
<field name="context">{"search_default_available":1}</field>
43+
</record>
44+
</odoo>

0 commit comments

Comments
 (0)