Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
078cbd1
[ADD] Estate: Added estate property module declaration and models
mohamedakhalil18 Jan 19, 2026
5fedcdf
[FIX] Estate: Added linting and formatting
mohamedakhalil18 Jan 20, 2026
814bf0d
[IMP] Estate: Added access control to my module
mohamedakhalil18 Jan 20, 2026
06130c7
[IMP] Estate: Added action and menus to enable user to add properties
mohamedakhalil18 Jan 20, 2026
6cd9489
[IMP] Estate: Added search, filtering, grouping functionalities and r…
mohamedakhalil18 Jan 20, 2026
196e7e3
[IMP] Estate: Added related fields to the estate module
mohamedakhalil18 Jan 21, 2026
fbb2a57
[IMP] Estate: Added computational methods, onchange, @api calls
mohamedakhalil18 Jan 21, 2026
aa670af
[IMP] Estate: Added action buttons to sell/cancel an apartment and ac…
mohamedakhalil18 Jan 21, 2026
35bf86d
[IMP] Estate: Constraints added to improve business logic
mohamedakhalil18 Jan 22, 2026
49b86b6
[IMP] Estate: Added stat_button, inline editting, and widgets
mohamedakhalil18 Jan 23, 2026
88b6b68
[FIX] Estate: Resolved reviewer comments on previous commits regardin…
mohamedakhalil18 Jan 23, 2026
918e85b
[IMP] Estate: Modified CRUD actions as well as display the apartments…
mohamedakhalil18 Jan 23, 2026
76d2025
[ADD] Estate_Account module was added in order to invoice sold proper…
mohamedakhalil18 Jan 26, 2026
bfb5972
[IMP] Added kanban views to the estate properties in improve overall …
mohamedakhalil18 Jan 26, 2026
d66b18a
[FIX] Refactored the directory and code to follow coding guidelines
mohamedakhalil18 Jan 26, 2026
f2f8323
[FIX] Editted the codebase to unblock the runbot merging
mohamedakhalil18 Jan 26, 2026
3c9f708
[FIX] Estate: Rearranged the views in estate directory and dependencies
mohamedakhalil18 Jan 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion awesome_clicker/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +0,0 @@
# -*- coding: utf-8 -*-
36 changes: 15 additions & 21 deletions awesome_clicker/__manifest__.py
Original file line number Diff line number Diff line change
@@ -1,29 +1,23 @@
# -*- coding: utf-8 -*-
{
'name': "Awesome Clicker",

'summary': """
"name": "Awesome Clicker",
"summary": """
Starting module for "Master the Odoo web framework, chapter 1: Build a Clicker game"
""",

'description': """
"description": """
Starting module for "Master the Odoo web framework, chapter 1: Build a Clicker game"
""",

'author': "Odoo",
'website': "https://www.odoo.com/",
'category': 'Tutorials',
'version': '0.1',
'application': True,
'installable': True,
'depends': ['base', 'web'],

'data': [],
'assets': {
'web.assets_backend': [
'awesome_clicker/static/src/**/*',
"author": "Odoo",
"website": "https://www.odoo.com/",
"category": "Tutorials",
"version": "0.1",
"application": True,
"installable": True,
"depends": ["base", "web"],
"data": [],
"assets": {
"web.assets_backend": [
"awesome_clicker/static/src/**/*",
],

},
'license': 'AGPL-3'
"license": "AGPL-3",
}
1 change: 0 additions & 1 deletion awesome_dashboard/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
# -*- coding: utf-8 -*-

from . import controllers
37 changes: 16 additions & 21 deletions awesome_dashboard/__manifest__.py
Original file line number Diff line number Diff line change
@@ -1,30 +1,25 @@
# -*- coding: utf-8 -*-
{
'name': "Awesome Dashboard",

'summary': """
"name": "Awesome Dashboard",
"summary": """
Starting module for "Discover the JS framework, chapter 2: Build a dashboard"
""",

'description': """
"description": """
Starting module for "Discover the JS framework, chapter 2: Build a dashboard"
""",

'author': "Odoo",
'website': "https://www.odoo.com/",
'category': 'Tutorials',
'version': '0.1',
'application': True,
'installable': True,
'depends': ['base', 'web', 'mail', 'crm'],

'data': [
'views/views.xml',
"author": "Odoo",
"website": "https://www.odoo.com/",
"category": "Tutorials",
"version": "0.1",
"application": True,
"installable": True,
"depends": ["base", "web", "mail", "crm"],
"data": [
"views/views.xml",
],
'assets': {
'web.assets_backend': [
'awesome_dashboard/static/src/**/*',
"assets": {
"web.assets_backend": [
"awesome_dashboard/static/src/**/*",
],
},
'license': 'AGPL-3'
"license": "AGPL-3",
}
3 changes: 1 addition & 2 deletions awesome_dashboard/controllers/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
# -*- coding: utf-8 -*-

from . import controllers
from . import controllers
24 changes: 11 additions & 13 deletions awesome_dashboard/controllers/controllers.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
# -*- coding: utf-8 -*-

import logging
import random

from odoo import http
from odoo.http import request

logger = logging.getLogger(__name__)


class AwesomeDashboard(http.Controller):
@http.route('/awesome_dashboard/statistics', type='jsonrpc', auth='user')
@http.route("/awesome_dashboard/statistics", type="jsonrpc", auth="user")
def get_statistics(self):
"""
Returns a dict of statistics about the orders:
Expand All @@ -22,15 +21,14 @@ def get_statistics(self):
"""

return {
'average_quantity': random.randint(4, 12),
'average_time': random.randint(4, 123),
'nb_cancelled_orders': random.randint(0, 50),
'nb_new_orders': random.randint(10, 200),
'orders_by_size': {
'm': random.randint(0, 150),
's': random.randint(0, 150),
'xl': random.randint(0, 150),
"average_quantity": random.randint(4, 12),
"average_time": random.randint(4, 123),
"nb_cancelled_orders": random.randint(0, 50),
"nb_new_orders": random.randint(10, 200),
"orders_by_size": {
"m": random.randint(0, 150),
"s": random.randint(0, 150),
"xl": random.randint(0, 150),
},
'total_amount': random.randint(100, 1000)
"total_amount": random.randint(100, 1000),
}

1 change: 0 additions & 1 deletion awesome_gallery/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
# -*- coding: utf-8 -*-
from . import models
33 changes: 15 additions & 18 deletions awesome_gallery/__manifest__.py
Original file line number Diff line number Diff line change
@@ -1,27 +1,24 @@
# -*- coding: utf-8 -*-
{
'name': "Gallery View",
'summary': """
"name": "Gallery View",
"summary": """
Starting module for "Master the Odoo web framework, chapter 3: Create a Gallery View"
""",

'description': """
"description": """
Starting module for "Master the Odoo web framework, chapter 3: Create a Gallery View"
""",

'version': '0.1',
'application': True,
'category': 'Tutorials',
'installable': True,
'depends': ['web', 'contacts'],
'data': [
'views/views.xml',
"version": "0.1",
"application": True,
"category": "Tutorials",
"installable": True,
"depends": ["web", "contacts"],
"data": [
"views/views.xml",
],
'assets': {
'web.assets_backend': [
'awesome_gallery/static/src/**/*',
"assets": {
"web.assets_backend": [
"awesome_gallery/static/src/**/*",
],
},
'author': 'Odoo S.A.',
'license': 'AGPL-3'
"author": "Odoo S.A.",
"license": "AGPL-3",
}
4 changes: 1 addition & 3 deletions awesome_gallery/models/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
# -*- coding: utf-8 -*-
# import filename_python_file_within_folder_or_subfolder
from . import ir_action
from . import ir_ui_view
from . import ir_action, ir_ui_view
9 changes: 4 additions & 5 deletions awesome_gallery/models/ir_action.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
# -*- coding: utf-8 -*-
from odoo import fields, models


class ActWindowView(models.Model):
_inherit = 'ir.actions.act_window.view'
_inherit = "ir.actions.act_window.view"

view_mode = fields.Selection(selection_add=[
('gallery', "Awesome Gallery")
], ondelete={'gallery': 'cascade'})
view_mode = fields.Selection(
selection_add=[("gallery", "Awesome Gallery")], ondelete={"gallery": "cascade"},
)
5 changes: 2 additions & 3 deletions awesome_gallery/models/ir_ui_view.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
# -*- coding: utf-8 -*-
from odoo import fields, models


class View(models.Model):
_inherit = 'ir.ui.view'
_inherit = "ir.ui.view"

type = fields.Selection(selection_add=[('gallery', "Awesome Gallery")])
type = fields.Selection(selection_add=[("gallery", "Awesome Gallery")])
1 change: 0 additions & 1 deletion awesome_kanban/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +0,0 @@
# -*- coding: utf-8 -*-
33 changes: 15 additions & 18 deletions awesome_kanban/__manifest__.py
Original file line number Diff line number Diff line change
@@ -1,27 +1,24 @@
# -*- coding: utf-8 -*-
{
'name': "Awesome Kanban",
'summary': """
"name": "Awesome Kanban",
"summary": """
Starting module for "Master the Odoo web framework, chapter 4: Customize a kanban view"
""",

'description': """
"description": """
Starting module for "Master the Odoo web framework, chapter 4: Customize a kanban view.
""",

'version': '0.1',
'application': True,
'category': 'Tutorials',
'installable': True,
'depends': ['web', 'crm'],
'data': [
'views/views.xml',
"version": "0.1",
"application": True,
"category": "Tutorials",
"installable": True,
"depends": ["web", "crm"],
"data": [
"views/views.xml",
],
'assets': {
'web.assets_backend': [
'awesome_kanban/static/src/**/*',
"assets": {
"web.assets_backend": [
"awesome_kanban/static/src/**/*",
],
},
'author': 'Odoo S.A.',
'license': 'AGPL-3'
"author": "Odoo S.A.",
"license": "AGPL-3",
}
2 changes: 1 addition & 1 deletion awesome_kanban/static/src/awesome_kanban_view.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
// TODO: Define here your AwesomeKanban view
// Todo: Define here your AwesomeKanban view
3 changes: 1 addition & 2 deletions awesome_owl/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
# -*- coding: utf-8 -*-

from . import controllers
from . import controllers
54 changes: 24 additions & 30 deletions awesome_owl/__manifest__.py
Original file line number Diff line number Diff line change
@@ -1,43 +1,37 @@
# -*- coding: utf-8 -*-
{
'name': "Awesome Owl",

'summary': """
"name": "Awesome Owl",
"summary": """
Starting module for "Discover the JS framework, chapter 1: Owl components"
""",

'description': """
"description": """
Starting module for "Discover the JS framework, chapter 1: Owl components"
""",

'author': "Odoo",
'website': "https://www.odoo.com",

"author": "Odoo",
"website": "https://www.odoo.com",
# Categories can be used to filter modules in modules listing
# Check https://github.com/odoo/odoo/blob/15.0/odoo/addons/base/data/ir_module_category_data.xml
# for the full list
'category': 'Tutorials',
'version': '0.1',

"category": "Tutorials",
"version": "0.1",
# any module necessary for this one to work correctly
'depends': ['base', 'web'],
'application': True,
'installable': True,
'data': [
'views/templates.xml',
"depends": ["base", "web"],
"application": True,
"installable": True,
"data": [
"views/templates.xml",
],
'assets': {
'awesome_owl.assets_playground': [
('include', 'web._assets_helpers'),
('include', 'web._assets_backend_helpers'),
'web/static/src/scss/pre_variables.scss',
'web/static/lib/bootstrap/scss/_variables.scss',
'web/static/lib/bootstrap/scss/_maps.scss',
('include', 'web._assets_bootstrap'),
('include', 'web._assets_core'),
'web/static/src/libs/fontawesome/css/font-awesome.css',
'awesome_owl/static/src/**/*',
"assets": {
"awesome_owl.assets_playground": [
("include", "web._assets_helpers"),
("include", "web._assets_backend_helpers"),
"web/static/src/scss/pre_variables.scss",
"web/static/lib/bootstrap/scss/_variables.scss",
"web/static/lib/bootstrap/scss/_maps.scss",
("include", "web._assets_bootstrap"),
("include", "web._assets_core"),
"web/static/src/libs/fontawesome/css/font-awesome.css",
"awesome_owl/static/src/**/*",
],
},
'license': 'AGPL-3'
"license": "AGPL-3",
}
3 changes: 1 addition & 2 deletions awesome_owl/controllers/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
# -*- coding: utf-8 -*-

from . import controllers
from . import controllers

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as above

7 changes: 4 additions & 3 deletions awesome_owl/controllers/controllers.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
from odoo import http
from odoo.http import request, route
from odoo.http import request


class OwlPlayground(http.Controller):
@http.route(['/awesome_owl'], type='http', auth='public')
@http.route(["/awesome_owl"], type="http", auth="public")
def show_playground(self):
"""
Renders the owl playground page
"""
return request.render('awesome_owl.playground')
return request.render("awesome_owl.playground")
1 change: 1 addition & 0 deletions estate/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
20 changes: 20 additions & 0 deletions estate/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"name": "Estate Advirtisements",
"version": "1.0",
"summary": "Track advertisements added for real estate and allow selling them",
"website": "https://www.odoo.com/app/estate",
"depends": ["base"],
"application": True,
"installable": True,
"author": "moali",
"license": "LGPL-3",
"data": [
"security/ir.model.access.csv",
"views/estate_property_views.xml",
"views/estate_property_tags_views.xml",
"views/estate_property_types_views.xml",
"views/estate_property_offers_views.xml",
"views/estate_res_users_views.xml",
"views/menus.xml",
],
}
1 change: 1 addition & 0 deletions estate/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import estate_property, property_offer, property_tag, property_type, res_user
Loading