Fix test failures and workload/websocket behavior
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user