fixes: фикс неверной фильтрации project_reports по годам
This commit is contained in:
parent
cb837f5cf2
commit
0328e290e0
@ -1,6 +1,6 @@
|
||||
from sqlalchemy import select
|
||||
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_year import RfProjectYear
|
||||
@ -52,15 +52,19 @@ class RfProjectReportRepository:
|
||||
)
|
||||
if report_id is not None:
|
||||
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(
|
||||
joinedload(RfProjectReport.rf_project_year)
|
||||
)
|
||||
if year is not None:
|
||||
query = query.where(RfProjectYear.year == year)
|
||||
if report_type is not None:
|
||||
query = query.where(RfProjectReport.report_type == report_type)
|
||||
if project_id is not None:
|
||||
query = query.where(RfProjectReport.project_id == project_id)
|
||||
|
||||
return (await self.db.execute(query)).scalars().all()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user