diff --git a/src/domain/coffee/brews.rs b/src/domain/coffee/brews.rs index cad700e..5f92322 100644 --- a/src/domain/coffee/brews.rs +++ b/src/domain/coffee/brews.rs @@ -97,6 +97,7 @@ pub struct BrewWithDetails { pub roast_slug: String, pub roaster_slug: String, pub grinder_name: String, + pub grinder_model: String, pub brewer_name: String, pub filter_paper_name: Option, } diff --git a/src/infrastructure/repositories/coffee/brews.rs b/src/infrastructure/repositories/coffee/brews.rs index 915837d..8c777af 100644 --- a/src/infrastructure/repositories/coffee/brews.rs +++ b/src/infrastructure/repositories/coffee/brews.rs @@ -18,6 +18,7 @@ const BASE_SELECT: &str = r" r.name as roast_name, r.slug as roast_slug, rr.name as roaster_name, rr.slug as roaster_slug, (g_grinder.make || ' ' || g_grinder.model) as grinder_name, + g_grinder.model as grinder_model, (g_brewer.make || ' ' || g_brewer.model) as brewer_name, (g_fp.make || ' ' || g_fp.model) as filter_paper_name FROM brews br @@ -118,6 +119,7 @@ impl SqlBrewRepository { roast_slug: record.roast_slug, roaster_slug: record.roaster_slug, grinder_name: record.grinder_name, + grinder_model: record.grinder_model, brewer_name: record.brewer_name, filter_paper_name: record.filter_paper_name, } @@ -325,6 +327,7 @@ struct BrewWithDetailsRecord { roaster_name: String, roaster_slug: String, grinder_name: String, + grinder_model: String, brewer_name: String, filter_paper_name: Option, } diff --git a/src/presentation/web/views/brews.rs b/src/presentation/web/views/brews.rs index bb106d5..f3c756e 100644 --- a/src/presentation/web/views/brews.rs +++ b/src/presentation/web/views/brews.rs @@ -102,10 +102,7 @@ impl BrewView { roaster_slug: brew.roaster_slug, coffee_weight: format_weight(brew.brew.coffee_weight), grinder_id: brew.brew.grinder_id.into_inner(), - grinder_model: brew - .grinder_name - .split_once(' ') - .map_or_else(|| brew.grinder_name.clone(), |(_, model)| model.to_string()), + grinder_model: brew.grinder_model, grinder_name: brew.grinder_name, grind_setting: format!("{:.1}", brew.brew.grind_setting), brewer_id: brew.brew.brewer_id.into_inner(), @@ -225,6 +222,9 @@ pub struct BrewDetailView { // Map pub map_countries: String, pub map_max: u32, + // Slugs (for breadcrumbs) + pub roaster_slug: String, + pub roast_slug: String, // Dates pub created_date: String, pub created_time: String, @@ -256,6 +256,8 @@ impl BrewDetailView { id: brew.brew.id.to_string(), roast_name: brew.roast_name, roaster_name: brew.roaster_name, + roaster_slug: roaster.slug.clone(), + roast_slug: roast.slug.clone(), origin: coffee.origin, origin_flag: coffee.origin_flag, region: coffee.region,