fixes: фикс неверной фильтрации project_reports по годам
This commit is contained in:
parent
cb837f5cf2
commit
0328e290e0
@ -1,6 +1,6 @@
|
|||||||
from sqlalchemy import select
|
from sqlalchemy import select
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
from sqlalchemy.orm import joinedload
|
from sqlalchemy.orm import contains_eager, joinedload
|
||||||
|
|
||||||
from src.db.models.rf_project_report import RfProjectReport
|
from src.db.models.rf_project_report import RfProjectReport
|
||||||
from src.db.models.rf_project_year import RfProjectYear
|
from src.db.models.rf_project_year import RfProjectYear
|
||||||
@ -52,15 +52,19 @@ class RfProjectReportRepository:
|
|||||||
)
|
)
|
||||||
if report_id is not None:
|
if report_id is not None:
|
||||||
query = query.where(RfProjectReport.id == report_id)
|
query = query.where(RfProjectReport.id == report_id)
|
||||||
if load_year or year:
|
if year is not None:
|
||||||
|
query = query.join(RfProjectReport.rf_project_year).options(
|
||||||
|
contains_eager(RfProjectReport.rf_project_year)
|
||||||
|
).where(
|
||||||
|
RfProjectYear.year == year
|
||||||
|
)
|
||||||
|
elif load_year:
|
||||||
|
# Если только загрузка без фильтрации
|
||||||
query = query.options(
|
query = query.options(
|
||||||
joinedload(RfProjectReport.rf_project_year)
|
joinedload(RfProjectReport.rf_project_year)
|
||||||
)
|
)
|
||||||
if year is not None:
|
|
||||||
query = query.where(RfProjectYear.year == year)
|
|
||||||
if report_type is not None:
|
if report_type is not None:
|
||||||
query = query.where(RfProjectReport.report_type == report_type)
|
query = query.where(RfProjectReport.report_type == report_type)
|
||||||
if project_id is not None:
|
if project_id is not None:
|
||||||
query = query.where(RfProjectReport.project_id == project_id)
|
query = query.where(RfProjectReport.project_id == project_id)
|
||||||
|
|
||||||
return (await self.db.execute(query)).scalars().all()
|
return (await self.db.execute(query)).scalars().all()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user