@@ -8,18 +8,18 @@ class EstateProperty(models.Model):
88 _description = 'Real Estate Property'
99
1010 name = fields .Char (string = "Title" , required = True )
11- description = fields .Text (string = "Description" )
12- postcode = fields .Char (string = "Postcode" )
11+ description = fields .Text ()
12+ postcode = fields .Char ()
1313 date_availability = fields .Date (string = "Available From" , copy = False , default = lambda self : fields .Date .today () + relativedelta (months = 3 ))
1414 expected_price = fields .Float (string = "Expected Price" , required = True )
1515 selling_price = fields .Float (string = "Selling Price" , copy = False )
16- bedrooms = fields .Integer (string = "Bedrooms" , default = 2 )
16+ bedrooms = fields .Integer (default = 2 )
1717 living_area = fields .Integer (string = "Living Area (spm)" )
18- facades = fields .Integer (string = "Facades" )
19- garage = fields .Boolean (string = "Garage" )
20- garden = fields .Boolean (string = "Garden" )
18+ facades = fields .Integer ()
19+ garage = fields .Boolean ()
20+ garden = fields .Boolean ()
2121 garden_area = fields .Integer (string = "Garden Area (spm)" )
22- total_area = fields .Float (string = "Total Area (sqm)" , compute = "_computed_total_area" , store = True )
22+ total_area = fields .Float (string = "Total Area (sqm)" , compute = "_computed_total_area" )
2323 garden_orientation = fields .Selection ([
2424 ('north' , "North" ),
2525 ('east' , "East" ),
@@ -33,13 +33,13 @@ class EstateProperty(models.Model):
3333 ('offer_accepted' , "Offer Accepted" ),
3434 ('sold' , "Sold" ),
3535 ('cancelled' , "Cancelled" )
36- ], string = "State" , copy = False , default = 'new' )
36+ ], copy = False , default = 'new' )
3737 property_type_id = fields .Many2one ('estate.property.type' , string = "Property Type" , ondelete = "cascade" )
3838 sales_person_id = fields .Many2one ('res.users' , string = 'Salesman' , ondelete = 'cascade' )
3939 buyer_id = fields .Many2one ('res.partner' , string = 'Buyer' , ondelete = 'cascade' )
4040 property_tag_ids = fields .Many2many ('estate.property.tag' )
4141 offer_ids = fields .One2many ('estate.property.offer' , 'property_id' , string = "Offers" )
42- best_price = fields .Float (string = "Best Offer" , compute = "_computed_best_offer" , store = True )
42+ best_price = fields .Float (string = "Best Offer" , compute = "_computed_best_offer" , search = "_search_best_offer" , store = False )
4343
4444 @api .depends ("living_area" , "garden_area" )
4545 def _computed_total_area (self ):
@@ -51,3 +51,10 @@ def _computed_best_offer(self):
5151 for rec in self :
5252 prices = rec .offer_ids .mapped ("price" )
5353 rec .best_price = max (prices ) if prices else 0.0
54+
55+ def _search_best_offer (self , operator , value ):
56+ return [
57+ '&' ,
58+ ('offer_ids.price' , '>' , 10000 ),
59+ ('offer_ids.price' , operator , value )
60+ ]
0 commit comments