Skip to content

Commit 91b868c

Browse files
author
Martin Doyen
committed
[IMP] estate: chapter 7
1 parent da027fd commit 91b868c

12 files changed

+165
-4
lines changed

estate/__manifest__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
'security/ir.model.access.csv',
77
'views/estate_property_views.xml',
88
'views/estate_menus.xml',
9+
'views/estate_property_type_views.xml',
10+
'views/estate_property_tag_views.xml',
11+
'views/estate_property_offer_views.xml',
912
],
1013
'application': True,
1114
'license': 'LGPL-3',

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 Property(models.Model):
2929
required=True,
3030
copy=False,
3131
)
32+
property_type_id = fields.Many2one('estate.property.type', string="Property Type")
33+
user_id = fields.Many2one('res.users', string="Salesman", default=lambda self: self.env.user)
34+
partner_id = fields.Many2one('res.partner', string="Buyer", copy=False)
35+
property_tag_ids = fields.Many2many('estate.property.tag')
36+
property_offer_ids = fields.One2many('estate.property.offer', 'property_id')
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 PropertyOffer(models.Model):
5+
_name = 'estate.property.offer'
6+
_description = 'An offer made for the property'
7+
8+
price = fields.Float("Price")
9+
status = fields.Selection(
10+
string="Status",
11+
selection=[('accepted', "Accepted"), ('refused', "Refused")],
12+
copy=False,
13+
)
14+
partner_id = fields.Many2one('res.partner', required=True)
15+
property_id = fields.Many2one('estate.property', required=True)

estate/models/estate_property_tag.py

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 PropertyTag(models.Model):
5+
_name = 'estate.property.tag'
6+
_description = 'Tag of properties'
7+
8+
name = fields.Char("Name", required=True)

estate/models/estate_property_type.py

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 PropertyType(models.Model):
5+
_name = 'estate.property.type'
6+
_description = 'Type of property'
7+
8+
name = fields.Char("Name", required=True)

estate/security/ir.model.access.csv

Lines changed: 4 additions & 1 deletion
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
2-
access_estate_property,access.estate.property,model_estate_property,base.group_user,1,1,1,1
2+
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: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
<?xml version="1.0"?>
22
<odoo>
33
<menuitem id="estate_menu_root" name="Estate">
4-
<menuitem id="estate_first_level_menu" name="Advertisements">
4+
<menuitem id="estate_first_level_menu_advertisements" name="Advertisements" sequence="1">
55
<menuitem id="estate_property_menu_action" action="estate_property_action"/>
66
</menuitem>
7+
<menuitem id="estate_first_level_menu_settings" name="Settings" sequence="2">
8+
<menuitem id="estate_property_type_menu_action" action="estate_property_type_action" sequence="1"/>
9+
<menuitem id="estate_property_tag_menu_action" action="estate_property_tag_action" sequence="2"/>
10+
</menuitem>
711
</menuitem>
8-
</odoo>
12+
</odoo>
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?xml version="1.0"?>
2+
<odoo>
3+
<record id="estate_property_offer_view_tree" 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="Property Offer List">
8+
<field name="price"/>
9+
<field name="partner_id"/>
10+
<field name="status"/>
11+
</list>
12+
</field>
13+
</record>
14+
15+
<record id="estate_property_tag_view_form" model="ir.ui.view">
16+
<field name="name">estate.property.offer.form</field>
17+
<field name="model">estate.property.offer</field>
18+
<field name="arch" type="xml">
19+
<form>
20+
<sheet>
21+
<group string="Property Offer Form">
22+
<field name="price"/>
23+
<field name="partner_id"/>
24+
<field name="status"/>
25+
</group>
26+
</sheet>
27+
</form>
28+
</field>
29+
</record>
30+
</odoo>
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?xml version="1.0"?>
2+
<odoo>
3+
<record id="estate_property_tag_view_tree" model="ir.ui.view">
4+
<field name="name">estate.property.tag.list</field>
5+
<field name="model">estate.property.tag</field>
6+
<field name="arch" type="xml">
7+
<list string="Property Tag">
8+
<field name="name"/>
9+
</list>
10+
</field>
11+
</record>
12+
13+
<record id="estate_property_tag_view_form" model="ir.ui.view">
14+
<field name="name">estate.property.tag.form</field>
15+
<field name="model">estate.property.tag</field>
16+
<field name="arch" type="xml">
17+
<form string="Property Tag">
18+
<sheet>
19+
<group>
20+
<h1>
21+
<field name="name"/>
22+
</h1>
23+
</group>
24+
</sheet>
25+
</form>
26+
</field>
27+
</record>
28+
29+
<record id="estate_property_tag_action" model="ir.actions.act_window">
30+
<field name="name">Property Tags</field>
31+
<field name="res_model">estate.property.tag</field>
32+
<field name="view_mode">list,form</field>
33+
</record>
34+
</odoo>
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?xml version="1.0"?>
2+
<odoo>
3+
<record id="estate_property_type_view_tree" model="ir.ui.view">
4+
<field name="name">estate.property.type.list</field>
5+
<field name="model">estate.property.type</field>
6+
<field name="arch" type="xml">
7+
<list string="Property Type">
8+
<field name="name"/>
9+
</list>
10+
</field>
11+
</record>
12+
13+
<record id="estate_property_type_view_form" model="ir.ui.view">
14+
<field name="name">estate.property.type.form</field>
15+
<field name="model">estate.property.type</field>
16+
<field name="arch" type="xml">
17+
<form string="Property Type">
18+
<sheet>
19+
<group>
20+
<h1>
21+
<field name="name"/>
22+
</h1>
23+
</group>
24+
</sheet>
25+
</form>
26+
</field>
27+
</record>
28+
29+
<record id="estate_property_type_action" model="ir.actions.act_window">
30+
<field name="name">Property Types</field>
31+
<field name="res_model">estate.property.type</field>
32+
<field name="view_mode">list,form</field>
33+
</record>
34+
</odoo>

estate/views/estate_property_views.xml

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,12 @@
4343
<h1>
4444
<field name="name"/>
4545
</h1>
46+
<field name="property_tag_ids" widget="many2many_tags" string="Tags"/>
4647
</group>
48+
<separator/>
4749
<group>
4850
<group>
51+
<field name="property_type_id"/>
4952
<field name="postcode"/>
5053
<field name="date_availability"/>
5154
</group>
@@ -67,6 +70,17 @@
6770
<field name="garden_orientation"/>
6871
</group>
6972
</page>
73+
<page string="Offers">
74+
<group>
75+
<field name="property_offer_ids" string=""/>
76+
</group>
77+
</page>
78+
<page string="Other Info">
79+
<group>
80+
<field name="user_id"/>
81+
<field name="partner_id"/>
82+
</group>
83+
</page>
7084
</notebook>
7185
</sheet>
7286
</form>
@@ -80,4 +94,4 @@
8094
<field name="res_model">estate.property</field>
8195
<field name="view_mode">list,form</field>
8296
</record>
83-
</odoo>
97+
</odoo>

0 commit comments

Comments
 (0)