Fix: Modifier Category was showing products from out of category.
This commit is contained in:
@ -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()
|
||||
|
||||
Reference in New Issue
Block a user