|
| 1 | +from dateutil.relativedelta import relativedelta |
| 2 | +from odoo import fields, models |
| 3 | + |
| 4 | + |
| 5 | +def _default_date_availability(): |
| 6 | + return fields.Date.today() + relativedelta(months=3) |
| 7 | + |
| 8 | + |
| 9 | +class EstateProperty(models.Model): |
| 10 | + _name = 'estate.property' |
| 11 | + _description = "Estate Property" |
| 12 | + name = fields.Char(required=True) |
| 13 | + description = fields.Text() |
| 14 | + postcode = fields.Char() |
| 15 | + date_availability = fields.Date(copy=False, |
| 16 | + default=_default_date_availability, |
| 17 | + string='Available from') |
| 18 | + expected_price = fields.Float(required=True) |
| 19 | + selling_price = fields.Float(readonly=True, copy=False) |
| 20 | + bedrooms = fields.Integer(default=2) |
| 21 | + living_area = fields.Integer(string='Living area (sqm)') |
| 22 | + facades = fields.Integer() |
| 23 | + garage = fields.Boolean() |
| 24 | + garden = fields.Boolean() |
| 25 | + garden_area = fields.Integer(string='Garden area (sqm)') |
| 26 | + garden_orientation = fields.Selection( |
| 27 | + selection=[('north', 'North'), ('south', 'South'), ('east', 'East'), ('west', 'West')]) |
| 28 | + active: bool = fields.Boolean(default=True) |
| 29 | + state = fields.Selection(copy=False, default='New', required=True, |
| 30 | + selection=[('New', 'New'), ('Offer Received', 'Offer Received'), |
| 31 | + ('Offer Accepted', 'Offer Accepted'), ('Sold', 'Sold'), |
| 32 | + ('Cancelled', 'Cancelled')]) |
0 commit comments