Skip to content

Commit f1335d4

Browse files
committed
[IMP] estate: chapter 9 (actions)
1 parent 8efcb4c commit f1335d4

File tree

3 files changed

+39
-1
lines changed

3 files changed

+39
-1
lines changed

estate/models/estate_property.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Part of Odoo. See LICENSE file for full copyright and licensing details.
22

3-
from odoo import fields, models, api
3+
from odoo import fields, models, api, exceptions
44
from datetime import timedelta
55

66

@@ -65,3 +65,19 @@ def _onchange_garden(self):
6565
else:
6666
self.garden_area = 0
6767
self.garden_orientation = ''
68+
69+
def property_sold(self):
70+
for record in self:
71+
if self.state != 'cancelled':
72+
self.state = 'sold'
73+
else:
74+
raise exceptions.UserError("Sold properties cannot be cancelled.")
75+
return True
76+
77+
def property_cancelled(self):
78+
for record in self:
79+
if self.state != 'sold':
80+
self.state = 'cancelled'
81+
else:
82+
raise exceptions.UserError("Cancelled properties cannot be sold.")
83+
return True

estate/models/estate_property_offer.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,18 @@ def _compute_deadline(self):
2424
def _inverse_deadline(self):
2525
for record in self:
2626
record.validity = (record.date_deadline - (record.create_date.date() if record.create_date else date.today())).days
27+
28+
def action_accept(self):
29+
for record in self:
30+
if record.property_id.state in ('new', 'offer_received'):
31+
record.property_id.state = 'offer_accepted'
32+
record.status = 'accepted'
33+
record.property_id.selling_price = record.price
34+
record.property_id.buyer_id = record.partner_id
35+
return True
36+
37+
def action_refuse(self):
38+
for record in self:
39+
if not record.status:
40+
record.status = 'refused'
41+
return True

estate/views/estate_property_views.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@
3131
<field name="model">estate.property</field>
3232
<field name="arch" type="xml">
3333
<form string="Estate Property">
34+
<header>
35+
<button name="property_sold" type="object" string="Sold"/>
36+
<button name="property_cancelled" type="object" string="Cancel"/>
37+
</header>
3438
<sheet>
3539
<div class="oe_title">
3640
<h1>
@@ -40,6 +44,7 @@
4044
</div>
4145
<group>
4246
<group>
47+
<field name="state"/>
4348
<field name="property_type_id"/>
4449
<field name="postcode"/>
4550
<field name="date_availability"/>
@@ -72,6 +77,8 @@
7277
<field name="validity"/>
7378
<field name="date_deadline"/>
7479
<field name="status"/>
80+
<button name="action_accept" type="object" icon="fa-check"/>
81+
<button name="action_refuse" type="object" icon="fa-close"/>
7582
</list>
7683
</field>
7784
</page>

0 commit comments

Comments
 (0)