Skip to content

Commit f79417c

Browse files
[IMP] vijan-Serer101-10
1 parent 4819e06 commit f79417c

File tree

4 files changed

+16
-5
lines changed

4 files changed

+16
-5
lines changed

estate/models/estate_property.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
from dateutil.relativedelta import relativedelta
22
from odoo import fields, models,api,exceptions
3+
from odoo.tools.float_utils import float_compare, float_is_zero;
4+
from odoo.exceptions import ValidationError;
35

46

57
class EstateProperty(models.Model):
68
_name = "estate.property"
79
_description = "Property"
810
_positif_expected_price = models.Constraint("CHECK (expected_price > 0)","A price can't be negatif");
911
_positif_selling_price = models.Constraint("CHECK (selling_price > 0)","A price can't be negatif");
10-
_postif_best_price = models.Constraint("CHECK (best_price > 0)", "A price can't be negatif");
1112

1213
state = fields.Selection(selection = [("New","New"), ("Offer_Received","Offer Received") ,("Offer_Accepted","Offer Accepted"), ("Sold","Sold"), ("Cancelled","Cancelled")])
1314
active = fields.Boolean('Active',default=True)
@@ -70,4 +71,12 @@ def _get_best_price(self):
7071
@api.onchange("garden")
7172
def _garden_pre_fill(self):
7273
self.garden_area = 10 if self.garden else 0
73-
self.garden_orientation = 'North' if self.garden else ''
74+
self.garden_orientation = 'North' if self.garden else ''
75+
76+
@api.constrains('selling_price','expected_price')
77+
def _check_prices(self):
78+
for record in self:
79+
if float_is_zero(record.selling_price,2):
80+
return;
81+
if(float_compare(record.selling_price,record.expected_price*.8,2) == -1):
82+
raise ValidationError(f"Selling price is too low {record.selling_price}");

estate/models/estate_property_offer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
class EstatePropertyOffer(models.Model):
77
_name = "estate.property.offer"
88
_description = "Property Offer"
9-
_postif_price = models.Constraint("CHECK (best_price > 0)", "A price can't be negatif");
9+
_postif_price = models.Constraint("CHECK (price > 0)", "A price can't be negatif");
1010
price = fields.Float(string="Price")
1111
status = fields.Selection(copy=False,selection = [("Accepted","Accepted"),("Refused","Refused")])
1212
partner_id = fields.Many2one('res.partner',required=True)

estate/models/estate_property_tag.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@
44
class EstatePropertyTag(models.Model):
55
_name = "estate.property.tag"
66
_description = "Property Tag"
7-
name = fields.Char(required=True)
7+
_unique_tag = models.UniqueIndex("(name)","Tag name must be unique in database")
8+
name = fields.Char(required=True, unique=True)

estate/models/estate_property_type.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@
44
class EstatePropertyType(models.Model):
55
_name = "estate.property.type"
66
_description = "Property Type"
7-
name = fields.Char(required=True)
7+
name = fields.Char(required=True)
8+
_unique_type = models.UniqueIndex("(name)","Property type name must be unique in database")

0 commit comments

Comments
 (0)