fix shopping list api

This commit is contained in:
smilerz
2021-12-20 12:27:25 -06:00
parent f5e4adba8b
commit 2d94cb70ab
8 changed files with 174 additions and 28 deletions

View File

@ -93,7 +93,14 @@
<div class="row">
<div class="col-md-6 order-md-1 col-sm-12 order-sm-2 col-12 order-2" v-if="recipe && ingredient_count > 0">
<ingredients-card :steps="recipe.steps" :ingredient_factor="ingredient_factor" :servings="servings" :header="true" @checked-state-changed="updateIngredientCheckedState" />
<ingredients-card
:recipe="recipe.id"
:steps="recipe.steps"
:ingredient_factor="ingredient_factor"
:servings="servings"
:header="true"
@checked-state-changed="updateIngredientCheckedState"
/>
</div>
<div class="col-12 order-1 col-sm-12 order-sm-1 col-md-6 order-md-2">

View File

@ -2,10 +2,10 @@
<div :class="{ 'card border-primary no-border': header }">
<div :class="{ 'card-body': header }">
<div class="row" v-if="header">
<div class="col col-md-8">
<div class="col col-md-6">
<h4 class="card-title"><i class="fas fa-pepper-hot"></i> {{ $t("Ingredients") }}</h4>
</div>
<div class="col col-md-4 text-right" v-if="header">
<div class="col col-md-6 text-right" v-if="header">
<h4>
<i v-if="show_shopping && ShoppingRecipes.length > 0" class="fas fa-trash text-danger px-2" @click="saveShopping(true)"></i>
<i v-if="show_shopping" class="fas fa-save text-success px-2" @click="saveShopping()"></i>
@ -94,14 +94,14 @@ export default {
},
},
watch: {
ShoppingRecipes: function(newVal, oldVal) {
ShoppingRecipes: function (newVal, oldVal) {
if (newVal.length === 0 || this.add_shopping_mode) {
this.selected_shoppingrecipe = undefined
} else if (newVal.length === 1) {
this.selected_shoppingrecipe = newVal[0].value
}
},
selected_shoppingrecipe: function(newVal, oldVal) {
selected_shoppingrecipe: function (newVal, oldVal) {
this.update_shopping = this.shopping_list.filter((x) => x.list_recipe === newVal).map((x) => x.ingredient)
},
},
@ -112,7 +112,7 @@ export default {
}
},
methods: {
getShopping: function(toggle_shopping = true) {
getShopping: function (toggle_shopping = true) {
if (toggle_shopping) {
this.show_shopping = !this.show_shopping
}
@ -132,7 +132,7 @@ export default {
})
}
},
saveShopping: function(del_shopping = false) {
saveShopping: function (del_shopping = false) {
let servings = this.servings
if (del_shopping) {
servings = 0
@ -171,7 +171,7 @@ export default {
this.$emit("shopping-failed")
})
},
addShopping: function(e) {
addShopping: function (e) {
// ALERT: this will all break if ingredients are re-used between recipes
if (e.add) {
this.update_shopping.push(e.item.id)

View File

@ -81,6 +81,7 @@ export default {
arrayValues = [{ id: -1, name: this_value }]
}
console.log(arrayValues)
if (this.form?.ordered && this.first_run) {
return this.flattenItems(arrayValues)
} else {

View File

@ -269,13 +269,13 @@ export interface FoodIgnoreInherit {
* @type {string}
* @memberof FoodIgnoreInherit
*/
name: string;
name?: string;
/**
*
* @type {string}
* @memberof FoodIgnoreInherit
*/
field: string;
field?: string;
}
/**
*
@ -294,13 +294,13 @@ export interface FoodInheritField {
* @type {string}
* @memberof FoodInheritField
*/
name: string;
name?: string;
/**
*
* @type {string}
* @memberof FoodInheritField
*/
field: string;
field?: string;
}
/**
*

View File

@ -369,6 +369,9 @@ export function getForm(model, action, item1, item2) {
if (f === "partialUpdate" && Object.keys(config).length == 0) {
config = { ...Actions.CREATE?.form, ...model.model_type?.["create"]?.form, ...model?.["create"]?.form }
config["title"] = { ...action?.form_title, ...model.model_type?.[f]?.form_title, ...model?.[f]?.form_title }
if (config["form_function"].includes("Create")) {
delete config["form_function"]
}
}
let form = { fields: [] }
let value = ""
@ -541,6 +544,7 @@ export const formFunctions = {
FoodCreateDefault: function (form) {
form.fields.filter((x) => x.field === "ignore_inherit")[0].value = getUserPreference("food_ignore_default")
form.fields.filter((x) => x.field === "inherit")[0].value = getUserPreference("food_ignore_default").length > 0
console.log(form)
return form
},
}