Skip to content

Commit 863af41

Browse files
committed
[IMP] Estate: Completed Chapter-7
Added Many2one fields for property type, buyer and salesman to main model. Added Many2many tag_ids field and created estate.property.tag model. Added One2many offer_ids field and created estate.property.offer model. Added corresponding menus,actions,views and access rights for all new models.
1 parent ae34671 commit 863af41

12 files changed

+240
-64
lines changed

estate/__manifest__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
'security/ir.model.access.csv',
88
'views/estate_property_views.xml',
99
'views/estate_menus.xml',
10+
'views/estate_property_type_views.xml',
11+
'views/estate_property_tag_views.xml',
12+
'views/estate_property_offer_views.xml',
1013
],
1114
'installable': True,
1215
'application': True,

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: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33

44
class EstateProperty(models.Model):
5-
_name = "estate.property"
5+
_name = 'estate.property'
66
_description = "Real Estate Property"
77

88
name = fields.Char(required=True)
@@ -36,3 +36,27 @@ class EstateProperty(models.Model):
3636
copy=False,
3737
default='new',
3838
)
39+
property_type_id = fields.Many2one(
40+
"estate.property.type",
41+
string="Property Type"
42+
)
43+
44+
buyer_id = fields.Many2one(
45+
"res.partner",
46+
string="Buyer",
47+
copy=False
48+
)
49+
salesman_id = fields.Many2one(
50+
"res.users",
51+
string="Salesman",
52+
default=lambda self: self.env.user
53+
)
54+
tag_ids = fields.Many2many(
55+
"estate.property.tag",
56+
string="Tags"
57+
)
58+
offer_ids = fields.One2many(
59+
"estate.property.offer",
60+
"property_id",
61+
string="Offers"
62+
)
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
from odoo import fields, models
2+
3+
class EstatePropertyOffer(models.Model):
4+
_name = "estate.property.offer"
5+
_description = "Real Estate Property Offer"
6+
7+
price = fields.Float()
8+
status = fields.Selection(
9+
selection=[
10+
('accepted', 'Accepted'),
11+
('refused', 'Refused'),
12+
],
13+
copy=False
14+
)
15+
partner_id = fields.Many2one(
16+
"res.partner",
17+
string="Buyer",
18+
required=True
19+
)
20+
property_id = fields.Many2one(
21+
"estate.property",
22+
string="Property",
23+
required=True
24+
)
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from odoo import fields, models
2+
3+
class EstatePropertyTag(models.Model):
4+
_name = "estate.property.tag"
5+
_description = "Real Estate Property Tag"
6+
7+
name = fields.Char(required=True)
8+
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from odoo import fields, models
2+
3+
class EstatePropertyType(models.Model):
4+
_name = "estate.property.type"
5+
_description = "Real Estate Property Type"
6+
7+
name = fields.Char(required=True)
Lines changed: 4 additions & 1 deletion
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
2-
access_estate_property,access_estate_property,model_estate_property,base.group_user,1,1,1,1
2+
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: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,17 @@
11
<odoo>
22
<menuitem id="estate_menu_root" name="Real Estate"/>
3-
<menuitem id="estate_first_level_menu" name="Advertisements" parent="estate_menu_root"/>
4-
<menuitem id="estate_property_menu_action"
5-
action="estate_property_action"
3+
<menuitem id="estate_first_level_menu" name="Advertisements"
4+
parent="estate_menu_root"/>
5+
6+
<menuitem id="estate_property_menu_action" action="estate_property_action"
67
parent="estate_first_level_menu"/>
8+
9+
<menuitem id="estate_menu_settings" name="Settings"
10+
parent="estate_menu_root"/>
11+
12+
<menuitem id="estate_property_type_menu" action="estate_property_type_action"
13+
parent="estate_menu_settings"/>
14+
15+
<menuitem id="estate_property_tag_menu" action="estate_property_tag_action"
16+
parent="estate_menu_settings"/>
717
</odoo>
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<odoo>
2+
<record id="estate_property_offer_list_view" model="ir.ui.view">
3+
<field name="name">estate.property.offer.list</field>
4+
<field name="model">estate.property.offer</field>
5+
<field name="arch" type="xml">
6+
<list>
7+
<field name="price"/>
8+
<field name="partner_id"/>
9+
<field name="status"/>
10+
</list>
11+
</field>
12+
</record>
13+
</odoo>
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<odoo>
2+
<record id="estate_property_tag_action" model="ir.actions.act_window">
3+
<field name="name">Property Tags</field>
4+
<field name="res_model">estate.property.tag</field>
5+
<field name="view_mode">list,form</field>
6+
</record>
7+
8+
<record id="estate_property_tag_list_view" model="ir.ui.view">
9+
<field name="name">estate.property.tag.list</field>
10+
<field name="model">estate.property.tag</field>
11+
<field name="arch" type="xml">
12+
<list>
13+
<field name="name"/>
14+
</list>
15+
</field>
16+
</record>
17+
18+
<record id="estate_property_tag_form_view" model="ir.ui.view">
19+
<field name="name">estate.property.tag.form</field>
20+
<field name="model">estate.property.tag</field>
21+
<field name="arch" type="xml">
22+
<form>
23+
<sheet>
24+
<div class="oe_title">
25+
<h1>
26+
<field name="name"/>
27+
</h1>
28+
</div>
29+
</sheet>
30+
</form>
31+
</field>
32+
</record>
33+
</odoo>

0 commit comments

Comments
 (0)