Skip to content

19.0 tutorial owl joemo#1250

Open
djoewie wants to merge 28 commits intoodoo:19.0from
odoo-dev:19.0-tutorial-owl-joemo
Open

19.0 tutorial owl joemo#1250
djoewie wants to merge 28 commits intoodoo:19.0from
odoo-dev:19.0-tutorial-owl-joemo

Conversation

@djoewie
Copy link
Copy Markdown

@djoewie djoewie commented Apr 27, 2026

No description provided.

djoewie added 7 commits April 27, 2026 09:51
make a counter that adds 1 every time a button is pressed
making sure the counter can be reused
have a view of how properties can be used to customize components
make it possible to use markup in cards
make sure the correct properties are defined, can be validated in developer mode
make it possible to have the total of different counters together
bring an option to the user to have a todolist visible
@djoewie djoewie requested a review from cgun-odoo April 27, 2026 09:46
@robodoo
Copy link
Copy Markdown

robodoo commented Apr 27, 2026

Pull request status dashboard

make it visually clear when is task is completed
Comment thread awesome_owl/static/src/card/card.xml Outdated
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

No need for this line

Comment thread awesome_owl/static/src/card/card.js Outdated
import { Component } from "@odoo/owl";

export class Card extends Component {
static template = "awesome_owl.card";
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Name for the template is usually camel case

Suggested change
static template = "awesome_owl.card";
static template = "awesome_owl.Card";

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggested change
<?xml version="1.0" encoding="UTF-8" ?>

import { Component } from "@odoo/owl";

export class TodoItem extends Component {
static template = "awesome_owl.todo_item";
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggested change
static template = "awesome_owl.todo_item";
static template = "awesome_owl.TodoItem";

djoewie added 9 commits April 27, 2026 13:21
make the list of todo's interactive by adding the option to add items
when loading the page automatically focus the input as this improves the speed of adding a new item when loading the page
make it possible to toggle a todo to completed
make code in line with teh current standard
make it possible to delete wrong todo items
make it possible to delete wrong todo items
make the app follow the common layout to keep the same look and feel over the complete environment
make it easier to navigate between the different parts
Copy link
Copy Markdown

@cgun-odoo cgun-odoo left a comment

Choose a reason for hiding this comment

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

Couldn't find anything to complain about nice job

<div class="border d-inline-block p-2 m-2" style="width: 18rem;">
<t t-foreach="todos" t-as="todo" t-key="todo">
<TodoItem todo="todo"/>
<input t-ref="add_todo_input" t-on-keyup="addToDo" placeholder="Add a todo"/>
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

from what i see in Odoo, t-ref values are also camelCase rather than snake_case

djoewie added 8 commits April 28, 2026 13:34
make it possible to see some content on the page
it is better to show requested data over dummy data
by caching results through a service you don't need to call backend every time you want to show the statistics
add visualization for the statistic data of sizes
code convention filename needs to be like element inside
…g next one

the order of first deleting the old canvas and only then adding a new chart is important!
making sure the data is in line with the data from the backend
Comment on lines +24 to +26
if (this.chart) {
this.chart.destroy();
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

you could also do this.chart?.destroy();

Comment on lines +31 to +38
type: "pie", data: {
labels: Object.keys(this.props.data),
datasets: [
{
data: Object.values(this.props.data),
},
],
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggested change
type: "pie", data: {
labels: Object.keys(this.props.data),
datasets: [
{
data: Object.values(this.props.data),
},
],
}
type: "pie",
data: {
labels: Object.keys(this.props.data),
datasets: [
{
data: Object.values(this.props.data),
},
],
}

djoewie added 3 commits April 28, 2026 16:18
only load the dashboards when they need to be shown
change hardcode cards to a list of dashboard_items to make customization possible in a later stage
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants