Skip to content

Commit 409fe34

Browse files
committed
[IMP] Chapter-7-estate: Implemented Relations between modules
1 parent 9bc2427 commit 409fe34

12 files changed

+112
-3
lines changed

estate/__manifest__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
'data': [
1313
'security/ir.model.access.csv',
1414
'views/estate_property_views.xml',
15+
'views/estate_property_tag_views.xml',
16+
'views/estate_property_offer_views.xml',
17+
'views/estate_property_type_views.xml',
1518
'views/estate_menus.xml',
1619
],
1720
}

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: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,8 @@ class EstateProperty(models.Model):
3232
copy=False
3333
)
3434
active = fields.Boolean(default=True)
35+
property_type_id = fields.Many2one("estate.property.type", string="Type")
36+
buyer = fields.Many2one("res.partner", copy=False)
37+
salesperson = fields.Many2one("res.users" , string="Salesman", default=lambda self: self.env.user)
38+
tag_ids = fields.Many2many("estate.property.tag", string="Tag")
39+
offer_ids = fields.One2many('estate.property.offer', 'property_id')
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from odoo import models, fields
2+
3+
4+
class EstatePropertyOffer(models.Model):
5+
_name = "estate.property.offer"
6+
_description = "Offer to buy the property"
7+
8+
price = fields.Float()
9+
status = fields.Selection(
10+
string="Status",
11+
selection=[('accepted', 'Accepted'), ('refused', 'Refused')],
12+
copy=False,
13+
)
14+
partner_id = fields.Many2one("res.partner", required=True)
15+
property_id = fields.Many2one("estate_property", required=True)
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from odoo import models, fields
2+
3+
4+
class EstatePropertyTag(models.Model):
5+
_name = "estate.property.tag"
6+
_description = "Tag for the property"
7+
8+
name = fields.Char(required=True)
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from odoo import models, fields
2+
3+
4+
class EstatePropertyType(models.Model):
5+
_name = "estate.property.type"
6+
_description = "Defines the type of Real Estate Property"
7+
8+
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-
estate.access_estate_property,access_estate_property,estate.model_estate_property,base.group_user,1,1,1,1
2+
estate.access_estate_property,access_estate_property,estate.model_estate_property,base.group_user,1,1,1,1
3+
estate.access_estate_property_type,access_estate_property_type,estate.model_estate_property_type,base.group_user,1,1,1,1
4+
estate.access_estate_property_tag,access_estate_property_tag,estate.model_estate_property_tag,base.group_user,1,1,1,1
5+
estate.access_estate_property_offer,access_estate_property_offer,estate.model_estate_property_offer,base.group_user,1,1,1,1

estate/views/estate_menus.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
<odoo>
22
<menuitem id="estate_menu_root" name="Real Estate">
33
<menuitem id="estate_first_level_menu" name="Advertisement">
4-
<menuitem id="estate_property_model_menu_action" action="estate_property_action"/>
4+
<menuitem id="estate_property_model_menu_action" action="estate_property_action" />
5+
</menuitem>
6+
<menuitem id="estate_first_level_setting_menu" name="Settings">
7+
<menuitem id="estate_property_type_model_menu_action"
8+
action="estate_property_type_action" />
9+
<menuitem id="estate_property_tag_model_menu_action"
10+
action="estate_property_tag_action" />
511
</menuitem>
612
</menuitem>
713
</odoo>
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<odoo>
2+
<record id="estate_property_offer_list_view" model="ir.ui.view">
3+
<field name="name">estate_property_offer_form</field>
4+
<field name="model">estate.property.offer</field>
5+
<field name="arch" type="xml">
6+
<list string="Offers">
7+
<field name="price" />
8+
<field name="partner_id" string="Partner" />
9+
<field name="status" />
10+
</list>
11+
</field>
12+
</record>
13+
14+
<record id="estate_property_offer_form_view" model="ir.ui.view">
15+
<field name="name">Property Offer List</field>
16+
<field name="model">estate.property.offer</field>
17+
<field name="arch" type="xml">
18+
<form string="Offer">
19+
<sheet>
20+
<group>
21+
<field name="price" />
22+
<field name="partner_id" string="Partener" />
23+
<field name="status" />
24+
</group>
25+
</sheet>
26+
</form>
27+
</field>
28+
</record>
29+
</odoo>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
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+
</odoo>

0 commit comments

Comments
 (0)