def semester_publish(request, semester_id): semester = get_object_or_404(Semester, id=semester_id) courses = semester.course_set.filter(state="reviewed").all() forms = helper_create_grouped_course_selection_forms(courses, None, request) valid = helper_are_course_selection_forms_valid(forms) for form in forms: for course_id, field in form.fields.items(): course = Course.objects.get(pk=course_id) field.label += " (graded)" if course.is_graded else " (not graded)" if valid: selected_courses = [] for form in forms: for course in form.selected_courses: course.publish() course.save() selected_courses.append(course) messages.success(request, _("Successfully published %d courses.") % (len(selected_courses))) for user, courses in user_publish_notifications(selected_courses).iteritems(): try: EmailTemplate.get_publish_template().send_to_user(user, courses=list(courses)) except Exception: messages.error(request, _("Could not send notification email to ") + user.username) return redirect('evap.staff.views.semester_view', semester_id) else: return render(request, "staff_semester_publish.html", dict(semester=semester, forms=forms))
def semester_publish(request, semester_id): semester = get_object_or_404(Semester, id=semester_id) courses = semester.course_set.filter(state="reviewed").all() forms = helper_create_grouped_course_selection_forms(courses, None, request) valid = helper_are_course_selection_forms_valid(forms) if valid: selected_courses = [] for form in forms: for course in form.selected_courses: course.publish() course.save() selected_courses.append(course) try: EmailTemplate.get_publish_template().send_to_users_in_courses(selected_courses, ['contributors', 'all_participants']) except Exception: messages.error(request, _("Could not send emails to participants and contributors")) messages.success(request, _("Successfully published %d courses.") % (len(selected_courses))) return redirect('evap.fsr.views.semester_view', semester_id) else: return render_to_response("fsr_semester_publish.html", dict(semester=semester, forms=forms), context_instance=RequestContext(request))