diff --git a/awesome_owl/__init__.py b/awesome_owl/__init__.py
new file mode 100644
index 0000000..457bae2
--- /dev/null
+++ b/awesome_owl/__init__.py
@@ -0,0 +1,3 @@
+# -*- coding: utf-8 -*-
+
+from . import controllers
\ No newline at end of file
diff --git a/awesome_owl/__manifest__,.py b/awesome_owl/__manifest__,.py
new file mode 100644
index 0000000..d8897ac
--- /dev/null
+++ b/awesome_owl/__manifest__,.py
@@ -0,0 +1,42 @@
+# -*- coding: utf-8 -*-
+{
+ 'name': "Awesome Owl",
+
+ 'summary': """
+ Starting module for "Discover the JS framework, chapter 1: Owl components"
+ """,
+
+ 'description': """
+ Starting module for "Discover the JS framework, chapter 1: Owl components"
+ """,
+
+ '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',
+
+ # any module necessary for this one to work correctly
+ 'depends': ['base', 'web'],
+ 'application': True,
+ 'installable': True,
+ 'data': [
+ 'views/templates.xml',
+ ],
+ 'assets': {
+ 'awesome_owl.assets_playground': [
+ ('include', 'web._assets_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'
+}
\ No newline at end of file
diff --git a/awesome_owl/controllers/__init__.py b/awesome_owl/controllers/__init__.py
new file mode 100644
index 0000000..457bae2
--- /dev/null
+++ b/awesome_owl/controllers/__init__.py
@@ -0,0 +1,3 @@
+# -*- coding: utf-8 -*-
+
+from . import controllers
\ No newline at end of file
diff --git a/awesome_owl/controllers/controllers.py b/awesome_owl/controllers/controllers.py
new file mode 100644
index 0000000..86fec58
--- /dev/null
+++ b/awesome_owl/controllers/controllers.py
@@ -0,0 +1,10 @@
+from odoo import http
+from odoo.http import request, route
+
+class OwlPlayground(http.Controller):
+ @http.route(['/awesome_owl'], type='http', auth='public')
+ def show_playground(self):
+ """
+ Renders the owl playground page
+ """
+ return request.render('awesome_owl.playground')
\ No newline at end of file
diff --git a/awesome_owl/static/src/main.js b/awesome_owl/static/src/main.js
new file mode 100644
index 0000000..9acdf4e
--- /dev/null
+++ b/awesome_owl/static/src/main.js
@@ -0,0 +1,11 @@
+import { whenReady } from "@odoo/owl";
+import { mountComponent } from "@web/env";
+import { Playground } from "./playground";
+
+const config = {
+ dev: true,
+ name: "Owl Tutorial",
+};
+
+// Mount the Playground component when the document.body is ready
+whenReady(() => mountComponent(Playground, document.body, config));
\ No newline at end of file
diff --git a/awesome_owl/static/src/playground.js b/awesome_owl/static/src/playground.js
new file mode 100644
index 0000000..e7b9076
--- /dev/null
+++ b/awesome_owl/static/src/playground.js
@@ -0,0 +1,7 @@
+/** @odoo-module **/
+
+import { Component } from "@odoo/owl";
+
+export class Playground extends Component {
+ static template = "awesome_owl.playground";
+}
\ No newline at end of file
diff --git a/awesome_owl/static/src/playground.xml b/awesome_owl/static/src/playground.xml
new file mode 100644
index 0000000..fa75b4a
--- /dev/null
+++ b/awesome_owl/static/src/playground.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ hello world
+
+
+
+
\ No newline at end of file
diff --git a/awesome_owl/views/templates.xml b/awesome_owl/views/templates.xml
new file mode 100644
index 0000000..f696007
--- /dev/null
+++ b/awesome_owl/views/templates.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/todo_app/__manifest__.py b/todo_app/__manifest__.py
index 9742680..67c8846 100644
--- a/todo_app/__manifest__.py
+++ b/todo_app/__manifest__.py
@@ -20,7 +20,8 @@
# any module necessary for this one to work correctly
'depends': ['base','theme_common'],
-
+ 'application': True,
+ 'installable': True,
# always loaded
'data': [
'security/ir.model.access.csv',
@@ -29,9 +30,6 @@
'views/templates.xml',
],
'assets': {
- 'web.assets_backend': [
- 'web/static/src/xml/**/*',
- ],
'web.assets_common': [
'web/static/lib/bootstrap/**/*',
],
@@ -54,4 +52,5 @@
'todo_app/static/src/todo_app/**/*',
],
},
+ 'license': 'AGPL-3'
}
\ No newline at end of file