Merge pull request 'fixes: фикс неверной фильтрации project_reports по годам' (#153) from fixes into test

Reviewed-on: #153
This commit is contained in:
tsygankoviva 2026-09-11 11:23:15 +03:00
commit ec69ce2922

View File

@ -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()