From 2604af7f5d7d3179afb4a60ba6ef03923cf6a177 Mon Sep 17 00:00:00 2001 From: VIWAR-ODOO Date: Thu, 5 Feb 2026 19:30:29 +0530 Subject: [PATCH 01/26] [ADD] added estate module --- estate/__init__.py | 0 estate/__manifest__.py | 18 ++++++++++++++++++ 2 files changed, 18 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..e69de29bb2d diff --git a/estate/__manifest__.py b/estate/__manifest__.py new file mode 100644 index 00000000000..acf020dfb3d --- /dev/null +++ b/estate/__manifest__.py @@ -0,0 +1,18 @@ +{ + 'name': "Real Estate", + 'version': '1.0', + 'depends': ['base'], + 'author': "Author Name", + 'category': 'Category', + 'description': """ + Description text + """, + # data files always loaded at installation + 'data': [ + 'views/mymodule_view.xml', + ], + # data files containing optionally loaded demonstration data + 'demo': [ + 'demo/demo_data.xml', + ], +} \ No newline at end of file From d82ef23b78df52215a2ea4e14c113f867dd22bad Mon Sep 17 00:00:00 2001 From: VIWAR-ODOO Date: Thu, 5 Feb 2026 19:54:15 +0530 Subject: [PATCH 02/26] [FIX] delete test data --- estate/__manifest__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/estate/__manifest__.py b/estate/__manifest__.py index acf020dfb3d..d66d9602019 100644 --- a/estate/__manifest__.py +++ b/estate/__manifest__.py @@ -9,10 +9,10 @@ """, # data files always loaded at installation 'data': [ - 'views/mymodule_view.xml', + '', ], # data files containing optionally loaded demonstration data 'demo': [ - 'demo/demo_data.xml', + '', ], } \ No newline at end of file From 51763b24b9ce64d96d7fbef4e8e93326de302272 Mon Sep 17 00:00:00 2001 From: VIWAR-ODOO Date: Thu, 5 Feb 2026 20:09:18 +0530 Subject: [PATCH 03/26] [FIX] added application true and installable as true --- estate/__manifest__.py | 41 +++++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/estate/__manifest__.py b/estate/__manifest__.py index d66d9602019..ccd5301e3ff 100644 --- a/estate/__manifest__.py +++ b/estate/__manifest__.py @@ -1,18 +1,35 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + + { - 'name': "Real Estate", - 'version': '1.0', - 'depends': ['base'], - 'author': "Author Name", - 'category': 'Category', - 'description': """ - Description text - """, - # data files always loaded at installation + 'name': 'CRM', + 'version': '1.9', + 'category': 'Sales/CRM', + 'sequence': 15, + 'summary': 'Track leads and close opportunities', + 'website': 'https://www.odoo.com/app/crm', + 'depends': [ + 'base_setup', + 'sales_team', + 'mail', + 'calendar', + 'resource', + 'utm', + 'web_tour', + 'contacts', + 'digest', + 'phone_validation', + ], 'data': [ - '', + ], - # data files containing optionally loaded demonstration data 'demo': [ - '', + ], + 'installable': True, + 'application': True, + ' + 'author': 'Odoo S.A.', + 'license': 'LGPL-3', } \ No newline at end of file From dbcbc7a11440c5e44b06b9e366b633d22546861b Mon Sep 17 00:00:00 2001 From: VIWAR-ODOO Date: Thu, 5 Feb 2026 20:36:46 +0530 Subject: [PATCH 04/26] [FIX] formate change of manifest file --- estate/__manifest__.py | 39 ++++++++++----------------------------- 1 file changed, 10 insertions(+), 29 deletions(-) diff --git a/estate/__manifest__.py b/estate/__manifest__.py index ccd5301e3ff..4251354b61a 100644 --- a/estate/__manifest__.py +++ b/estate/__manifest__.py @@ -1,35 +1,16 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. - - { - 'name': 'CRM', - 'version': '1.9', - 'category': 'Sales/CRM', - 'sequence': 15, - 'summary': 'Track leads and close opportunities', - 'website': 'https://www.odoo.com/app/crm', - 'depends': [ - 'base_setup', - 'sales_team', - 'mail', - 'calendar', - 'resource', - 'utm', - 'web_tour', - 'contacts', - 'digest', - 'phone_validation', - ], - 'data': [ - - ], - 'demo': [ - - ], + 'name': "Real Estate", + 'version': '1.0', + 'depends': ['base'], + 'author': "Author Name", + 'category': 'Category', + 'description': """ + real estate app + """, + 'installable': True, 'application': True, - ' + 'author': 'Odoo S.A.', 'license': 'LGPL-3', } \ No newline at end of file From 1b9af8553e7181b1e11351a897c3db0d1be7d807 Mon Sep 17 00:00:00 2001 From: VIWAR-ODOO Date: Fri, 6 Feb 2026 00:05:16 +0530 Subject: [PATCH 05/26] [FIX] removed duplicate author fiels inthe manifest file --- estate/__manifest__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/estate/__manifest__.py b/estate/__manifest__.py index 4251354b61a..fc82b6fa251 100644 --- a/estate/__manifest__.py +++ b/estate/__manifest__.py @@ -2,7 +2,7 @@ 'name': "Real Estate", 'version': '1.0', 'depends': ['base'], - 'author': "Author Name", + 'author': "viwar-odoo", 'category': 'Category', 'description': """ real estate app @@ -11,6 +11,6 @@ 'installable': True, 'application': True, - 'author': 'Odoo S.A.', + 'license': 'LGPL-3', } \ No newline at end of file From 265e0f48df4668473a1fbb127654f8c5c95ad81c Mon Sep 17 00:00:00 2001 From: VIWAR-ODOO Date: Fri, 6 Feb 2026 00:11:44 +0530 Subject: [PATCH 06/26] [FIX] style error removed white spaces --- estate/__manifest__.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/estate/__manifest__.py b/estate/__manifest__.py index fc82b6fa251..494584b4170 100644 --- a/estate/__manifest__.py +++ b/estate/__manifest__.py @@ -7,10 +7,7 @@ 'description': """ real estate app """, - 'installable': True, 'application': True, - - 'license': 'LGPL-3', } \ No newline at end of file From 0aaabf06af6fcce41393b5d31d1f7d3b65e04d45 Mon Sep 17 00:00:00 2001 From: VIWAR-ODOO Date: Fri, 6 Feb 2026 00:18:00 +0530 Subject: [PATCH 07/26] [FIX] no newline error in style fixed removed extra comma --- estate/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/estate/__manifest__.py b/estate/__manifest__.py index 494584b4170..813b33991cf 100644 --- a/estate/__manifest__.py +++ b/estate/__manifest__.py @@ -9,5 +9,5 @@ """, 'installable': True, 'application': True, - 'license': 'LGPL-3', + 'license': 'LGPL-3' } \ No newline at end of file From 5a196fc3b287782dff3d5c90ee954e874fe7b4eb Mon Sep 17 00:00:00 2001 From: VIWAR-ODOO Date: Fri, 6 Feb 2026 00:31:22 +0530 Subject: [PATCH 08/26] [FIX] formated code --- estate/__manifest__.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/estate/__manifest__.py b/estate/__manifest__.py index 813b33991cf..57a660f09cc 100644 --- a/estate/__manifest__.py +++ b/estate/__manifest__.py @@ -1,13 +1,13 @@ { - 'name': "Real Estate", - 'version': '1.0', - 'depends': ['base'], - 'author': "viwar-odoo", - 'category': 'Category', - 'description': """ + "name": "Real Estate", + "version": "1.0", + "depends": ["base"], + "author": "viwar-odoo", + "category": "Category", + "description": """ real estate app """, - 'installable': True, - 'application': True, - 'license': 'LGPL-3' + "installable": True, + "application": True, + "license": "LGPL-3", } \ No newline at end of file From e97eeb11019156642deb45937aaafc98c9aaa5ff Mon Sep 17 00:00:00 2001 From: VIWAR-ODOO Date: Fri, 6 Feb 2026 00:46:49 +0530 Subject: [PATCH 09/26] [FIX] style error --- estate/__manifest__.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/estate/__manifest__.py b/estate/__manifest__.py index 57a660f09cc..57bcfce77f8 100644 --- a/estate/__manifest__.py +++ b/estate/__manifest__.py @@ -1,13 +1,14 @@ { - "name": "Real Estate", - "version": "1.0", - "depends": ["base"], - "author": "viwar-odoo", - "category": "Category", - "description": """ - real estate app + 'name': 'Real Estate', + 'version': '1.0', + 'depends': ['base'], + 'author': 'viwar-odoo', + 'category': 'real estate', + 'description': """ + real estate App. """, - "installable": True, - "application": True, - "license": "LGPL-3", + 'application': True, + 'installable': True, + 'license': 'LGPL-3', + 'website': 'https://odoo.com', } \ No newline at end of file From 2e78623adc131fbe8e14c0d7290d136ac55f4769 Mon Sep 17 00:00:00 2001 From: VIWAR-ODOO Date: Fri, 6 Feb 2026 00:50:25 +0530 Subject: [PATCH 10/26] [FIX] new line at end , fix error no new newline at the end --- estate/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/estate/__manifest__.py b/estate/__manifest__.py index 57bcfce77f8..ba6feed5cdb 100644 --- a/estate/__manifest__.py +++ b/estate/__manifest__.py @@ -11,4 +11,4 @@ 'installable': True, 'license': 'LGPL-3', 'website': 'https://odoo.com', -} \ No newline at end of file +} From 21041c26b2aa935c490267ab08332277805506f8 Mon Sep 17 00:00:00 2001 From: VIWAR-ODOO Date: Fri, 6 Feb 2026 00:58:08 +0530 Subject: [PATCH 11/26] [CLN] remove description --- estate/__manifest__.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/estate/__manifest__.py b/estate/__manifest__.py index ba6feed5cdb..b0f046a5f90 100644 --- a/estate/__manifest__.py +++ b/estate/__manifest__.py @@ -4,9 +4,6 @@ 'depends': ['base'], 'author': 'viwar-odoo', 'category': 'real estate', - 'description': """ - real estate App. - """, 'application': True, 'installable': True, 'license': 'LGPL-3', From 828ecf1a1c5bbd951f3f6c5a9c2a108ae44b11e1 Mon Sep 17 00:00:00 2001 From: VIWAR-ODOO Date: Fri, 6 Feb 2026 01:19:11 +0530 Subject: [PATCH 12/26] [FIX] restyle for test case eror --- estate/__manifest__.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/estate/__manifest__.py b/estate/__manifest__.py index b0f046a5f90..ba6feed5cdb 100644 --- a/estate/__manifest__.py +++ b/estate/__manifest__.py @@ -4,6 +4,9 @@ 'depends': ['base'], 'author': 'viwar-odoo', 'category': 'real estate', + 'description': """ + real estate App. + """, 'application': True, 'installable': True, 'license': 'LGPL-3', From c2e6a0c59fd40e0fe45a96ccc41218ed97d6c7e3 Mon Sep 17 00:00:00 2001 From: VIWAR-ODOO Date: Fri, 6 Feb 2026 16:36:02 +0530 Subject: [PATCH 13/26] [ADD] added estate_property.py model --- estate/__init__.py | 1 + estate/__manifest__.py | 9 ++++-- estate/models/__init__.py | 1 + estate/models/estate_property.py | 42 ++++++++++++++++++++++++++ estate/security/ir.model.access.csv | 2 ++ estate/views/estate_menus.xml | 19 ++++++++++++ estate/views/estate_property_views.xml | 21 +++++++++++++ 7 files changed, 92 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 create mode 100644 estate/views/estate_menus.xml create mode 100644 estate/views/estate_property_views.xml diff --git a/estate/__init__.py b/estate/__init__.py index e69de29bb2d..0650744f6bc 100644 --- a/estate/__init__.py +++ b/estate/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/estate/__manifest__.py b/estate/__manifest__.py index ba6feed5cdb..67a5a41c1ec 100644 --- a/estate/__manifest__.py +++ b/estate/__manifest__.py @@ -4,9 +4,12 @@ 'depends': ['base'], 'author': 'viwar-odoo', 'category': 'real estate', - 'description': """ - real estate App. - """, + 'description': "real estate App.", + 'data': [ + 'security/ir.model.access.csv', + 'views/estate_property_views.xml', + 'views/estate_menus.xml' + ], 'application': True, 'installable': True, 'license': 'LGPL-3', 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..9ab22942200 --- /dev/null +++ b/estate/models/estate_property.py @@ -0,0 +1,42 @@ +from odoo import fields, models + + +class TestModel(models.Model): + _name = "estate.property" + _description = "Test Model for real estate" + name = fields.Char(default="Unknown") + last_seen = fields.Datetime("Last Seen", default=fields.Datetime.now) + description = fields.Text() + postcode = fields.Char() + date_availability = fields.Date( + copy=False, default=fields.Date.add(fields.Date.today(), months=3) + ) + expected_price = fields.Float() + selling_price = fields.Float(copy=False, readonly=True) + bedrooms = fields.Integer(default=2) + living_area = fields.Integer() + facades = fields.Integer() + garage = fields.Boolean() + garden = fields.Boolean() + state = fields.Selection( + string="status", + selection=[ + ('new', "New"), + ('offer received', "Offer Received"), + ('offer accepted', "Offer Accepted"), + ('sol', "Sold"), + ('cancelled', "Cancelled"), + ], + default='new', + ) + active = fields.Boolean(default=True) + garden_area = fields.Integer() + garden_orientation = fields.Selection( + string="garden orientation direction", + 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..976b61e8cb3 --- /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 \ No newline at end of file diff --git a/estate/views/estate_menus.xml b/estate/views/estate_menus.xml new file mode 100644 index 00000000000..8534a590dca --- /dev/null +++ b/estate/views/estate_menus.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/estate/views/estate_property_views.xml b/estate/views/estate_property_views.xml new file mode 100644 index 00000000000..61ca0cc4746 --- /dev/null +++ b/estate/views/estate_property_views.xml @@ -0,0 +1,21 @@ + + + + + Real-estate Property's + estate.property + list,form + + + estate.property.list.view + estate.property + + + + + + + + + + From dc89be2af890f0ef7b736ded401613d8fcaf4a28 Mon Sep 17 00:00:00 2001 From: Viraj Warhade Date: Thu, 19 Feb 2026 17:46:26 +0530 Subject: [PATCH 14/26] [IMP] estate: Update estate/models/estate_property.py Co-authored-by: mash-odoo <124269532+mash-odoo@users.noreply.github.com> --- estate/models/estate_property.py | 1 + 1 file changed, 1 insertion(+) diff --git a/estate/models/estate_property.py b/estate/models/estate_property.py index 9ab22942200..d9ccd9cfc35 100644 --- a/estate/models/estate_property.py +++ b/estate/models/estate_property.py @@ -4,6 +4,7 @@ class TestModel(models.Model): _name = "estate.property" _description = "Test Model for real estate" + name = fields.Char(default="Unknown") last_seen = fields.Datetime("Last Seen", default=fields.Datetime.now) description = fields.Text() From 013489734a6bebad08fea4b0f0b8db7ac51f404d Mon Sep 17 00:00:00 2001 From: VIWAR-ODOO Date: Thu, 19 Feb 2026 18:00:53 +0530 Subject: [PATCH 15/26] [IMP] estate : added extra line --- estate/security/ir.model.access.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/estate/security/ir.model.access.csv b/estate/security/ir.model.access.csv index 976b61e8cb3..d9d6ba57cc5 100644 --- a/estate/security/ir.model.access.csv +++ b/estate/security/ir.model.access.csv @@ -1,2 +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 \ No newline at end of file +access_estate_property,access_estate_property,model_estate_property,base.group_user,1,1,1,1 From 7955c6a1462cb69cc2a9e85740e3be07d73f50dc Mon Sep 17 00:00:00 2001 From: Viraj Warhade Date: Fri, 20 Feb 2026 12:47:34 +0530 Subject: [PATCH 16/26] [IMP] estate: Update estate/models/estate_property.py Co-authored-by: mash-odoo <124269532+mash-odoo@users.noreply.github.com> --- estate/models/estate_property.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/estate/models/estate_property.py b/estate/models/estate_property.py index d9ccd9cfc35..3774f86e931 100644 --- a/estate/models/estate_property.py +++ b/estate/models/estate_property.py @@ -1,7 +1,7 @@ from odoo import fields, models -class TestModel(models.Model): +class EstateProperty(models.Model): _name = "estate.property" _description = "Test Model for real estate" From 230f4198b2cd1a40c181734cee745eedc0c12efb Mon Sep 17 00:00:00 2001 From: VIWAR-ODOO Date: Fri, 20 Feb 2026 13:00:51 +0530 Subject: [PATCH 17/26] [IMP] estate: removed tag , and added " --- estate/views/estate_menus.xml | 14 +++++++------- estate/views/estate_property_views.xml | 26 ++++++++++++-------------- 2 files changed, 19 insertions(+), 21 deletions(-) diff --git a/estate/views/estate_menus.xml b/estate/views/estate_menus.xml index 8534a590dca..6a970562285 100644 --- a/estate/views/estate_menus.xml +++ b/estate/views/estate_menus.xml @@ -1,17 +1,17 @@ - + - - + + - - - + + + - + diff --git a/estate/views/estate_property_views.xml b/estate/views/estate_property_views.xml index 61ca0cc4746..5696f07d009 100644 --- a/estate/views/estate_property_views.xml +++ b/estate/views/estate_property_views.xml @@ -1,21 +1,19 @@ - + - - - Real-estate Property's - estate.property - list,form + + Real-estate Property"s + estate.property + list,form - - estate.property.list.view - estate.property - + + estate.property.list.view + estate.property + - - - + + + - From 02685cc1804f03dc24f07225317ccb151b0e478a Mon Sep 17 00:00:00 2001 From: VIWAR-ODOO Date: Fri, 20 Feb 2026 17:53:53 +0530 Subject: [PATCH 18/26] [ADD] estate: added the form view and a notebook and added two tabs in that --- estate/views/estate_property_views.xml | 43 ++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/estate/views/estate_property_views.xml b/estate/views/estate_property_views.xml index 5696f07d009..2ba42dd0600 100644 --- a/estate/views/estate_property_views.xml +++ b/estate/views/estate_property_views.xml @@ -16,4 +16,47 @@ + + estate.property.form.view + estate.property + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
From bd0fb4dc32195744fc77c92050201e1f6dbc9340 Mon Sep 17 00:00:00 2001 From: VIWAR-ODOO Date: Mon, 23 Feb 2026 14:15:40 +0530 Subject: [PATCH 19/26] [ADD] estate: search added, filter and domain added --- estate/views/estate_property_views.xml | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/estate/views/estate_property_views.xml b/estate/views/estate_property_views.xml index 2ba42dd0600..bfaf7bc6adc 100644 --- a/estate/views/estate_property_views.xml +++ b/estate/views/estate_property_views.xml @@ -13,6 +13,7 @@ + @@ -23,12 +24,8 @@
- - - - @@ -44,7 +41,6 @@ - @@ -53,10 +49,27 @@ -
+ + estate.property.search.view + estate.property + + + + + + + + + + + + + + + From e055ab49d05d425d88f7960a714501204fc9571f Mon Sep 17 00:00:00 2001 From: VIWAR-ODOO Date: Mon, 23 Feb 2026 21:10:03 +0530 Subject: [PATCH 20/26] [ADD] estate: added the property type , implemented the many2one --- estate/__manifest__.py | 2 ++ estate/models/__init__.py | 1 + estate/models/estate_property.py | 1 + estate/models/estate_property_type.py | 9 ++++++++ estate/security/ir.model.access.csv | 1 + estate/views/estate_menus.xml | 1 + estate/views/estate_property_type_views.xml | 25 +++++++++++++++++++++ estate/views/estate_property_views.xml | 3 ++- 8 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 estate/models/estate_property_type.py create mode 100644 estate/views/estate_property_type_views.xml diff --git a/estate/__manifest__.py b/estate/__manifest__.py index 67a5a41c1ec..d9f9139050a 100644 --- a/estate/__manifest__.py +++ b/estate/__manifest__.py @@ -8,7 +8,9 @@ 'data': [ 'security/ir.model.access.csv', 'views/estate_property_views.xml', + 'views/estate_property_type_views.xml', 'views/estate_menus.xml' + ], 'application': True, 'installable': True, diff --git a/estate/models/__init__.py b/estate/models/__init__.py index 5e1963c9d2f..97aee757823 100644 --- a/estate/models/__init__.py +++ b/estate/models/__init__.py @@ -1 +1,2 @@ from . import estate_property +from . import estate_property_type \ No newline at end of file diff --git a/estate/models/estate_property.py b/estate/models/estate_property.py index 3774f86e931..d5e6e193992 100644 --- a/estate/models/estate_property.py +++ b/estate/models/estate_property.py @@ -41,3 +41,4 @@ class EstateProperty(models.Model): ('west', "West"), ], ) + property_type_id = fields.Many2one("estate.property.type") diff --git a/estate/models/estate_property_type.py b/estate/models/estate_property_type.py new file mode 100644 index 00000000000..7e86fd15cdb --- /dev/null +++ b/estate/models/estate_property_type.py @@ -0,0 +1,9 @@ +from odoo import fields, models + + +class EstatePropertyType(models.Model): + _name = 'estate.property.type' + _description = 'Estate_property_type' + + name = fields.Char(required=True) + diff --git a/estate/security/ir.model.access.csv b/estate/security/ir.model.access.csv index d9d6ba57cc5..1b712a3f909 100644 --- a/estate/security/ir.model.access.csv +++ b/estate/security/ir.model.access.csv @@ -1,2 +1,3 @@ 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 +access_estate_property_type,access_estate_property_type,model_estate_property_type,base.group_user,1,1,1,1 diff --git a/estate/views/estate_menus.xml b/estate/views/estate_menus.xml index 6a970562285..6d247435963 100644 --- a/estate/views/estate_menus.xml +++ b/estate/views/estate_menus.xml @@ -14,6 +14,7 @@ +
\ No newline at end of file diff --git a/estate/views/estate_property_type_views.xml b/estate/views/estate_property_type_views.xml new file mode 100644 index 00000000000..de37e288418 --- /dev/null +++ b/estate/views/estate_property_type_views.xml @@ -0,0 +1,25 @@ + + + + + estate_property_type_action + estate.property.type + list,form + + + + + estate.property.type.form.view + estate.property.type + +
+ + + + + +
+
+
+ +
\ No newline at end of file diff --git a/estate/views/estate_property_views.xml b/estate/views/estate_property_views.xml index bfaf7bc6adc..b12a8bfeaa3 100644 --- a/estate/views/estate_property_views.xml +++ b/estate/views/estate_property_views.xml @@ -30,6 +30,7 @@ + @@ -68,7 +69,7 @@ - + From f943abaa71c688721f0465e3b9170f1aa385c56b Mon Sep 17 00:00:00 2001 From: VIWAR-ODOO Date: Tue, 24 Feb 2026 10:27:11 +0530 Subject: [PATCH 21/26] [LINT] estate: fix formatting to pass R&D tests --- estate/models/__init__.py | 2 +- estate/models/estate_property_type.py | 1 - estate/views/estate_menus.xml | 2 -- estate/views/estate_property_type_views.xml | 4 ---- estate/views/estate_property_views.xml | 1 - 5 files changed, 1 insertion(+), 9 deletions(-) diff --git a/estate/models/__init__.py b/estate/models/__init__.py index 97aee757823..40092a2d810 100644 --- a/estate/models/__init__.py +++ b/estate/models/__init__.py @@ -1,2 +1,2 @@ from . import estate_property -from . import estate_property_type \ No newline at end of file +from . import estate_property_type diff --git a/estate/models/estate_property_type.py b/estate/models/estate_property_type.py index 7e86fd15cdb..c8bb7809002 100644 --- a/estate/models/estate_property_type.py +++ b/estate/models/estate_property_type.py @@ -6,4 +6,3 @@ class EstatePropertyType(models.Model): _description = 'Estate_property_type' name = fields.Char(required=True) - diff --git a/estate/views/estate_menus.xml b/estate/views/estate_menus.xml index 6d247435963..d8f3633a4d0 100644 --- a/estate/views/estate_menus.xml +++ b/estate/views/estate_menus.xml @@ -9,11 +9,9 @@ - - diff --git a/estate/views/estate_property_type_views.xml b/estate/views/estate_property_type_views.xml index de37e288418..207d1a69b56 100644 --- a/estate/views/estate_property_type_views.xml +++ b/estate/views/estate_property_type_views.xml @@ -1,13 +1,10 @@ - estate_property_type_action estate.property.type list,form - - estate.property.type.form.view estate.property.type @@ -21,5 +18,4 @@ - \ No newline at end of file diff --git a/estate/views/estate_property_views.xml b/estate/views/estate_property_views.xml index b12a8bfeaa3..30a3e38d073 100644 --- a/estate/views/estate_property_views.xml +++ b/estate/views/estate_property_views.xml @@ -67,7 +67,6 @@ - From 7096674df816178fd9878982b6bcd328a999c8e5 Mon Sep 17 00:00:00 2001 From: VIWAR-ODOO Date: Tue, 24 Feb 2026 10:31:28 +0530 Subject: [PATCH 22/26] [LINT] estate: fix styling , white space --- estate/__manifest__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/estate/__manifest__.py b/estate/__manifest__.py index d9f9139050a..e7c0d1e2560 100644 --- a/estate/__manifest__.py +++ b/estate/__manifest__.py @@ -10,7 +10,6 @@ 'views/estate_property_views.xml', 'views/estate_property_type_views.xml', 'views/estate_menus.xml' - ], 'application': True, 'installable': True, From 465a89248d4b3c13189b14b58972b41b14160dca Mon Sep 17 00:00:00 2001 From: VIWAR-ODOO Date: Tue, 24 Feb 2026 13:07:58 +0530 Subject: [PATCH 23/26] [IMP] estate: added the the lambda function to acess the self.env._uid --- estate/models/estate_property.py | 2 ++ estate/views/estate_menus.xml | 8 +++++++- estate/views/estate_property_views.xml | 2 ++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/estate/models/estate_property.py b/estate/models/estate_property.py index d5e6e193992..a524d3e6ee6 100644 --- a/estate/models/estate_property.py +++ b/estate/models/estate_property.py @@ -42,3 +42,5 @@ class EstateProperty(models.Model): ], ) property_type_id = fields.Many2one("estate.property.type") + salesperson_id = fields.Many2one("res.users", string="Salesperson", index=True, default=lambda self: self._uid) + buyer_id = fields.Many2one("res.partner", default='None') diff --git a/estate/views/estate_menus.xml b/estate/views/estate_menus.xml index d8f3633a4d0..72e9de064db 100644 --- a/estate/views/estate_menus.xml +++ b/estate/views/estate_menus.xml @@ -12,7 +12,13 @@ - + + \ No newline at end of file diff --git a/estate/views/estate_property_views.xml b/estate/views/estate_property_views.xml index 30a3e38d073..f16d5270c41 100644 --- a/estate/views/estate_property_views.xml +++ b/estate/views/estate_property_views.xml @@ -48,6 +48,8 @@ + + From 1f9a81a5675214ca8dead24e24b2227f80dd572d Mon Sep 17 00:00:00 2001 From: VIWAR-ODOO Date: Tue, 24 Feb 2026 18:30:12 +0530 Subject: [PATCH 24/26] [ADD] estate: added many2many , tag model and implementation --- estate/__manifest__.py | 5 ++- estate/models/__init__.py | 1 + estate/models/estate_property.py | 7 +++- estate/models/estate_property_tag.py | 8 ++++ estate/security/ir.model.access.csv | 1 + estate/views/estate_menus.xml | 1 + estate/views/estate_property_tag_view.xml | 42 +++++++++++++++++++ ...iews.xml => estate_property_type_view.xml} | 0 ...rty_views.xml => estate_property_view.xml} | 1 + 9 files changed, 62 insertions(+), 4 deletions(-) create mode 100644 estate/models/estate_property_tag.py create mode 100644 estate/views/estate_property_tag_view.xml rename estate/views/{estate_property_type_views.xml => estate_property_type_view.xml} (100%) rename estate/views/{estate_property_views.xml => estate_property_view.xml} (98%) diff --git a/estate/__manifest__.py b/estate/__manifest__.py index e7c0d1e2560..5e68ed00a11 100644 --- a/estate/__manifest__.py +++ b/estate/__manifest__.py @@ -7,8 +7,9 @@ 'description': "real estate App.", 'data': [ 'security/ir.model.access.csv', - 'views/estate_property_views.xml', - 'views/estate_property_type_views.xml', + 'views/estate_property_view.xml', + 'views/estate_property_tag_view.xml', + 'views/estate_property_type_view.xml', 'views/estate_menus.xml' ], 'application': True, diff --git a/estate/models/__init__.py b/estate/models/__init__.py index 40092a2d810..fdab6f99948 100644 --- a/estate/models/__init__.py +++ b/estate/models/__init__.py @@ -1,2 +1,3 @@ from . import estate_property from . import estate_property_type +from . import estate_property_tag \ No newline at end of file diff --git a/estate/models/estate_property.py b/estate/models/estate_property.py index a524d3e6ee6..90b81615e4c 100644 --- a/estate/models/estate_property.py +++ b/estate/models/estate_property.py @@ -42,5 +42,8 @@ class EstateProperty(models.Model): ], ) property_type_id = fields.Many2one("estate.property.type") - salesperson_id = fields.Many2one("res.users", string="Salesperson", index=True, default=lambda self: self._uid) - buyer_id = fields.Many2one("res.partner", default='None') + salesperson_id = fields.Many2one( + "res.users", string="Salesperson", index=True, default=lambda self: self.env.user + ) + buyer_id = fields.Many2one("res.partner", default='None',copy=False) + tag_ids = fields.Many2many('estate.property.tag') diff --git a/estate/models/estate_property_tag.py b/estate/models/estate_property_tag.py new file mode 100644 index 00000000000..b656d90a1bc --- /dev/null +++ b/estate/models/estate_property_tag.py @@ -0,0 +1,8 @@ +from odoo import fields, models + + +class EstatePropertytTag(models.Model): + _name = 'estate.property.tag' + _description = 'Estate_property_tag' + + name = fields.Char(required=True) \ No newline at end of file diff --git a/estate/security/ir.model.access.csv b/estate/security/ir.model.access.csv index 1b712a3f909..849c40dcc5b 100644 --- a/estate/security/ir.model.access.csv +++ b/estate/security/ir.model.access.csv @@ -1,3 +1,4 @@ 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 access_estate_property_type,access_estate_property_type,model_estate_property_type,base.group_user,1,1,1,1 +access_estate_property_tag,access_estate_property_tag,model_estate_property_tag,base.group_user,1,1,1,1 \ No newline at end of file diff --git a/estate/views/estate_menus.xml b/estate/views/estate_menus.xml index 72e9de064db..090f87225c2 100644 --- a/estate/views/estate_menus.xml +++ b/estate/views/estate_menus.xml @@ -20,5 +20,6 @@ parent="test_menu_root" /> + \ No newline at end of file diff --git a/estate/views/estate_property_tag_view.xml b/estate/views/estate_property_tag_view.xml new file mode 100644 index 00000000000..787f6775bf8 --- /dev/null +++ b/estate/views/estate_property_tag_view.xml @@ -0,0 +1,42 @@ + + + + + + + estate_property_tag + estate.property.tag + list,form + + + + + estate.property.tag.list.view + estate.property.tag + + + + + + + + + estate.property.tag.form.view + estate.property.tag + +
+ + + + + +
+
+
+ + + + + + +
\ No newline at end of file diff --git a/estate/views/estate_property_type_views.xml b/estate/views/estate_property_type_view.xml similarity index 100% rename from estate/views/estate_property_type_views.xml rename to estate/views/estate_property_type_view.xml diff --git a/estate/views/estate_property_views.xml b/estate/views/estate_property_view.xml similarity index 98% rename from estate/views/estate_property_views.xml rename to estate/views/estate_property_view.xml index f16d5270c41..a01d550e4d6 100644 --- a/estate/views/estate_property_views.xml +++ b/estate/views/estate_property_view.xml @@ -26,6 +26,7 @@ + From 23f615ead76fddf1dda8595dcf2936dbced6d02c Mon Sep 17 00:00:00 2001 From: VIWAR-ODOO Date: Tue, 24 Feb 2026 20:09:08 +0530 Subject: [PATCH 25/26] [ADD] estate: added offers and implemented one2many --- estate/models/__init__.py | 3 ++- estate/models/estate_property.py | 3 ++- estate/models/estate_property_offer.py | 15 +++++++++++++++ estate/models/estate_property_tag.py | 3 ++- estate/security/ir.model.access.csv | 3 ++- estate/views/estate_property_view.xml | 3 +++ 6 files changed, 26 insertions(+), 4 deletions(-) create mode 100644 estate/models/estate_property_offer.py diff --git a/estate/models/__init__.py b/estate/models/__init__.py index fdab6f99948..2f1821a39c1 100644 --- a/estate/models/__init__.py +++ b/estate/models/__init__.py @@ -1,3 +1,4 @@ from . import estate_property from . import estate_property_type -from . import estate_property_tag \ No newline at end of file +from . import estate_property_tag +from . import estate_property_offer diff --git a/estate/models/estate_property.py b/estate/models/estate_property.py index 90b81615e4c..d197a99c04d 100644 --- a/estate/models/estate_property.py +++ b/estate/models/estate_property.py @@ -45,5 +45,6 @@ class EstateProperty(models.Model): salesperson_id = fields.Many2one( "res.users", string="Salesperson", index=True, default=lambda self: self.env.user ) - buyer_id = fields.Many2one("res.partner", default='None',copy=False) + buyer_id = fields.Many2one("res.partner", default='None', copy=False) tag_ids = fields.Many2many('estate.property.tag') + offer_ids = fields.One2many('estate.property.offer', 'property_id', string="offers") diff --git a/estate/models/estate_property_offer.py b/estate/models/estate_property_offer.py new file mode 100644 index 00000000000..d75f703b281 --- /dev/null +++ b/estate/models/estate_property_offer.py @@ -0,0 +1,15 @@ +from odoo import fields, models + + +class EstatePropertyOffer(models.Model): + _name = 'estate.property.offer' + _description = 'estate property offer' + + price = fields.Float(copy=False) + status = fields.Selection( + copy=False, + string="status", + selection=[('accepted', "Accepted"), ('refused', "Refused")], + ) + partner_id = fields.Many2one('res.partner', required=True) + property_id = fields.Many2one('estate.property', required=True) diff --git a/estate/models/estate_property_tag.py b/estate/models/estate_property_tag.py index b656d90a1bc..a76275cb34f 100644 --- a/estate/models/estate_property_tag.py +++ b/estate/models/estate_property_tag.py @@ -5,4 +5,5 @@ class EstatePropertytTag(models.Model): _name = 'estate.property.tag' _description = 'Estate_property_tag' - name = fields.Char(required=True) \ No newline at end of file + name = fields.Char(required=True) + \ No newline at end of file diff --git a/estate/security/ir.model.access.csv b/estate/security/ir.model.access.csv index 849c40dcc5b..49bca99cac8 100644 --- a/estate/security/ir.model.access.csv +++ b/estate/security/ir.model.access.csv @@ -1,4 +1,5 @@ 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 access_estate_property_type,access_estate_property_type,model_estate_property_type,base.group_user,1,1,1,1 -access_estate_property_tag,access_estate_property_tag,model_estate_property_tag,base.group_user,1,1,1,1 \ No newline at end of file +access_estate_property_tag,access_estate_property_tag,model_estate_property_tag,base.group_user,1,1,1,1 +access_estate_property_offer,access_estate_property_offer,model_estate_property_offer,base.group_user,1,1,1,1 diff --git a/estate/views/estate_property_view.xml b/estate/views/estate_property_view.xml index a01d550e4d6..7879f71fd76 100644 --- a/estate/views/estate_property_view.xml +++ b/estate/views/estate_property_view.xml @@ -53,6 +53,9 @@ + + + From 16c7370113a6256986b1b5b489522a0babb1fd21 Mon Sep 17 00:00:00 2001 From: VIWAR-ODOO Date: Wed, 25 Feb 2026 15:49:41 +0530 Subject: [PATCH 26/26] [ADD] estate: added the depends compute field --- estate/models/__init__.py | 4 ++-- estate/models/estate_property.py | 19 ++++++++++++++----- estate/models/estate_property_tag.py | 3 +-- estate/views/estate_property_view.xml | 1 + 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/estate/models/__init__.py b/estate/models/__init__.py index 2f1821a39c1..8f2187ee09e 100644 --- a/estate/models/__init__.py +++ b/estate/models/__init__.py @@ -1,4 +1,4 @@ from . import estate_property -from . import estate_property_type -from . import estate_property_tag from . import estate_property_offer +from . import estate_property_tag +from . import estate_property_type diff --git a/estate/models/estate_property.py b/estate/models/estate_property.py index d197a99c04d..214963272f5 100644 --- a/estate/models/estate_property.py +++ b/estate/models/estate_property.py @@ -1,4 +1,4 @@ -from odoo import fields, models +from odoo import api, fields, models class EstateProperty(models.Model): @@ -25,7 +25,7 @@ class EstateProperty(models.Model): ('new', "New"), ('offer received', "Offer Received"), ('offer accepted', "Offer Accepted"), - ('sol', "Sold"), + ('sold', "Sold"), ('cancelled', "Cancelled"), ], default='new', @@ -43,8 +43,17 @@ class EstateProperty(models.Model): ) property_type_id = fields.Many2one("estate.property.type") salesperson_id = fields.Many2one( - "res.users", string="Salesperson", index=True, default=lambda self: self.env.user + 'res.users', + string='Salesperson', + index=True, + default=lambda self: self.env.user, ) - buyer_id = fields.Many2one("res.partner", default='None', copy=False) + buyer_id = fields.Many2one('res.partner', default='None', copy=False) tag_ids = fields.Many2many('estate.property.tag') - 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.Float(compute='_compute_total_area') + + @api.depends('living_area', 'garden_area') + def _compute_total_area(self): + for record in self: + record.total_area = record.living_area + record.garden_area diff --git a/estate/models/estate_property_tag.py b/estate/models/estate_property_tag.py index a76275cb34f..705c601b7a2 100644 --- a/estate/models/estate_property_tag.py +++ b/estate/models/estate_property_tag.py @@ -4,6 +4,5 @@ class EstatePropertytTag(models.Model): _name = 'estate.property.tag' _description = 'Estate_property_tag' - + name = fields.Char(required=True) - \ No newline at end of file diff --git a/estate/views/estate_property_view.xml b/estate/views/estate_property_view.xml index 7879f71fd76..1e903814824 100644 --- a/estate/views/estate_property_view.xml +++ b/estate/views/estate_property_view.xml @@ -43,6 +43,7 @@ +