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..ad4437dfa3e --- /dev/null +++ b/estate/__manifest__.py @@ -0,0 +1,21 @@ + +{ + "name": "real state", + "description": "This is my first module estate", + "version": "1.0", + "depends": ["base"], + "data": [ + "security/ir.model.access.csv", + "views/estate_property_views.xml", + "views/estate_property_type_view.xml", + "views/estate_menu.xml", + ], + "demo": [ + "demo/demo_estate_property.xml", + ], + "application": True, + "installable": True, + "author": "Gautam", + "license": "LGPL-3", + "auto_install": True, +} diff --git a/estate/demo/demo_estate_property.xml b/estate/demo/demo_estate_property.xml new file mode 100644 index 00000000000..3a51d55f9ed --- /dev/null +++ b/estate/demo/demo_estate_property.xml @@ -0,0 +1,145 @@ + + + + + estate1 + this is estate property description + 382007 + + 400 + 800 + 3 + 2 + 2 + True + True + 200 + + True + New + + + + + + estate2 + this is estate 2 property description + 382007 + + 4000 + 8000 + 3 + 2 + 2 + True + True + 200 + + True + Sold + + + + + estate2 + this is estate 2 property description + 382007 + + 4000 + 8000 + 3 + 2 + 2 + True + True + 200 + + True + New + + + + + estate2 + this is estate 2 property description + 382007 + + 4000 + 8000 + 3 + 2 + 2 + True + True + 200 + + True + Sold + + + + estate2 + this is estate 2 property description + 382007 + + 4000 + 8000 + 3 + 2 + 2 + True + True + 200 + + True + New + + + + estate2 + this is estate 2 property description + 382007 + + 4000 + 8000 + 3 + 2 + 2 + True + True + 200 + + True + New + + + + + estate2 + this is estate 2 property description + 382007 + + 4000 + 8000 + 3 + 2 + 2 + True + True + 200 + + True + Sold + + + + + + \ No newline at end of file diff --git a/estate/models/__init__.py b/estate/models/__init__.py new file mode 100644 index 00000000000..40092a2d810 --- /dev/null +++ b/estate/models/__init__.py @@ -0,0 +1,2 @@ +from . import estate_property +from . import estate_property_type diff --git a/estate/models/estate_property.py b/estate/models/estate_property.py new file mode 100644 index 00000000000..ee8e7badc28 --- /dev/null +++ b/estate/models/estate_property.py @@ -0,0 +1,45 @@ +from odoo import fields, models +import traceback +from datetime import date +from dateutil.relativedelta import relativedelta + + +class EstateProperty(models.Model): + traceback.print_stack() + _name = "estate.property" + _description = "Real Estate Property" + + def check_availability(self): + return (date.today() + relativedelta(months=3)) + + name = fields.Char(required=True) + description = fields.Text() + postcode = fields.Char() + date_availability = fields.Date(copy=False, default=check_availability) + 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( + [ + ("north", "North"), + ("south", "South"), + ("east", "East"), + ("west", "West"), + ] + ) + active = fields.Boolean("Active", default=True) + state = fields.Selection( + [ + ("New", "New"), + ("Offer Received", "Offer Received"), + ("Offer Accepted", "Offer Accepted"), + ("Sold", "Sold"), + ("Cancelled", "Cancelled"), + ], + default="New", + ) diff --git a/estate/models/estate_property_type.py b/estate/models/estate_property_type.py new file mode 100644 index 00000000000..d0f5e640a15 --- /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 = "Property Type" + + name = fields.Char(string="Type", required=True) diff --git a/estate/security/ir.model.access.csv b/estate/security/ir.model.access.csv new file mode 100644 index 00000000000..a7bf1014aa2 --- /dev/null +++ b/estate/security/ir.model.access.csv @@ -0,0 +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 +acess_estate_property_type,aceess_estate_property_type,model_estate_property_type,base.group_user,1,1,1,1 \ No newline at end of file diff --git a/estate/views/estate_menu.xml b/estate/views/estate_menu.xml new file mode 100644 index 00000000000..f8ca8721a5a --- /dev/null +++ b/estate/views/estate_menu.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + diff --git a/estate/views/estate_property_type_view.xml b/estate/views/estate_property_type_view.xml new file mode 100644 index 00000000000..f5905ac2d58 --- /dev/null +++ b/estate/views/estate_property_type_view.xml @@ -0,0 +1,38 @@ + + + + Estate Property Type + estate.property.type + list,form + + + + Estate Property Form View + estate.property.type + +
+ + +
+
+ + + Estate Property List View + estate.property.type + + + + + + + + + Estate Property Type Search 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 new file mode 100644 index 00000000000..2a270370b8f --- /dev/null +++ b/estate/views/estate_property_views.xml @@ -0,0 +1,93 @@ + + + + Estate Property + estate.property + list,form + + + + Estate property list + estate.property + + + + + + + + + + + + + + + + + + + + + + + + + + Estate property from view + estate.property + +
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + search.view + estate.property + + + + + + + + + + + + + + +