diff --git a/web/src/padelnomics/admin/templates/admin/template_detail.html b/web/src/padelnomics/admin/templates/admin/template_detail.html
index 1d46268..e053c34 100644
--- a/web/src/padelnomics/admin/templates/admin/template_detail.html
+++ b/web/src/padelnomics/admin/templates/admin/template_detail.html
@@ -81,24 +81,24 @@
+ |
{% for col in columns %}
{{ col.name }} |
{% endfor %}
- Preview |
{% for row in sample_rows %}
+ |
+ Preview
+ |
{% for col in columns %}
{{ row[col.name] }}
|
{% endfor %}
-
- Preview
- |
{% endfor %}
diff --git a/web/src/padelnomics/content/__init__.py b/web/src/padelnomics/content/__init__.py
index b975302..548c17e 100644
--- a/web/src/padelnomics/content/__init__.py
+++ b/web/src/padelnomics/content/__init__.py
@@ -133,10 +133,22 @@ def _validate_table_name(data_table: str) -> None:
# ── Rendering helpers ────────────────────────────────────────────────────────
+def _datetimeformat(value: str, fmt: str = "%Y-%m-%d") -> str:
+ """Jinja2 filter: format a date string (or 'now') with strftime."""
+ from datetime import datetime, UTC
+
+ if value == "now":
+ dt = datetime.now(UTC)
+ else:
+ dt = datetime.fromisoformat(value)
+ return dt.strftime(fmt)
+
+
def _render_pattern(pattern: str, context: dict) -> str:
"""Render a Jinja2 pattern string with context variables."""
env = Environment()
env.filters["slugify"] = slugify
+ env.filters["datetimeformat"] = _datetimeformat
return env.from_string(pattern).render(**context)