1
- from odoo import models , fields
2
- from datetime import timedelta , date
3
1
from odoo import models , fields , api
2
+ from datetime import timedelta , date
4
3
from odoo .exceptions import UserError
5
4
from odoo .exceptions import ValidationError
6
5
from odoo .tools .float_utils import float_compare , float_is_zero
7
6
8
7
9
-
10
8
class EstateProperty (models .Model ):
11
9
_name = "estate.property"
12
10
_description = "Real Estate Property"
13
11
_order = 'id desc'
12
+
14
13
name = fields .Char (required = True )
15
14
description = fields .Text (string = "Description" )
16
15
postcode = fields .Char (string = "Postcode" )
@@ -35,22 +34,18 @@ class EstateProperty(models.Model):
35
34
)
36
35
state = fields .Selection (selection = [
37
36
('new' , 'New' ),
38
- ('offer_received' , 'Offer Received' ),
37
+ ('offer_received' , 'Offer Received' ),
39
38
('offer_accepted' , 'Offer Accepted' ),
40
39
('sold' , 'Sold' ),
41
40
('cancelled' , 'Cancelled' ),
42
41
], default = 'new' , string = "Status" , copy = False )
43
- property_type_id = fields .Many2one ('estate.property.type' , string = "Property Type" ,required = True ,
42
+ property_type_id = fields .Many2one ('estate.property.type' , string = "Property Type" ,
44
43
options = {'no_create' : True , 'no_edit' : True })
45
- buyer_id = fields .Many2one ('res.partner' , string = "Buyer" )
44
+ buyer_id = fields .Many2one ('res.partner' , string = "Buyer" , copy = False )
46
45
seller_id = fields .Many2one ('res.users' , string = "Salesperson" , default = lambda self : self .env .user ,required = False )
47
46
status = fields .Selection ([('accepted' , 'Accepted' ), ('refused' , 'Refused' )], string = "Status" )
48
- partner_id = fields .Many2one ('res.partner' , string = "Partner" ,required = True , ondelete = 'restrict' )
49
- salesperson = fields .Char (string = "Salesperson" , required = True )
50
- buyer = fields .Char (string = "Buyers" , required = True )
47
+ partner_id = fields .Many2one ('res.partner' , string = "Partner" , ondelete = 'restrict' )
51
48
price = fields .Float (string = "Price" )
52
- partners = fields .Char (string = "Partner" , required = True )
53
- tag_ids = fields .Many2one ('estate.property.tag' , string = "Tags" )
54
49
total_area = fields .Float (string = "Total Area (sqm)" , compute = "_compute_total_area" , store = True ,copy = False )
55
50
best_offers = fields .Float (string = "Best Offers" )
56
51
offer_ids = fields .One2many (
@@ -85,12 +80,14 @@ def _onchange_garden(self):
85
80
self .garden_orientation = False
86
81
87
82
def action_cancel (self ):
83
+ self .state = 'canceled'
88
84
for record in self :
89
85
if record .state == 'sold' :
90
86
raise UserError ("A sold property cannot be cancelled." )
91
87
record .state = 'cancelled'
92
88
93
89
def action_sold (self ):
90
+ self .state = 'sold'
94
91
for record in self :
95
92
if record .state == 'cancelled' :
96
93
raise UserError ("A cancelled property cannot be sold." )
@@ -130,30 +127,22 @@ def _check_selling_price(self):
130
127
raise ValidationError (
131
128
"The selling price cannot be lower than 90% of the expected price."
132
129
)
133
- def action_sold (self ):
134
- self .state = 'sold'
135
-
136
- def action_cancel (self ):
137
- self .state = 'canceled'
138
-
139
-
140
- @api .depends ('state' )
141
- def _compute_offer_received (self ):
130
+
131
+ @api .depends ('state' )
132
+ def _compute_offer_received (self ):
142
133
for record in self :
143
134
record .offer_received = record .state == 'offer_received'
144
135
145
- @api .depends ('state' )
146
- def _compute_offer_accepted (self ):
136
+ @api .depends ('state' )
137
+ def _compute_offer_accepted (self ):
147
138
for record in self :
148
139
record .offer_accepted = record .state == 'offer_accepted'
149
140
150
- @api .ondelete (at_uninstall = False )
151
- def _check_state_on_delete (self ):
141
+ @api .ondelete (at_uninstall = False )
142
+ def _check_state_on_delete (self ):
152
143
for record in self :
153
144
if record .state not in ('new' , 'cancelled' ):
154
145
raise UserError (
155
146
"You cannot delete a property unless it is in 'New' or 'Cancelled' state."
156
147
)
157
-
158
-
159
-
148
+
0 commit comments