diff --git a/vue/src/apps/ShoppingListView/ShoppingListView.vue b/vue/src/apps/ShoppingListView/ShoppingListView.vue
index 9fa95d7e..48d066be 100644
--- a/vue/src/apps/ShoppingListView/ShoppingListView.vue
+++ b/vue/src/apps/ShoppingListView/ShoppingListView.vue
@@ -555,7 +555,6 @@ export default {
supermarket_categories_only: false,
shopcat: null,
delay: 0,
- clear: Math.random(),
generic_action: null,
generic_model: null,
ui: {
@@ -843,13 +842,7 @@ export default {
})
},
setFocus() {
- if (this.ui.entry_mode_simple) {
- this.$refs['amount_input_simple'].focus()
- } else {
- if (this.$refs['amount_input_complex']) {
- this.$refs['amount_input_complex'].focus()
- }
- }
+ this.$refs['amount_input_simple'].focus()
},
// this.genericAPI inherited from ApiMixin
addItem: function () {
@@ -861,19 +854,14 @@ export default {
unit = {name: result.data.unit}
}
- //TODO clean up from here on
- this.new_item = {
+ this.useShoppingListStore().createObject({
amount: result.data.amount,
unit: unit,
food: {name: result.data.food, supermarket_category: null},
- }
- this.useShoppingListStore().createObject(this.new_item)
+ })
this.new_item = {amount: 1, unit: undefined, food: undefined, ingredient: undefined}
- this.clear += 1
})
}
-
- this.setFocus()
},
resetFilters: function () {
this.ui.selected_supermarket = undefined
diff --git a/vue/src/components/ShoppingLineItem.vue b/vue/src/components/ShoppingLineItem.vue
index a39f77c6..bc016a06 100644
--- a/vue/src/components/ShoppingLineItem.vue
+++ b/vue/src/components/ShoppingLineItem.vue
@@ -13,8 +13,7 @@
- {{ info_row }}
-
+ {{ info_row }}
@@ -33,15 +32,24 @@
Actions
-
+
{{ $t("Edit_Food") }}
{{ $t('Delay') }}
+
+ {{ $t('Entries') }}
+
{{ $t('Delete_All') }}
- Details
@@ -81,9 +89,10 @@
import Vue from "vue"
import {BootstrapVue} from "bootstrap-vue"
import "bootstrap-vue/dist/bootstrap-vue.css"
-import {ApiMixin, resolveDjangoUrl} from "@/utils/utils"
+import {ApiMixin, resolveDjangoUrl, StandardToasts} from "@/utils/utils"
import {useMealPlanStore} from "@/stores/MealPlanStore";
import {useShoppingListStore} from "@/stores/ShoppingListStore";
+import {ApiApiFactory} from "@/utils/openapi/api";
Vue.use(BootstrapVue)
@@ -174,11 +183,11 @@ export default {
return recipes.join(', ')
}
- if (Object.keys(this.entries ).length === 1) {
+ if (Object.keys(this.entries).length === 123) {
return "Abendessen 31.12" // TODO implement mealplan or manual
}
- return this.entries.length
+ return "IMPLEMENT INFO ROW!!"
}
},
watch: {},
@@ -187,7 +196,6 @@ export default {
},
methods: {
useShoppingListStore,
- useMealPlanStore,
resolveDjangoUrl,
formatDate: function (datetime) {
@@ -200,6 +208,21 @@ export default {
}).format(Date.parse(datetime))
},
+ updateFoodCategory: function (food) {
+
+ if (typeof food.supermarket_category === "number"){
+ food.supermarket_category = this.useShoppingListStore().supermarket_categories.filter(sc => sc.id === food.supermarket_category)[0]
+ }
+
+ let apiClient = new ApiApiFactory()
+ apiClient.updateFood(food.id, food).then(r => {
+
+ }).catch((err) => {
+ StandardToasts.makeStandardToast(this, StandardToasts.FAIL_UPDATE, err)
+ })
+ }
+
+
},
}
diff --git a/vue/src/locales/en.json b/vue/src/locales/en.json
index 34bf5e94..846887ab 100644
--- a/vue/src/locales/en.json
+++ b/vue/src/locales/en.json
@@ -346,6 +346,7 @@
"Delay": "Delay",
"Pin": "Pin",
"Unpin": "Unpin",
+ "Entries": "Entries",
"PinnedConfirmation": "{recipe} has been pinned.",
"UnpinnedConfirmation": "{recipe} has been unpinned.",
"mark_complete": "Mark Complete",
diff --git a/vue/src/stores/ShoppingListStore.js b/vue/src/stores/ShoppingListStore.js
index 4813fe30..83d46236 100644
--- a/vue/src/stores/ShoppingListStore.js
+++ b/vue/src/stores/ShoppingListStore.js
@@ -12,8 +12,9 @@ const _LOCAL_STORAGE_KEY = "SHOPPING_LIST_CLIENT_SETTINGS"
export const useShoppingListStore = defineStore(_STORE_ID, {
state: () => ({
category_food_entries: {},
+ supermarket_categories: [],
- show_checked_entries: false,
+ show_checked_entries: false, // TODO move to settings
currently_updating: false,
settings: null,
@@ -43,6 +44,14 @@ export const useShoppingListStore = defineStore(_STORE_ID, {
this.updateEntryInStructure(e)
})
this.currently_updating = false
+ }).catch((err) => {
+ StandardToasts.makeStandardToast(this, StandardToasts.FAIL_FETCH, err)
+ })
+
+ apiClient.listSupermarketCategorys().then(r => {
+ this.supermarket_categories = r.data
+ }).catch((err) => {
+ StandardToasts.makeStandardToast(this, StandardToasts.FAIL_FETCH, err)
})
}
},