Fix test failures and workload/websocket behavior

This commit is contained in:
beabigegg
2026-01-11 08:37:21 +08:00
parent 3bdc6ff1c9
commit f5f870da56
49 changed files with 3006 additions and 1132 deletions

View File

@@ -5,7 +5,7 @@ from sqlalchemy.orm import Session
from sqlalchemy import func
from app.models import (
User, Task, Project, ScheduledReport, ReportHistory, Blocker
User, Task, Project, ScheduledReport, ReportHistory, Blocker, ProjectMember
)
from app.services.notification_service import NotificationService
@@ -46,8 +46,17 @@ class ReportService:
# Use naive datetime for comparison with database values
now = datetime.now(timezone.utc).replace(tzinfo=None)
# Get projects owned by the user
projects = db.query(Project).filter(Project.owner_id == user_id).all()
owned_projects = db.query(Project).filter(Project.owner_id == user_id).all()
member_project_ids = db.query(ProjectMember.project_id).filter(
ProjectMember.user_id == user_id
).all()
project_ids = {p.id for p in owned_projects}
project_ids.update(row[0] for row in member_project_ids if row and row[0])
projects = []
if project_ids:
projects = db.query(Project).filter(Project.id.in_(project_ids)).all()
if not projects:
return {
@@ -92,7 +101,7 @@ class ReportService:
# Check if completed (updated this week)
if is_done:
if task.updated_at and task.updated_at >= week_start:
if task.updated_at and week_start <= task.updated_at < week_end:
completed_tasks.append(task)
else:
# Check if task has active status (not done, not blocked)
@@ -225,7 +234,7 @@ class ReportService:
id=str(uuid.uuid4()),
report_type="weekly",
recipient_id=user_id,
is_active=True,
is_active=False,
)
db.add(scheduled_report)
db.flush()