.map_err(DBError::from)
}
- pub async fn get_recipe(&self, id: i64, with_groups: bool) -> Result<Option<model::Recipe>> {
+ pub async fn get_recipe(&self, id: i64, complete: bool) -> Result<Option<model::Recipe>> {
match sqlx::query_as::<_, model::Recipe>(
r#"
SELECT
.fetch_optional(&self.pool)
.await?
{
- Some(mut recipe) if with_groups => {
+ Some(mut recipe) if complete => {
+ recipe.tags = self.get_recipes_tags(id).await?;
recipe.groups = self.get_groups(id).await?;
Ok(Some(recipe))
}
pub servings: Option<u32>,
pub is_published: bool,
+ #[sqlx(skip)]
+ pub tags: Vec<String>,
+
#[sqlx(skip)]
pub groups: Vec<Group>,
}
RecipeIngredientQuantity,
RecipeIngredientUnit,
RecipeIngredientComment,
+
+ // View Recipe.
+ RecipeOneServing,
+ RecipeSomeServings,
+ RecipeEstimatedTimeMinAbbreviation,
}
pub const DEFAULT_LANGUAGE_CODE: &str = "en";
<a class="edit-recipe" href="/recipe/edit/{{ recipe.id }}" >Edit</a>
{% endif %}
+ <div class="tags">
+ {% for tag in recipe.tags %}
+ <span class="tag">{{ tag }}</span>
+ {% endfor %}
+ </div>
+
+ {% match recipe.servings %}
+ {% when Some(servings) %}
+ <span class="servings">
+ {% if *servings == 1 %}
+ {{ tr.t(Sentence::RecipeOneServing) }}
+ {% else %}
+ {{ tr.tp(Sentence::RecipeSomeServings, [Box::new(**servings)]) }}
+ {% endif %}
+ </span>
+ {% else %}
+ {% endmatch %}
+
+
+ {% match recipe.estimated_time %}
+ {% when Some(time) %}
+ {{ time +}} {{+ tr.t(Sentence::RecipeEstimatedTimeMinAbbreviation) }}
+ {% else %}
+ {% endmatch %}
+
{% if !recipe.description.is_empty() %}
<div class="recipe-description" >
{{ recipe.description.clone() }}
(RecipeIngredientQuantity, "Quantity"),
(RecipeIngredientUnit, "Unit"),
(RecipeIngredientComment, "Comment"),
+
+ (RecipeOneServing, "1 serving"),
+ (RecipeSomeServings, "{} servings"),
+ (RecipeEstimatedTimeMinAbbreviation, "min"),
]
),
(
(RecipeIngredientQuantity, "Quantité"),
(RecipeIngredientUnit, "Unité"),
(RecipeIngredientComment, "Commentaire"),
+
+ (RecipeOneServing, "pour 1 personne"),
+ (RecipeSomeServings, "pour {} personnes"),
+ (RecipeEstimatedTimeMinAbbreviation, "min"),
]
)
]
\ No newline at end of file