Skip to content

Commit 9951f58

Browse files
committed
[IMP] estate: Chapter 9
1 parent 5563be0 commit 9951f58

File tree

4 files changed

+32
-0
lines changed

4 files changed

+32
-0
lines changed

estate/models/estate_properties.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from odoo import api, fields, models
2+
from odoo.exceptions import UserError
23

34
DEFAULT_GARDEN_AREA = 10
45
DEFAULT_GARDEN_ORIENTATION = "north"
@@ -64,3 +65,17 @@ def _update_garden_area_and_orientation(self):
6465
else:
6566
record.garden_area = 0
6667
record.garden_orientation = None
68+
69+
def mark_as_sold(self):
70+
for record in self:
71+
if record.state == "cancelled":
72+
raise UserError("A cancelled property cannot be set as sold.")
73+
record.state = "sold"
74+
return True
75+
76+
def mark_as_cancelled(self):
77+
for record in self:
78+
if record.state == "sold":
79+
raise UserError("A sold property cannot be set as cancelled.")
80+
record.state = "cancelled"
81+
return True

estate/models/estate_property_offers.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,13 @@ def _compute_deadline(self):
2626
def _inverse_deadline(self):
2727
for record in self:
2828
record.validity = (record.date_deadline - fields.Date.to_date(record.create_date)).days if record.date_deadline else record.validity
29+
30+
def accept_offer(self):
31+
for record in self:
32+
record.status = "accepted"
33+
record.property_id.selling_price = record.price
34+
record.property_id.buyer = record.partner_id
35+
36+
def refuse_offer(self):
37+
for record in self:
38+
record.status = "refused"

estate/views/estate_property_offer_views.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
<field name="partner_id"/>
99
<field name="validity"/>
1010
<field name="date_deadline" string="Deadline"/>
11+
<button name="accept_offer" string="Accept" type="object" icon="fa-check"/>
12+
<button name="refuse_offer" string="Refuse" type="object" icon="oi-close"/>
1113
<field name="status"/>
1214
</list>
1315
</field>

estate/views/estate_property_views.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,18 @@
2626
<field name="model">estate.property</field>
2727
<field name="arch" type="xml">
2828
<form string="Property">
29+
<header>
30+
<button name="mark_as_sold" type="object" string="Sold"/>
31+
<button name="mark_as_cancelled" type="object" string="Cancel"/>
32+
</header>
2933
<sheet>
3034
<h1>
3135
<field name="name"/>
3236
</h1>
3337
<field name="tag_ids" widget="many2many_tags"/>
3438
<group>
3539
<group>
40+
<field name="state"/>
3641
<field name="property_type_id"/>
3742
<field name="postcode"/>
3843
<field name="date_availability"/>

0 commit comments

Comments
 (0)