mirror of
https://github.com/mealie-recipes/mealie.git
synced 2026-01-01 22:51:21 -05:00
perf(backend): ⚡ remove validation on recipe summary response (#718)
* count responses * perf(backend): ⚡ remove validation on recipe summary response use the construct() method from pydantic to reduce get time as well as optimize the SQL query for recipes * update UI to support new categories/tags * fix(backend): 🐛 restrict recipes by group Co-authored-by: Hayden <hay-kot@pm.me>
This commit is contained in:
@@ -81,11 +81,11 @@ class Database:
|
||||
|
||||
@cached_property
|
||||
def categories(self) -> CategoryDataAccessModel:
|
||||
return CategoryDataAccessModel(self.session, pk_id, Category, RecipeCategoryResponse)
|
||||
return CategoryDataAccessModel(self.session, pk_slug, Category, RecipeCategoryResponse)
|
||||
|
||||
@cached_property
|
||||
def tags(self) -> TagsDataAccessModel:
|
||||
return TagsDataAccessModel(self.session, pk_id, Tag, RecipeTagResponse)
|
||||
return TagsDataAccessModel(self.session, pk_slug, Tag, RecipeTagResponse)
|
||||
|
||||
# ================================================================
|
||||
# Site Items
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
from random import randint
|
||||
from typing import Any
|
||||
|
||||
from sqlalchemy.orm import joinedload
|
||||
|
||||
from mealie.db.models.recipe.recipe import RecipeModel
|
||||
from mealie.db.models.recipe.settings import RecipeSettings
|
||||
@@ -57,3 +60,13 @@ class RecipeDataAccessModel(AccessModel[Recipe, RecipeModel]):
|
||||
count=count,
|
||||
override_schema=override_schema,
|
||||
)
|
||||
|
||||
def summary(self, group_id, start=0, limit=99999) -> Any:
|
||||
return (
|
||||
self.session.query(RecipeModel)
|
||||
.options(joinedload(RecipeModel.recipe_category), joinedload(RecipeModel.tags))
|
||||
.filter(RecipeModel.group_id == group_id)
|
||||
.offset(start)
|
||||
.limit(limit)
|
||||
.all()
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user