mirror of
https://github.com/hay-kot/mealie.git
synced 2025-08-22 14:33:33 -07:00
fix meal-plan filter
This commit is contained in:
parent
7f8a2b35e2
commit
7394cfc640
3 changed files with 25 additions and 18 deletions
|
@ -115,26 +115,17 @@ export default {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
groupSettings() {
|
||||||
|
this.buildMealStore();
|
||||||
|
},
|
||||||
},
|
},
|
||||||
async mounted() {
|
async mounted() {
|
||||||
let categories = Array.from(this.groupSettings, x => x.name);
|
this.$store.dispatch("requestCurrentGroup");
|
||||||
this.items = await api.recipes.getAllByCategory(categories);
|
|
||||||
|
|
||||||
if (this.items.length === 0) {
|
|
||||||
const keys = [
|
|
||||||
"name",
|
|
||||||
"slug",
|
|
||||||
"image",
|
|
||||||
"description",
|
|
||||||
"dateAdded",
|
|
||||||
"rating",
|
|
||||||
];
|
|
||||||
this.items = await api.recipes.allByKeys(keys);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
computed: {
|
computed: {
|
||||||
groupSettings() {
|
groupSettings() {
|
||||||
|
console.log(this.$store.getters.getCurrentGroup);
|
||||||
return this.$store.getters.getCurrentGroup;
|
return this.$store.getters.getCurrentGroup;
|
||||||
},
|
},
|
||||||
actualStartDate() {
|
actualStartDate() {
|
||||||
|
@ -164,6 +155,22 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
|
async buildMealStore() {
|
||||||
|
let categories = Array.from(this.groupSettings.categories, x => x.name);
|
||||||
|
this.items = await api.recipes.getAllByCategory(categories);
|
||||||
|
|
||||||
|
if (this.items.length === 0) {
|
||||||
|
const keys = [
|
||||||
|
"name",
|
||||||
|
"slug",
|
||||||
|
"image",
|
||||||
|
"description",
|
||||||
|
"dateAdded",
|
||||||
|
"rating",
|
||||||
|
];
|
||||||
|
this.items = await api.recipes.allByKeys(keys);
|
||||||
|
}
|
||||||
|
},
|
||||||
get_random(list) {
|
get_random(list) {
|
||||||
const object = list[Math.floor(Math.random() * list.length)];
|
const object = list[Math.floor(Math.random() * list.length)];
|
||||||
return object;
|
return object;
|
||||||
|
|
|
@ -133,7 +133,7 @@ export default {
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
categories() {
|
categories() {
|
||||||
return this.$store.getters.getCategories;
|
return this.$store.getters.getAllCategories;
|
||||||
},
|
},
|
||||||
isFlat() {
|
isFlat() {
|
||||||
return this.groupSettings.categories >= 1 ? true : false;
|
return this.groupSettings.categories >= 1 ? true : false;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
|
from fastapi import APIRouter, Depends, Query
|
||||||
from mealie.db.database import db
|
from mealie.db.database import db
|
||||||
from mealie.db.db_setup import generate_session
|
from mealie.db.db_setup import generate_session
|
||||||
from fastapi import APIRouter, Depends, Query
|
|
||||||
from mealie.schema.recipe import AllRecipeRequest
|
from mealie.schema.recipe import AllRecipeRequest
|
||||||
from slugify import slugify
|
from slugify import slugify
|
||||||
from sqlalchemy.orm.session import Session
|
from sqlalchemy.orm.session import Session
|
||||||
|
@ -75,7 +75,7 @@ def filter_by_category(categories: list, session: Session = Depends(generate_ses
|
||||||
""" pass a list of categories and get a list of recipes associated with those categories """
|
""" pass a list of categories and get a list of recipes associated with those categories """
|
||||||
# ! This should be refactored into a single database call, but I couldn't figure it out
|
# ! This should be refactored into a single database call, but I couldn't figure it out
|
||||||
in_category = [db.categories.get(session, slugify(cat), limit=1) for cat in categories]
|
in_category = [db.categories.get(session, slugify(cat), limit=1) for cat in categories]
|
||||||
in_category = [cat.get("recipes") for cat in in_category if cat]
|
in_category = [cat.recipes for cat in in_category if cat]
|
||||||
in_category = [item for sublist in in_category for item in sublist]
|
in_category = [item for sublist in in_category for item in sublist]
|
||||||
return in_category
|
return in_category
|
||||||
|
|
||||||
|
@ -85,6 +85,6 @@ async def filter_by_tags(tags: list, session: Session = Depends(generate_session
|
||||||
""" pass a list of tags and get a list of recipes associated with those tags"""
|
""" pass a list of tags and get a list of recipes associated with those tags"""
|
||||||
# ! This should be refactored into a single database call, but I couldn't figure it out
|
# ! This should be refactored into a single database call, but I couldn't figure it out
|
||||||
in_tags = [db.tags.get(session, slugify(tag), limit=1) for tag in tags]
|
in_tags = [db.tags.get(session, slugify(tag), limit=1) for tag in tags]
|
||||||
in_tags = [tag.get("recipes") for tag in in_tags]
|
in_tags = [tag.recipes for tag in in_tags]
|
||||||
in_tags = [item for sublist in in_tags for item in sublist]
|
in_tags = [item for sublist in in_tags for item in sublist]
|
||||||
return in_tags
|
return in_tags
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue