Skip to content

Commit fe7da46

Browse files
committed
[IMP] estate: Chapter 7 - Types, Tags and Offers
- Added property types such as House, Apartment, etc., with corresponding Menus, Actions, and Views - Added property tags such as Renovated, etc., with corresponding Menus, Actions, and Views - Added an Offers tab on properties to display all offers related to a specific property
1 parent db9ded5 commit fe7da46

12 files changed

+133
-0
lines changed

estate/__manifest__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414
"data": [
1515
"security/ir.model.access.csv",
1616
"views/estate_property_views.xml",
17+
"views/estate_property_type_views.xml",
18+
"views/estate_property_tag_views.xml",
19+
"views/estate_property_offer_views.xml",
1720
"views/estate_menus.xml",
1821
],
1922
}

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
@@ -29,3 +29,8 @@ class EstateProperty(models.Model):
2929
default="new",
3030
help="The current state of the property",
3131
)
32+
property_type_id = fields.Many2one("estate.property.type")
33+
salesperson_id = fields.Many2one("res.users", string="Salesman", default=lambda self: self.env.user)
34+
buyer_id = fields.Many2one("res.partner", copy=False)
35+
tag_ids = fields.Many2many("estate.property.tag")
36+
offer_ids = fields.One2many("estate.property.offer", "property_id")
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
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=[("accepted", "Accepted"), ("refused", "Refused")],
11+
copy=False,
12+
)
13+
partner_id = fields.Many2one("res.partner", required=True)
14+
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 = "estate.property.tag"
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 = "Estate Property Type"
7+
8+
name = fields.Char(required=True)
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_user,access_estate_property_user,model_estate_property,base.group_user,1,1,1,1
3+
access_estate_property_type_user,access_estate_property_type_user,model_estate_property_type,base.group_user,1,1,1,1
4+
access_estate_property_tag_user,access_estate_property_tag_user,model_estate_property_tag,base.group_user,1,1,1,1
5+
access_estate_property_offer_user,access_estate_property_offer_user,model_estate_property_offer,base.group_user,1,1,1,1

estate/views/estate_menus.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,9 @@
44
<menuitem id="estate_property_advertisements_menu" name="Advertisements">
55
<menuitem id="estate_property_menu_action" action="estate_property_action"/>
66
</menuitem>
7+
<menuitem id="estate_property_settings_menu" name="Settings">
8+
<menuitem id="estate_property_type_menu_action" action="estate_property_type_action"/>
9+
<menuitem id="estate_property_tag_menu_action" action="estate_property_tag_action"/>
10+
</menuitem>
711
</menuitem>
812
</odoo>
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<odoo>
3+
<record id="estate_property_offer_form" model="ir.ui.view">
4+
<field name="name">estate.property.offer.form</field>
5+
<field name="model">estate.property.offer</field>
6+
<field name="arch" type="xml">
7+
<form string="New property offer">
8+
<sheet>
9+
<field name="price"/>
10+
<field name="partner_id"/>
11+
<field name="status"/>
12+
</sheet>
13+
</form>
14+
</field>
15+
</record>
16+
17+
<record id="estate_property_offer_list" model="ir.ui.view">
18+
<field name="name">estate.property.offer.list</field>
19+
<field name="model">estate.property.offer</field>
20+
<field name="arch" type="xml">
21+
<list string="Properties">
22+
<field name="price"/>
23+
<field name="partner_id"/>
24+
<field name="status"/>
25+
</list>
26+
</field>
27+
</record>
28+
</odoo>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
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+
9+
<record id="estate_property_tag_form" model="ir.ui.view">
10+
<field name="name">estate.property.tag.form</field>
11+
<field name="model">estate.property.tag</field>
12+
<field name="arch" type="xml">
13+
<form string="New property tag">
14+
<sheet>
15+
<h1>
16+
<field name="name" placeholder="Property tag"/>
17+
</h1>
18+
</sheet>
19+
</form>
20+
</field>
21+
</record>
22+
</odoo>

0 commit comments

Comments
 (0)