Skip to content

Commit 80c5943

Browse files
committed
[ADD] estate: Complete chapter 7 (Relations between models)
1 parent 8f0b4ab commit 80c5943

12 files changed

Lines changed: 107 additions & 8 deletions

estate/__manifest__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
'data': [
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
'application': True,

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
('sold', 'Sold'),
3333
('cancelled', 'Cancelled')
3434
], string="State", copy=False, default='new')
35+
property_type_id = fields.Many2one('estate.property.type', string="Property Type", ondelete="cascade")
36+
sales_person_id = fields.Many2one('res.users', string='Salesman', ondelete='cascade')
37+
buyer_id = fields.Many2one('res.partner', string='Buyer', ondelete='cascade')
38+
property_tag_ids = fields.Many2many('estate.property.tag')
39+
offer_ids = fields.One2many('estate.property.offer', 'property_id', string="Offers")
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
from odoo import fields, models
2+
3+
4+
class EstatePropertyOffer(models.Model):
5+
_name = "estate.property.offer"
6+
_description = "Real Estate Offer"
7+
8+
price = fields.Float(string='Price')
9+
status = fields.Selection([
10+
('accepted', 'Accepted'),
11+
('refused', 'Refused')
12+
], string='Status', copy=False)
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 fields, models
2+
3+
4+
class EstatePropertyTag(models.Model):
5+
_name = 'estate.property.tag'
6+
_description = 'Real Estate Tag'
7+
8+
name = fields.Char(string='Tag', 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 = "Estate property type"
7+
8+
name = fields.Char(string="Type", 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,access_estate_property,model_estate_property,base.group_user,1,1,1,1
3+
access_estate_property_type,access_estate_property_type,model_estate_property_type,base.group_user,1,1,1,1
4+
access_estate_property_tag,access_estate_property_tag,model_estate_property_tag,base.group_user,1,1,1,1
5+
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: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,9 @@
44
<menuitem id="estate_property_menu_advertisment" name="Advertisments">
55
<menuitem id="estate_property_menu_action" action="estate_property_action" name="Properties"/>
66
</menuitem>
7+
<menuitem id="estate_property_type_menu" name="Settings">
8+
<menuitem id="estate_property_type_menu_action" action="estate_property_type_action" name="Property Types"/>
9+
<menuitem id="estate_property_tag_menu_action" action="estate_property_tag_action" name="Property Tags"/>
10+
</menuitem>
711
</menuitem>
812
</odoo>
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?xml version="1.0"?>
2+
<odoo>
3+
<record id="estate_property_offer_form_view" 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>
8+
<field name='price'/>
9+
<field name='partner_id'/>
10+
<field name='status'/>
11+
</form>
12+
</field>
13+
</record>
14+
15+
<record id="estate_property_offer_list_view" model="ir.ui.view">
16+
<field name="name">estate.property.offer.list</field>
17+
<field name="model">estate.property.offer</field>
18+
<field name="arch" type="xml">
19+
<list string="Offers">
20+
<field name='price'/>
21+
<field name='partner_id'/>
22+
<field name='status'/>
23+
</list>
24+
</field>
25+
</record>
26+
</odoo>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0"?>
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)