Skip to content

Commit e9d5840

Browse files
committed
[ADD] base: create a new module for real estate management
1 parent fbf9ee9 commit e9d5840

File tree

8 files changed

+90
-0
lines changed

8 files changed

+90
-0
lines changed

estate/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . import models

estate/__manifest__.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
'name': 'Real estate',
3+
'version': '0.1',
4+
'depends': ['base'],
5+
'author': 'odoo SA',
6+
'category': 'Finance',
7+
'description': """
8+
Empty real estate app for tutorial purposes
9+
""",
10+
'application': 'True',
11+
'data': [
12+
'security/ir.model.access.csv',
13+
'view/estate_property_views.xml',
14+
'view/estate_menus.xml',
15+
]
16+
}

estate/models/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . import estate_property

estate/models/estate_property.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
from odoo import fields, models
2+
3+
4+
class TestModel(models.Model):
5+
_name = 'estate.property'
6+
_description = 'It allows to manage your properties'
7+
name = fields.Char(required=True, default='Unknown')
8+
last_seen = fields.Datetime('Last Seen', default=fields.Datetime.now)
9+
description = fields.Char(required=True)
10+
postcode = fields.Char()
11+
date_availability = fields.Date(
12+
default=fields.Date.add(fields.Date.today(), days=30), copy=False
13+
)
14+
active = fields.Boolean(default=True)
15+
expected_price = fields.Float(required=True)
16+
selling_price = fields.Float(readonly=True, copy=False)
17+
bedrooms = fields.Integer(default=2)
18+
living_area = fields.Integer()
19+
facades = fields.Integer()
20+
garage = fields.Boolean()
21+
garden = fields.Boolean()
22+
garden_area = fields.Integer()
23+
garden_orientation = fields.Selection(
24+
string='Orientation',
25+
selection=[('north', 'North'), ('south', 'South'), ('east', 'East'), ('west', 'West')],
26+
)
27+
state = fields.Selection(
28+
string='State',
29+
selection=[
30+
('new', 'New'),
31+
('offer received', 'Offer Received'),
32+
('offer accepted', 'Offer Accepted'),
33+
('sold', 'Sold'),
34+
('cancelled', 'Cancelled'),
35+
],
36+
default='new',
37+
readonly=True,
38+
)

estate/pyproject.toml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
[tool.ruff]
2+
line-length = 100
3+
indent-width = 4
4+
target-version = "py312"
5+
6+
[tool.ruff.lint]
7+
select = ["E", "F", "Q", "I"]
8+
ignore = ["F401"]
9+
10+
11+
[tool.ruff.lint.flake8-quotes]
12+
inline-quotes = "single"
13+
multiline-quotes = "double"
14+
docstring-quotes = "double"
15+
16+
[tool.ruff.format]
17+
quote-style = "single"

estate/security/ir.model.access.csv

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
2+
access_estate_property,access_estate_property,model_estate_property,base.group_user,1,1,1,1

estate/view/estate_menus.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<odoo>
2+
<menuitem id='test_menu_root' name='Estate'>
3+
<menuitem id='test_first_level_menu' name='First Level'>
4+
<menuitem id='test_model_menu_action' action='action_test_action'/>
5+
</menuitem>
6+
</menuitem>
7+
</odoo>

estate/view/estate_property_views.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
2+
<odoo>
3+
<record id='action_test_action' model='ir.actions.act_window'>
4+
<field name='name'>action_test_action</field>
5+
<field name='res_model'>estate.property</field>
6+
<field name='view_mode'>list,form</field>
7+
</record>
8+
</odoo>

0 commit comments

Comments
 (0)