Skip to content

Commit a2ae3a1

Browse files
committed
[IMP] estate: Add relations between real estate property models
Chapter 7 This adds tags to properties, lists offers made (whether refued or accepted) along with the salesperson and buyer in "Other info" tab
1 parent 43dc52a commit a2ae3a1

12 files changed

+104
-10
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
"data/ir.model.access.csv",
1414
"views/estate_property_views.xml",
15+
"views/estate_property_type.xml",
16+
"views/estate_property_tag.xml",
17+
"views/estate_property_offer.xml",
1518
"views/estate_menus.xml",
1619
],
1720
}

estate/data/ir.model.access.csv

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
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/models/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
from . import estate_property
1+
from . import (estate_property, estate_property_offer, estate_property_tag,
2+
estate_property_type)

estate/models/estate_property.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66

77
class EstateProperty(models.Model):
8-
_name = "estate_property"
8+
_name = "estate.property"
99
_description = "Estate Property data model"
1010

1111
name = fields.Char(required=True)
@@ -45,3 +45,10 @@ class EstateProperty(models.Model):
4545
default="new",
4646
help="State of the proprty listing lifecycle",
4747
)
48+
property_type_id = fields.Many2one("estate.property.type", string="Property Type")
49+
buyer_id = fields.Many2one("res.partner", string="Buyer")
50+
salesperson_id = fields.Many2one(
51+
"res.users", string="Salesman", default=lambda self: self.env.user
52+
)
53+
tag_ids = fields.Many2many("estate.property.tag", string="Property Tags")
54+
offer_ids = fields.One2many("estate.property.offer", "property_id")
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
from odoo import fields, models
2+
3+
4+
class EstatePropertyOffer(models.Model):
5+
_name = "estate.property.offer"
6+
_description = "Real estate property offer"
7+
8+
price = fields.Float()
9+
status = fields.Selection(
10+
[("accepted", "Accepted"), ("refused", "Refused")], copy=False
11+
)
12+
partner_id = fields.Many2one("res.partner", required=True, string="Sales")
13+
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 fields, models
2+
3+
4+
class EstatePropertyTag(models.Model):
5+
_name = "estate.property.tag"
6+
_description = "Real estate property tags"
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 fields, models
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)

estate/views/estate_menus.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
<?xml version="1.0"?>
22
<odoo>
33
<menuitem id="estate_property_menu_root" name="Real Estate">
4-
<menuitem id="estate_property_first_level_menu" name="First Level">
4+
<menuitem id="estate_property_first_level_menu" name="Advertisements">
55
<menuitem id="estate_property_model_menu_action" action="estate_property_action" />
66
</menuitem>
7+
<menuitem id="estate_property_settings_menu" name="Settings">
8+
<menuitem id="estate_property_type_model_menu_action" action="estate_property_type_action"
9+
name="Property Types" />
10+
<menuitem id="estate_property_tag_model_menu_action" action="estate_property_tag_action"
11+
name="Property Tags" />
12+
</menuitem>
713
</menuitem>
814
</odoo>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<odoo>
3+
<record id="estate_property_offer_view_list" model="ir.ui.view">
4+
<field name="name">estate.property.offer.list</field>
5+
<field name="model">estate.property.offer</field>
6+
<field name="arch" type="xml">
7+
<list string="Properties">
8+
<field name="price" string="Price" />
9+
<field name="partner_id" string="Partner" />
10+
<field name="status" />
11+
</list>
12+
</field>
13+
</record>
14+
15+
</odoo>
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+
<record id="estate_property_tag_action" model="ir.actions.act_window">
4+
<field name="name">Property Tags</field>
5+
<field name="res_model">estate.property.tag</field>
6+
<field name="view_mode">list,form</field>
7+
</record>
8+
</odoo>

0 commit comments

Comments
 (0)