diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index db821321b63..2e8de8afb15 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -12,7 +12,7 @@ repos: exclude: ^tests/data/ - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: v0.8.1 + rev: v0.8.2 hooks: - id: ruff - id: ruff-format diff --git a/frontend/components/global/CrudTable.vue b/frontend/components/global/CrudTable.vue index 1c7bfe3c9c2..6e427220df1 100644 --- a/frontend/components/global/CrudTable.vue +++ b/frontend/components/global/CrudTable.vue @@ -99,6 +99,8 @@ export interface TableHeaders { value: string; show: boolean; align?: string; + sortable?: boolean; + sort?: (a: any, b: any) => number; } export interface BulkAction { diff --git a/frontend/components/global/SafeMarkdown.vue b/frontend/components/global/SafeMarkdown.vue index 030080a4e38..7979ff8bac2 100644 --- a/frontend/components/global/SafeMarkdown.vue +++ b/frontend/components/global/SafeMarkdown.vue @@ -48,3 +48,20 @@ export default defineComponent({ }, }); + + diff --git a/frontend/pages/group/data/foods.vue b/frontend/pages/group/data/foods.vue index cb41a09bd2d..bdc2c484859 100644 --- a/frontend/pages/group/data/foods.vue +++ b/frontend/pages/group/data/foods.vue @@ -290,6 +290,7 @@ import MultiPurposeLabel from "~/components/Domain/ShoppingList/MultiPurposeLabe import { useLocales } from "~/composables/use-locales"; import { useFoodStore, useLabelStore } from "~/composables/store"; import { VForm } from "~/types/vuetify"; +import { MultiPurposeLabelOut } from "~/lib/api/types/labels"; export default defineComponent({ components: { MultiPurposeLabel, RecipeDataAliasManagerDialog }, @@ -325,6 +326,11 @@ export default defineComponent({ text: i18n.tc("shopping-list.label"), value: "label", show: true, + sort: (label1: MultiPurposeLabelOut | null, label2: MultiPurposeLabelOut | null) => { + const label1Name = label1?.name || ""; + const label2Name = label2?.name || ""; + return label1Name.localeCompare(label2Name); + }, }, { text: i18n.tc("tool.on-hand"), diff --git a/frontend/pages/household/mealplan/planner/edit.vue b/frontend/pages/household/mealplan/planner/edit.vue index a94f446618a..0730705d3a9 100644 --- a/frontend/pages/household/mealplan/planner/edit.vue +++ b/frontend/pages/household/mealplan/planner/edit.vue @@ -13,6 +13,7 @@ )" color="primary" :icon="$globals.icons.foods" + :submit-disabled="isCreateDisabled" @submit=" if (newMeal.existing) { actions.updateOne(newMeal); @@ -22,7 +23,6 @@ resetDialog(); " @close="resetDialog()" - :submitDisabled="isCreateDisabled" > =0.29.24)"] [[package]] name = "httpx" -version = "0.28.0" +version = "0.28.1" description = "The next generation HTTP client." optional = false python-versions = ">=3.8" files = [ - {file = "httpx-0.28.0-py3-none-any.whl", hash = "sha256:dc0b419a0cfeb6e8b34e85167c0da2671206f5095f1baa9663d23bcfd6b535fc"}, - {file = "httpx-0.28.0.tar.gz", hash = "sha256:0858d3bab51ba7e386637f22a61d8ccddaeec5f3fe4209da3a6168dbb91573e0"}, + {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"}, + {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"}, ] [package.dependencies] @@ -1451,13 +1451,13 @@ pyyaml = ">=5.1" [[package]] name = "mkdocs-material" -version = "9.5.47" +version = "9.5.48" description = "Documentation that simply works" optional = false python-versions = ">=3.8" files = [ - {file = "mkdocs_material-9.5.47-py3-none-any.whl", hash = "sha256:53fb9c9624e7865da6ec807d116cd7be24b3cb36ab31b1d1d1a9af58c56009a2"}, - {file = "mkdocs_material-9.5.47.tar.gz", hash = "sha256:fc3b7a8e00ad896660bd3a5cc12ca0cb28bdc2bcbe2a946b5714c23ac91b0ede"}, + {file = "mkdocs_material-9.5.48-py3-none-any.whl", hash = "sha256:b695c998f4b939ce748adbc0d3bff73fa886a670ece948cf27818fa115dc16f8"}, + {file = "mkdocs_material-9.5.48.tar.gz", hash = "sha256:a582531e8b34f4c7ed38c29d5c44763053832cf2a32f7409567e0c74749a47db"}, ] [package.dependencies] @@ -1584,13 +1584,13 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"] [[package]] name = "openai" -version = "1.56.2" +version = "1.57.2" description = "The official Python library for the openai API" optional = false python-versions = ">=3.8" files = [ - {file = "openai-1.56.2-py3-none-any.whl", hash = "sha256:82d0c48f9504e04c7797e9b799dcf7f49a246d99b6cbfd90f3193ea80815b69e"}, - {file = "openai-1.56.2.tar.gz", hash = "sha256:17312af69bc7670d4048f98ab5849f8784d98c39ac64fcde19406e3774a0c1e5"}, + {file = "openai-1.57.2-py3-none-any.whl", hash = "sha256:f7326283c156fdee875746e7e54d36959fb198eadc683952ee05e3302fbd638d"}, + {file = "openai-1.57.2.tar.gz", hash = "sha256:5f49fd0f38e9f2131cda7deb45dafdd1aee4f52a637e190ce0ecf40147ce8cee"}, ] [package.dependencies]