1- from odoo import fields , models
1+ from odoo import api , fields , models
22from datetime import date
33from dateutil .relativedelta import relativedelta
44
@@ -13,12 +13,14 @@ class EstateProperty(models.Model):
1313 date_availability = fields .Date (copy = False , default = date .today () + relativedelta (months = 3 ))
1414 expected_price = fields .Float ()
1515 selling_price = fields .Float (readonly = True , copy = False )
16+ best_offer = fields .Float (compute = '_compute_best_offer' , readonly = True )
1617 bedrooms = fields .Integer ('# Bedrooms' , default = 2 )
1718 living_area = fields .Integer ('living area size' )
1819 facades = fields .Integer ('# Facades' )
1920 garage = fields .Boolean ()
2021 garden = fields .Boolean ()
2122 garden_area = fields .Integer ('garden size' )
23+ total_area = fields .Integer (readonly = True , compute = '_compute_area' )
2224 garden_orientation = fields .Selection (
2325 string = 'Orientation' ,
2426 selection = [('North' , 'North' ), ('West' , 'West' ), ('East' , 'East' ), ('South' , 'South' )]
@@ -36,3 +38,23 @@ class EstateProperty(models.Model):
3638 salesperson_id = fields .Many2one ("res.users" , string = "salesperson" , default = lambda self : self .env .user )
3739 tag_ids = fields .Many2many ("estate.property.tag" , string = "tag" )
3840 offer_ids = fields .One2many ("estate.property.offer" , "property_id" , string = "offer" )
41+
42+ @api .depends ('living_area' , 'garden_area' )
43+ def _compute_area (self ):
44+ for property in self :
45+ property .total_area = property .living_area + property .garden_area
46+
47+ @api .depends ('offer_ids.price' )
48+ def _compute_best_offer (self ):
49+ for property in self :
50+ prices = property .offer_ids .mapped ('price' )
51+ property .best_offer = max (prices , default = 0.0 )
52+
53+ @api .onchange ('garden' )
54+ def _onchange_garden (self ):
55+ if (self .garden ):
56+ self .garden_area = 10
57+ self .garden_orientation = 'North'
58+ else :
59+ self .garden_area = 0
60+ self .garden_orientation = ''
0 commit comments