File tree Expand file tree Collapse file tree 4 files changed +57
-11
lines changed
Expand file tree Collapse file tree 4 files changed +57
-11
lines changed Original file line number Diff line number Diff line change 1- from odoo import models , fields
1+ from odoo import models , api , fields
22from dateutil .relativedelta import relativedelta
33
44
@@ -46,3 +46,27 @@ class EstateProperty(models.Model):
4646 )
4747 tag_ids = fields .Many2many ("estate.property.tag" , string = "Property Tags" )
4848 offer_ids = fields .One2many ("estate.property.offer" , "property_id" , string = "Offer" )
49+ total_area = fields .Integer (compute = "_compute_area" )
50+ best_price = fields .Integer (compute = "_compute_highest" )
51+
52+ @api .depends ("living_area" , "garden_area" )
53+ def _compute_area (self ):
54+ for record in self :
55+ record .total_area = record .living_area + record .garden_area
56+
57+ @api .depends ("offer_ids.price" )
58+ def _compute_highest (self ):
59+ for record in self :
60+ if not record .mapped ("offer_ids.price" ):
61+ record .best_price = 0
62+ else :
63+ record .best_price = max (record .mapped ("offer_ids.price" ))
64+
65+ @api .onchange ("garden" )
66+ def _onchange_garden (self ):
67+ if self .garden :
68+ self .garden_area = 10
69+ self .garden_orientation = "north"
70+ else :
71+ self .garden_area = 0
72+ self .garden_orientation = None
Original file line number Diff line number Diff line change 1- from odoo import models , fields
1+ from odoo import models , api , fields
2+ from dateutil .relativedelta import relativedelta
23
34
45class EstatePropertyOffer (models .Model ):
@@ -11,3 +12,16 @@ class EstatePropertyOffer(models.Model):
1112 )
1213 partner_id = fields .Many2one ("res.partner" , string = "Partner" , required = True )
1314 property_id = fields .Many2one ("estate.property" , string = "Property" , required = True )
15+ validity = fields .Integer (default = 7 )
16+ date_deadline = fields .Date (compute = "_compute_deadline" , inverse = "_inverse_date" )
17+
18+ @api .depends ("validity" )
19+ def _compute_deadline (self ):
20+ for record in self :
21+ base_date = record .create_date or fields .Date .today ()
22+ record .date_deadline = base_date + relativedelta (days = record .validity )
23+
24+ def _inverse_date (self ):
25+ for record in self :
26+ base_date = record .create_date or fields .Date .today ()
27+ record .validity = (record .date_deadline - fields .Date .to_date (base_date )).days
Original file line number Diff line number Diff line change 1414 <field name =" price" />
1515 <field name =" partner_id" />
1616 <field name =" status" />
17+ <field name =" validity" string =" Validity(days)" />
18+ <field name =" date_deadline" />
1719 </list >
1820 </field >
1921 </record >
2830 <field name =" price" />
2931 <field name =" partner_id" />
3032 <field name =" status" />
33+ <field name =" validity" string =" Validity(days)" />
34+ <field name =" date_deadline" />
3135 </group >
3236 </sheet >
3337 </form >
Original file line number Diff line number Diff line change 2323 <field name =" model" >estate.property</field >
2424 <field name =" arch" type =" xml" >
2525 <form string =" Property" >
26- <sheet >
27- <h1 >
28- <field name =" name" string =" Title" />
26+ <sheet >
27+ <h1 >
28+ <field name =" name" string =" Title" />
2929 </h1 >
3030 <field name =" tag_ids" widget =" many2many_tags" />
3131 <group >
3232 <group >
33- <field name =" postcode " />
34- <field name =" expected_price " />
35- <field name =" selling_price " />
33+ <field name =" property_type_id " string = " Property Type " options = " {'no_create': true} " />
34+ <field name =" postcode " />
35+ <field name =" date_availability " string = " Available From " />
3636 </group >
3737 <group >
38- <field name =" property_type_id" options =" {'no_create': true}" />
39- <field name =" date_availability" string =" Available From" />
38+ <field name =" expected_price" />
39+ <field name =" selling_price" />
40+ <field name =" best_price" />
4041 </group >
4142 </group >
4243 <notebook >
5152 <field name =" garden" />
5253 <field name =" garden_area" string =" Garden Area(sqm)" />
5354 <field name =" garden_orientation" />
55+ <field name =" total_area" string =" Total Area(sqm)" />
56+ </group >
57+ <group >
5458 <field name =" active" />
55- <field name =" state" />
59+ <field name =" state" />
5660 </group >
5761 </group >
5862 </page >
You can’t perform that action at this time.
0 commit comments