{% extends "base.html" %} {% import "partials/detail_cards.html" as detail %} {% import "partials/icons.html" as icons %} {% block title %}Brewlog · {{ brew.roast_name }}{% endblock %} {% block description %} {{ brew.roast_name }} by {{ brew.roaster_name }} — {{ brew.coffee_weight }} coffee, {{ brew.water_volume }} water. {% endblock %} {% block og_title %}{{ brew.roast_name }} — Brewlog{% endblock %} {% block og_description %} {{ brew.roast_name }} by {{ brew.roaster_name }} — {{ brew.coffee_weight }} coffee, {{ brew.water_volume }} water. {% endblock %} {% block head %} {% endblock %} {% block content %}

{{ brew.roast_name }}

{{ brew.roaster_name }} · Brewed {{ brew.created_date }} at {{ brew.created_time }}

{# ── Coffee + map ── #}
{{ detail::coffee_card(brew.roast_name, brew.roaster_name, brew.origin, brew.origin_flag, brew.region, brew.producer, brew.process, brew.tasting_notes, roaster_slug, roast_slug) }} {{ detail::map_with_legend_2(brew.map_countries, brew.map_max, "Origin", "", "Roaster", "opacity-50") }}
{# ── Roaster & gear ── #}
{{ detail::roaster_card(brew.roaster_name, brew.roaster_country, brew.roaster_country_flag, brew.roaster_city, brew.roaster_homepage, roaster_slug) }}

Gear

Grinder
{{ brew.grinder_name }}
Brewer
{{ brew.brewer_name }}
{% if let Some(fp) = brew.filter_paper_name %}
Filter Paper
{{ fp }}
{% endif %}
{# ── Recipe ── #}

Recipe

Coffee
{{ brew.coffee_weight }}
Water
{{ brew.water_volume }}
Temperature
{{ brew.water_temp }}
Grind Setting
{{ brew.grind_setting }}
{% if let Some(time) = brew.brew_time %}
Brew Time
{{ time }}
{% endif %} {% if !brew.quick_notes_label.is_empty() %}
Notes
{{ brew.quick_notes_label }}
{% endif %}
{% if is_authenticated %}
{% endif %} {% endblock %}