Coverage for app/controllers/admin/minor.py: 29%
21 statements
« prev ^ index » next coverage.py v7.2.7, created at 2025-04-08 19:13 +0000
« prev ^ index » next coverage.py v7.2.7, created at 2025-04-08 19:13 +0000
1from flask import render_template, g, abort, request, redirect, url_for
3from app.models.user import User
5from app.controllers.admin import admin_bp
7from app.logic.minor import getMinorInterest, getMinorProgress, toggleMinorInterest, getDeclaredMinorStudents
9@admin_bp.route('/admin/cceMinor', methods=['GET','POST'])
10def manageMinor():
11 if not g.current_user.isAdmin:
12 abort(403)
14 if request.method == 'POST':
15 interestedStudents = request.form.getlist('interestedStudents[]')
16 for student in interestedStudents:
17 user = User.get(username=student)
18 if not user.minorInterest:
19 toggleMinorInterest(student, True)
21 return redirect(url_for("admin.manageMinor"))
25 interestedStudentsList = getMinorInterest()
26 interestedStudentEmailString = ';'.join([student['email'] for student in interestedStudentsList])
27 sustainedEngagement = getMinorProgress()
28 declaredStudentsList = getDeclaredMinorStudents()
29 declaredStudentEmailString = ';'.join([student['email'] for student in declaredStudentsList])
31 return render_template('/admin/cceMinor.html',
32 interestedStudentsList = interestedStudentsList,
33 declaredStudentsList = declaredStudentsList,
34 interestedStudentEmailString = interestedStudentEmailString,
35 declaredStudentEmailString = declaredStudentEmailString,
36 sustainedEngagement = sustainedEngagement,
37 )