From 04ed3ed126594f25a72edc971a055a2d7d747e33 Mon Sep 17 00:00:00 2001 From: "Hazem (haabo)" Date: Tue, 18 Nov 2025 13:16:52 +0100 Subject: [PATCH 01/16] [ADD] estate: init --- estate/__init__.py | 2 ++ estate/__manifest__.py | 13 +++++++++++++ 2 files changed, 15 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..a0fdc10fe11 --- /dev/null +++ b/estate/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +from . import models diff --git a/estate/__manifest__.py b/estate/__manifest__.py new file mode 100644 index 00000000000..f6526396474 --- /dev/null +++ b/estate/__manifest__.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- +{ + 'name': "Real Estate", + 'summary': """ + Testing the real estate module + """, + + 'description': """ + Testing the description real estate module + """, + 'application': True, + 'depends': ['base'] +} From 186a4916a0baaaa3482dd04ccbee535274b19b2a Mon Sep 17 00:00:00 2001 From: "Hazem (haabo)" Date: Tue, 18 Nov 2025 13:53:01 +0100 Subject: [PATCH 02/16] [FIX] estate: removed imports --- estate/__init__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/estate/__init__.py b/estate/__init__.py index a0fdc10fe11..40a96afc6ff 100644 --- a/estate/__init__.py +++ b/estate/__init__.py @@ -1,2 +1 @@ # -*- coding: utf-8 -*- -from . import models From e418d9a0fddec4ba1caf96026c34044cb73aa63f Mon Sep 17 00:00:00 2001 From: "Hazem (haabo)" Date: Tue, 18 Nov 2025 13:55:52 +0100 Subject: [PATCH 03/16] [IMP] estate: change to installable --- estate/__manifest__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/estate/__manifest__.py b/estate/__manifest__.py index f6526396474..e955b3ad937 100644 --- a/estate/__manifest__.py +++ b/estate/__manifest__.py @@ -8,6 +8,7 @@ 'description': """ Testing the description real estate module """, + 'depends': ['base'], 'application': True, - 'depends': ['base'] + 'installable': True, } From d4cf70e49c9ea8323e6ccde8b5b66c5b1bb5a4e1 Mon Sep 17 00:00:00 2001 From: "Hazem (haabo)" Date: Tue, 18 Nov 2025 14:39:18 +0100 Subject: [PATCH 04/16] [IMP] estate: Models and basic fields --- estate/__init__.py | 1 + estate/models/__init__.py | 1 + estate/models/estate.py | 19 +++++++++++++++++++ 3 files changed, 21 insertions(+) create mode 100644 estate/models/__init__.py create mode 100644 estate/models/estate.py diff --git a/estate/__init__.py b/estate/__init__.py index 40a96afc6ff..f5ba686bc21 100644 --- a/estate/__init__.py +++ b/estate/__init__.py @@ -1 +1,2 @@ # -*- coding: utf-8 -*- +from . import models \ No newline at end of file diff --git a/estate/models/__init__.py b/estate/models/__init__.py new file mode 100644 index 00000000000..912e8d6a61f --- /dev/null +++ b/estate/models/__init__.py @@ -0,0 +1 @@ +from . import estate \ No newline at end of file diff --git a/estate/models/estate.py b/estate/models/estate.py new file mode 100644 index 00000000000..878f2b960eb --- /dev/null +++ b/estate/models/estate.py @@ -0,0 +1,19 @@ +from odoo import models, fields + +class EstateProperty(models.Model): + _name = "estate.property" + + _description = "Estate property model" + name = fields.Char('Property name', required=True,) + description = fields.Text('Property description') + postcode = fields.Char() + expected_price = fields.Float('Property expected price', required = True) + date_availability = fields.Date() + 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(string = 'Orientation',selection=[("north", "N"), ("south", "S"), ("east", "E"), ("west", "W")], help = 'Orientation of the garden') From a05b607aae937e61997645c2f5f4d4084e217d0d Mon Sep 17 00:00:00 2001 From: "Hazem (haabo)" Date: Tue, 18 Nov 2025 15:02:35 +0100 Subject: [PATCH 05/16] [IMP] estate: access rights and security --- estate/__manifest__.py | 3 +++ estate/security/ir.model.access.csv | 2 ++ 2 files changed, 5 insertions(+) create mode 100644 estate/security/ir.model.access.csv diff --git a/estate/__manifest__.py b/estate/__manifest__.py index e955b3ad937..c58df372df2 100644 --- a/estate/__manifest__.py +++ b/estate/__manifest__.py @@ -9,6 +9,9 @@ Testing the description real estate module """, 'depends': ['base'], + 'data': [ + 'security/ir.model.access.csv', + ], 'application': True, 'installable': True, } diff --git a/estate/security/ir.model.access.csv b/estate/security/ir.model.access.csv new file mode 100644 index 00000000000..0e11f47e58d --- /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 From 4f494dc8b11d798480094a14f669e02548d06fe7 Mon Sep 17 00:00:00 2001 From: "Hazem (haabo)" Date: Tue, 18 Nov 2025 16:32:56 +0100 Subject: [PATCH 06/16] [IMP] estate: UI activated and more fields added --- estate/__init__.py | 3 +-- estate/__manifest__.py | 3 ++- estate/models/__init__.py | 2 +- estate/models/estate.py | 19 ++++++++++++------- estate/views/estate_menus.xml | 8 ++++++++ estate/views/estate_property_view.xml | 13 +++++++++++++ 6 files changed, 37 insertions(+), 11 deletions(-) create mode 100644 estate/views/estate_menus.xml create mode 100644 estate/views/estate_property_view.xml diff --git a/estate/__init__.py b/estate/__init__.py index f5ba686bc21..0650744f6bc 100644 --- a/estate/__init__.py +++ b/estate/__init__.py @@ -1,2 +1 @@ -# -*- coding: utf-8 -*- -from . import models \ No newline at end of file +from . import models diff --git a/estate/__manifest__.py b/estate/__manifest__.py index c58df372df2..325a0d676f4 100644 --- a/estate/__manifest__.py +++ b/estate/__manifest__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- { 'name': "Real Estate", 'summary': """ @@ -11,6 +10,8 @@ 'depends': ['base'], 'data': [ 'security/ir.model.access.csv', + 'views/estate_property_view.xml', + 'views/estate_menus.xml' ], 'application': True, 'installable': True, diff --git a/estate/models/__init__.py b/estate/models/__init__.py index 912e8d6a61f..e4f59229d23 100644 --- a/estate/models/__init__.py +++ b/estate/models/__init__.py @@ -1 +1 @@ -from . import estate \ No newline at end of file +from . import estate diff --git a/estate/models/estate.py b/estate/models/estate.py index 878f2b960eb..2d7ff1737c5 100644 --- a/estate/models/estate.py +++ b/estate/models/estate.py @@ -1,19 +1,24 @@ from odoo import models, fields +from dateutil.relativedelta import relativedelta + class EstateProperty(models.Model): _name = "estate.property" - _description = "Estate property model" - name = fields.Char('Property name', required=True,) + + name = fields.Char('Property name', required=True, default="Unknown") description = fields.Text('Property description') postcode = fields.Char() - expected_price = fields.Float('Property expected price', required = True) - date_availability = fields.Date() - selling_price = fields.Float() - bedrooms = fields.Integer() + expected_price = fields.Float('Property expected price', required=True) + date_availability = fields.Date(default=fields.Date.today() + relativedelta(months=3), copy=False) + selling_price = fields.Float(readonly=True, copy=False) + bedrooms = fields.Integer(default=2) living_area = fields.Integer() facades = fields.Integer() garage = fields.Boolean() garden = fields.Boolean() garden_area = fields.Integer() - garden_orientation = fields.Selection(string = 'Orientation',selection=[("north", "N"), ("south", "S"), ("east", "E"), ("west", "W")], help = 'Orientation of the garden') + garden_orientation = fields.Selection(string='Orientation', selection=[("north", "N"), ("south", "S"), ("east", "E"), ("west", "W")], help='Orientation of the garden') + last_seen = fields.Datetime("Last Seen", default=fields.Datetime.now) + active = fields.Boolean(default=True) + state = fields.Selection(string='State', selection=[("new", "New"), ("offer_received", "Offer Received"), ("offer_accepted", "Offer Accepted"), ("sold", "Sold"), ("cancelled", "Cancelled")], default='new') diff --git a/estate/views/estate_menus.xml b/estate/views/estate_menus.xml new file mode 100644 index 00000000000..5c198a7b812 --- /dev/null +++ b/estate/views/estate_menus.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/estate/views/estate_property_view.xml b/estate/views/estate_property_view.xml new file mode 100644 index 00000000000..a78899e2d50 --- /dev/null +++ b/estate/views/estate_property_view.xml @@ -0,0 +1,13 @@ + + + + Estate Property + estate.property + list,form + +

