diff --git a/code/exercise_004_even_qute_products/src/main/java/com/lunatech/training/quarkus/extensions/BigDecimalExtension.java b/code/exercise_004_even_qute_products/src/main/java/com/lunatech/training/quarkus/extensions/BigDecimalExtension.java
new file mode 100644
index 0000000..0fa1668
--- /dev/null
+++ b/code/exercise_004_even_qute_products/src/main/java/com/lunatech/training/quarkus/extensions/BigDecimalExtension.java
@@ -0,0 +1,16 @@
+package com.lunatech.training.quarkus.extensions;
+
+import io.quarkus.qute.RawString;
+import io.quarkus.qute.TemplateExtension;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+
+@TemplateExtension
+public class BigDecimalExtension {
+
+ static RawString monetary(BigDecimal value) {
+ return new RawString("€ " + value.setScale(2, RoundingMode.HALF_EVEN).toString());
+ }
+
+}
\ No newline at end of file
diff --git a/code/exercise_004_even_qute_products/src/main/resources/templates/catalogue.html b/code/exercise_004_even_qute_products/src/main/resources/templates/catalogue.html
index cdc88c0..ebbebe9 100644
--- a/code/exercise_004_even_qute_products/src/main/resources/templates/catalogue.html
+++ b/code/exercise_004_even_qute_products/src/main/resources/templates/catalogue.html
@@ -1,15 +1,14 @@
-
-
- Welcome to the HIQUEA catalog!
-
-
+{#include layout}
+ {#title}Welcome to the HIQUEA catalog!{/}
+
+ {#body}
HIQUEA Catalog
Total products: {products.size}
Products
- {#each products}
- - {it.name}
- {/each}
+ {#each products}
+ {#productListItem product=it /}
+ {/each}
-
-
+ {/body}
+{/include}
\ No newline at end of file
diff --git a/code/exercise_004_even_qute_products/src/main/resources/templates/details.html b/code/exercise_004_even_qute_products/src/main/resources/templates/details.html
index f552f32..a12bd90 100644
--- a/code/exercise_004_even_qute_products/src/main/resources/templates/details.html
+++ b/code/exercise_004_even_qute_products/src/main/resources/templates/details.html
@@ -1,8 +1,7 @@
-
-
- {product.name} - Details
-
-
+{#include layout}
+ {#title}{product.name} - Details{/}
+
+ {#body}
{product.name}
- Product ID
@@ -10,7 +9,7 @@ {product.name}
- Description
- {product.description}
- Price
- - € {product.price}
+ - {product.price.monetary}
-
-
+ {/body}
+{/include}
\ No newline at end of file
diff --git a/code/exercise_004_even_qute_products/src/main/resources/templates/layout.html b/code/exercise_004_even_qute_products/src/main/resources/templates/layout.html
new file mode 100644
index 0000000..9932edc
--- /dev/null
+++ b/code/exercise_004_even_qute_products/src/main/resources/templates/layout.html
@@ -0,0 +1,8 @@
+
+
+ {#insert title}HIQUEA{/}
+
+
+{#insert body /}
+
+
\ No newline at end of file
diff --git a/code/exercise_004_even_qute_products/src/main/resources/templates/tags/productListItem.html b/code/exercise_004_even_qute_products/src/main/resources/templates/tags/productListItem.html
new file mode 100644
index 0000000..e8dba0c
--- /dev/null
+++ b/code/exercise_004_even_qute_products/src/main/resources/templates/tags/productListItem.html
@@ -0,0 +1 @@
+{product.name}
\ No newline at end of file