feat: add group statistics on profile page

* resolve file not found error and add constants

* add group stats and storage functionality

* generate new types

* add statistics and storage cap graphs

* fix: add loadFood query param #1103

* refactor to flex view
This commit is contained in:
Hayden
2022-03-27 15:12:18 -08:00
committed by GitHub
parent b57e42a3b3
commit 1e90dc2022
13 changed files with 326 additions and 32 deletions

View File

@@ -2,6 +2,7 @@ from random import randint
from typing import Any, Optional
from uuid import UUID
from pydantic import UUID4
from slugify import slugify
from sqlalchemy import and_, func
from sqlalchemy.exc import IntegrityError
@@ -163,7 +164,7 @@ class RepositoryRecipes(RepositoryGeneric[Recipe, RecipeModel]):
.limit(limit)
]
def get_by_slug(self, group_id: UUID, slug: str, limit=1) -> Optional[Recipe]:
def get_by_slug(self, group_id: UUID4, slug: str, limit=1) -> Optional[Recipe]:
dbrecipe = (
self.session.query(RecipeModel)
.filter(RecipeModel.group_id == group_id, RecipeModel.slug == slug)
@@ -172,3 +173,6 @@ class RepositoryRecipes(RepositoryGeneric[Recipe, RecipeModel]):
if dbrecipe is None:
return None
return self.schema.from_orm(dbrecipe)
def all_ids(self, group_id: UUID4) -> list[UUID4]:
return [tpl[0] for tpl in self.session.query(RecipeModel.id).filter(RecipeModel.group_id == group_id).all()]