Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
dfc2387
[IMP] awesome_owl: free me from this pain
trcazier Sep 22, 2025
f7b4680
[IMP] awesome_owl: save this counter implementation because I like it…
trcazier Sep 22, 2025
dc2211e
[IMP] awesome_owl: add up to section 7
trcazier Sep 22, 2025
a22285a
[IMP] awesome_owl: apply PR suggestions
trcazier Sep 23, 2025
8611d61
[IMP] awesome_owl: add sections 8-10
trcazier Sep 23, 2025
70e3c05
[IMP] awesome_owl: add section 11
trcazier Sep 23, 2025
aa4125a
[IMP] awesome_owl: replace redundant ternary operator with ||
trcazier Sep 23, 2025
bf99024
[IMP] awesome_owl: replace redundant ternary operator with if
trcazier Sep 23, 2025
03af1db
[IMP] awesome_owl: add missing ;
trcazier Sep 23, 2025
86806ec
[IMP] awesome_owl: add section 12 and missing ;s
trcazier Sep 23, 2025
143eec9
[IMP] awesome_owl: add section 13
trcazier Sep 23, 2025
3156e29
[IMP] awesome_owl: set the starting todo index as 1
trcazier Sep 23, 2025
60483e6
[IMP] awesome_owl: add section 14
trcazier Sep 23, 2025
2209933
[IMP] awesome_dashboard: add section 1
trcazier Sep 23, 2025
adf412a
[IMP] awesome_dashboard: add section 2
trcazier Sep 23, 2025
ac47f9b
[IMP] awesome_dashboard: add sections 3-4
trcazier Sep 23, 2025
71636b1
[IMP] awesome_dashboard: add section 5
trcazier Sep 23, 2025
4115506
[IMP] awesome_dashboard: section 6
trcazier Sep 23, 2025
82f496d
[IMP] awesome_dashboard: add section 7
trcazier Sep 24, 2025
cabcad9
[IMP] awesome_dashboard: add section 8
trcazier Sep 24, 2025
036b648
[IMP] awesome_dashboard: add section 9
trcazier Sep 24, 2025
164bc52
[IMP] awesome_dashboard: remove console logs
trcazier Sep 24, 2025
a502aa5
[IMP] awesome_dashboard: add section 10
trcazier Sep 24, 2025
292c7b8
[IMP] awesome_dashboard: add section 10
trcazier Sep 24, 2025
9f7c018
[MERGE] branch '18.0-web-tutorial-trcaz' of github.com:odoo-dev/tutor…
trcazier Sep 24, 2025
82c0d40
[IMP] awesome_dashboard: move buttons into layout button bar
trcazier Sep 24, 2025
b62f551
[IMP] awesome_dashboard: rewrite xml ids using PascalCase
trcazier Sep 24, 2025
113773f
[IMP] awesome_dashboard: apply PR feedback
trcazier Sep 24, 2025
6f4a297
[IMP] awesome_dashboard: add section 11
trcazier Sep 24, 2025
0ad1da4
[IMP] awesome_dashboard: refactor settings dialog props
trcazier Sep 25, 2025
6aacfbe
[IMP] awesome_dashboard: change var name for clarity
trcazier Sep 25, 2025
3231834
[IMP] awesome_dashboard: add newline to file end
trcazier Sep 25, 2025
44e0d49
[IMP] awesome_dashboard: apply PR suggestion
trcazier Sep 25, 2025
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
11 changes: 11 additions & 0 deletions awesome_owl/static/src/card/card.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { Component, useState } from "@odoo/owl";

export class Card extends Component {
static template = "awesome_owl.card";
static props = { title: {type: String}, content: {type: String}}

setup() {
this.title = this.props.title;
this.content = this.props.content;
}
}
15 changes: 15 additions & 0 deletions awesome_owl/static/src/card/card.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
<templates xml:space="preserve">

<t t-name="awesome_owl.card">
<div class="card d-inline-block m-2" style="width: 18rem;">
<div class="card-body">
<h5 class="card-title"><t t-esc="title"/></h5>
<p class="card-text">
<t t-out="content"/>
</p>
</div>
</div>
</t>

</templates>
18 changes: 18 additions & 0 deletions awesome_owl/static/src/counter/counter.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { Component, useState } from "@odoo/owl";

export class Counter extends Component {
static template = "awesome_owl.counter";
static props = {
value: {optional: true},
side_effect: {type: Function, optional: true}
}

setup() {
this.state = useState({ value: this.props.value? this.props.value : 0 });
}

increment() {
this.props.side_effect ? this.props.side_effect() : true;
this.state.value++;
}
}
11 changes: 11 additions & 0 deletions awesome_owl/static/src/counter/counter.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<templates xml:space="preserve">

<t t-name="awesome_owl.counter">
<div class="p-3">
<p>Counter: <t t-esc="state.value"/></p>
<button class="btn btn-primary" t-on-click="increment">Increment</button>
</div>
</t>

</templates>
18 changes: 15 additions & 3 deletions awesome_owl/static/src/playground.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,19 @@
/** @odoo-module **/

import { Component } from "@odoo/owl";
import { Component, markup, useState } from "@odoo/owl";
import { Counter } from "./counter/counter";
import { Card } from "./card/card";

export class Playground extends Component {
static template = "awesome_owl.playground";
static components = { Counter, Card }

setup() {
this.str1 = "<div class='text-primary'>some content</div>";
this.str2 = markup("<div class='text-primary'>some content</div>");
this.state = useState({ val1: 0, val2: 10 })
}

get sum() {
return this.state.val1 + this.state.val2
}

}
7 changes: 7 additions & 0 deletions awesome_owl/static/src/playground.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@
<div class="p-3">
hello world
</div>
<Counter value="this.state.val1" side_effect.bind="() => this.state.val1++"/>
<Counter value="this.state.val2" side_effect.bind="() => this.state.val2++"/>
<div>The sum is: <t t-esc="sum"/></div>
<Counter/>
<Card title="'card title'" content="'card content'"/>
<Card title="'card title'" content="str1"/>
<Card title="'card title'" content="str2"/>
</t>

</templates>