99class PropertyModel (models .Model ):
1010 _name = "estate.property"
1111 _description = "Estate Property model"
12+ _order = "id desc"
1213 _check_positive_expected_price = models .Constraint (
1314 "CHECK(expected_price >= 0)" ,
1415 "The expected price must be positive."
@@ -18,23 +19,23 @@ class PropertyModel(models.Model):
1819 "The selling price must be positive"
1920 )
2021
21- name = fields .Char (required = True )
22+ name = fields .Char ("Title" , required = True )
2223 description = fields .Text ()
2324 postcode = fields .Char ()
2425 date_availability = fields .Date (default = fields .Date .add (fields .Date .today (), months = 3 ), copy = False )
2526 expected_price = fields .Float (required = True )
2627 best_offer = fields .Float (compute = "_get_highest_price" )
2728 selling_price = fields .Float (readonly = True , copy = False )
2829 bedrooms = fields .Integer (default = 2 )
29- living_area = fields .Integer ()
30+ living_area = fields .Integer ("Living Area (sqm)" )
3031 facades = fields .Integer ()
3132 garage = fields .Boolean ()
3233 garden = fields .Boolean ()
33- garden_area = fields .Integer ()
34+ garden_area = fields .Integer ("Garden Area (sqm)" )
3435 garden_orientation = fields .Selection (
3536 selection = [('north' , 'North' ), ('south' , 'South' ), ('east' , 'East' ), ('west' , 'West' )]
3637 )
37- total_living_area = fields .Integer (compute = "_compute_total_area" )
38+ total_living_area = fields .Integer ("Total Area (sqm)" , compute = "_compute_total_area" )
3839
3940 active = fields .Boolean (default = True )
4041 state = fields .Selection (
@@ -45,6 +46,7 @@ class PropertyModel(models.Model):
4546 ("sold" , "Sold" ),
4647 ("cancelled" , "Cancelled" )
4748 ],
49+ string = "Status" ,
4850 required = True ,
4951 copy = False ,
5052 default = "new"
@@ -67,26 +69,25 @@ def _get_highest_price(self):
6769
6870 @api .onchange ("garden" )
6971 def _update_garden_area_and_orientation (self ):
70- for record in self :
71- if record .garden :
72- record .garden_area = DEFAULT_GARDEN_AREA
73- record .garden_orientation = DEFAULT_GARDEN_ORIENTATION
74- else :
75- record .garden_area = 0
76- record .garden_orientation = None
72+ if self .garden :
73+ self .garden_area = DEFAULT_GARDEN_AREA
74+ self .garden_orientation = DEFAULT_GARDEN_ORIENTATION
75+ else :
76+ self .garden_area = 0
77+ self .garden_orientation = None
7778
7879 def mark_as_sold (self ):
79- for record in self :
80- if record .state == "cancelled" :
81- raise UserError ("A cancelled property cannot be set as sold." )
82- record .state = "sold"
80+ self . ensure_one ()
81+ if self .state == "cancelled" :
82+ raise UserError ("A cancelled property cannot be set as sold." )
83+ self .state = "sold"
8384 return True
8485
8586 def mark_as_cancelled (self ):
86- for record in self :
87- if record .state == "sold" :
88- raise UserError ("A sold property cannot be set as cancelled." )
89- record .state = "cancelled"
87+ self . ensure_one ()
88+ if self .state == "sold" :
89+ raise UserError ("A sold property cannot be set as cancelled." )
90+ self .state = "cancelled"
9091 return True
9192
9293 @api .constrains ("selling_price" , "expected_price" )
0 commit comments