def test_course_selection_form(self): """ Tests the SelectCourseForm with one valid input dataset (one cannot make it invalid through the UI). """ course1 = Course.objects.get(pk=1) course2 = Course.objects.get(pk=2) data = {"1": True, "2": False} form = SelectCourseForm(course1.degree, [course1, course2], None, data=data) self.assertTrue(form.is_valid())
def semester_approve(request, semester_id): semester = get_object_or_404(Semester, id=semester_id) form = SelectCourseForm(semester.course_set.filter(state__in=['new', 'prepared', 'lecturerApproved']).all(), lambda course: not course.warnings(), request.POST or None) if form.is_valid(): for course in form.selected_courses: course.fsr_approve() course.save() messages.add_message(request, messages.INFO, _("Successfully approved %d courses.") % (len(form.selected_courses))) return redirect('evap.fsr.views.semester_view', semester.id) else: return render_to_response("fsr_semester_approve.html", dict(semester=semester, form=form), context_instance=RequestContext(request))
def semester_lecturer_ready(request, semester_id): semester = get_object_or_404(Semester, id=semester_id) form = SelectCourseForm(semester.course_set.filter(state__in=['new', 'lecturerApproved']).all(), lambda course: not course.warnings(), request.POST or None) if form.is_valid(): for course in form.selected_courses: course.ready_for_lecturer(False) course.save() print form.selected_courses EmailTemplate.get_review_template().send_courses(form.selected_courses, True, False) return redirect('evap.fsr.views.semester_view', semester.id) else: return render_to_response("fsr_semester_lecturer_ready.html", dict(semester=semester, form=form), context_instance=RequestContext(request))
def semester_publish(request, semester_id): semester = get_object_or_404(Semester, id=semester_id) form = SelectCourseForm(semester.course_set.filter(state="reviewed").all(), None, request.POST or None) if form.is_valid(): for course in form.selected_courses: course.publish() course.save() try: EmailTemplate.get_publish_template().send_courses(form.selected_courses, True, True) except: messages.add_message(request, messages.WARNING, _("Could not send emails to participants and lecturers")) messages.add_message(request, messages.INFO, _("Successfully published %d courses.") % (len(form.selected_courses))) return redirect('evap.fsr.views.semester_view', semester.id) else: return render_to_response("fsr_semester_publish.html", dict(semester=semester, form=form), context_instance=RequestContext(request))
def helper_create_grouped_course_selection_forms(courses, filter_func, request): grouped_courses = {} for course in courses: degree = course.degree if not grouped_courses.has_key(degree): grouped_courses[degree] = [] grouped_courses[degree].append(course) forms = [] for degree, degreeCourses in grouped_courses.items(): form = SelectCourseForm(degree, degreeCourses, filter_func, request.POST or None) forms.append(form) return forms