+ Welcome to the help of estate property +

+
+
+
\ No newline at end of file From 66b5efaf645b25ba955e3fd6ff90103c3bcd877b Mon Sep 17 00:00:00 2001 From: "Hazem (haabo)" Date: Tue, 18 Nov 2025 16:55:07 +0100 Subject: [PATCH 07/16] [FIX] estate: CI compliance --- estate/__manifest__.py | 2 ++ estate/models/estate.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/estate/__manifest__.py b/estate/__manifest__.py index 325a0d676f4..d72224bb21e 100644 --- a/estate/__manifest__.py +++ b/estate/__manifest__.py @@ -15,4 +15,6 @@ ], 'application': True, 'installable': True, + 'author': "Odoo", + 'license': 'AGPL-3' } diff --git a/estate/models/estate.py b/estate/models/estate.py index 2d7ff1737c5..9d3b95c2b80 100644 --- a/estate/models/estate.py +++ b/estate/models/estate.py @@ -5,7 +5,7 @@ class EstateProperty(models.Model): _name = "estate.property" _description = "Estate property model" - + name = fields.Char('Property name', required=True, default="Unknown") description = fields.Text('Property description') postcode = fields.Char() From a97811c74240c8647f2cc8c45a7ea568b5a12f01 Mon Sep 17 00:00:00 2001 From: "Hazem (haabo)" Date: Wed, 19 Nov 2025 11:02:42 +0100 Subject: [PATCH 08/16] [LINT] estate: adapting to git and code guideline --- estate/__manifest__.py | 7 ++---- estate/models/estate.py | 36 +++++++++++++++++++++------ estate/security/ir.model.access.csv | 2 +- estate/views/estate_menus.xml | 2 +- estate/views/estate_property_view.xml | 2 +- 5 files changed, 33 insertions(+), 16 deletions(-) diff --git a/estate/__manifest__.py b/estate/__manifest__.py index d72224bb21e..b073bd4e253 100644 --- a/estate/__manifest__.py +++ b/estate/__manifest__.py @@ -1,8 +1,6 @@ { 'name': "Real Estate", - 'summary': """ - Testing the real estate module - """, + 'summary': "Testing the real estate module", 'description': """ Testing the description real estate module @@ -14,7 +12,6 @@ 'views/estate_menus.xml' ], 'application': True, - 'installable': True, 'author': "Odoo", - 'license': 'AGPL-3' + 'license': 'LGPL-3', } diff --git a/estate/models/estate.py b/estate/models/estate.py index 9d3b95c2b80..43941c34949 100644 --- a/estate/models/estate.py +++ b/estate/models/estate.py @@ -1,16 +1,17 @@ -from odoo import models, fields -from dateutil.relativedelta import relativedelta +from odoo import fields, models class EstateProperty(models.Model): _name = "estate.property" _description = "Estate property model" - name = fields.Char('Property name', required=True, default="Unknown") - description = fields.Text('Property description') + name = fields.Char("Property name", required=True, default="Unknown") + description = fields.Text("Property description") postcode = fields.Char() - expected_price = fields.Float('Property expected price', required=True) - date_availability = fields.Date(default=fields.Date.today() + relativedelta(months=3), copy=False) + expected_price = fields.Float("Property expected price", required=True) + date_availability = fields.Date( + default=fields.Date.add(fields.Date.today(), months=3), copy=False + ) selling_price = fields.Float(readonly=True, copy=False) bedrooms = fields.Integer(default=2) living_area = fields.Integer() @@ -18,7 +19,26 @@ class EstateProperty(models.Model): garage = fields.Boolean() garden = fields.Boolean() garden_area = fields.Integer() - garden_orientation = fields.Selection(string='Orientation', selection=[("north", "N"), ("south", "S"), ("east", "E"), ("west", "W")], help='Orientation of the garden') + garden_orientation = fields.Selection( + string="Orientation", + selection=[ + ("north", "N"), + ("south", "S"), + ("east", "E"), + ("west", "W") + ], + help="Orientation of the garden", + ) last_seen = fields.Datetime("Last Seen", default=fields.Datetime.now) active = fields.Boolean(default=True) - state = fields.Selection(string='State', selection=[("new", "New"), ("offer_received", "Offer Received"), ("offer_accepted", "Offer Accepted"), ("sold", "Sold"), ("cancelled", "Cancelled")], default='new') + state = fields.Selection( + string="State", + selection=[ + ("new", "New"), + ("offer_received", "Offer Received"), + ("offer_accepted", "Offer Accepted"), + ("sold", "Sold"), + ("cancelled", "Cancelled"), + ], + default="new", + ) diff --git a/estate/security/ir.model.access.csv b/estate/security/ir.model.access.csv index 0e11f47e58d..32389642d4f 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 diff --git a/estate/views/estate_menus.xml b/estate/views/estate_menus.xml index 5c198a7b812..8b30a644b7d 100644 --- a/estate/views/estate_menus.xml +++ b/estate/views/estate_menus.xml @@ -5,4 +5,4 @@ - \ No newline at end of file + diff --git a/estate/views/estate_property_view.xml b/estate/views/estate_property_view.xml index a78899e2d50..e53322f5376 100644 --- a/estate/views/estate_property_view.xml +++ b/estate/views/estate_property_view.xml @@ -10,4 +10,4 @@

- \ No newline at end of file + From b011fb1f36442519892d6b263fa8fe832feb27bb Mon Sep 17 00:00:00 2001 From: "Hazem (haabo)" Date: Wed, 19 Nov 2025 14:44:20 +0100 Subject: [PATCH 09/16] [IMP] estate: adjusted access rights improved views and search filters --- estate/models/estate.py | 20 ++++--- estate/security/ir.model.access.csv | 3 +- estate/views/estate_property_view.xml | 79 +++++++++++++++++++++++++++ 3 files changed, 92 insertions(+), 10 deletions(-) diff --git a/estate/models/estate.py b/estate/models/estate.py index 43941c34949..fd2b7d27575 100644 --- a/estate/models/estate.py +++ b/estate/models/estate.py @@ -5,16 +5,18 @@ class EstateProperty(models.Model): _name = "estate.property" _description = "Estate property model" - name = fields.Char("Property name", required=True, default="Unknown") - description = fields.Text("Property description") - postcode = fields.Char() - expected_price = fields.Float("Property expected price", required=True) + name = fields.Char("Title", required=True, default="Unknown") + description = fields.Text("Description") + postcode = fields.Char("Postcode") + expected_price = fields.Float("Expected Price", required=True) date_availability = fields.Date( - default=fields.Date.add(fields.Date.today(), months=3), copy=False + "Available From", + default=fields.Date.add(fields.Date.today(), months=3), + copy=False, ) - selling_price = fields.Float(readonly=True, copy=False) - bedrooms = fields.Integer(default=2) - living_area = fields.Integer() + selling_price = fields.Float("Selling Price", readonly=True, copy=False) + bedrooms = fields.Integer("Bedrooms", default=2) + living_area = fields.Integer("Living Area (sqm)") facades = fields.Integer() garage = fields.Boolean() garden = fields.Boolean() @@ -25,7 +27,7 @@ class EstateProperty(models.Model): ("north", "N"), ("south", "S"), ("east", "E"), - ("west", "W") + ("west", "W"), ], help="Orientation of the garden", ) diff --git a/estate/security/ir.model.access.csv b/estate/security/ir.model.access.csv index 32389642d4f..8d817d69903 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,access_estate_property,model_estate_property,base.group_system,1,1,1,1 +view_estate_property,view_estate_property,model_estate_property,base.group_user,1,0,0,0 diff --git a/estate/views/estate_property_view.xml b/estate/views/estate_property_view.xml index e53322f5376..00cea38d618 100644 --- a/estate/views/estate_property_view.xml +++ b/estate/views/estate_property_view.xml @@ -1,5 +1,6 @@ + Estate Property estate.property @@ -10,4 +11,82 @@

+ + + estate.property.form + estate.property + +
+
+ +
+ +
+

+ +

+ + + + + + + + + + +
+ + + + + + + + + + + + + + +
+
+
+
+ + + estate.property.list + estate.property + + + + + + + + + + + + + + + estate.property.search + estate.property + + + + + + + + + + + + + + +
From 4bf0325bf71abd029d3efcdd575b28064117f58c Mon Sep 17 00:00:00 2001 From: "Hazem (haabo)" Date: Wed, 19 Nov 2025 14:45:56 +0100 Subject: [PATCH 10/16] [LINT] estate: remove whitespace --- estate/models/estate.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/estate/models/estate.py b/estate/models/estate.py index fd2b7d27575..0d4be8249e2 100644 --- a/estate/models/estate.py +++ b/estate/models/estate.py @@ -25,8 +25,8 @@ class EstateProperty(models.Model): string="Orientation", selection=[ ("north", "N"), - ("south", "S"), - ("east", "E"), + ("south", "S"), + ("east", "E"), ("west", "W"), ], help="Orientation of the garden", From d749764a6bbb2b48a01b7e488a4abf112f797dd4 Mon Sep 17 00:00:00 2001 From: "Hazem (haabo)" Date: Wed, 19 Nov 2025 15:31:45 +0100 Subject: [PATCH 11/16] [FIX] estate: xml views error fix --- estate/views/estate_property_view.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/estate/views/estate_property_view.xml b/estate/views/estate_property_view.xml index 00cea38d618..7ddcc0a6c56 100644 --- a/estate/views/estate_property_view.xml +++ b/estate/views/estate_property_view.xml @@ -77,13 +77,13 @@ - + - - - - - + + + + + From 577573a7cf88447f808477a1e4686aaa16466540 Mon Sep 17 00:00:00 2001 From: "Hazem (haabo)" Date: Wed, 19 Nov 2025 17:39:37 +0100 Subject: [PATCH 12/16] [IMP] estate : adding new foreign fields for tags, types and offers to property model --- estate/__manifest__.py | 5 ++- estate/models/__init__.py | 7 +++- .../models/{estate.py => estate_property.py} | 26 ++++++++++---- estate/models/estate_property_offer.py | 23 +++++++++++++ estate/models/estate_property_tag.py | 8 +++++ estate/models/estate_property_type.py | 8 +++++ estate/security/ir.model.access.csv | 3 ++ estate/views/estate_menus.xml | 4 +++ estate/views/estate_property_offer_view.xml | 34 +++++++++++++++++++ estate/views/estate_property_tag_view.xml | 8 +++++ estate/views/estate_property_type_view.xml | 8 +++++ estate/views/estate_property_view.xml | 15 +++++++- 12 files changed, 140 insertions(+), 9 deletions(-) rename estate/models/{estate.py => estate_property.py} (67%) create mode 100644 estate/models/estate_property_offer.py create mode 100644 estate/models/estate_property_tag.py create mode 100644 estate/models/estate_property_type.py create mode 100644 estate/views/estate_property_offer_view.xml create mode 100644 estate/views/estate_property_tag_view.xml create mode 100644 estate/views/estate_property_type_view.xml diff --git a/estate/__manifest__.py b/estate/__manifest__.py index b073bd4e253..56f73fb8c83 100644 --- a/estate/__manifest__.py +++ b/estate/__manifest__.py @@ -8,8 +8,11 @@ 'depends': ['base'], 'data': [ 'security/ir.model.access.csv', + 'views/estate_property_offer_view.xml', 'views/estate_property_view.xml', - 'views/estate_menus.xml' + 'views/estate_property_type_view.xml', + 'views/estate_property_tag_view.xml', + 'views/estate_menus.xml', ], 'application': True, 'author': "Odoo", diff --git a/estate/models/__init__.py b/estate/models/__init__.py index e4f59229d23..3683ff97b61 100644 --- a/estate/models/__init__.py +++ b/estate/models/__init__.py @@ -1 +1,6 @@ -from . import estate +from . import ( + estate_property, + estate_property_offer, + estate_property_tag, + estate_property_type, +) diff --git a/estate/models/estate.py b/estate/models/estate_property.py similarity index 67% rename from estate/models/estate.py rename to estate/models/estate_property.py index 0d4be8249e2..550883f26b0 100644 --- a/estate/models/estate.py +++ b/estate/models/estate_property.py @@ -23,12 +23,7 @@ class EstateProperty(models.Model): garden_area = fields.Integer() garden_orientation = fields.Selection( string="Orientation", - selection=[ - ("north", "N"), - ("south", "S"), - ("east", "E"), - ("west", "W"), - ], + selection=[("north", "N"), ("south", "S"), ("east", "E"), ("west", "W")], help="Orientation of the garden", ) last_seen = fields.Datetime("Last Seen", default=fields.Datetime.now) @@ -44,3 +39,22 @@ class EstateProperty(models.Model): ], default="new", ) + + property_type_id = fields.Many2one( + 'estate.property.type', string='Property Type', ondelete='restrict' + ) + + salesperson_id = fields.Many2one( + 'res.partner', + string='Salesman', + ondelete='restrict', + default=lambda self: self.env.user.partner_id, + ) + + buyer_id = fields.Many2one( + 'res.users', string='Buyer', ondelete='restrict', copy=False + ) + + property_tags_ids = fields.Many2many("estate.property.tag", string="Tags") + + 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..a93bbadfe86 --- /dev/null +++ b/estate/models/estate_property_offer.py @@ -0,0 +1,23 @@ +from odoo import fields, models + + +class EstatePropertyOffer(models.Model): + _name = "estate.property.offer" + _description = "Estate property offer" + + price = fields.Float("Expected Price") + status = fields.Selection( + string="Status", selection=[("yes", "Accepted"), ("no", "Refused")], copy=False + ) + + partner_id = fields.Many2one( + 'res.partner', + string='Salesman', + ondelete='restrict', + default=lambda self: self.env.user.partner_id, + required=True, + ) + + property_id = fields.Many2one( + 'estate.property', string='Property', ondelete='restrict', required=True + ) diff --git a/estate/models/estate_property_tag.py b/estate/models/estate_property_tag.py new file mode 100644 index 00000000000..7bf04d1a55a --- /dev/null +++ b/estate/models/estate_property_tag.py @@ -0,0 +1,8 @@ +from odoo import fields, models + + +class EstatePropertyTag(models.Model): + _name = "estate.property.tag" + _description = "Estate property tag" + + name = fields.Char('Property Tag', required=True) diff --git a/estate/models/estate_property_type.py b/estate/models/estate_property_type.py new file mode 100644 index 00000000000..6c5cc5602de --- /dev/null +++ b/estate/models/estate_property_type.py @@ -0,0 +1,8 @@ +from odoo import fields, models + + +class EstatePropertyType(models.Model): + _name = "estate.property.type" + _description = "Estate property type" + + name = fields.Char('Property Type', required=True) diff --git a/estate/security/ir.model.access.csv b/estate/security/ir.model.access.csv index 8d817d69903..d9bc9fdd546 100644 --- a/estate/security/ir.model.access.csv +++ b/estate/security/ir.model.access.csv @@ -1,3 +1,6 @@ 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_system,1,1,1,1 +access_estate_property_type,access_estate_property_type,model_estate_property_type,base.group_system,1,1,1,1 +access_estate_property_tag,access_estate_property_tag,model_estate_property_tag,base.group_system,1,1,1,1 +access_estate_property_offer,access_estate_property_offer,model_estate_property_offer,base.group_system,1,1,1,1 view_estate_property,view_estate_property,model_estate_property,base.group_user,1,0,0,0 diff --git a/estate/views/estate_menus.xml b/estate/views/estate_menus.xml index 8b30a644b7d..93a193780d3 100644 --- a/estate/views/estate_menus.xml +++ b/estate/views/estate_menus.xml @@ -4,5 +4,9 @@