Skip to content

Commit ed301d8

Browse files
committed
[IMP] estate: added property type,tags,buyer,salesperson & offers in Real Estate
Added Property Type and Tag models, buyer and salesperson fields, and the Property Offer model in the Real Estate module.
1 parent 1fd1c06 commit ed301d8

12 files changed

+158
-20
lines changed

estate/__manifest__.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@
44
'data': [
55
'security/ir.model.access.csv',
66
'views/estate_property_views.xml',
7-
'views/estate_menus.xml'
8-
]
7+
'views/estate_menus.xml',
8+
'views/estate_property_type_views.xml',
9+
'views/estate_property_tag_views.xml',
10+
'views/estate_property_offer_views.xml'
11+
],
12+
'application': True,
13+
'installable':True
914
}
15+

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
@@ -2,22 +2,22 @@
22
from dateutil.relativedelta import relativedelta
33

44

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

99
name = fields.Char(required=True)
10-
description = fields.Text("Description")
11-
postcode = fields.Char("Postcode")
12-
date_availability = fields.Date("Availability Date", default=fields.Date.today()+relativedelta(months=3))
10+
description = fields.Text()
11+
postcode = fields.Char()
12+
date_availability = fields.Date("Availability Date", default=fields.Date.today() + relativedelta(months=3))
1313
expected_price = fields.Float("Expected Price", required=True)
1414
selling_price = fields.Float("Selling Price", readonly=True)
15-
bedrooms = fields.Integer("Bedrooms", default=2)
16-
living_area = fields.Integer("Living Area (sqm)")
17-
facades = fields.Integer("Facades")
18-
garage = fields.Boolean("Garage")
19-
garden = fields.Boolean("Garden")
20-
garden_area = fields.Integer("Garden Area (sqm)")
15+
bedrooms = fields.Integer(default=2)
16+
living_area = fields.Integer("Living Area(sqm)")
17+
facades = fields.Integer()
18+
garage = fields.Boolean()
19+
garden = fields.Boolean()
20+
garden_area = fields.Integer("Garden Area(sqm)")
2121
garden_orientation = fields.Selection(
2222
selection=[
2323
("north", "North"),
@@ -40,6 +40,10 @@ class estateproperty(models.Model):
4040
copy=False,
4141
default="new",
4242
)
43-
active = fields.Boolean(string="Active", default=True)
44-
45-
43+
active = fields.Boolean(default=True)
44+
property_type_id = fields.Many2one("estate.property.type", string="Property Type")
45+
buyer_id = fields.Many2one("res.partner", string="Buyer", copy=False)
46+
salesperson_id = fields.Many2one(
47+
"res.users", string="Salesperson")
48+
tag_ids = fields.Many2many("estate.property.tag", string="Tags")
49+
offer_ids = fields.One2many("estate.property.offer", "property_id", string="Offers")
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
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")],
11+
copy=False,
12+
)
13+
partner_id = fields.Many2one("res.partner", string="Partner", required=True)
14+
property_id = fields.Many2one("estate.property", string="Property", required=True)
15+
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 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 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)
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+
access_estate_property_tag,estate.property.tag.access,model_estate_property_tag,base.group_user,1,1,1,1
5+
access_estate_property_offer,estate.property.offer.access,model_estate_property_offer,base.group_user,1,1,1,1

estate/views/estate_menus.xml

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,26 @@
11
<odoo>
2-
<menuitem id="test_menu_root" name="real_estate">
3-
<menuitem id="menu_estate_advertisements" name="Advertisements">
4-
<menuitem id="menu_estate_property_action" action="action_estate_property" />
5-
</menuitem>
6-
</menuitem>
2+
<menuitem id="estate_menu_root" name="Real Estate" />
3+
4+
<menuitem id="menu_estate_advertisements"
5+
name="Advertisements"
6+
parent="estate_menu_root" />
7+
8+
<menuitem id="menu_estate_property_action"
9+
name="Properties"
10+
parent="menu_estate_advertisements"
11+
action="action_estate_property" />
12+
13+
<menuitem id="menu_estate_settings"
14+
name="Settings"
15+
parent="estate_menu_root" />
16+
17+
<menuitem id="menu_estate_property_type_action_settings"
18+
name="Property Types"
19+
parent="menu_estate_settings"
20+
action="estate_property_type_action" />
21+
22+
<menuitem id="menu_estate_property_tag_action_settings"
23+
name="Property Tags"
24+
parent="menu_estate_settings"
25+
action="action_estate_property_tag" />
726
</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_tree_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+
14+
<record id="estate_property_offer_form_view" model="ir.ui.view">
15+
<field name="name">estate.property.offer.form</field>
16+
<field name="model">estate.property.offer</field>
17+
<field name="arch" type="xml">
18+
<form>
19+
<sheet>
20+
<group>
21+
<field name="price"/>
22+
<field name="partner_id"/>
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="action_estate_property_tag" 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)