def course_create(request, semester_id): semester = get_object_or_404(Semester, id=semester_id) raise_permission_denied_if_archived(semester) course = Course(semester=semester) InlineContributionFormset = inlineformset_factory( Course, Contribution, formset=ContributionFormSet, form=ContributionForm, extra=1) form = CourseForm(request.POST or None, instance=course) formset = InlineContributionFormset(request.POST or None, instance=course, form_kwargs={'course': course}) if form.is_valid() and formset.is_valid(): form.save(user=request.user) formset.save() messages.success(request, _("Successfully created course.")) return redirect('staff:semester_view', semester_id) else: return render( request, "staff_course_form.html", dict(semester=semester, form=form, formset=formset, staff=True))
def helper_course_edit(request, semester, course): InlineContributionFormset = inlineformset_factory(Course, Contribution, formset=ContributionFormSet, form=ContributionForm, extra=1) form = CourseForm(request.POST or None, instance=course) formset = InlineContributionFormset(request.POST or None, instance=course, form_kwargs={'course': course}) editable = course.can_staff_edit operation = request.POST.get('operation') if form.is_valid() and formset.is_valid(): if operation not in ('save', 'approve'): raise SuspiciousOperation("Invalid POST operation") if not course.can_staff_edit or course.is_archived: raise SuspiciousOperation("Modifying this course is not allowed.") if course.state in ['evaluated', 'reviewed'] and course.is_in_evaluation_period(): course.reopen_evaluation() form.save(user=request.user) formset.save() if operation == 'approve': # approve course course.staff_approve() course.save() messages.success(request, _("Successfully updated and approved course.")) else: messages.success(request, _("Successfully updated course.")) return custom_redirect('staff:semester_view', semester.id) else: sort_formset(request, formset) template_data = dict(semester=semester, form=form, formset=formset, staff=True, state=course.state, editable=editable) return render(request, "staff_course_form.html", template_data)
def course_create(request, semester_id): semester = get_object_or_404(Semester, id=semester_id) course = Course(semester=semester) ContributionFormset = inlineformset_factory(Course, Contribution, formset=ContributionFormSet, form=ContributionForm, extra=1, exclude=('course',)) form = CourseForm(request.POST or None, instance=course) formset = ContributionFormset(request.POST or None, instance=course) if form.is_valid() and formset.is_valid(): form.save(user=request.user) formset.save() messages.success(request, _("Successfully created course.")) return redirect('evap.staff.views.semester_view', semester_id) else: return render(request, "staff_course_form.html", dict(semester=semester, form=form, formset=formset))
def course_create(request, semester_id): semester = get_object_or_404(Semester, id=semester_id) raise_permission_denied_if_archived(semester) course = Course(semester=semester) InlineContributionFormset = inlineformset_factory(Course, Contribution, formset=ContributionFormSet, form=ContributionForm, extra=1) form = CourseForm(request.POST or None, instance=course) formset = InlineContributionFormset(request.POST or None, instance=course, form_kwargs={'course': course}) if form.is_valid() and formset.is_valid(): form.save(user=request.user) formset.save() messages.success(request, _("Successfully created course.")) return redirect('staff:semester_view', semester_id) else: return render(request, "staff_course_form.html", dict(semester=semester, form=form, formset=formset, staff=True, editable=True, state=""))
def helper_course_edit(request, semester, course): InlineContributionFormset = inlineformset_factory( Course, Contribution, formset=ContributionFormSet, form=ContributionForm, extra=1) form = CourseForm(request.POST or None, instance=course) formset = InlineContributionFormset(request.POST or None, instance=course, form_kwargs={'course': course}) operation = request.POST.get('operation') if form.is_valid() and formset.is_valid(): if operation not in ('save', 'approve'): raise SuspiciousOperation("Invalid POST operation") if course.state in ['evaluated', 'reviewed' ] and course.is_in_evaluation_period: course.reopen_evaluation() form.save(user=request.user) formset.save() if operation == 'approve': # approve course course.staff_approve() course.save() messages.success(request, _("Successfully updated and approved course.")) else: messages.success(request, _("Successfully updated course.")) return custom_redirect('staff:semester_view', semester.id) else: sort_formset(request, formset) template_data = dict(semester=semester, course=course, form=form, formset=formset, staff=True) return render(request, "staff_course_form.html", template_data)
def helper_course_edit(request, semester, course): InlineContributionFormset = inlineformset_factory( Course, Contribution, formset=ContributionFormSet, form=ContributionForm, extra=1, exclude=("course",) ) form = CourseForm(request.POST or None, instance=course) formset = InlineContributionFormset( request.POST or None, instance=course, queryset=course.contributions.exclude(contributor=None) ) if form.is_valid() and formset.is_valid(): if course.state in ["evaluated", "reviewed"] and course.is_in_evaluation_period: course.reopen_evaluation() form.save(user=request.user) formset.save() messages.success(request, _("Successfully updated course.")) return custom_redirect("staff:semester_view", semester.id) else: sort_formset(request, formset) template_data = dict(semester=semester, course=course, form=form, formset=formset, staff=True) return render(request, "staff_course_form.html", template_data)
def course_edit(request, semester_id, course_id): semester = get_object_or_404(Semester, id=semester_id) course = get_object_or_404(Course, id=course_id) ContributionFormset = inlineformset_factory(Course, Contribution, formset=ContributionFormSet, form=ContributionForm, extra=1, exclude=('course',)) # check course state if not course.can_staff_edit(): messages.warning(request, _("Editing not possible in current state.")) return redirect('evap.staff.views.semester_view', semester_id) form = CourseForm(request.POST or None, instance=course) formset = ContributionFormset(request.POST or None, instance=course, queryset=course.contributions.exclude(contributor=None)) if form.is_valid() and formset.is_valid(): form.save(user=request.user) formset.save() messages.success(request, _("Successfully updated course.")) return custom_redirect('evap.staff.views.semester_view', semester_id, tab=get_tab(request)) else: template_data = dict(semester=semester, course=course, form=form, formset=formset, staff=True) return render(request, "staff_course_form.html", template_data)