Fix: Modifier Category was showing products from out of category.

This commit is contained in:
2025-07-02 04:34:13 +00:00
parent 44513dd6be
commit 66834b7399

View File

@ -6,9 +6,7 @@ from functools import reduce
from fastapi import APIRouter, Depends, HTTPException, Security, status
from sqlalchemy import and_, or_, select
from sqlalchemy.exc import SQLAlchemyError
from sqlalchemy.orm import Session, joinedload
import barker.schemas.modifier_category as schemas
from sqlalchemy.orm import Session, contains_eager
from ..core.security import get_current_active_user as get_user
from ..db.session import SessionFuture
@ -16,6 +14,7 @@ from ..models.menu_category import MenuCategory
from ..models.modifier_category import ModifierCategory
from ..models.product import Product
from ..models.product_version import ProductVersion
from ..schemas import modifier_category as schemas
from ..schemas.product_link import ProductLink as ProductLinkSchema
from ..schemas.user_token import UserToken
from . import effective_date
@ -104,17 +103,8 @@ def show_blank(
@router.get("/list")
def show_list(date_: date = Depends(effective_date), user: UserToken = Depends(get_user)):
with SessionFuture() as db:
list_ = (
db.execute(select(ModifierCategory).order_by(ModifierCategory.sort_order).order_by(ModifierCategory.name))
.scalars()
.all()
)
menu_categories = (
db.execute(
select(MenuCategory)
.join(MenuCategory.products)
.where(
and_(
product_version_onclause = and_(
ProductVersion.menu_category_id == MenuCategory.id,
or_(
ProductVersion.valid_from == None, # noqa: E711
ProductVersion.valid_from <= date_,
@ -124,11 +114,17 @@ def show_list(date_: date = Depends(effective_date), user: UserToken = Depends(g
ProductVersion.valid_till >= date_,
),
)
list_ = (
db.execute(select(ModifierCategory).order_by(ModifierCategory.sort_order).order_by(ModifierCategory.name))
.scalars()
.all()
)
menu_categories = (
db.execute(
select(MenuCategory)
.join(ProductVersion, onclause=product_version_onclause)
.order_by(MenuCategory.sort_order, ProductVersion.sort_order, ProductVersion.name)
.options(
joinedload(MenuCategory.products, innerjoin=True),
)
.options(contains_eager(MenuCategory.products))
)
.unique()
.scalars()
@ -197,12 +193,8 @@ def show_id(
def modifier_category_info(item: ModifierCategory, date_: date, db: Session) -> schemas.ModifierCategory:
menu_categories = (
db.execute(
select(MenuCategory)
.join(MenuCategory.products)
.where(
and_(
product_version_onclause = and_(
ProductVersion.menu_category_id == MenuCategory.id,
or_(
ProductVersion.valid_from == None, # noqa: E711
ProductVersion.valid_from <= date_,
@ -212,11 +204,12 @@ def modifier_category_info(item: ModifierCategory, date_: date, db: Session) ->
ProductVersion.valid_till >= date_,
),
)
)
menu_categories = (
db.execute(
select(MenuCategory)
.join(ProductVersion, onclause=product_version_onclause)
.order_by(MenuCategory.sort_order, ProductVersion.sort_order, ProductVersion.name)
.options(
joinedload(MenuCategory.products, innerjoin=True),
)
.options(contains_eager(MenuCategory.products))
)
.unique()
.scalars()
@ -249,12 +242,8 @@ def modifier_category_info(item: ModifierCategory, date_: date, db: Session) ->
def modifier_category_blank(date_: date, db: Session) -> schemas.ModifierCategoryBlank:
menu_categories = (
db.execute(
select(MenuCategory)
.join(MenuCategory.products)
.where(
and_(
product_version_onclause = and_(
ProductVersion.menu_category_id == MenuCategory.id,
or_(
ProductVersion.valid_from == None, # noqa: E711
ProductVersion.valid_from <= date_,
@ -264,11 +253,12 @@ def modifier_category_blank(date_: date, db: Session) -> schemas.ModifierCategor
ProductVersion.valid_till >= date_,
),
)
)
menu_categories = (
db.execute(
select(MenuCategory)
.join(ProductVersion, onclause=product_version_onclause)
.order_by(MenuCategory.sort_order, ProductVersion.sort_order, ProductVersion.name)
.options(
joinedload(MenuCategory.products, innerjoin=True),
)
.options(contains_eager(MenuCategory.products))
)
.unique()
.scalars()