{% 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 %} {% 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 %}
{% if event.entity_type == "brew" %}{{ icons::beaker("h-5 w-5") }}{% elif event.entity_type == "roast" %}{{ icons::coffee_bean("h-5 w-5") }}{% elif event.entity_type == "roaster" %}{{ icons::fire("h-5 w-5") }}{% elif event.entity_type == "bag" %}{{ icons::bag("h-5 w-5") }}{% elif event.entity_type == "cup" %}{{ icons::cup("h-5 w-5") }}{% elif event.entity_type == "cafe" %}{{ icons::location("h-5 w-5") }}{% elif event.entity_type == "gear" %}{{ icons::grinder("h-5 w-5") }}{% else %}{{ icons::beaker("h-5 w-5") }}{% endif %}

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

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

Stats

View all stats →
{% if !stats.is_empty() && !stat_cards.is_empty() %} {% else %}
No stats yet
{% endif %}

Data

View all data →
{% if !stats.is_empty() %} {% else %}
No data yet
{% endif %}
{% endblock %}