diff --git a/website_airproof/__init__.py b/__init__.py similarity index 100% rename from website_airproof/__init__.py rename to __init__.py diff --git a/addons/__init__.py b/addons/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/awesome_clicker/__init__.py b/addons/awesome_clicker/__init__.py similarity index 100% rename from awesome_clicker/__init__.py rename to addons/awesome_clicker/__init__.py diff --git a/awesome_clicker/__manifest__.py b/addons/awesome_clicker/__manifest__.py similarity index 100% rename from awesome_clicker/__manifest__.py rename to addons/awesome_clicker/__manifest__.py diff --git a/addons/awesome_dashboard/__init__.py b/addons/awesome_dashboard/__init__.py new file mode 100644 index 00000000000..aa4d0fd63a9 --- /dev/null +++ b/addons/awesome_dashboard/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- + +from . import controllers +from . import models diff --git a/awesome_dashboard/__manifest__.py b/addons/awesome_dashboard/__manifest__.py similarity index 77% rename from awesome_dashboard/__manifest__.py rename to addons/awesome_dashboard/__manifest__.py index a1cd72893d7..ef049a5676d 100644 --- a/awesome_dashboard/__manifest__.py +++ b/addons/awesome_dashboard/__manifest__.py @@ -23,7 +23,10 @@ ], 'assets': { 'web.assets_backend': [ - 'awesome_dashboard/static/src/**/*', + 'awesome_dashboard/static/src/dashboard_action.js', + ], + 'awesome_dashboard.assets_dashboard': [ + 'awesome_dashboard/static/src/dashboard/**/*', ], }, 'license': 'AGPL-3' diff --git a/awesome_dashboard/__init__.py b/addons/awesome_dashboard/controllers/__init__.py similarity index 100% rename from awesome_dashboard/__init__.py rename to addons/awesome_dashboard/controllers/__init__.py diff --git a/awesome_dashboard/controllers/controllers.py b/addons/awesome_dashboard/controllers/controllers.py similarity index 80% rename from awesome_dashboard/controllers/controllers.py rename to addons/awesome_dashboard/controllers/controllers.py index 05977d3bd7f..576b9f9570c 100644 --- a/awesome_dashboard/controllers/controllers.py +++ b/addons/awesome_dashboard/controllers/controllers.py @@ -8,6 +8,7 @@ logger = logging.getLogger(__name__) + class AwesomeDashboard(http.Controller): @http.route('/awesome_dashboard/statistics', type='jsonrpc', auth='user') def get_statistics(self): @@ -34,3 +35,10 @@ def get_statistics(self): 'total_amount': random.randint(100, 1000) } + @http.route('/awesome_dashboard/save_config', type='jsonrpc', auth='user') + def save_config(self, config): + request.env.user.dashboard_config = config + + @http.route('/awesome_dashboard/load_config', type='jsonrpc', auth='user') + def load_config(self): + return request.env.user.dashboard_config diff --git a/addons/awesome_dashboard/models/__init__.py b/addons/awesome_dashboard/models/__init__.py new file mode 100644 index 00000000000..8835165330f --- /dev/null +++ b/addons/awesome_dashboard/models/__init__.py @@ -0,0 +1 @@ +from . import res_users diff --git a/addons/awesome_dashboard/models/res_users.py b/addons/awesome_dashboard/models/res_users.py new file mode 100644 index 00000000000..f9e7bfd5178 --- /dev/null +++ b/addons/awesome_dashboard/models/res_users.py @@ -0,0 +1,7 @@ +from odoo import models, fields + + +class ResUsers(models.Model): + _inherit = 'res.users' + + dashboard_config = fields.Char(string='Dashboard Configuration', default='[]') diff --git a/addons/awesome_dashboard/static/src/dashboard/charts/pie_chart/pie_chart.js b/addons/awesome_dashboard/static/src/dashboard/charts/pie_chart/pie_chart.js new file mode 100644 index 00000000000..c3054ee240a --- /dev/null +++ b/addons/awesome_dashboard/static/src/dashboard/charts/pie_chart/pie_chart.js @@ -0,0 +1,30 @@ +import {Component, onWillStart, onMounted, useRef} from "@odoo/owl"; +import {loadJS} from "@web/core/assets"; + + +export class PieChart extends Component { + static template = "awesome_dashboard.pie_chart"; + static props = { + data: Object, + } + + setup() { + this.canvasRef = useRef("canvas"); + + onWillStart(async () => { + await loadJS("/web/static/lib/Chart/Chart.js") + }) + + onMounted(() => { + new Chart(this.canvasRef.el, { + type: "pie", + data: { + labels: Object.keys(this.props.data), + datasets: [{ + data: Object.values(this.props.data), + }] + }, + }) + }) + } +} diff --git a/awesome_dashboard/static/src/dashboard.xml b/addons/awesome_dashboard/static/src/dashboard/charts/pie_chart/pie_chart.xml similarity index 55% rename from awesome_dashboard/static/src/dashboard.xml rename to addons/awesome_dashboard/static/src/dashboard/charts/pie_chart/pie_chart.xml index 1a2ac9a2fed..cf6298c4d6e 100644 --- a/awesome_dashboard/static/src/dashboard.xml +++ b/addons/awesome_dashboard/static/src/dashboard/charts/pie_chart/pie_chart.xml @@ -1,8 +1,7 @@ - - - hello dashboard + + diff --git a/addons/awesome_dashboard/static/src/dashboard/charts/pie_chart_card/pie_chart_card.js b/addons/awesome_dashboard/static/src/dashboard/charts/pie_chart_card/pie_chart_card.js new file mode 100644 index 00000000000..f76913b1308 --- /dev/null +++ b/addons/awesome_dashboard/static/src/dashboard/charts/pie_chart_card/pie_chart_card.js @@ -0,0 +1,11 @@ +import {Component} from "@odoo/owl"; +import {PieChart} from "../pie_chart/pie_chart"; + +export class PieChartCard extends Component { + static template = "awesome_dashboard.pie_chart_card"; + static props = { + title: {type: String, optional: true}, + data: {type: Object}, + }; + static components = {PieChart} +} diff --git a/addons/awesome_dashboard/static/src/dashboard/charts/pie_chart_card/pie_chart_card.xml b/addons/awesome_dashboard/static/src/dashboard/charts/pie_chart_card/pie_chart_card.xml new file mode 100644 index 00000000000..555cacba26d --- /dev/null +++ b/addons/awesome_dashboard/static/src/dashboard/charts/pie_chart_card/pie_chart_card.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/addons/awesome_dashboard/static/src/dashboard/config_dialog/config_dialog.js b/addons/awesome_dashboard/static/src/dashboard/config_dialog/config_dialog.js new file mode 100644 index 00000000000..6da0cdefbae --- /dev/null +++ b/addons/awesome_dashboard/static/src/dashboard/config_dialog/config_dialog.js @@ -0,0 +1,36 @@ +import {Component, useState} from "@odoo/owl"; +import {Dialog} from "@web/core/dialog/dialog"; +import {rpc} from "@web/core/network/rpc"; + +export class ConfigDialog extends Component { + static template = "awesome_dashboard.config_dialog"; + static props = { + items: {type: Array}, + close: {type: Function}, + onApply: {type: Function}, + disabledItems: {type: Array}, + }; + static components = {Dialog} + + setup() { + this.state = useState({ + disabledItems: [...this.props.disabledItems] + }) + } + + async apply() { + await rpc("/awesome_dashboard/save_config", { + config: JSON.stringify(this.state.disabledItems) + }); + this.props.onApply(this.state.disabledItems); + this.props.close(); + } + + toggleItem(id, isChecked) { + if (isChecked) { + this.state.disabledItems = this.state.disabledItems.filter(i => i !== id); + } else { + this.state.disabledItems = [...this.state.disabledItems, id]; + } + } +} diff --git a/addons/awesome_dashboard/static/src/dashboard/config_dialog/config_dialog.xml b/addons/awesome_dashboard/static/src/dashboard/config_dialog/config_dialog.xml new file mode 100644 index 00000000000..3078019890c --- /dev/null +++ b/addons/awesome_dashboard/static/src/dashboard/config_dialog/config_dialog.xml @@ -0,0 +1,21 @@ + + + + + Which cards do you wish to see? + +
+ + +
+
+ + + +
+
+
diff --git a/addons/awesome_dashboard/static/src/dashboard/dashboard/dashboard.js b/addons/awesome_dashboard/static/src/dashboard/dashboard/dashboard.js new file mode 100644 index 00000000000..5ea33b54438 --- /dev/null +++ b/addons/awesome_dashboard/static/src/dashboard/dashboard/dashboard.js @@ -0,0 +1,62 @@ +import {Component, useState, onWillStart} from "@odoo/owl"; +import {registry} from "@web/core/registry"; +import {Layout} from "@web/search/layout"; +import {useService} from "@web/core/utils/hooks"; +import {DashboardItem} from "../dashboard_item/dashboard_item"; +import {PieChart} from "../charts/pie_chart/pie_chart"; +import "./dashboard_items"; +import {PieChartCard} from "../charts/pie_chart_card/pie_chart_card"; +import {NumberCard} from "../number_card/number_card"; +import {ConfigDialog} from "../config_dialog/config_dialog"; +import {rpc} from "@web/core/network/rpc"; + + +class AwesomeDashboard extends Component { + static template = "awesome_dashboard.AwesomeDashboard"; + static components = {Layout, DashboardItem, PieChart, PieChartCard, NumberCard, ConfigDialog}; + + + setup() { + this.action = useService("action"); + const {statistics} = useService("awesome_dashboard.statistics"); + this.statistics = useState(statistics); + this.items = registry.category("awesome_dashboard").getAll(); + this.dialog = useService("dialog") + this.state = useState({disabledItems: []}) + + onWillStart(async () => { + const config = await rpc("/awesome_dashboard/load_config"); + this.state.disabledItems = JSON.parse(config || "[]"); + }); + + } + + openCustomerView() { + this.action.doAction("base.action_partner_form"); + } + + openLeads() { + this.action.doAction({ + type: "ir.actions.act_window", + res_model: "crm.lead", + views: [[false, "list"], [false, "form"]], + name: "All leads", + }); + } + + get visibleItems() { + return this.items.filter(item => !this.state.disabledItems.includes(item.description)); + } + + openSettings() { + this.dialog.add(ConfigDialog, { + items: this.items, + disabledItems: this.state.disabledItems, + onApply: (disabledItems) => { + this.state.disabledItems = disabledItems; + } + }); + } +} + +registry.category("lazy_components").add("AwesomeDashboard", AwesomeDashboard); diff --git a/addons/awesome_dashboard/static/src/dashboard/dashboard/dashboard.scss b/addons/awesome_dashboard/static/src/dashboard/dashboard/dashboard.scss new file mode 100644 index 00000000000..26a4df52a33 --- /dev/null +++ b/addons/awesome_dashboard/static/src/dashboard/dashboard/dashboard.scss @@ -0,0 +1,9 @@ +.o_dashboard { + background-color: grey; + + @media (max-width: 768px) { + .card { + width: 100% !important; + } + } +} diff --git a/addons/awesome_dashboard/static/src/dashboard/dashboard/dashboard.xml b/addons/awesome_dashboard/static/src/dashboard/dashboard/dashboard.xml new file mode 100644 index 00000000000..5a0f53839d3 --- /dev/null +++ b/addons/awesome_dashboard/static/src/dashboard/dashboard/dashboard.xml @@ -0,0 +1,20 @@ + + + + + + + + + +
+ + + + + + +
+
+
+
diff --git a/addons/awesome_dashboard/static/src/dashboard/dashboard/dashboard_items.js b/addons/awesome_dashboard/static/src/dashboard/dashboard/dashboard_items.js new file mode 100644 index 00000000000..42a88854560 --- /dev/null +++ b/addons/awesome_dashboard/static/src/dashboard/dashboard/dashboard_items.js @@ -0,0 +1,57 @@ +import {NumberCard} from "../number_card/number_card"; +import {PieChartCard} from "../charts/pie_chart_card/pie_chart_card"; +import {registry} from "@web/core/registry"; +import {_t} from "@web/core/l10n/translation"; + + +registry.category("awesome_dashboard").add("average_quantity", { + description: _t("Average amount of t-shirt by order this month"), + Component: NumberCard, + size: 1.5, + props: (data) => ({ + title: _t("Average amount of t-shirt by order this month"), + value: data.average_quantity, + }) +}); +registry.category("awesome_dashboard").add("average_time", { + description: _t("Average time for an order to go from 'new' to 'sent' or 'cancelled'"), + Component: NumberCard, + size: 2, + props: (data) => ({ + title: _t("Average time for an order to go from 'new' to 'sent' or 'cancelled'"), + value: data.average_time, + }) +}); +registry.category("awesome_dashboard").add("nb_new_orders", { + description: _t("Number of new orders this month"), + Component: NumberCard, + props: (data) => ({ + title: _t("Number of new orders this month"), + value: data.nb_new_orders, + }) +}); +registry.category("awesome_dashboard").add("nb_cancelled_orders", { + description: _t("Number of cancelled orders this month"), + Component: NumberCard, + props: (data) => ({ + title: _t("Number of cancelled orders this month"), + value: data.nb_cancelled_orders, + }) +}); +registry.category("awesome_dashboard").add("total_amount", { + description: _t("Total amount of new orders this month"), + Component: NumberCard, + props: (data) => ({ + title: _t("Total amount of new orders this month"), + value: data.total_amount, + }) +}); +registry.category("awesome_dashboard").add("orders_by_size", { + id: "orders_by_size", + description: _t("Shirt orders by size"), + Component: PieChartCard, + props: (data) => ({ + data: data.orders_by_size, + title: _t("Shirt orders by size"), + }) +}); diff --git a/addons/awesome_dashboard/static/src/dashboard/dashboard_item/dashboard_item.js b/addons/awesome_dashboard/static/src/dashboard/dashboard_item/dashboard_item.js new file mode 100644 index 00000000000..e8a409954d4 --- /dev/null +++ b/addons/awesome_dashboard/static/src/dashboard/dashboard_item/dashboard_item.js @@ -0,0 +1,12 @@ +import {Component} from "@odoo/owl" +import {NumberCard} from "../number_card/number_card"; + + +export class DashboardItem extends Component { + static template = "awesome_dashboard.dashboard_item"; + static props = { + size: {type: Number, optional: true, default: 1}, + slots: {type: Object, optional: true, default: null}, + }; + static components = {NumberCard}; +} diff --git a/addons/awesome_dashboard/static/src/dashboard/dashboard_item/dashboard_item.xml b/addons/awesome_dashboard/static/src/dashboard/dashboard_item/dashboard_item.xml new file mode 100644 index 00000000000..2f8dc36fb64 --- /dev/null +++ b/addons/awesome_dashboard/static/src/dashboard/dashboard_item/dashboard_item.xml @@ -0,0 +1,13 @@ + + + + +
+
+ + +
+
+
+ +
diff --git a/addons/awesome_dashboard/static/src/dashboard/number_card/number_card.js b/addons/awesome_dashboard/static/src/dashboard/number_card/number_card.js new file mode 100644 index 00000000000..eaea0a82f56 --- /dev/null +++ b/addons/awesome_dashboard/static/src/dashboard/number_card/number_card.js @@ -0,0 +1,9 @@ +import {Component} from "@odoo/owl"; + +export class NumberCard extends Component { + static template = "awesome_dashboard.number_card"; + static props = { + title: {type: String}, + value: {type: Number}, + }; +} diff --git a/addons/awesome_dashboard/static/src/dashboard/number_card/number_card.xml b/addons/awesome_dashboard/static/src/dashboard/number_card/number_card.xml new file mode 100644 index 00000000000..e7870cf7e55 --- /dev/null +++ b/addons/awesome_dashboard/static/src/dashboard/number_card/number_card.xml @@ -0,0 +1,9 @@ + + + + +

