mirror of
https://github.com/SARL-PACIFIC-ERP/odoo-sh-test.git
synced 2025-06-25 17:42:22 +00:00
chapt 8
This commit is contained in:
parent
412cc839a4
commit
809cf2801f
|
@ -1,6 +1,5 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from odoo import api, fields, models
|
||||||
from odoo import fields, models
|
|
||||||
|
|
||||||
class EstateProperty(models.Model):
|
class EstateProperty(models.Model):
|
||||||
_name = "estate.property"
|
_name = "estate.property"
|
||||||
|
@ -26,3 +25,31 @@ class EstateProperty(models.Model):
|
||||||
buyer_id = fields.Many2one("res.partner", string="Buyer")
|
buyer_id = fields.Many2one("res.partner", string="Buyer")
|
||||||
tag_ids = fields.Many2many("estate.property.tag", string="Tags")
|
tag_ids = fields.Many2many("estate.property.tag", string="Tags")
|
||||||
offer_ids = fields.One2many("estate.property.offer", "property_id", string="Offers")
|
offer_ids = fields.One2many("estate.property.offer", "property_id", string="Offers")
|
||||||
|
total_area = fields.Integer(compute="_get_total_area", readonly=True)
|
||||||
|
best_price = fields.Float(compute="_compute_best_price")
|
||||||
|
|
||||||
|
@api.depends('living_area', 'garden_area')
|
||||||
|
def _get_total_area(self):
|
||||||
|
for entry in self:
|
||||||
|
entry.total_area = entry.living_area + entry.garden_area
|
||||||
|
|
||||||
|
@api.depends('offer_ids.price')
|
||||||
|
def _compute_best_price(self):
|
||||||
|
for record in self:
|
||||||
|
record.best_price = max(record.offer_ids.mapped('price')) if record.offer_ids else None
|
||||||
|
|
||||||
|
@api.onchange('garden')
|
||||||
|
def _onchange_garden(self):
|
||||||
|
if self.garden:
|
||||||
|
self.garden_area = 10
|
||||||
|
self.garden_orientation = 'north'
|
||||||
|
else:
|
||||||
|
self.garden_area = None
|
||||||
|
self.garden_orientation = None
|
||||||
|
|
||||||
|
@api.onchange('date_availability')
|
||||||
|
def _onchange_date_availability(self):
|
||||||
|
if self.date_availability < fields.Date.today():
|
||||||
|
return {'warning': {
|
||||||
|
'title': ("Warning"),
|
||||||
|
'message': ("The date is in the past.")}}
|
|
@ -1,5 +1,5 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from odoo import fields, models
|
from odoo import api, fields, models
|
||||||
|
|
||||||
class EstatePropertyOffer(models.Model):
|
class EstatePropertyOffer(models.Model):
|
||||||
_name = "estate.property.offer"
|
_name = "estate.property.offer"
|
||||||
|
@ -9,3 +9,14 @@ class EstatePropertyOffer(models.Model):
|
||||||
status = fields.Selection(copy=False, selection=[('accepted', 'Accepted'), ('refused', 'Refused')])
|
status = fields.Selection(copy=False, selection=[('accepted', 'Accepted'), ('refused', 'Refused')])
|
||||||
partner_id = fields.Many2one("res.partner", required=True)
|
partner_id = fields.Many2one("res.partner", required=True)
|
||||||
property_id = fields.Many2one("estate.property", required=True)
|
property_id = fields.Many2one("estate.property", required=True)
|
||||||
|
validity = fields.Integer(default=7, string='validity (days)')
|
||||||
|
date_deadline = fields.Date(compute="_compute_date_deadline", inverse="_inverse_date_deadline")
|
||||||
|
|
||||||
|
@api.depends('validity', 'create_date')
|
||||||
|
def _compute_date_deadline(self):
|
||||||
|
for record in self:
|
||||||
|
record.date_deadline = fields.Date.add(record.create_date or fields.Date.today(), days=record.validity)
|
||||||
|
|
||||||
|
def _inverse_date_deadline(self):
|
||||||
|
for record in self:
|
||||||
|
record.validity = (record.date_deadline - (record.create_date.date() or fields.Date.today())).days
|
|
@ -7,6 +7,8 @@
|
||||||
<tree string="Offers">
|
<tree string="Offers">
|
||||||
<field name="price" />
|
<field name="price" />
|
||||||
<field name="partner_id" />
|
<field name="partner_id" />
|
||||||
|
<field name="validity" />
|
||||||
|
<field name="date_deadline" />
|
||||||
<field name="status" />
|
<field name="status" />
|
||||||
</tree>
|
</tree>
|
||||||
</field>
|
</field>
|
||||||
|
@ -20,6 +22,8 @@
|
||||||
<sheet>
|
<sheet>
|
||||||
<field name="price" />
|
<field name="price" />
|
||||||
<field name="partner_id" />
|
<field name="partner_id" />
|
||||||
|
<field name="validity" />
|
||||||
|
<field name="date_deadline" />
|
||||||
<field name="status" />
|
<field name="status" />
|
||||||
</sheet>
|
</sheet>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
</group>
|
</group>
|
||||||
<group>
|
<group>
|
||||||
<field name="expected_price" />
|
<field name="expected_price" />
|
||||||
|
<field name="best_price" />
|
||||||
<field name="selling_price" />
|
<field name="selling_price" />
|
||||||
</group>
|
</group>
|
||||||
</group>
|
</group>
|
||||||
|
@ -55,6 +56,7 @@
|
||||||
<field name="garden" />
|
<field name="garden" />
|
||||||
<field name="garden_area" string="Garden area (sqm)" />
|
<field name="garden_area" string="Garden area (sqm)" />
|
||||||
<field name="garden_orientation" />
|
<field name="garden_orientation" />
|
||||||
|
<field name="total_area" string="Total area (sqm)" />
|
||||||
</group>
|
</group>
|
||||||
</page>
|
</page>
|
||||||
<page string="People">
|
<page string="People">
|
||||||
|
|
Loading…
Reference in a new issue