Пример #1
0
def enrollment(cid):
    courses, current_course = get_courses(cid)
    form = forms.EnrollmentForm()
    if form.validate_on_submit():
        email, role = form.email.data, form.role.data
        Enrollment.enroll_from_form(cid, form)
        flash("Added {email} as {role}".format(
            email=email, role=role), "success")

    students = (Enrollment.query.options(db.joinedload('user'))
                .filter_by(course_id=cid, role=STUDENT_ROLE)
                .order_by(Enrollment.created.desc())
                .all())

    staff = (Enrollment.query.options(db.joinedload('user'))
             .filter(Enrollment.course_id == cid, Enrollment.role.in_(STAFF_ROLES))
             .all())

    lab_assistants = (Enrollment.query.options(db.joinedload('user'))
                      .filter_by(course_id=cid, role=LAB_ASSISTANT_ROLE)
                      .order_by(Enrollment.created.desc())
                      .all())

    return render_template('staff/course/enrollment/enrollment.html',
                           enrollments=students, staff=staff,
                           lab_assistants=lab_assistants,
                           form=form,
                           unenroll_form=forms.CSRFForm(),
                           courses=courses,
                           current_course=current_course)
Пример #2
0
 def test_enroll_from_form(self):
     self.setup_course()
     
     Enrollment.enroll_from_form(self.course.id, make_enrollment_form(self.studentB))
     
     user = User.lookup(self.studentB['email'])
     self.studentB['id'] = user.id
     
     self.enrollment_matches_info(user, self.studentB)
Пример #3
0
    def test_enroll_from_form(self):
        self.setup_course()

        Enrollment.enroll_from_form(self.course.id, make_enrollment_form(self.studentB))

        user = User.lookup(self.studentB['email'])
        self.studentB['id'] = user.id

        self.enrollment_matches_info(user, self.studentB)

        Enrollment.enroll_from_form(self.course.id, make_enrollment_form(self.lab_assistantA))
        lab_assistant = User.lookup(self.lab_assistantA['email'])
        self.lab_assistantA['id'] = lab_assistant.id

        self.enrollment_matches_info(lab_assistant, self.lab_assistantA)
Пример #4
0
    def test_enroll_twice(self):
        self.setup_course()

        form = make_enrollment_form(self.studentB)
        Enrollment.enroll_from_form(self.course.id, form)

        user = User.lookup(self.studentB['email'])
        self.studentB['id'] = user.id

        self.enrollment_matches_info(user, self.studentB)

        form = make_enrollment_form(self.studentB_alt)
        Enrollment.enroll_from_form(self.course.id, form)

        user_updated = User.lookup(self.studentB['email'])
        self.studentB_alt['id'] = user_updated.id
        assert user.id == user_updated.id

        self.enrollment_matches_info(user, self.studentB_alt)
Пример #5
0
    def test_enroll_twice(self):
        self.setup_course()

        form = make_enrollment_form(self.studentB)
        Enrollment.enroll_from_form(self.course.id, form)

        user = User.lookup(self.studentB['email'])
        self.studentB['id'] = user.id

        self.enrollment_matches_info(user, self.studentB)

        form = make_enrollment_form(self.studentB_alt)
        Enrollment.enroll_from_form(self.course.id, form)

        user_updated = User.lookup(self.studentB['email'])
        self.studentB_alt['id'] = user_updated.id
        assert user.id == user_updated.id

        self.enrollment_matches_info(user, self.studentB_alt)
Пример #6
0
def enrollment(cid):
    courses, current_course = get_courses(cid)
    single_form = forms.EnrollmentForm(prefix="single")
    if single_form.validate_on_submit():
        email, role = single_form.email.data, single_form.role.data
        Enrollment.enroll_from_form(cid, single_form)
        flash("Added {email} as {role}".format(
            email=email, role=role), "success")

    students = (Enrollment.query.options(db.joinedload('user'))
                .filter_by(course_id=cid, role=STUDENT_ROLE)
                .order_by(Enrollment.created.desc())
                .all())

    staff = (Enrollment.query.options(db.joinedload('user'))
             .filter(Enrollment.course_id == cid, Enrollment.role.in_(STAFF_ROLES))
             .all())

    return render_template('staff/course/enrollment.html',
                           enrollments=students, staff=staff,
                           single_form=single_form,
                           courses=courses,
                           current_course=current_course)