{{ recipe.title }}
{% if user.is_some() && crate::data::model::can_user_edit_recipe(&user.as_ref().unwrap(), &recipe) %} Edit {% endif %} {% match recipe.servings %} {% when Some(servings) %} {% if *servings == 1 %} {{ tr.t(Sentence::RecipeOneServing) }} {% else %} {{ tr.tp(Sentence::RecipeSomeServings, [Box::new(**servings)]) }} {% endif %} {% else %} {% endmatch %} {% match recipe.estimated_time %} {% when Some(time) %} {{ time +}} {{+ tr.t(Sentence::RecipeEstimatedTimeMinAbbreviation) }} {% else %} {% endmatch %} {% match recipe.difficulty %} {% when common::ron_api::Difficulty::Unknown %} {% when common::ron_api::Difficulty::Easy %} {{ tr.t(Sentence::RecipeDifficultyEasy) }} {% when common::ron_api::Difficulty::Medium %} {{ tr.t(Sentence::RecipeDifficultyMedium) }} {% when common::ron_api::Difficulty::Hard %} {{ tr.t(Sentence::RecipeDifficultyHard) }} {% endmatch %} {% if !recipe.description.is_empty() %}
{{ recipe.description }}
{% endif %}
{% for group in recipe.groups %}
{{ group.name }}
{% for step in group.steps %}
{% for ingredient in step.ingredients %}
{% if let Some(quantity) = ingredient.quantity_value %}
{{ quantity +}}
{{+ ingredient.quantity_unit }}
{% endif +%}
{{+ ingredient.name }}
{% endfor %}
{{ step.action }}
{% endfor %}