mirror of
https://github.com/mealie-recipes/mealie.git
synced 2026-02-27 10:13:11 -05:00
feat: Move "on hand" and "last made" to household (#4616)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
This commit is contained in:
@@ -8,7 +8,7 @@ from typing import Any, Generic, TypeVar
|
||||
|
||||
from fastapi import HTTPException
|
||||
from pydantic import UUID4, BaseModel
|
||||
from sqlalchemy import Select, case, delete, func, nulls_first, nulls_last, select
|
||||
from sqlalchemy import ColumnElement, Select, case, delete, func, nulls_first, nulls_last, select
|
||||
from sqlalchemy.orm import InstrumentedAttribute
|
||||
from sqlalchemy.orm.session import Session
|
||||
from sqlalchemy.sql import sqltypes
|
||||
@@ -69,6 +69,10 @@ class RepositoryGeneric(Generic[Schema, Model]):
|
||||
def household_id(self) -> UUID4 | None:
|
||||
return self._household_id
|
||||
|
||||
@property
|
||||
def column_aliases(self) -> dict[str, ColumnElement]:
|
||||
return {}
|
||||
|
||||
def _random_seed(self) -> str:
|
||||
return str(datetime.now(tz=UTC))
|
||||
|
||||
@@ -356,7 +360,7 @@ class RepositoryGeneric(Generic[Schema, Model]):
|
||||
if pagination.query_filter:
|
||||
try:
|
||||
query_filter_builder = QueryFilterBuilder(pagination.query_filter)
|
||||
query = query_filter_builder.filter_query(query, model=self.model)
|
||||
query = query_filter_builder.filter_query(query, model=self.model, column_aliases=self.column_aliases)
|
||||
|
||||
except ValueError as e:
|
||||
self.logger.error(e)
|
||||
@@ -394,6 +398,8 @@ class RepositoryGeneric(Generic[Schema, Model]):
|
||||
order_dir: OrderDirection,
|
||||
order_by_null: OrderByNullPosition | None,
|
||||
) -> Select:
|
||||
order_attr = self.column_aliases.get(order_attr.key, order_attr)
|
||||
|
||||
# queries handle uppercase and lowercase differently, which is undesirable
|
||||
if isinstance(order_attr.type, sqltypes.String):
|
||||
order_attr = func.lower(order_attr)
|
||||
|
||||
Reference in New Issue
Block a user