{% extends "base.html" %} {% import "partials/bag_card.html" as bag_card %} {% import "partials/brew_card.html" as brew_card %} {% import "partials/icons.html" as icons %} {% block title %}Brewlog{% endblock %} {% block head %} {% if is_authenticated %} {% endif %} {% endblock %} {% block content %} {% if is_authenticated %}
{% include "partials/forms/scan_result_form.html" %}
{% endif %}

Recent Brews

View all brews →
{% if !recent_brews.is_empty() %}
{% for brew in recent_brews %} {{ brew_card::card(brew, is_authenticated) }} {% endfor %}
{% else %}
No brews yet
{% endif %}

Open Bags

View all bags →
{% if !open_bags.is_empty() %}
{% for bag in open_bags %} {{ bag_card::card(bag, is_authenticated) }} {% endfor %}
{% else %}
No open bags
{% endif %}

Recent Activity

View full timeline →
{% if !recent_events.is_empty() %}
{% for event in recent_events %}
{{ event.kind_label }}

{{ event.title }}{% if let Some(sub) = event.subtitle %} ยท {{ sub }}{% endif %}

{% endfor %}
{% else %}
No activity yet
{% endif %}

Stats

{{ icons::beaker("h-6 w-6 text-accent") }} {{ stats.brews }} Brews {{ icons::fire("h-6 w-6 text-accent") }} {{ stats.roasts }} Roasts {{ icons::building("h-6 w-6 text-accent") }} {{ stats.roasters }} Roasters {{ icons::bag("h-6 w-6 text-accent") }} {{ stats.bags }} Bags {{ icons::cup("h-6 w-6 text-accent") }} {{ stats.cups }} Cups {{ icons::location("h-6 w-6 text-accent") }} {{ stats.cafes }} Cafes {{ icons::wrench("h-6 w-6 text-accent") }} {{ stats.gear }} Gear
{% endblock %}