Exemple #1
0
def add(request, course_id):
    user = request.user
    stud = user.userinformation
    try:
        course = Course.objects.get(id=course_id)
    except Course.DoesNotExist:
        return db_error(_('Requested course does not exist.'))
    session = request.session

    if course.is_participant(stud):
        session['enroll-error'] = _('You are already enrolled in this course.')
    elif course.student_only and not stud.is_student():
        session['enroll-error'] = _('Sorry, this course is for students only.')
    elif course.student_only and stud.is_pending_student():
        session['enroll-error'] = _(
            'Please verify your student status to enroll for this course.')
    elif not course.joinable:
        session['enroll-error'] = _('Sorry, this course is full.')
    else:
        if 'enroll-error' in session:
            del session['enroll-error']
        course.participants.add(stud)

    # redirect to course overview or specified target
    return redirect_unless_target(request, 'register-course-done', course_id)
Exemple #2
0
def remove_teacher(request, course_id, teacher_id):
    try:
        curr_course = Course.objects.get(id=course_id)
        user = User.objects.get(id=teacher_id)
        curr_course.teacher.remove(user.userinformation)
        remove_perm('change_course', user, curr_course)
        remove_perm('delete_course', user, curr_course)
    except Course.DoesNotExist:
        return db_error(_('Requested course does not exist.'))
    except UserInformation.DoesNotExist:
        return db_error(_('Requested student does not exist.'))
    return redirect_unless_target(request, 'course', course_id)
Exemple #3
0
def remove(request, course_id):
    stud = request.user.userinformation
    try:
        course = Course.objects.get(id=course_id)
    except Course.DoesNotExist:
        return db_error(_('Requested course does not exist.'))
    ps = course.participants

    if course.is_participant(stud):
        ps.remove(stud)
    else:
        request.session['enroll-error'] = _('You do not seem to be enrolled in this course.')
        return redirect('unregister-course-done', course_id)

    # redirect to course overview or specified target
    return redirect_unless_target(request, 'unregister-course-done', course_id)
Exemple #4
0
def remove(request, course_id):
    stud = request.user.userinformation
    try:
        course = Course.objects.get(id=course_id)
    except Course.DoesNotExist:
        return db_error(_('Requested course does not exist.'))
    ps = course.participants

    if course.is_participant(stud):
        ps.remove(stud)
    else:
        request.session['enroll-error'] = _(
            'You do not seem to be enrolled in this course.')
        return redirect('unregister-course-done', course_id)

    # redirect to course overview or specified target
    return redirect_unless_target(request, 'unregister-course-done', course_id)
Exemple #5
0
def add(request, course_id):
    user = request.user
    stud = user.userinformation
    try:
        course = Course.objects.get(id=course_id)
    except Course.DoesNotExist:
        return db_error(_('Requested course does not exist.'))
    session = request.session

    if course.is_participant(stud):
        session['enroll-error'] = _('You are already enrolled in this course.')
    else:
        if 'enroll-error' in session:
            del session['enroll-error']
        course.enroll(stud)

    # redirect to course overview or specified target
    return redirect_unless_target(request, 'course', course_id)
Exemple #6
0
def remove_slot(request, course_id, slot_id):

    try:
        course = Course.objects.get(id=course_id)
    except Course.DoesNotExist:
        return db_error(
            'The specified course does not exist. Please try again. '
            'If this error persists, contact an administrator and include the url "{}"'
            ''.format(request.path))

    try:
        course.schedule.slots.get(id=slot_id).delete()
    except (WeeklySlot.DoesNotExist, DateSlot.DoesNotExist):
        return db_error(
            'The slot you\'re trying to remove does not exist. Please try again. '
            'If this error persists, contact an administrator and include the url "{}"'
            ''.format(request.path))

    return redirect_unless_target(request, 'course-edit-slot', course_id)
Exemple #7
0
def remove_teacher(request, course_id, teacher_id):
    try:
        curr_course = Course.objects.get(id=course_id)
        user = User.objects.get(id=teacher_id)
        curr_course.teacher.remove(user.userinformation)
        remove_perm(
            'change_course',
            user,
            curr_course
        )
        remove_perm(
            'delete_course',
            user,
            curr_course
        )
    except Course.DoesNotExist:
        return db_error(_('Requested course does not exist.'))
    except UserInformation.DoesNotExist:
        return db_error(_('Requested student does not exist.'))
    return redirect_unless_target(request, 'course', course_id)
Exemple #8
0
def remove_slot(request, course_id, slot_id):

    try:
        course = Course.objects.get(id=course_id)
    except Course.DoesNotExist:
        return db_error(
            'The specified course does not exist. Please try again. '
            'If this error persists, contact an administrator and include the url "{}"'
            ''.format(request.path)
        )

    try:
        course.schedule.slots.get(id=slot_id).delete()
    except (WeeklySlot.DoesNotExist, DateSlot.DoesNotExist):
        return db_error(
            'The slot you\'re trying to remove does not exist. Please try again. '
            'If this error persists, contact an administrator and include the url "{}"'
            ''.format(request.path)
        )

    return redirect_unless_target(request, 'course', course_id)
Exemple #9
0
def add(request, course_id):
    user = request.user
    stud = user.userinformation
    try:
        course = Course.objects.get(id=course_id)
    except Course.DoesNotExist:
        return db_error(_('Requested course does not exist.'))
    session = request.session

    if course.is_participant(stud):
        session['enroll-error'] = _('You are already enrolled in this course.')
    elif course.student_only and not stud.is_student():
        session['enroll-error'] = _('Sorry, this course is for students only.')
    elif course.student_only and stud.is_pending_student():
        session['enroll-error'] = _('Please verify your student status to enroll for this course.')
    elif not course.joinable:
        session['enroll-error'] = _('Sorry, this course is full.')
    else:
        if 'enroll-error' in session:
            del session['enroll-error']
        course.participants.add(stud)

    # redirect to course overview or specified target
    return redirect_unless_target(request, 'register-course-done', course_id)