diff --git a/cookbook/templates/recipe_view.html b/cookbook/templates/recipe_view.html
index 2ec2b117..c0f62d47 100644
--- a/cookbook/templates/recipe_view.html
+++ b/cookbook/templates/recipe_view.html
@@ -79,6 +79,7 @@
window.CUSTOM_LOCALE = '{{ request.LANGUAGE_CODE }}'
window.RECIPE_ID = {{recipe.pk}};
+ window.RECIPE_SERVINGS = '{{ servings }}'
window.SHARE_UID = '{{ share }}';
window.USER_PREF = {
'use_fractions': {% if request.user.userpreference.use_fractions %} true {% else %} false {% endif %},
diff --git a/cookbook/views/views.py b/cookbook/views/views.py
index 1c12c77d..6454cf0d 100644
--- a/cookbook/views/views.py
+++ b/cookbook/views/views.py
@@ -171,9 +171,10 @@ def recipe_view(request, pk, share=None):
created_at__gt=(timezone.now() - timezone.timedelta(minutes=5)),
space=request.space).exists():
ViewLog.objects.create(recipe=recipe, created_by=request.user, space=request.space)
-
+ if request.method == "GET":
+ servings = request.GET.get("servings")
return render(request, 'recipe_view.html',
- {'recipe': recipe, 'comments': comments, 'comment_form': comment_form, 'share': share, })
+ {'recipe': recipe, 'comments': comments, 'comment_form': comment_form, 'share': share, 'servings': servings })
@group_required('user')
diff --git a/vue/src/apps/MealPlanView/MealPlanView.vue b/vue/src/apps/MealPlanView/MealPlanView.vue
index 58793c70..dc51fa23 100644
--- a/vue/src/apps/MealPlanView/MealPlanView.vue
+++ b/vue/src/apps/MealPlanView/MealPlanView.vue
@@ -126,7 +126,7 @@
- {{ plan.entry.recipe.name }}
+ {{ plan.entry.recipe.name }}
{{ plan.entry.title }}
@@ -169,7 +169,7 @@
v-if="contextData && contextData.originalItem && contextData.originalItem.entry.recipe != null"
@click="
$refs.menu.close()
- openRecipe(contextData.originalItem.entry.recipe)
+ openRecipe(contextData.originalItem.entry.recipe, contextData.originalItem.entry.servings)
"
>
@@ -392,8 +392,13 @@ export default {
},
},
methods: {
- openRecipe: function (recipe) {
- window.open(this.resolveDjangoUrl("view_recipe", recipe.id))
+
+ getRecipeURL: function (recipe, servings) {
+ return this.resolveDjangoUrl("view_recipe",`${recipe.id}?servings=${servings}`)
+ },
+
+ openRecipe: function (recipe, servings) {
+ window.open(this.getRecipeURL(recipe, servings))
},
setStartingDay(days) {
if (this.settings.startingDayOfWeek + days < 0) {
diff --git a/vue/src/components/RecipeViewComponent.vue b/vue/src/components/RecipeViewComponent.vue
index 07a051ad..584d354b 100644
--- a/vue/src/components/RecipeViewComponent.vue
+++ b/vue/src/components/RecipeViewComponent.vue
@@ -237,6 +237,7 @@ export default {
},
props: {
recipe_id: Number,
+ def_servings: Number,
recipe_obj: {type: Object, default: null},
show_context_menu: {type: Boolean, default: true},
enable_keyword_links: {type: Boolean, default: true},
@@ -320,8 +321,13 @@ export default {
if (this.recipe.image === null) this.printReady()
-
- this.servings = this.servings_cache[this.rootrecipe.id] = this.recipe.servings
+ window.RECIPE_SERVINGS = Number(window.RECIPE_SERVINGS)
+ if (window.RECIPE_SERVINGS && ! isNaN(window.RECIPE_SERVINGS)) {
+ //I am not sure this is the best way. This overwrites our servings cache, which may not be intended?
+ this.servings = window.RECIPE_SERVINGS
+ } else {
+ this.servings = this.servings_cache[this.rootrecipe.id] = this.recipe.servings
+ }
this.loading = false
setTimeout(() => {