- 4 pages: Pantry, Recipes, Shopping List, Cook Log - HTMX-powered: add/delete pantry items, toggle shopping, generate smart list - Custom 13-colour palette from Lospec (dark bg, yellow accent) - Mobile-responsive - Whitenoise for static files in production - All routes under /app/ - API (/api/) stays internal, frontend (/app/) for browser use
32 lines
1.1 KiB
HTML
32 lines
1.1 KiB
HTML
{% for entry in entries %}
|
|
<div class="log-entry">
|
|
<div class="log-date">{{ entry.date|date:"j M" }}</div>
|
|
<div style="flex: 1;">
|
|
<div>
|
|
<span class="card-title">{{ entry.recipe_name }}</span>
|
|
{% if entry.rating %}
|
|
<span class="stars" style="margin-left: 0.5rem;">
|
|
{% for i in "12345" %}{% if forloop.counter <= entry.rating %}★{% else %}<span class="stars-empty">★</span>{% endif %}{% endfor %}
|
|
</span>
|
|
{% endif %}
|
|
</div>
|
|
{% if entry.slot_choices %}
|
|
<div style="margin-top: 0.25rem;">
|
|
{% for slot, choice in entry.slot_choices.items %}
|
|
<span class="badge badge-cupboard">{{ choice }}</span>
|
|
{% endfor %}
|
|
</div>
|
|
{% endif %}
|
|
{% if entry.notes %}
|
|
<div class="log-notes">{{ entry.notes }}</div>
|
|
{% endif %}
|
|
<div style="color: var(--sage); font-size: 0.75rem; margin-top: 0.25rem;">{{ entry.servings }} serving{{ entry.servings|pluralize }}</div>
|
|
</div>
|
|
</div>
|
|
{% empty %}
|
|
<div class="empty">
|
|
<div class="empty-icon">📝</div>
|
|
<p>No cooks logged yet.</p>
|
|
</div>
|
|
{% endfor %}
|