Пример #1
0
def course_change_signup( request, course_id ):
    form = CohortSignupForm(request.POST)
    if form.is_valid():
        signup = form.cleaned_data['signup']
        cohort_uri = course_model.get_course_cohort_uri(course_id)
        cohort = course_model.update_cohort(cohort_uri, signup=signup.upper())
        if not cohort:
            messages.error( request, _("Could not change cohort signup"))
    else:
        request.messages.error(request, _("Invalid choice for signup"))
    redirect_url = reverse('courses_settings', kwargs={'course_id': course_id})
    return http.HttpResponseRedirect(redirect_url)
Пример #2
0
def course_change_signup( request, course_id ):
    form = CohortSignupForm(request.POST)
    if form.is_valid():
        signup = form.cleaned_data['signup']
        cohort_uri = course_model.get_course_cohort_uri(course_id)
        cohort = course_model.update_cohort(cohort_uri, signup=signup.upper())
        if not cohort:
            messages.error( request, _("Could not change cohort signup"))
    else:
        request.messages.error(request, _("Invalid choice for signup"))
    redirect_url = reverse('courses_settings', kwargs={'course_id': course_id})
    return http.HttpResponseRedirect(redirect_url)
Пример #3
0
def course_add_organizer( request, course_id, username ):
    cohort_uri = course_model.get_course_cohort_uri(course_id)
    user_uri = u"/uri/user/{0}".format(request.user.username)
    is_organizer = course_model.is_cohort_organizer(
        user_uri, cohort_uri
    )
    if not is_organizer and not request.user.is_superuser:
        messages.error( request, _("Only other organizers can add a new organizer") )
        return course_slug_redirect( request, course_id)
    new_organizer_uri = u"/uri/user/{0}".format(username)
    course_model.remove_user_from_cohort(cohort_uri, new_organizer_uri)
    course_model.add_user_to_cohort(cohort_uri, new_organizer_uri, "ORGANIZER")

    #TODO
    redirect_url = reverse('courses_people', kwargs={'course_id': course_id})
    return http.HttpResponseRedirect(redirect_url)
Пример #4
0
def course_add_organizer( request, course_id, username ):
    cohort_uri = course_model.get_course_cohort_uri(course_id)
    user_uri = u"/uri/user/{0}".format(request.user.username)
    is_organizer = course_model.is_cohort_organizer(
        user_uri, cohort_uri
    )
    if not is_organizer and not request.user.is_superuser:
        messages.error( request, _("Only other organizers can add a new organizer") )
        return course_slug_redirect( request, course_id)
    new_organizer_uri = u"/uri/user/{0}".format(username)
    course_model.remove_user_from_cohort(cohort_uri, new_organizer_uri)
    course_model.add_user_to_cohort(cohort_uri, new_organizer_uri, "ORGANIZER")

    #TODO
    redirect_url = reverse('courses_people', kwargs={'course_id': course_id})
    return http.HttpResponseRedirect(redirect_url)
Пример #5
0
def course_change_term( request, course_id, term ):
    cohort_uri = course_model.get_course_cohort_uri( course_id )
    if term == 'fixed':
        form = CourseTermForm(request.POST)
        if form.is_valid():
            course_model.update_cohort(
                cohort_uri,
                term=term.upper(),
                start_date=form.cleaned_data['start_date'],
                end_date=form.cleaned_data['end_date']
            )
        else:
            messages.error( request, _("Could not update fixed term dates"))
    elif term == 'rolling':
        course_model.update_cohort(cohort_uri, term=term.upper())
    redirect_url = reverse('courses_settings', kwargs={'course_id': course_id})
    return http.HttpResponseRedirect(redirect_url)
Пример #6
0
def course_add_user( request, course_id ):
    cohort_uri = course_model.get_course_cohort_uri(course_id)
    redirect_url = reverse('courses_people', kwargs={'course_id': course_id})
    username = request.POST.get('username', None)

    if not username:
        messages.error(request, _("Please select a user to add."))
        return http.HttpResponseRedirect(redirect_url)

    user_uri = u"/uri/user/{0}".format(username)
    try:
        course_model.add_user_to_cohort(cohort_uri, user_uri, "LEARNER")
        messages.success(request, _("User added."))
    except course_model.ResourceNotFoundException as e:
        messages.error(request, _("User does not exist."))

    return http.HttpResponseRedirect(redirect_url)
Пример #7
0
def course_change_term( request, course_id, term ):
    cohort_uri = course_model.get_course_cohort_uri( course_id )
    if term == 'fixed':
        form = CourseTermForm(request.POST)
        if form.is_valid():
            course_model.update_cohort(
                cohort_uri,
                term=term.upper(),
                start_date=form.cleaned_data['start_date'],
                end_date=form.cleaned_data['end_date']
            )
        else:
            messages.error( request, _("Could not update fixed term dates"))
    elif term == 'rolling':
        course_model.update_cohort(cohort_uri, term=term.upper())
    redirect_url = reverse('courses_settings', kwargs={'course_id': course_id})
    return http.HttpResponseRedirect(redirect_url)
Пример #8
0
def course_add_user( request, course_id ):
    cohort_uri = course_model.get_course_cohort_uri(course_id)
    redirect_url = reverse('courses_people', kwargs={'course_id': course_id})
    username = request.POST.get('username', None)

    if not username:
        messages.error(request, _("Please select a user to add."))
        return http.HttpResponseRedirect(redirect_url)

    user_uri = u"/uri/user/{0}".format(username)
    try:
        course_model.add_user_to_cohort(cohort_uri, user_uri, "LEARNER")
        messages.success(request, _("User added."))
    except course_model.ResourceNotFoundException as e:
        messages.error(request, _("User does not exist."))

    return http.HttpResponseRedirect(redirect_url)
Пример #9
0
def course_leave( request, course_id, username ):
    cohort_uri = course_model.get_course_cohort_uri(course_id)
    user_uri = u"/uri/user/{0}".format(request.user.username)
    is_organizer = course_model.is_cohort_organizer(
        user_uri, cohort_uri
    )
    removed = False
    error_message = _("Could not remove user")
    if username == request.user.username or is_organizer:
        removed, error_message = course_model.remove_user_from_cohort(
            cohort_uri, u"/uri/user/{0}".format(username)
        )

    if not removed:
        messages.error(request, error_message)

    if is_organizer:
        redirect_url = reverse('courses_people', kwargs={'course_id': course_id})
        return http.HttpResponseRedirect(redirect_url)

    return course_slug_redirect( request, course_id)
Пример #10
0
def course_leave( request, course_id, username ):
    cohort_uri = course_model.get_course_cohort_uri(course_id)
    user_uri = u"/uri/user/{0}".format(request.user.username)
    # TODO site admin should also be able to remove users
    is_organizer = course_model.is_cohort_organizer(
        user_uri, cohort_uri
    )
    removed = False
    error_message = _("Could not remove user")
    if username == request.user.username or is_organizer:
        removed, error_message = course_model.remove_user_from_cohort(
            cohort_uri, u"/uri/user/{0}".format(username)
        )

    if not removed:
        messages.error(request, error_message)

    if is_organizer:
        redirect_url = reverse('courses_people', kwargs={'course_id': course_id})
        return http.HttpResponseRedirect(redirect_url)

    return course_slug_redirect( request, course_id)