Skip to content

Commit 86a2060

Browse files
committed
Added new MP info to dashboard
1 parent 80e2cf8 commit 86a2060

File tree

3 files changed

+450
-381
lines changed

3 files changed

+450
-381
lines changed

conditional/blueprints/dashboard.py

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1+
from sqlalchemy import desc, func
12
import structlog
23
from flask import Blueprint, request
34

4-
from conditional import start_of_year, auth
5-
from conditional.models.models import Conditional
5+
from conditional import db, start_of_year, auth
6+
from conditional.models.models import Conditional, MajorProjectSkill
67
from conditional.models.models import HouseMeeting
78
from conditional.models.models import MajorProject
89
from conditional.models.models import MemberHouseMeetingAttendance
@@ -82,15 +83,38 @@ def display_dashboard(user_dict=None):
8283

8384
data['housing'] = housing
8485

86+
proj_list = db.session.query(
87+
MajorProject.id,
88+
MajorProject.date,
89+
MajorProject.uid,
90+
MajorProject.name,
91+
MajorProject.tldr,
92+
MajorProject.timeSpent,
93+
MajorProject.description,
94+
MajorProject.links,
95+
MajorProject.status,
96+
func.array_agg(MajorProjectSkill.skill).label("skills")
97+
).outerjoin(MajorProjectSkill,
98+
MajorProject.id == MajorProjectSkill.project_id
99+
).group_by(MajorProject.id
100+
).where(MajorProject.date >= start_of_year()
101+
).order_by(desc(MajorProject.date), desc(MajorProject.id))
102+
85103
data['major_projects'] = [
86104
{
87-
'id': p.id,
88-
'name': p.name,
89-
'status': p.status,
90-
'description': p.description
91-
} for p in
92-
MajorProject.query.filter(MajorProject.uid == uid,
93-
MajorProject.date > start_of_year())]
105+
"id": p.id,
106+
"date": p.date,
107+
"name": p.name,
108+
"proj_name": p.name,
109+
"tldr": p.tldr,
110+
"time_spent": p.timeSpent,
111+
"skills": p.skills,
112+
"desc": p.description,
113+
"links": list(filter(None, p.links.split("\n"))),
114+
"status": p.status,
115+
}
116+
for p in proj_list
117+
]
94118

95119
data['major_projects_count'] = len(data['major_projects'])
96120

0 commit comments

Comments
 (0)