Skip to content

Commit 80c6911

Browse files
committed
[IMP] Chapter 6 - Add custom views
1 parent 0e1ffa3 commit 80c6911

File tree

2 files changed

+85
-5
lines changed

2 files changed

+85
-5
lines changed

estate/models/property.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,20 @@ class Property(models.Model):
77
_name = 'estate.property'
88
_description = 'Estate property'
99

10-
name = fields.Char(required=True)
10+
name = fields.Char(string='Title', required=True)
1111
description = fields.Text()
1212
postcode = fields.Char()
13-
date_availability = fields.Date(default=fields.Datetime.today() + relativedelta(months=3), copy=False)
13+
date_availability = fields.Date(
14+
string='Available From', default=fields.Datetime.today() + relativedelta(months=3), copy=False
15+
)
1416
expected_price = fields.Float(required=True)
1517
selling_price = fields.Float(readonly=True, copy=False)
1618
bedrooms = fields.Integer(default=2)
17-
living_area = fields.Integer()
19+
living_area = fields.Integer(string='Living Area (sqm)')
1820
facades = fields.Integer()
1921
garage = fields.Boolean()
2022
garden = fields.Boolean()
21-
garden_area = fields.Integer()
23+
garden_area = fields.Integer(string='Garden Area (sqm)')
2224
garden_orientation = fields.Selection(
2325
selection=[('north', 'North'), ('south', 'South'), ('east', 'East'), ('west', 'West')]
2426
)
@@ -31,6 +33,6 @@ class Property(models.Model):
3133
('sold', 'Sold'), ('cancelled', 'Cancelled'),
3234
],
3335
required=True,
34-
copied=False,
36+
copy=False,
3537
)
3638
active = fields.Boolean(default=True)

estate/views/estate_property_views.xml

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,83 @@
11
<?xml version="1.0"?>
22
<odoo>
3+
<record id="estate_property_view_form" model="ir.ui.view">
4+
<field name="name">estate.property.form</field>
5+
<field name="model">estate.property</field>
6+
<field name="arch" type="xml">
7+
<form string="Property">
8+
<sheet>
9+
<div class="oe_title">
10+
<h1 class="mb32">
11+
<field name="name" class="mb16"/>
12+
</h1>
13+
</div>
14+
<group>
15+
<group>
16+
<field name="postcode"/>
17+
<field name="date_availability"/>
18+
</group>
19+
<group>
20+
<field name="expected_price"/>
21+
<field name="selling_price"/>
22+
</group>
23+
</group>
24+
<notebook>
25+
<page string="Description">
26+
<group>
27+
<field name="description"/>
28+
<field name="bedrooms"/>
29+
<field name="living_area"/>
30+
<field name="facades"/>
31+
<field name="garage"/>
32+
<field name="garden"/>
33+
<field name="garden_area"/>
34+
<field name="garden_orientation"/>
35+
</group>
36+
</page>
37+
</notebook>
38+
</sheet>
39+
</form>
40+
</field>
41+
</record>
42+
43+
<record id="estate_property_view_list" model="ir.ui.view">
44+
<field name="name">estate.property.list</field>
45+
<field name="model">estate.property</field>
46+
<field name="arch" type="xml">
47+
<list string="Property">
48+
<field name="name"/>
49+
<field name="postcode"/>
50+
<field name="bedrooms"/>
51+
<field name="living_area"/>
52+
<field name="expected_price"/>
53+
<field name="selling_price"/>
54+
<field name="date_availability"/>
55+
</list>
56+
</field>
57+
</record>
58+
59+
<record id="estate_property_search" model="ir.ui.view">
60+
<field name="name">estate.property.search</field>
61+
<field name="model">estate.property</field>
62+
<field name="arch" type="xml">
63+
<search string="Search Properties">
64+
<field name="name"/>
65+
<field name="postcode"/>
66+
<field name="expected_price"/>
67+
<field name="bedrooms"/>
68+
<field name="living_area"/>
69+
<field name="facades"/>
70+
<separator/>
71+
<filter string="Available" name="state"
72+
domain="['|', ('state', '=', 'new'), ('state', '=', 'offer_received')]"/>
73+
<separator/>
74+
<group expand="1" string="Group By">
75+
<filter name="postcode" context="{'group_by': 'postcode', 'residual_visible': True}"/>
76+
</group>
77+
</search>
78+
</field>
79+
</record>
80+
381
<record id="estate_property_model_action" model="ir.actions.act_window">
482
<field name="name">Properties</field>
583
<field name="res_model">estate.property</field>

0 commit comments

Comments
 (0)