1- from odoo import models , fields
21from dateutil .relativedelta import relativedelta
32from datetime import date
3+ from odoo import models , fields , api
44
55
66class EstateProperty (models .Model ):
77 _name = "estate.property"
88 _description = "Real Estate Property"
99
10- name = fields .Char (string = "Property Title" , required = True )
11- description = fields .Text (string = "Description" )
12- postcode = fields .Char (string = "Postcode" )
10+ name = fields .Char (required = True )
11+ description = fields .Text ()
12+ postcode = fields .Char ()
1313 date_availability = fields .Date (
14- string = "Available From" ,
1514 default = lambda sself : date .today () + relativedelta (months = 3 ),
1615 copy = False
1716 )
1817 expected_price = fields .Float (string = "Expected Price" , required = True )
1918 selling_price = fields .Float (
20- string = "Selling Price" ,
2119 readonly = True ,
2220 copy = False
2321 )
24-
25- bedrooms = fields .Integer (string = "Bedrooms" , default = 2 )
26- living_area = fields .Integer (string = "Living Area (sqm)" )
27- facades = fields .Integer (string = "Number of Facades" )
28- garage = fields .Boolean (string = "Has Garage" )
29- garden = fields .Boolean (string = "Has Garden" )
30- garden_area = fields .Integer (string = "Garden Area (sqm)" )
22+ bedrooms = fields .Integer (default = 2 )
23+ living_area = fields .Integer ()
24+ facades = fields .Integer ()
25+ garage = fields .Boolean ()
26+ garden = fields .Boolean ()
27+ garden_area = fields .Integer ()
3128 garden_orientation = fields .Selection (
3229 selection = [
3330 ('north' , 'North' ),
3431 ('south' , 'South' ),
3532 ('east' , 'East' ),
3633 ('west' , 'West' ),
3734 ],
38- string = "Garden Orientation"
3935 )
4036 active = fields .Boolean (default = True )
4137 state = fields .Selection (
@@ -46,12 +42,33 @@ class EstateProperty(models.Model):
4642 ('sold' , 'Sold' ),
4743 ('cancelled' , 'Cancelled' ),
4844 ],
49- string = "Status" ,
5045 required = True ,
5146 copy = False ,
5247 default = 'new' ,
5348 )
5449 property_type_id = fields .Many2one (
5550 "estate.property.type" ,
56- string = "Property Type" ,
5751 )
52+ salesperson_id = fields .Many2one (
53+ "res.users" ,
54+ default = lambda self : self .env .user ,
55+ )
56+ buyer_id = fields .Many2one (
57+ "res.partner" ,
58+ copy = False ,
59+ )
60+ tag_ids = fields .Many2many (
61+ "estate.property.tag" ,
62+ )
63+ offer_ids = fields .One2many (
64+ "estate.property.offer" ,
65+ "property_id" ,
66+ )
67+ total_area = fields .Float (
68+ compute = "_compute_total_area"
69+ )
70+
71+ @api .depends ('living_area' , 'garden_area' )
72+ def _compute_total_area (self ):
73+ for record in self :
74+ record .total_area = record .living_area + record .garden_area
0 commit comments