Skip to content

Commit 2949458

Browse files
committed
[IMP] estate: Add buttons
1 parent 0422878 commit 2949458

File tree

6 files changed

+37
-3
lines changed

6 files changed

+37
-3
lines changed

estate/models/estate_property.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from odoo import fields, models, api
22
from dateutil.relativedelta import relativedelta
3+
from odoo.exceptions import UserError
34

45

56
class EstateProperty(models.Model):
@@ -69,4 +70,17 @@ def _onchange_garden(self):
6970
else:
7071
self.garden_area = 0
7172
self.garden_orientation = False
72-
73+
74+
def action_sold(self):
75+
for record in self:
76+
if record.state == 'canceled':
77+
raise UserError("Canceled properties cannot be sold.")
78+
else:
79+
record.state = 'sold'
80+
81+
def action_cancel(self):
82+
for record in self:
83+
if record.state == 'sold':
84+
raise UserError("Sold properties cannot be canceled.")
85+
else:
86+
record.state = 'canceled'

estate/models/estate_property_offer.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from odoo import fields, models, api
22
from dateutil.relativedelta import relativedelta
3+
from odoo.exceptions import UserError
34

45

56
class EstatePropertyOffer(models.Model):
@@ -30,3 +31,17 @@ def _compute_deadline(self):
3031
def _inverse_deadline(self):
3132
for record in self:
3233
record.validity = (record.deadline - fields.Date.today()).days
34+
35+
def action_accept(self):
36+
if 'accepted' in self.mapped("property_id.offer_ids.status"):
37+
raise UserError("An offer is already accepted")
38+
else:
39+
for record in self:
40+
record.status = 'accepted'
41+
record.property_id.state = 'offer_accepted'
42+
record.property_id.buyer_id = record.partner_id
43+
record.property_id.selling_price = record.price
44+
45+
def action_refuse(self):
46+
for record in self:
47+
record.status = 'refused'

estate/models/estate_property_tag.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,3 @@ class EstatePropertyTag(models.Model):
88
_order = "id"
99

1010
name = fields.Char("Name", required=True)
11-

estate/models/estate_property_type.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,3 @@ class EstatePropertyType(models.Model):
88
_order = "id"
99

1010
name = fields.Char("Name", required=True)
11-

estate/views/estate_property_offer_views.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
<list string="Property Offers">
77
<field name="price"/>
88
<field name="partner_id"/>
9+
<button name="action_accept" type="object" title="Accept" icon="fa-check"/>
10+
<button name="action_refuse" type="object" title="Refuse" icon="fa-times"/>
911
<field name="status"/>
1012
</list>
1113
</field>

estate/views/estate_property_views.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@
1010
<field name="model">estate.property</field>
1111
<field name="arch" type="xml">
1212
<form string="Properties">
13+
<header>
14+
<button name="action_sold" type="object" string="Sold" />
15+
<button name="action_cancel" type="object" string="Cancel"/>
16+
</header>
1317
<sheet>
1418
<div class="oe_title">
1519
<h1>
@@ -19,6 +23,7 @@
1923
<field name="tag_ids" widget="many2many_tags"/>
2024
<group>
2125
<group>
26+
<field name="state"/>
2227
<field name="property_type_id"/>
2328
<field name="postcode"/>
2429
<field name="date_availability"/>

0 commit comments

Comments
 (0)