|
6 | 6 | from conditional.models.models import HouseMeeting
|
7 | 7 | from conditional.models.models import MajorProject
|
8 | 8 | from conditional.models.models import MemberHouseMeetingAttendance
|
| 9 | +from conditional.models.models import MemberSeminarAttendance |
| 10 | +from conditional.models.models import TechnicalSeminar |
9 | 11 | from conditional.models.models import SpringEval
|
10 | 12 | from conditional.util.auth import get_user
|
11 | 13 | from conditional.util.flask import render_template
|
|
20 | 22 |
|
21 | 23 | dashboard_bp = Blueprint('dashboard_bp', __name__)
|
22 | 24 |
|
| 25 | +def is_seminar_attendance_valid(attendance): |
| 26 | + seminar = TechnicalSeminar.query.filter( |
| 27 | + TechnicalSeminar.id == attendance.seminar_id).first() |
| 28 | + return seminar and seminar.approved and seminar.timestamp > start_of_year() |
23 | 29 |
|
| 30 | +# pylint: disable=too-many-statements |
24 | 31 | @dashboard_bp.route('/dashboard/')
|
25 | 32 | @auth.oidc_auth
|
26 | 33 | @get_user
|
@@ -85,6 +92,18 @@ def display_dashboard(user_dict=None):
|
85 | 92 |
|
86 | 93 | data['major_projects_count'] = len(data['major_projects'])
|
87 | 94 |
|
| 95 | + # technical seminar total |
| 96 | + t_seminars = [s.seminar_id for s in |
| 97 | + MemberSeminarAttendance.query.filter( |
| 98 | + MemberSeminarAttendance.uid == user_dict['account'].uid, |
| 99 | + ) if is_seminar_attendance_valid(s)] |
| 100 | + data['ts_total'] = len(t_seminars) |
| 101 | + attendance = [m.name for m in TechnicalSeminar.query.filter( |
| 102 | + TechnicalSeminar.id.in_(t_seminars) |
| 103 | + )] |
| 104 | + |
| 105 | + data['ts_list'] = attendance |
| 106 | + |
88 | 107 | spring['mp_status'] = "Failed"
|
89 | 108 | for mp in data['major_projects']:
|
90 | 109 | if mp['status'] == "Pending":
|
|
0 commit comments