From ed3194de86d1c8a0952e00e91affd8415fb1e110 Mon Sep 17 00:00:00 2001 From: "venkatesh rapolu (raven)" Date: Thu, 3 Sep 2026 17:09:02 +0530 Subject: [PATCH 1/2] [ADD] estate: create estate property module Initialize the estate module by creating its base structure. This includes adding the required __init__.py and __manifest__.py files, and defining the module with its name and dependency on the base module. The purpose of this step is to register the module in Odoo so it can be detected, listed in the Apps menu, and installed for further development. Ref- chapter-1 --- estate/__init__.py | 1 + estate/__manifest__.py | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100644 estate/__init__.py create mode 100644 estate/__manifest__.py diff --git a/estate/__init__.py b/estate/__init__.py new file mode 100644 index 00000000000..0650744f6bc --- /dev/null +++ b/estate/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/estate/__manifest__.py b/estate/__manifest__.py new file mode 100644 index 00000000000..4a2d94cc52a --- /dev/null +++ b/estate/__manifest__.py @@ -0,0 +1,7 @@ +{ + 'name' : "estate", + 'depends': ['base'], + + 'installable': True, + 'application': True, +} From 4168c496e0e754c3de0989a2ff270265f54db4cd Mon Sep 17 00:00:00 2001 From: "venkatesh rapolu (raven)" Date: Fri, 4 Sep 2026 18:05:49 +0530 Subject: [PATCH 2/2] [IMP] estate: add property model, manifest, and access rights Create the estate.property model with core business fields covering property details, pricing, availability, dimensions, and amenities. Add a standardized garden orientation selection and apply required constraints to key fields. Define standard read/write/create/unlink access rights in ir.model.access.csv for the base user group. Initialize the module structure with __manifest__.py and __init__.py files following Odoo ORM conventions. Ref-Chapter-3 --- estate/__manifest__.py | 14 +++++++++++--- estate/models/__init__.py | 1 + estate/models/estate_property.py | 27 +++++++++++++++++++++++++++ estate/security/ir.model.access.csv | 2 ++ 4 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 estate/models/__init__.py create mode 100644 estate/models/estate_property.py create mode 100644 estate/security/ir.model.access.csv diff --git a/estate/__manifest__.py b/estate/__manifest__.py index 4a2d94cc52a..8e002b48494 100644 --- a/estate/__manifest__.py +++ b/estate/__manifest__.py @@ -1,7 +1,15 @@ { - 'name' : "estate", + 'name': "Real Estate", + 'version': '1.0', + 'author': "Odoo S.A.", + 'summary': "Estate management", + 'description': """Estate Property Module""", 'depends': ['base'], - - 'installable': True, + 'category': 'category', + 'data': [ + "security/ir.model.access.csv", + ], + 'license': 'LGPL-3', 'application': True, + 'installable': True } diff --git a/estate/models/__init__.py b/estate/models/__init__.py new file mode 100644 index 00000000000..5e1963c9d2f --- /dev/null +++ b/estate/models/__init__.py @@ -0,0 +1 @@ +from . import estate_property diff --git a/estate/models/estate_property.py b/estate/models/estate_property.py new file mode 100644 index 00000000000..3c9dca1cd9e --- /dev/null +++ b/estate/models/estate_property.py @@ -0,0 +1,27 @@ +from odoo import fields, models + + +class EstateProperty(models.Model): + _name = "estate.property" + _description = "Real Estate Property" + + name = fields.Char(required=True) + description = fields.Text() + postcode = fields.Char() + date_availability = fields.Date() + expected_price = fields.Float(required=True) + selling_price = fields.Float() + bedrooms = fields.Integer() + living_area = fields.Integer() + facades = fields.Integer() + garage = fields.Boolean() + garden = fields.Boolean() + garden_area = fields.Integer() + garden_orientation = fields.Selection( + [ + ('north', 'North'), + ('south', 'South'), + ('east', 'East'), + ('west', 'West') + ] + ) diff --git a/estate/security/ir.model.access.csv b/estate/security/ir.model.access.csv new file mode 100644 index 00000000000..32389642d4f --- /dev/null +++ b/estate/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_estate_property,access_estate_property,model_estate_property,base.group_user,1,1,1,1