From 0328e290e045bf438d9fa8cb0fe04158a1ae1cc8 Mon Sep 17 00:00:00 2001 From: tsygankoviva Date: Fri, 11 Sep 2026 11:20:18 +0300 Subject: [PATCH] =?UTF-8?q?fixes:=20=D1=84=D0=B8=D0=BA=D1=81=20=D0=BD?= =?UTF-8?q?=D0=B5=D0=B2=D0=B5=D1=80=D0=BD=D0=BE=D0=B9=20=D1=84=D0=B8=D0=BB?= =?UTF-8?q?=D1=8C=D1=82=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20project=5Freports?= =?UTF-8?q?=20=D0=BF=D0=BE=20=D0=B3=D0=BE=D0=B4=D0=B0=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/src/repository/rf_project_report_repository.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/api/src/repository/rf_project_report_repository.py b/api/src/repository/rf_project_report_repository.py index ae10554..a0310dd 100644 --- a/api/src/repository/rf_project_report_repository.py +++ b/api/src/repository/rf_project_report_repository.py @@ -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()