basics of scaling

This commit is contained in:
vabene1111
2020-08-26 21:41:04 +02:00
parent 3c73b084cf
commit 984192e479

View File

@@ -27,41 +27,46 @@
</div> </div>
</div> </div>
<template v-if="shopping_list !== undefined">
<div v-if="edit_mode">
<div class="row"> <div v-if="edit_mode">
<div class="col col-md-6"> <div class="row">
<input type="text" class="form-control" v-model="recipe_query" @keyup="getRecipes" <div class="col col-md-6">
placeholder="{% trans 'Search Recipe' %}"> <input type="text" class="form-control" v-model="recipe_query" @keyup="getRecipes"
<ul class="list-group" style="margin-top: 8px"> placeholder="{% trans 'Search Recipe' %}">
<li class="list-group-item" v-for="x in recipes">[[x.name]] <ul class="list-group" style="margin-top: 8px">
<button @click="addRecipeToList(x)"><i class="fa fa-plus"></i></button> <li class="list-group-item" v-for="x in recipes">[[x.name]]
</li> <button @click="addRecipeToList(x)"><i class="fa fa-plus"></i></button>
</ul> </li>
</ul>
</div>
<div class="col col-md-6">
<ul class="list-group" style="margin-top: 8px">
<li class="list-group-item" v-for="x in shopping_list.recipes">[[x.recipe.name]] <input
type="number" v-model="x.multiplier" @change="updateMultiplier(x.id)">
</li>
</ul>
</div>
</div> </div>
<div class="col col-md-6"> <div class="row" style="margin-top: 8px">
<ul class="list-group" style="margin-top: 8px" v-if="shopping_list !== undefined"> <div class="col col-12">
<li class="list-group-item" v-for="x in shopping_list.recipes">[[x.recipe.name]] <input <table class="table table-sm table-striped">
type="number" v-model="x.multiplier"> <tr v-for="x in shopping_list.entries">
</li> <td>[[x.amount]]</td>
</ul> <td>[[x.unit.name]]</td>
<td>[[x.food.name]]</td>
</tr>
</table>
</div>
</div> </div>
</div> </div>
<div class="row"> <div v-else>
<div class="col col-12"> Non Edit
<table>
<tr v-for="x in shopping_list.entries">
<td>[[x]]</td>
</tr>
</table>
</div>
</div> </div>
</div> </template>
<div v-else>
Non Edit
</div>
{% endblock %} {% endblock %}
@@ -139,23 +144,44 @@
}, },
addRecipeToList: function (recipe) { addRecipeToList: function (recipe) {
console.log(this.shopping_list) console.log(this.shopping_list)
this.shopping_list.recipes.push({
let slr = {
"id": Math.random() * 1000,
"recipe": recipe, "recipe": recipe,
"multiplier": 1 "multiplier": 1
}) }
this.shopping_list.recipes.push(slr)
for (let s of recipe.steps) { for (let s of recipe.steps) {
for (let i of s.ingredients) { for (let i of s.ingredients) {
this.shopping_list.entries.push({
'list_recipe': recipe.id, if (!i.is_header) {
'food': i.food, this.shopping_list.entries.push({
'unit': i.unit, 'list_recipe': slr.id,
'amount': i.amount, 'food': i.food,
'order': 0 'unit': ((i.unit !== undefined) ? i.unit : {'name': ''}),
}) 'amount': i.amount,
'order': 0
})
}
} }
} }
}, },
updateMultiplier: function(slr_id) {
console.log('searching', slr_id)
let slr = undefined
for (let r of this.shopping_list.recipes){
console.log(r, r.id)
if (r.id === slr_id) {
console.log('FOUND')
slr = r
}
}
for (let e of this.shopping_list.entries){
e.amount = (e.amount * slr.multiplier)
}
},
searchKeywords: function (query) { searchKeywords: function (query) {
this.keywords_loading = true this.keywords_loading = true
this.$http.get("{% url 'api:keyword-list' %}" + '?query=' + query + '&limit=10').then((response) => { this.$http.get("{% url 'api:keyword-list' %}" + '?query=' + query + '&limit=10').then((response) => {