From 2be54b1c888fe350700ffe77d42ce6f17c65528a Mon Sep 17 00:00:00 2001 From: Deeman Date: Tue, 24 Feb 2026 00:13:05 +0100 Subject: [PATCH] fix(content): add missing datetimeformat filter; move preview column first MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add _datetimeformat Jinja2 filter to _render_pattern() — templates use {{ 'now' | datetimeformat('%Y') }} but the filter was never registered, causing "No filter named 'datetimeformat'" on preview. - Move Preview button to first column in template detail data table so it's visible without scrolling on wide tables. Co-Authored-By: Claude Opus 4.6 --- .../admin/templates/admin/template_detail.html | 10 +++++----- web/src/padelnomics/content/__init__.py | 12 ++++++++++++ 2 files changed, 17 insertions(+), 5 deletions(-) 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 %} {% endfor %} - {% for row in sample_rows %} + {% for col in columns %} {% endfor %} - {% 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)
{{ col.name }}Preview
+ Preview + {{ row[col.name] }} - Preview -