Skip to content

Commit d46ed71

Browse files
committed
[IMP] estate: Added Action button in Property and Offer Model
In estate.property model added the action button 1. to cancel the property advertisement 2. to mark the property sold In estate.offer model added the action button 1. to accept the offer for the particular property 2. to refuse the offer for the particular property 3. set buyer and selling price, when any offer is accepted Chapter 9
1 parent 859c071 commit d46ed71

File tree

4 files changed

+45
-5
lines changed

4 files changed

+45
-5
lines changed

estate/models/estate_property.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from odoo import models, fields, api
1+
from odoo import models, fields, api, exceptions
22

33

44
class EstateProperty(models.Model):
@@ -58,3 +58,19 @@ def _onchange_garden(self):
5858
else:
5959
self.garden_orientation = None
6060
self.garden_area = 0
61+
62+
def cancel_property_sale(self):
63+
for record in self:
64+
if record.state == 'sold':
65+
raise exceptions.UserError('A sold property cannot be cancelled')
66+
else:
67+
record.state = 'cancelled'
68+
return True
69+
70+
def set_property_sold(self):
71+
for record in self:
72+
if record.state == 'cancelled':
73+
raise exceptions.UserError('A cancelled property cannot be Sold')
74+
else:
75+
record.state = 'sold'
76+
return True

estate/models/estate_property_offer.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from odoo import models, fields, api
1+
from odoo import models, fields, api, exceptions
22

33

44
class EstatePropertyOffer(models.Model):
@@ -27,3 +27,19 @@ def _compute_offer_date_deadline(self):
2727
def _inverse_offer_date_deadline(self):
2828
for record in self:
2929
record.validity = (record.date_deadline - record.create_date.date()).days
30+
31+
def action_offer_accepted(self):
32+
for record in self:
33+
if record.status == 'accepted':
34+
return False
35+
if record.property_id.buyer:
36+
raise exceptions.UserError('An another offer is already accepted')
37+
record.property_id.selling_price = record.price
38+
record.property_id.buyer = record.partner_id
39+
record.status = 'accepted'
40+
return True
41+
42+
def action_offer_refused(self):
43+
for record in self:
44+
record.status = 'refused'
45+
return True

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" string="Partner" />
99
<field name="validity" string="Validity (days)" />
1010
<field name="date_deadline" />
11+
<button name="action_offer_accepted" string="Accept" type="object" icon="fa-check"/>
12+
<button name="action_offer_refused" string="Refuse" type="object" icon="fa-close" />
1113
<field name="status" />
1214
</list>
1315
</field>

estate/views/estate_property_views.xml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@
44
<field name="model">estate_property</field>
55
<field name="arch" type="xml">
66
<form string="Description">
7+
<haeder>
8+
<group col="2">
9+
<button type="object" name="cancel_property_sale" string="Cancel" />
10+
<button type="object" name="set_property_sold" string="Sold" />
11+
</group>
12+
</haeder>
713
<sheet>
814
<h1>
915
<field name="name" nolabel="True" />
@@ -18,7 +24,7 @@
1824
<group>
1925
<field name="expected_price" />
2026
<field name="selling_price" />
21-
<field name="best_price"/>
27+
<field name="best_price" />
2228
</group>
2329
</group>
2430
<notebook>
@@ -33,7 +39,7 @@
3339
<field name="garden_area" string="Garden Area (sqm)" />
3440
<field name="garden_orientation" />
3541
<field name="state" />
36-
<field name="total_area"/>
42+
<field name="total_area" />
3743
</group>
3844
</page>
3945
<page string="Offers">
@@ -94,4 +100,4 @@
94100
<field name="res_model">estate_property</field>
95101
<field name="view_mode">list,form</field>
96102
</record>
97-
</odoo>
103+
</odoo>

0 commit comments

Comments
 (0)