estate_property.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. from dateutil.relativedelta import relativedelta
  2. from odoo import fields, models
  3. class EstateProperty(models.Model):
  4. _name = "estate.property"
  5. _description = "Estate Property"
  6. name = fields.Char("Title", required=True)
  7. description = fields.Text("Description")
  8. postcode = fields.Char("Postcode")
  9. date_availability = fields.Date("Available From", default=lambda self: fields.Date.context_today(self) + relativedelta(months=3), copy=False)
  10. expected_price = fields.Float("Expected Price", required=True)
  11. selling_price = fields.Float("Selling Price", copy=False, readonly=True)
  12. bedrooms = fields.Integer("Bedrooms", default=2)
  13. living_area = fields.Integer("Living Area (sqm)")
  14. facades = fields.Integer("Facades")
  15. garage = fields.Boolean("Garage")
  16. garden = fields.Boolean("Garden")
  17. garden_area = fields.Integer("Garden Area (sqm)")
  18. garden_orientation = fields.Selection(
  19. selection=[
  20. ("N", "North"),
  21. ("S", "South"),
  22. ("E", "East"),
  23. ("W", "West"),
  24. ],
  25. string="Garden Orientation",
  26. )
  27. state = fields.Selection(
  28. selection=[
  29. ("new", "New"),
  30. ("offer_received", "Offer Received"),
  31. ("offer_accepted", "Offer Accepted"),
  32. ("sold", "Sold"),
  33. ("canceled", "Canceled"),
  34. ],
  35. string="Status",
  36. required=True,
  37. copy=False,
  38. default="new",
  39. )
  40. active = fields.Boolean("Active", default=True)