Skip to content

Commit 935fa59

Browse files
committed
[IMP] estate: adding relations between models
new models: estate_property_offer, estate_property_tag estate_property: adding new fields (type, salesperson, buyer, tags, offers) estate_property_view: adding offers to form view, tags to both list and form views estate_property_offer_view: adding list and form views menu: settings menu for types and tags
1 parent 036cef9 commit 935fa59

12 files changed

+108
-1
lines changed

estate/__manifest__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
"security/security.xml",
1111
"security/ir.model.access.csv",
1212
"views/estate_property_views.xml",
13+
"views/estate_property_type_views.xml",
14+
"views/estate_property_tag_views.xml",
15+
"views/estate_property_offer_views.xml",
1316
"views/estate_menus.xml",
1417
],
1518
"assets": {},

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: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,10 @@ class EstateProperty(models.Model):
4242
required=True,
4343
copy=False,
4444
)
45+
type_id = fields.Many2one("estate_property_type", string="Property Type")
46+
salesperson_id = fields.Many2one(
47+
"res.users", string="Salesperson", default=lambda self: self.env.user
48+
)
49+
buyer_id = fields.Many2one("res.partner", string="Buyer", copy=False)
50+
tag_ids = fields.Many2many("estate_property_tag")
51+
offer_ids = fields.One2many("estate_property_offer", "property_id", string="Offers")
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from odoo import fields, models
2+
3+
4+
class EstatePropertyOffer(models.Model):
5+
_name = "estate_property_offer"
6+
_description = "Estate Property Offer"
7+
price = fields.Float()
8+
status = fields.Selection(
9+
[("accepted", "Accepted"), ("refused", "Refused")], copy=False
10+
)
11+
partner_id = fields.Many2one("res.partner", required=True)
12+
property_id = fields.Many2one("estate_property", required=True)
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+
4+
class EstatePropertyTag(models.Model):
5+
_name = "estate_property_tag"
6+
_description = "Estate Property Tag"
7+
name = fields.Char("Name", required=True)
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+
4+
class EstatePropertyType(models.Model):
5+
_name = "estate_property_type"
6+
_description = "Estate Property Type"
7+
name = fields.Char(required=True)
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
22
access_estate_property,access_estate_property,model_estate_property,base.group_user,1,1,1,1
3-
access_estate_property_readonly,access_estate_property_readonly,model_estate_property,group_readonly_user,1,0,0,0
3+
access_estate_property_readonly,access_estate_property_readonly,model_estate_property,group_readonly_user,1,0,0,0
4+
access_estate_property_type,access_estate_property_type,model_estate_property_type,base.group_user,1,1,1,1
5+
access_estate_property_tag,access_estate_property_tag,model_estate_property_tag,base.group_user,1,1,1,1
6+
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: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,10 @@
44
<menuitem id="estate_first_level_menu" name="Advertisements">
55
<menuitem id="estate_second_level_menu" action="estate_property_action" />
66
</menuitem>
7+
<menuitem id="estate_settings_menu" name="Settings">
8+
<menuitem id="estate_property_type_menu" action="estate_property_type_action" />
9+
<menuitem id="estate_property_tag_menu" action="estate_property_tag_action" />
10+
11+
</menuitem>
712
</menuitem>
813
</odoo>
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<odoo>
2+
<record id="estate_property_offer_view_list" 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+
<record id="estate_property_offer_view_form" model="ir.ui.view">
14+
<field name="name">estate_property_offer.form</field>
15+
<field name="model">estate_property_offer</field>
16+
<field name="arch" type="xml">
17+
<form>
18+
<sheet>
19+
<group>
20+
<group>
21+
<field name="price" />
22+
<field name="partner_id" />
23+
<field name="status" />
24+
</group>
25+
</group>
26+
</sheet>
27+
</form>
28+
</field>
29+
</record>
30+
</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)