+ +

+
+
diff --git a/addons/awesome_dashboard/static/src/dashboard/services/statistics_service.js b/addons/awesome_dashboard/static/src/dashboard/services/statistics_service.js new file mode 100644 index 00000000000..22184c4a714 --- /dev/null +++ b/addons/awesome_dashboard/static/src/dashboard/services/statistics_service.js @@ -0,0 +1,22 @@ +import {registry} from "@web/core/registry"; +import {rpc} from "@web/core/network/rpc"; +import {reactive} from "@odoo/owl" + + +const statisticsService = { + start() { + const statistics = reactive({}); + + async function loadStatistics() { + const data = await rpc("/awesome_dashboard/statistics"); + Object.assign(statistics, data) + } + + loadStatistics(); + setInterval(loadStatistics, 10000); + + return {statistics}; + } +} + +registry.category("services").add("awesome_dashboard.statistics", statisticsService); diff --git a/addons/awesome_dashboard/static/src/dashboard_action.js b/addons/awesome_dashboard/static/src/dashboard_action.js new file mode 100644 index 00000000000..5e8a4e3751c --- /dev/null +++ b/addons/awesome_dashboard/static/src/dashboard_action.js @@ -0,0 +1,10 @@ +import {Component, xml} from "@odoo/owl"; +import {registry} from "@web/core/registry"; +import {LazyComponent} from "@web/core/assets"; + +class DashboardAction extends Component { + static components = {LazyComponent}; + static template = xml``; +} + +registry.category("actions").add("awesome_dashboard.dashboard", DashboardAction); diff --git a/awesome_dashboard/views/views.xml b/addons/awesome_dashboard/views/views.xml similarity index 100% rename from awesome_dashboard/views/views.xml rename to addons/awesome_dashboard/views/views.xml diff --git a/awesome_gallery/__init__.py b/addons/awesome_gallery/__init__.py similarity index 100% rename from awesome_gallery/__init__.py rename to addons/awesome_gallery/__init__.py diff --git a/awesome_gallery/__manifest__.py b/addons/awesome_gallery/__manifest__.py similarity index 100% rename from awesome_gallery/__manifest__.py rename to addons/awesome_gallery/__manifest__.py diff --git a/awesome_gallery/models/__init__.py b/addons/awesome_gallery/models/__init__.py similarity index 100% rename from awesome_gallery/models/__init__.py rename to addons/awesome_gallery/models/__init__.py diff --git a/awesome_gallery/models/ir_action.py b/addons/awesome_gallery/models/ir_action.py similarity index 100% rename from awesome_gallery/models/ir_action.py rename to addons/awesome_gallery/models/ir_action.py diff --git a/awesome_gallery/models/ir_ui_view.py b/addons/awesome_gallery/models/ir_ui_view.py similarity index 100% rename from awesome_gallery/models/ir_ui_view.py rename to addons/awesome_gallery/models/ir_ui_view.py diff --git a/awesome_gallery/views/views.xml b/addons/awesome_gallery/views/views.xml similarity index 100% rename from awesome_gallery/views/views.xml rename to addons/awesome_gallery/views/views.xml diff --git a/awesome_kanban/__init__.py b/addons/awesome_kanban/__init__.py similarity index 100% rename from awesome_kanban/__init__.py rename to addons/awesome_kanban/__init__.py diff --git a/awesome_kanban/__manifest__.py b/addons/awesome_kanban/__manifest__.py similarity index 100% rename from awesome_kanban/__manifest__.py rename to addons/awesome_kanban/__manifest__.py diff --git a/awesome_kanban/static/src/awesome_kanban_view.js b/addons/awesome_kanban/static/src/awesome_kanban_view.js similarity index 100% rename from awesome_kanban/static/src/awesome_kanban_view.js rename to addons/awesome_kanban/static/src/awesome_kanban_view.js diff --git a/awesome_kanban/views/views.xml b/addons/awesome_kanban/views/views.xml similarity index 100% rename from awesome_kanban/views/views.xml rename to addons/awesome_kanban/views/views.xml diff --git a/addons/awesome_owl/__init__.py b/addons/awesome_owl/__init__.py new file mode 100644 index 00000000000..b0f26a9a602 --- /dev/null +++ b/addons/awesome_owl/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import controllers diff --git a/awesome_owl/__manifest__.py b/addons/awesome_owl/__manifest__.py similarity index 100% rename from awesome_owl/__manifest__.py rename to addons/awesome_owl/__manifest__.py diff --git a/addons/awesome_owl/controllers/__init__.py b/addons/awesome_owl/controllers/__init__.py new file mode 100644 index 00000000000..b0f26a9a602 --- /dev/null +++ b/addons/awesome_owl/controllers/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import controllers diff --git a/awesome_owl/controllers/controllers.py b/addons/awesome_owl/controllers/controllers.py similarity index 100% rename from awesome_owl/controllers/controllers.py rename to addons/awesome_owl/controllers/controllers.py diff --git a/addons/awesome_owl/static/src/card/card.js b/addons/awesome_owl/static/src/card/card.js new file mode 100644 index 00000000000..f16ff1c6007 --- /dev/null +++ b/addons/awesome_owl/static/src/card/card.js @@ -0,0 +1,18 @@ +//addons/awesome_owl/static/src/card/card.js +import {Component, useState} from "@odoo/owl"; + +export class Card extends Component { + static template = "awesome_owl.card"; + static props = { + title: {type: String}, + slots: {type: Object}, + } + + setup() { + this.state = useState({isOpen: {type: Boolean, default: true}}); + } + + toggle() { + this.state.isOpen = !this.state.isOpen + } +} diff --git a/addons/awesome_owl/static/src/card/card.xml b/addons/awesome_owl/static/src/card/card.xml new file mode 100644 index 00000000000..94a3a27682f --- /dev/null +++ b/addons/awesome_owl/static/src/card/card.xml @@ -0,0 +1,17 @@ + + + + +
+
+
+ + + + +
+ +
+
+
+
diff --git a/addons/awesome_owl/static/src/counter/counter.js b/addons/awesome_owl/static/src/counter/counter.js new file mode 100644 index 00000000000..9b3bf5cd8d1 --- /dev/null +++ b/addons/awesome_owl/static/src/counter/counter.js @@ -0,0 +1,22 @@ +//addons/awesome_owl/static/src/counter/counter.js +import {Component, useState} from "@odoo/owl"; + +export class Counter extends Component { + static template = "awesome_owl.counter"; + static props = { + onChange: {type: Function, optional: true} + } + + setup() { + this.state = useState({value: 0}); + } + + increment() { + this.state.value++; + + if (this.props.onChange) { + this.props.onChange(); + } + + }; +} diff --git a/addons/awesome_owl/static/src/counter/counter.xml b/addons/awesome_owl/static/src/counter/counter.xml new file mode 100644 index 00000000000..78ae228561f --- /dev/null +++ b/addons/awesome_owl/static/src/counter/counter.xml @@ -0,0 +1,13 @@ + + + + +
+
+ Counter: + +
+
+
+ +
diff --git a/awesome_owl/static/src/main.js b/addons/awesome_owl/static/src/main.js similarity index 52% rename from awesome_owl/static/src/main.js rename to addons/awesome_owl/static/src/main.js index 1aaea902b55..3e283dd0e6a 100644 --- a/awesome_owl/static/src/main.js +++ b/addons/awesome_owl/static/src/main.js @@ -1,12 +1,11 @@ -import { whenReady } from "@odoo/owl"; -import { mountComponent } from "@web/env"; -import { Playground } from "./playground"; +import {whenReady} from "@odoo/owl"; +import {mountComponent} from "@web/env"; +import {Playground} from "./playground/playground"; const config = { dev: true, - name: "Owl Tutorial" + name: "Owl Tutorial" }; // Mount the Playground component when the document.body is ready whenReady(() => mountComponent(Playground, document.body, config)); - diff --git a/addons/awesome_owl/static/src/playground/playground.js b/addons/awesome_owl/static/src/playground/playground.js new file mode 100644 index 00000000000..35ba7064bcb --- /dev/null +++ b/addons/awesome_owl/static/src/playground/playground.js @@ -0,0 +1,20 @@ +//addons/awesome_owl/static/src/playground/playground.js +import {Component, markup, useState} from "@odoo/owl"; +import {Counter} from "../counter/counter"; +import {Card} from "../card/card"; +import {TodoList} from "../todo/todo_list"; + + +export class Playground extends Component { + static template = "awesome_owl.playground"; + static components = {Counter, Card, TodoList}; + + setup() { + this.state = useState({sum: 2}) + } + + incrementSum() { + this.state.sum++; + + } +} diff --git a/addons/awesome_owl/static/src/playground/playground.xml b/addons/awesome_owl/static/src/playground/playground.xml new file mode 100644 index 00000000000..47b3a3e2b18 --- /dev/null +++ b/addons/awesome_owl/static/src/playground/playground.xml @@ -0,0 +1,25 @@ + + + + +
+
+ Total: + + +
+
+ + + + + + +
+
+ +
+
+
+ +
diff --git a/addons/awesome_owl/static/src/todo/todo_item.js b/addons/awesome_owl/static/src/todo/todo_item.js new file mode 100644 index 00000000000..68dde2d6999 --- /dev/null +++ b/addons/awesome_owl/static/src/todo/todo_item.js @@ -0,0 +1,12 @@ +import {Component} from "@odoo/owl" + + +export class TodoItem extends Component { + static template = "awesome_owl.todo_item"; + + static props = { + todo: {type: Object, shape: {id: Number, description: String, isCompleted: Boolean}}, + toggleState: {type: Function}, + removeTodo: {type: Function}, + } +} diff --git a/addons/awesome_owl/static/src/todo/todo_item.xml b/addons/awesome_owl/static/src/todo/todo_item.xml new file mode 100644 index 00000000000..5446de26f9a --- /dev/null +++ b/addons/awesome_owl/static/src/todo/todo_item.xml @@ -0,0 +1,10 @@ + + + +
+ . + + +
+
+
diff --git a/addons/awesome_owl/static/src/todo/todo_list.js b/addons/awesome_owl/static/src/todo/todo_list.js new file mode 100644 index 00000000000..6c47c502bd7 --- /dev/null +++ b/addons/awesome_owl/static/src/todo/todo_list.js @@ -0,0 +1,36 @@ +import {Component, useState} from "@odoo/owl"; +import {TodoItem} from "./todo_item"; +import {useAutofocus} from "../utils" + +export class TodoList extends Component { + static template = "awesome_owl.todo_list"; + static components = {TodoItem}; + static props = {}; + + setup() { + this.todos = useState([]); + this.nextId = 1; + this.inputRef = useAutofocus(); + }; + + addTodo(ev) { + if ((ev.keyCode === 13) && (ev.target.value.length > 0)) { + this.todos.push({id: this.nextId, description: ev.target.value, isCompleted: false}); + this.nextId++; + ev.target.value = ""; + } + }; + + toggleState(id) { + let current_todo = this.todos.find(todo => todo.id === id); + current_todo.isCompleted = !current_todo.isCompleted + + } + + removeTodo(id) { + const index = this.todos.findIndex((elem) => elem.id === id); + if (index >= 0) { + this.todos.splice(index, 1); + } + } +} diff --git a/addons/awesome_owl/static/src/todo/todo_list.xml b/addons/awesome_owl/static/src/todo/todo_list.xml new file mode 100644 index 00000000000..f6de4a5727d --- /dev/null +++ b/addons/awesome_owl/static/src/todo/todo_list.xml @@ -0,0 +1,16 @@ + + + + + + + + + diff --git a/addons/awesome_owl/static/src/utils.js b/addons/awesome_owl/static/src/utils.js new file mode 100644 index 00000000000..68845007e12 --- /dev/null +++ b/addons/awesome_owl/static/src/utils.js @@ -0,0 +1,9 @@ +import {useRef, onMounted} from "@odoo/owl" + +export function useAutofocus() { + const ref = useRef('input'); + onMounted(() => { + ref.el.focus(); + }); + return ref +} diff --git a/awesome_owl/views/templates.xml b/addons/awesome_owl/views/templates.xml similarity index 100% rename from awesome_owl/views/templates.xml rename to addons/awesome_owl/views/templates.xml diff --git a/website_airproof/README.md b/addons/website_airproof/README.md similarity index 100% rename from website_airproof/README.md rename to addons/website_airproof/README.md diff --git a/addons/website_airproof/__init__.py b/addons/website_airproof/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/website_airproof/__manifest__.py b/addons/website_airproof/__manifest__.py similarity index 100% rename from website_airproof/__manifest__.py rename to addons/website_airproof/__manifest__.py diff --git a/website_airproof/airproof-contact-page.jpg b/addons/website_airproof/airproof-contact-page.jpg similarity index 100% rename from website_airproof/airproof-contact-page.jpg rename to addons/website_airproof/airproof-contact-page.jpg diff --git a/website_airproof/airproof-home-page.jpg b/addons/website_airproof/airproof-home-page.jpg similarity index 100% rename from website_airproof/airproof-home-page.jpg rename to addons/website_airproof/airproof-home-page.jpg diff --git a/website_airproof/airproof-product-page.jpg b/addons/website_airproof/airproof-product-page.jpg similarity index 100% rename from website_airproof/airproof-product-page.jpg rename to addons/website_airproof/airproof-product-page.jpg diff --git a/website_airproof/airproof-shop-page.jpg b/addons/website_airproof/airproof-shop-page.jpg similarity index 100% rename from website_airproof/airproof-shop-page.jpg rename to addons/website_airproof/airproof-shop-page.jpg diff --git a/website_airproof/data/gradients.xml b/addons/website_airproof/data/gradients.xml similarity index 100% rename from website_airproof/data/gradients.xml rename to addons/website_airproof/data/gradients.xml diff --git a/website_airproof/data/images.xml b/addons/website_airproof/data/images.xml similarity index 100% rename from website_airproof/data/images.xml rename to addons/website_airproof/data/images.xml diff --git a/website_airproof/data/menu.xml b/addons/website_airproof/data/menu.xml similarity index 100% rename from website_airproof/data/menu.xml rename to addons/website_airproof/data/menu.xml diff --git a/website_airproof/data/pages/contact.xml b/addons/website_airproof/data/pages/contact.xml similarity index 100% rename from website_airproof/data/pages/contact.xml rename to addons/website_airproof/data/pages/contact.xml diff --git a/website_airproof/data/pages/home.xml b/addons/website_airproof/data/pages/home.xml similarity index 100% rename from website_airproof/data/pages/home.xml rename to addons/website_airproof/data/pages/home.xml diff --git a/website_airproof/data/presets.xml b/addons/website_airproof/data/presets.xml similarity index 100% rename from website_airproof/data/presets.xml rename to addons/website_airproof/data/presets.xml diff --git a/website_airproof/data/shapes.xml b/addons/website_airproof/data/shapes.xml similarity index 100% rename from website_airproof/data/shapes.xml rename to addons/website_airproof/data/shapes.xml diff --git a/website_airproof/data/website.xml b/addons/website_airproof/data/website.xml similarity index 100% rename from website_airproof/data/website.xml rename to addons/website_airproof/data/website.xml diff --git a/website_airproof/i18n/fr_BE.po b/addons/website_airproof/i18n/fr_BE.po similarity index 100% rename from website_airproof/i18n/fr_BE.po rename to addons/website_airproof/i18n/fr_BE.po diff --git a/website_airproof/shape-waves.svg b/addons/website_airproof/shape-waves.svg similarity index 100% rename from website_airproof/shape-waves.svg rename to addons/website_airproof/shape-waves.svg diff --git a/website_airproof/static/description/airproof-favicon.png b/addons/website_airproof/static/description/airproof-favicon.png similarity index 100% rename from website_airproof/static/description/airproof-favicon.png rename to addons/website_airproof/static/description/airproof-favicon.png diff --git a/website_airproof/static/fonts/lato.woff b/addons/website_airproof/static/fonts/lato.woff similarity index 100% rename from website_airproof/static/fonts/lato.woff rename to addons/website_airproof/static/fonts/lato.woff diff --git a/website_airproof/static/fonts/lato.woff2 b/addons/website_airproof/static/fonts/lato.woff2 similarity index 100% rename from website_airproof/static/fonts/lato.woff2 rename to addons/website_airproof/static/fonts/lato.woff2 diff --git a/website_airproof/static/shapes/airproof/waves.svg b/addons/website_airproof/static/shapes/airproof/waves.svg similarity index 100% rename from website_airproof/static/shapes/airproof/waves.svg rename to addons/website_airproof/static/shapes/airproof/waves.svg diff --git a/website_airproof/static/src/img/content/accessories.webp b/addons/website_airproof/static/src/img/content/accessories.webp similarity index 100% rename from website_airproof/static/src/img/content/accessories.webp rename to addons/website_airproof/static/src/img/content/accessories.webp diff --git a/website_airproof/static/src/img/content/airproof-eagle.webp b/addons/website_airproof/static/src/img/content/airproof-eagle.webp similarity index 100% rename from website_airproof/static/src/img/content/airproof-eagle.webp rename to addons/website_airproof/static/src/img/content/airproof-eagle.webp diff --git a/website_airproof/static/src/img/content/airproof-falcon.webp b/addons/website_airproof/static/src/img/content/airproof-falcon.webp similarity index 100% rename from website_airproof/static/src/img/content/airproof-falcon.webp rename to addons/website_airproof/static/src/img/content/airproof-falcon.webp diff --git a/website_airproof/static/src/img/content/airproof-mini.webp b/addons/website_airproof/static/src/img/content/airproof-mini.webp similarity index 100% rename from website_airproof/static/src/img/content/airproof-mini.webp rename to addons/website_airproof/static/src/img/content/airproof-mini.webp diff --git a/website_airproof/static/src/img/content/airproof-pro.webp b/addons/website_airproof/static/src/img/content/airproof-pro.webp similarity index 100% rename from website_airproof/static/src/img/content/airproof-pro.webp rename to addons/website_airproof/static/src/img/content/airproof-pro.webp diff --git a/website_airproof/static/src/img/content/airproof-robin.webp b/addons/website_airproof/static/src/img/content/airproof-robin.webp similarity index 100% rename from website_airproof/static/src/img/content/airproof-robin.webp rename to addons/website_airproof/static/src/img/content/airproof-robin.webp diff --git a/website_airproof/static/src/img/content/branding/airproof-logo.svg b/addons/website_airproof/static/src/img/content/branding/airproof-logo.svg similarity index 100% rename from website_airproof/static/src/img/content/branding/airproof-logo.svg rename to addons/website_airproof/static/src/img/content/branding/airproof-logo.svg diff --git a/website_airproof/static/src/img/content/charger-cable.webp b/addons/website_airproof/static/src/img/content/charger-cable.webp similarity index 100% rename from website_airproof/static/src/img/content/charger-cable.webp rename to addons/website_airproof/static/src/img/content/charger-cable.webp diff --git a/website_airproof/static/src/img/content/drone-bluebg.webp b/addons/website_airproof/static/src/img/content/drone-bluebg.webp similarity index 100% rename from website_airproof/static/src/img/content/drone-bluebg.webp rename to addons/website_airproof/static/src/img/content/drone-bluebg.webp diff --git a/website_airproof/static/src/img/content/drone-flying.webp b/addons/website_airproof/static/src/img/content/drone-flying.webp similarity index 100% rename from website_airproof/static/src/img/content/drone-flying.webp rename to addons/website_airproof/static/src/img/content/drone-flying.webp diff --git a/website_airproof/static/src/img/content/drone-robin.webp b/addons/website_airproof/static/src/img/content/drone-robin.webp similarity index 100% rename from website_airproof/static/src/img/content/drone-robin.webp rename to addons/website_airproof/static/src/img/content/drone-robin.webp diff --git a/website_airproof/static/src/img/content/icons/4k.svg b/addons/website_airproof/static/src/img/content/icons/4k.svg similarity index 100% rename from website_airproof/static/src/img/content/icons/4k.svg rename to addons/website_airproof/static/src/img/content/icons/4k.svg diff --git a/website_airproof/static/src/img/content/icons/angle-down-solid.svg b/addons/website_airproof/static/src/img/content/icons/angle-down-solid.svg similarity index 100% rename from website_airproof/static/src/img/content/icons/angle-down-solid.svg rename to addons/website_airproof/static/src/img/content/icons/angle-down-solid.svg diff --git a/website_airproof/static/src/img/content/icons/arrow-left.svg b/addons/website_airproof/static/src/img/content/icons/arrow-left.svg similarity index 100% rename from website_airproof/static/src/img/content/icons/arrow-left.svg rename to addons/website_airproof/static/src/img/content/icons/arrow-left.svg diff --git a/website_airproof/static/src/img/content/icons/arrow-right.svg b/addons/website_airproof/static/src/img/content/icons/arrow-right.svg similarity index 100% rename from website_airproof/static/src/img/content/icons/arrow-right.svg rename to addons/website_airproof/static/src/img/content/icons/arrow-right.svg diff --git a/website_airproof/static/src/img/content/icons/arrow-small.svg b/addons/website_airproof/static/src/img/content/icons/arrow-small.svg similarity index 100% rename from website_airproof/static/src/img/content/icons/arrow-small.svg rename to addons/website_airproof/static/src/img/content/icons/arrow-small.svg diff --git a/website_airproof/static/src/img/content/icons/arrow-white.svg b/addons/website_airproof/static/src/img/content/icons/arrow-white.svg similarity index 100% rename from website_airproof/static/src/img/content/icons/arrow-white.svg rename to addons/website_airproof/static/src/img/content/icons/arrow-white.svg diff --git a/website_airproof/static/src/img/content/icons/arrow.svg b/addons/website_airproof/static/src/img/content/icons/arrow.svg similarity index 100% rename from website_airproof/static/src/img/content/icons/arrow.svg rename to addons/website_airproof/static/src/img/content/icons/arrow.svg diff --git a/website_airproof/static/src/img/content/icons/check.svg b/addons/website_airproof/static/src/img/content/icons/check.svg similarity index 100% rename from website_airproof/static/src/img/content/icons/check.svg rename to addons/website_airproof/static/src/img/content/icons/check.svg diff --git a/website_airproof/static/src/img/content/icons/control.svg b/addons/website_airproof/static/src/img/content/icons/control.svg similarity index 100% rename from website_airproof/static/src/img/content/icons/control.svg rename to addons/website_airproof/static/src/img/content/icons/control.svg diff --git a/website_airproof/static/src/img/content/icons/envelop-black.svg b/addons/website_airproof/static/src/img/content/icons/envelop-black.svg similarity index 100% rename from website_airproof/static/src/img/content/icons/envelop-black.svg rename to addons/website_airproof/static/src/img/content/icons/envelop-black.svg diff --git a/website_airproof/static/src/img/content/icons/envelop.svg b/addons/website_airproof/static/src/img/content/icons/envelop.svg similarity index 100% rename from website_airproof/static/src/img/content/icons/envelop.svg rename to addons/website_airproof/static/src/img/content/icons/envelop.svg diff --git a/website_airproof/static/src/img/content/icons/glasses.svg b/addons/website_airproof/static/src/img/content/icons/glasses.svg similarity index 100% rename from website_airproof/static/src/img/content/icons/glasses.svg rename to addons/website_airproof/static/src/img/content/icons/glasses.svg diff --git a/website_airproof/static/src/img/content/icons/hand-drone.svg b/addons/website_airproof/static/src/img/content/icons/hand-drone.svg similarity index 100% rename from website_airproof/static/src/img/content/icons/hand-drone.svg rename to addons/website_airproof/static/src/img/content/icons/hand-drone.svg diff --git a/website_airproof/static/src/img/content/icons/phone-black.svg b/addons/website_airproof/static/src/img/content/icons/phone-black.svg similarity index 100% rename from website_airproof/static/src/img/content/icons/phone-black.svg rename to addons/website_airproof/static/src/img/content/icons/phone-black.svg diff --git a/website_airproof/static/src/img/content/icons/phone.svg b/addons/website_airproof/static/src/img/content/icons/phone.svg similarity index 100% rename from website_airproof/static/src/img/content/icons/phone.svg rename to addons/website_airproof/static/src/img/content/icons/phone.svg diff --git a/website_airproof/static/src/img/content/icons/shopping.svg b/addons/website_airproof/static/src/img/content/icons/shopping.svg similarity index 100% rename from website_airproof/static/src/img/content/icons/shopping.svg rename to addons/website_airproof/static/src/img/content/icons/shopping.svg diff --git a/website_airproof/static/src/img/content/icons/user.svg b/addons/website_airproof/static/src/img/content/icons/user.svg similarity index 100% rename from website_airproof/static/src/img/content/icons/user.svg rename to addons/website_airproof/static/src/img/content/icons/user.svg diff --git a/website_airproof/static/src/img/content/loading.gif b/addons/website_airproof/static/src/img/content/loading.gif similarity index 100% rename from website_airproof/static/src/img/content/loading.gif rename to addons/website_airproof/static/src/img/content/loading.gif diff --git a/website_airproof/static/src/img/content/school.webp b/addons/website_airproof/static/src/img/content/school.webp similarity index 100% rename from website_airproof/static/src/img/content/school.webp rename to addons/website_airproof/static/src/img/content/school.webp diff --git a/website_airproof/static/src/img/content/topview.webp b/addons/website_airproof/static/src/img/content/topview.webp similarity index 100% rename from website_airproof/static/src/img/content/topview.webp rename to addons/website_airproof/static/src/img/content/topview.webp diff --git a/website_airproof/static/src/img/content/topview3.webp b/addons/website_airproof/static/src/img/content/topview3.webp similarity index 100% rename from website_airproof/static/src/img/content/topview3.webp rename to addons/website_airproof/static/src/img/content/topview3.webp diff --git a/website_airproof/static/src/img/content/warranty.webp b/addons/website_airproof/static/src/img/content/warranty.webp similarity index 100% rename from website_airproof/static/src/img/content/warranty.webp rename to addons/website_airproof/static/src/img/content/warranty.webp diff --git a/website_airproof/static/src/img/snippets/s_airproof_caroussel/drone.webp b/addons/website_airproof/static/src/img/snippets/s_airproof_caroussel/drone.webp similarity index 100% rename from website_airproof/static/src/img/snippets/s_airproof_caroussel/drone.webp rename to addons/website_airproof/static/src/img/snippets/s_airproof_caroussel/drone.webp diff --git a/website_airproof/static/src/img/snippets/s_airproof_caroussel/sticker.webp b/addons/website_airproof/static/src/img/snippets/s_airproof_caroussel/sticker.webp similarity index 100% rename from website_airproof/static/src/img/snippets/s_airproof_caroussel/sticker.webp rename to addons/website_airproof/static/src/img/snippets/s_airproof_caroussel/sticker.webp diff --git a/website_airproof/static/src/img/wbuilder/s-airproof-snippet.svg b/addons/website_airproof/static/src/img/wbuilder/s-airproof-snippet.svg similarity index 100% rename from website_airproof/static/src/img/wbuilder/s-airproof-snippet.svg rename to addons/website_airproof/static/src/img/wbuilder/s-airproof-snippet.svg diff --git a/website_airproof/static/src/img/wbuilder/template-footer-opt.svg b/addons/website_airproof/static/src/img/wbuilder/template-footer-opt.svg similarity index 100% rename from website_airproof/static/src/img/wbuilder/template-footer-opt.svg rename to addons/website_airproof/static/src/img/wbuilder/template-footer-opt.svg diff --git a/website_airproof/static/src/img/wbuilder/template-header-opt.svg b/addons/website_airproof/static/src/img/wbuilder/template-header-opt.svg similarity index 100% rename from website_airproof/static/src/img/wbuilder/template-header-opt.svg rename to addons/website_airproof/static/src/img/wbuilder/template-header-opt.svg diff --git a/website_airproof/static/src/js/mouse_follower.js b/addons/website_airproof/static/src/js/mouse_follower.js similarity index 100% rename from website_airproof/static/src/js/mouse_follower.js rename to addons/website_airproof/static/src/js/mouse_follower.js diff --git a/website_airproof/static/src/scss/bootstrap_overridden.scss b/addons/website_airproof/static/src/scss/bootstrap_overridden.scss similarity index 100% rename from website_airproof/static/src/scss/bootstrap_overridden.scss rename to addons/website_airproof/static/src/scss/bootstrap_overridden.scss diff --git a/website_airproof/static/src/scss/components/mouse_follower.scss b/addons/website_airproof/static/src/scss/components/mouse_follower.scss similarity index 100% rename from website_airproof/static/src/scss/components/mouse_follower.scss rename to addons/website_airproof/static/src/scss/components/mouse_follower.scss diff --git a/website_airproof/static/src/scss/font.scss b/addons/website_airproof/static/src/scss/font.scss similarity index 100% rename from website_airproof/static/src/scss/font.scss rename to addons/website_airproof/static/src/scss/font.scss diff --git a/website_airproof/static/src/scss/layout/header.scss b/addons/website_airproof/static/src/scss/layout/header.scss similarity index 100% rename from website_airproof/static/src/scss/layout/header.scss rename to addons/website_airproof/static/src/scss/layout/header.scss diff --git a/website_airproof/static/src/scss/pages/product_page.scss b/addons/website_airproof/static/src/scss/pages/product_page.scss similarity index 100% rename from website_airproof/static/src/scss/pages/product_page.scss rename to addons/website_airproof/static/src/scss/pages/product_page.scss diff --git a/website_airproof/static/src/scss/pages/shop.scss b/addons/website_airproof/static/src/scss/pages/shop.scss similarity index 100% rename from website_airproof/static/src/scss/pages/shop.scss rename to addons/website_airproof/static/src/scss/pages/shop.scss diff --git a/website_airproof/static/src/scss/primary_variables.scss b/addons/website_airproof/static/src/scss/primary_variables.scss similarity index 100% rename from website_airproof/static/src/scss/primary_variables.scss rename to addons/website_airproof/static/src/scss/primary_variables.scss diff --git a/website_airproof/static/src/scss/snippets/caroussel.scss b/addons/website_airproof/static/src/scss/snippets/caroussel.scss similarity index 100% rename from website_airproof/static/src/scss/snippets/caroussel.scss rename to addons/website_airproof/static/src/scss/snippets/caroussel.scss diff --git a/website_airproof/static/src/scss/snippets/newsletter.scss b/addons/website_airproof/static/src/scss/snippets/newsletter.scss similarity index 100% rename from website_airproof/static/src/scss/snippets/newsletter.scss rename to addons/website_airproof/static/src/scss/snippets/newsletter.scss diff --git a/website_airproof/static/src/snippets/s_airproof_carousel/000.scss b/addons/website_airproof/static/src/snippets/s_airproof_carousel/000.scss similarity index 100% rename from website_airproof/static/src/snippets/s_airproof_carousel/000.scss rename to addons/website_airproof/static/src/snippets/s_airproof_carousel/000.scss diff --git a/website_airproof/views/new_page_template_templates.xml b/addons/website_airproof/views/new_page_template_templates.xml similarity index 100% rename from website_airproof/views/new_page_template_templates.xml rename to addons/website_airproof/views/new_page_template_templates.xml diff --git a/website_airproof/views/snippets/options.xml b/addons/website_airproof/views/snippets/options.xml similarity index 100% rename from website_airproof/views/snippets/options.xml rename to addons/website_airproof/views/snippets/options.xml diff --git a/website_airproof/views/snippets/s_airproof_carousel.xml b/addons/website_airproof/views/snippets/s_airproof_carousel.xml similarity index 100% rename from website_airproof/views/snippets/s_airproof_carousel.xml rename to addons/website_airproof/views/snippets/s_airproof_carousel.xml diff --git a/website_airproof/views/website_sale_templates.xml b/addons/website_airproof/views/website_sale_templates.xml similarity index 100% rename from website_airproof/views/website_sale_templates.xml rename to addons/website_airproof/views/website_sale_templates.xml diff --git a/website_airproof/views/website_sale_wishlist_templates.xml b/addons/website_airproof/views/website_sale_wishlist_templates.xml similarity index 100% rename from website_airproof/views/website_sale_wishlist_templates.xml rename to addons/website_airproof/views/website_sale_wishlist_templates.xml diff --git a/website_airproof/views/website_templates.xml b/addons/website_airproof/views/website_templates.xml similarity index 100% rename from website_airproof/views/website_templates.xml rename to addons/website_airproof/views/website_templates.xml diff --git a/awesome_dashboard/controllers/__init__.py b/awesome_dashboard/controllers/__init__.py deleted file mode 100644 index 457bae27e11..00000000000 --- a/awesome_dashboard/controllers/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# -*- coding: utf-8 -*- - -from . import controllers \ No newline at end of file diff --git a/awesome_dashboard/static/src/dashboard.js b/awesome_dashboard/static/src/dashboard.js deleted file mode 100644 index c4fb245621b..00000000000 --- a/awesome_dashboard/static/src/dashboard.js +++ /dev/null @@ -1,8 +0,0 @@ -import { Component } from "@odoo/owl"; -import { registry } from "@web/core/registry"; - -class AwesomeDashboard extends Component { - static template = "awesome_dashboard.AwesomeDashboard"; -} - -registry.category("actions").add("awesome_dashboard.dashboard", AwesomeDashboard); diff --git a/awesome_owl/__init__.py b/awesome_owl/__init__.py deleted file mode 100644 index 457bae27e11..00000000000 --- a/awesome_owl/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# -*- coding: utf-8 -*- - -from . import controllers \ No newline at end of file diff --git a/awesome_owl/controllers/__init__.py b/awesome_owl/controllers/__init__.py deleted file mode 100644 index 457bae27e11..00000000000 --- a/awesome_owl/controllers/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# -*- coding: utf-8 -*- - -from . import controllers \ No newline at end of file diff --git a/awesome_owl/static/src/playground.js b/awesome_owl/static/src/playground.js deleted file mode 100644 index 4ac769b0aa5..00000000000 --- a/awesome_owl/static/src/playground.js +++ /dev/null @@ -1,5 +0,0 @@ -import { Component } from "@odoo/owl"; - -export class Playground extends Component { - static template = "awesome_owl.playground"; -} diff --git a/awesome_owl/static/src/playground.xml b/awesome_owl/static/src/playground.xml deleted file mode 100644 index 4fb905d59f9..00000000000 --- a/awesome_owl/static/src/playground.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - -
- hello world -
-
- -