From 36148f909c19f2f767d1b71db02a5460f035558c Mon Sep 17 00:00:00 2001 From: jodh-odoo Date: Wed, 5 Feb 2025 19:02:17 +0530 Subject: [PATCH 1/2] [ADD] created a new module, model definition,added security file,created action and menuitems, created custom list view --- estate/__init__.py | 1 + estate/__manifest__.py | 13 +++++++++ estate/models/__init__.py | 1 + estate/models/estate_property.py | 30 ++++++++++++++++++++ estate/security/ir.model.access.csv | 2 ++ estate/views/estate_property_basic_views.xml | 18 ++++++++++++ estate/views/estate_property_views.xml | 15 ++++++++++ 7 files changed, 80 insertions(+) create mode 100644 estate/__init__.py create mode 100644 estate/__manifest__.py 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_property_basic_views.xml create mode 100644 estate/views/estate_property_views.xml diff --git a/estate/__init__.py b/estate/__init__.py new file mode 100644 index 0000000000..9a7e03eded --- /dev/null +++ b/estate/__init__.py @@ -0,0 +1 @@ +from . import models \ No newline at end of file diff --git a/estate/__manifest__.py b/estate/__manifest__.py new file mode 100644 index 0000000000..fcf991e240 --- /dev/null +++ b/estate/__manifest__.py @@ -0,0 +1,13 @@ +{ + 'name':'Real Estate', + 'version':'0.0.0', + 'sequence': 1, + 'application':True, + 'installable': True, + 'author':'JODH', + 'data':[ + 'security/ir.model.access.csv', + 'views/estate_property_views.xml', + 'views/estate_property_basic_views.xml', + ], +} \ No newline at end of file diff --git a/estate/models/__init__.py b/estate/models/__init__.py new file mode 100644 index 0000000000..733e3143de --- /dev/null +++ b/estate/models/__init__.py @@ -0,0 +1 @@ +from . import estate_property \ No newline at end of file diff --git a/estate/models/estate_property.py b/estate/models/estate_property.py new file mode 100644 index 0000000000..c54db5d933 --- /dev/null +++ b/estate/models/estate_property.py @@ -0,0 +1,30 @@ +from datetime import timedelta +from odoo import models, fields + +class EstateProperty(models.Model): + _name ="estate.property" + _description="test description" + + + name=fields.Char(required=True,default="Unknown") + description=fields.Text() + postcode=fields.Char() + date_availability=fields.Date(copy=False,default=fields.Date.today()+timedelta(days=+90)) + expected_price=fields.Float(required=True) + 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='Garden Orientation', + selection=[('north','North'), ('south','South'), ('east','East'), ('west','West'),], + help="It is used to define the garden orientation" + ) + state=fields.Selection( + default="new", + selection=[('new', 'New'), ('offerreceived', 'Offer Received'), ('offeraccepted', 'Offer Accepted'), ('sold', 'Sold'), ('cancelled', 'Cancelled')] + ) + active=fields.Boolean(default=True) \ No newline at end of file diff --git a/estate/security/ir.model.access.csv b/estate/security/ir.model.access.csv new file mode 100644 index 0000000000..0e11f47e58 --- /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_property_basic_views.xml b/estate/views/estate_property_basic_views.xml new file mode 100644 index 0000000000..ff40cfee55 --- /dev/null +++ b/estate/views/estate_property_basic_views.xml @@ -0,0 +1,18 @@ + + + + estate.property.list + estate.property + + + + + + + + + + + + + \ 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 0000000000..ce506fd736 --- /dev/null +++ b/estate/views/estate_property_views.xml @@ -0,0 +1,15 @@ + + + Real Estate + estate.property + list,form + + + + + + + + + + \ No newline at end of file From bd729e471635a8b1681e53d0bf1dfc6a64335de0 Mon Sep 17 00:00:00 2001 From: jodh-odoo Date: Thu, 6 Feb 2025 19:09:46 +0530 Subject: [PATCH 2/2] [IMP] estate:performed changes suggested on previous pr draft, Created cutom form view and search view, seperated files for menuitems and views,actions. --- estate/__init__.py | 2 +- estate/__manifest__.py | 13 ++- estate/models/__init__.py | 2 +- estate/models/estate_property.py | 56 +++++----- estate/security/ir.model.access.csv | 2 +- estate/views/estate_property_basic_views.xml | 18 ---- estate/views/estate_property_menu_views.xml | 8 ++ estate/views/estate_property_views.xml | 103 ++++++++++++++++--- 8 files changed, 143 insertions(+), 61 deletions(-) delete mode 100644 estate/views/estate_property_basic_views.xml create mode 100644 estate/views/estate_property_menu_views.xml diff --git a/estate/__init__.py b/estate/__init__.py index 9a7e03eded..0650744f6b 100644 --- a/estate/__init__.py +++ b/estate/__init__.py @@ -1 +1 @@ -from . import models \ No newline at end of file +from . import models diff --git a/estate/__manifest__.py b/estate/__manifest__.py index fcf991e240..ad8441e191 100644 --- a/estate/__manifest__.py +++ b/estate/__manifest__.py @@ -1,13 +1,16 @@ { 'name':'Real Estate', - 'version':'0.0.0', + 'version':'1.0', 'sequence': 1, - 'application':True, - 'installable': True, 'author':'JODH', + 'descripotion':"""This Module provides real estate advertisements""", 'data':[ 'security/ir.model.access.csv', + + 'views/estate_property_menu_views.xml', 'views/estate_property_views.xml', - 'views/estate_property_basic_views.xml', ], -} \ No newline at end of file + 'application':True, + 'installable': True, + 'license':'LGPL-3', +} diff --git a/estate/models/__init__.py b/estate/models/__init__.py index 733e3143de..d232ebcf06 100644 --- a/estate/models/__init__.py +++ b/estate/models/__init__.py @@ -1 +1 @@ -from . import estate_property \ No newline at end of file +from . import estate_property diff --git a/estate/models/estate_property.py b/estate/models/estate_property.py index c54db5d933..cd40acd35b 100644 --- a/estate/models/estate_property.py +++ b/estate/models/estate_property.py @@ -1,30 +1,40 @@ from datetime import timedelta + from odoo import models, fields -class EstateProperty(models.Model): - _name ="estate.property" - _description="test description" +class EstateProperty(models.Model): + _name = "estate.property" + _description = "test description" - name=fields.Char(required=True,default="Unknown") - description=fields.Text() - postcode=fields.Char() - date_availability=fields.Date(copy=False,default=fields.Date.today()+timedelta(days=+90)) - expected_price=fields.Float(required=True) - 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='Garden Orientation', - selection=[('north','North'), ('south','South'), ('east','East'), ('west','West'),], - help="It is used to define the garden orientation" + name = fields.Char("Title", required=True, default="Unknown") + description = fields.Text("Description") + postcode = fields.Char("Postcode") + date_availability = fields.Date("Date availability", copy=False, default=fields.Date.today() + timedelta(days=+90)) + expected_price = fields.Float("Expected price", required=True) + selling_price = fields.Float("Selling price", readonly=True, copy=False) + bedrooms = fields.Integer("Bedrooms", default=2) + living_area = fields.Integer("Living area") + 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')], + string = "Garden Orientation", + help = "It is used to define the garden orientation" ) - state=fields.Selection( - default="new", - selection=[('new', 'New'), ('offerreceived', 'Offer Received'), ('offeraccepted', 'Offer Accepted'), ('sold', 'Sold'), ('cancelled', 'Cancelled')] + state = fields.Selection( + [('new', 'New'), + ('offerreceived', 'Offer Received'), + ('offeraccepted', 'Offer Accepted'), + ('sold', 'Sold'), + ('cancelled', 'Cancelled') + ], + string="State", + default = "new" ) - active=fields.Boolean(default=True) \ No newline at end of file + active = fields.Boolean("Active", default=True) diff --git a/estate/security/ir.model.access.csv b/estate/security/ir.model.access.csv index 0e11f47e58..29affc2d1b 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_property_basic_views.xml b/estate/views/estate_property_basic_views.xml deleted file mode 100644 index ff40cfee55..0000000000 --- a/estate/views/estate_property_basic_views.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - estate.property.list - estate.property - - - - - - - - - - - - - \ No newline at end of file diff --git a/estate/views/estate_property_menu_views.xml b/estate/views/estate_property_menu_views.xml new file mode 100644 index 0000000000..3acaebdffc --- /dev/null +++ b/estate/views/estate_property_menu_views.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/estate/views/estate_property_views.xml b/estate/views/estate_property_views.xml index ce506fd736..762bc24c98 100644 --- a/estate/views/estate_property_views.xml +++ b/estate/views/estate_property_views.xml @@ -1,15 +1,94 @@ + - - Real Estate - estate.property - list,form - + + + + view.estate.property.list + estate.property + + + + + + + + + + + + + + + view.estate.property.form + estate.property + +
+ + +

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
- - - - - - -
\ No newline at end of file + + + estate.property.form + estate.property + + + + + + + + + + + + + + + + + + + + + + + Real Estate + estate.property + list,form + + +