feat: overhaul templating system

This commit is contained in:
Jef Roosens 2025-01-10 15:16:01 +01:00
parent 03b3f692e1
commit 4a4b8bba3d
No known key found for this signature in database
GPG key ID: 21FD3D77D56BAF49
22 changed files with 157 additions and 127 deletions

View file

@ -0,0 +1,22 @@
{% macro li(comment) %}
<li>{{ comment.comment }}</li>
{% endmacro li %}
{% macro list(comments) %}
<div id="comments">
<ul id="comments_ul">
{% for comment in comments %}
{{ self::li(comment=comment) }}
{% endfor %}
</ul>
</div>
{% endmacro list %}
{% macro form(plant_id, target="#comments > ul") %}
<form hx-post="/comments" hx-target="{{ target }}" hx-swap="beforeend">
<input type="hidden" id="plant_id" name="plant_id" value="{{ plant_id }}">
<label for="comment">Comment:</label>
<textarea id="comment" name="comment" rows=4></textarea></br>
<input type="submit">
</form>
{% endmacro form %}

View file

@ -0,0 +1,36 @@
{% macro li(event) %}
<li>
<div class="event">
<b>{{ event.event_type }}</b>
<p>{{ event.date }}</p>
<p>{{ event.description }}</p>
</div>
</li>
{% endmacro li %}
{% macro list(events) %}
<div id="events">
<ul>
{% for event in events %}
{{ self::li(event=event) }}
{% endfor %}
</ul>
</div>
{% endmacro ul %}
{% macro form(plant_id, target="#events > ul") %}
<form hx-post="/events" hx-target="{{ target }}" hx-swap="beforeend">
<input type="hidden" id="plant_id" name="plant_id" value="{{ plant_id }}">
<label for="event_type">Type:</label>
<select id="event_type" name="event_type">
{% for type in event_types %}
<option value="{{ type }}">{{ type }}</option>
{% endfor %}
</select>
<label for="date">Date:</label>
<input type="date" id="date" name="date">
<label for="description">Description:</label>
<textarea id="description" name="description" rows=2></textarea></br>
<input type="submit">
</form>
{% endmacro form %}

View file

@ -0,0 +1,37 @@
{% macro info(plant) %}
<div class="plant_info">
<h2>{{ plant.name }}</h2>
<h3>Species</h3>
<p>{{ plant.species }}</p>
<h3>Description</h3>
<p>{{ plant.description }}</p>
</div>
{% endmacro info %}
{% macro li(plant) %}
<li>
<a hx-get="/plants/{{ plant.id }}" hx-target="#content" hx-push-url="true">{{ plant.name }}</a> ({{ plant.species }})
</li>
{% endmacro li %}
{% macro list(plants) %}
<div id="plants">
<ul>
{% for plant in plants %}
{{ self::li(plant=plant) }}
{% endfor %}
</ul>
</div>
{% endmacro %}
{% macro form(target="#plants > ul") %}
<form hx-post="/plants" hx-target="{{ target }}" hx-swap="beforeend">
<label for="name">Name:</label>
<input type="text" id="name" name="name"></br>
<label for="species">Species:</label>
<input type="text" id="species" name="species"></br>
<label for="description">Description:</label>
<textarea id="description" name="description" rows=4></textarea></br>
<input type="submit">
</form>
{% endmacro %}