Example #1
0
def create_content( request, course_id ):
    course_uri = course_model.course_id2uri(course_id)
    course = _get_course_or_404(course_uri)
    if request.method == "POST":
        form = ContentForm(request.POST)
        if form.is_valid():
            user = request.user.get_profile()
            user_uri = u"/uri/user/{0}".format(user.username)
            content_data = {
                'title': form.cleaned_data.get('title'),
                'content': form.cleaned_data.get('content'),
                'author_uri': user_uri,
            }
            content = content_model.create_content(**content_data)
            course_model.add_course_content(course['uri'], content['uri'])

            redirect_url = request.POST.get('next_url', None)
            if not redirect_url:
                redirect_url = reverse('courses_show',
                    kwargs={'course_id': course['id'], 'slug': course['slug']}
                )
            return http.HttpResponseRedirect(redirect_url)
    else:
        form = ContentForm()

    context = { 'form': form }
    context = _populate_course_context(request, course_id, context)
    if request.GET.get('next_url', None):
        context['next_url'] = request.GET.get('next_url', None)

    return render_to_response('courses/create_content.html', 
        context, context_instance=RequestContext(request)
    )
Example #2
0
def course_settings( request, course_id ):
    course_uri = course_model.course_id2uri(course_id)
    course = _get_course_or_404(course_uri)
 
    context = { }
    context = _populate_course_context(request, course_id, context)

    context['update_form'] = CourseUpdateForm(course)
    context['image_form'] = CourseImageForm()
    context['status_form'] = CourseStatusForm(course)
    tags = ", ".join(course_model.get_course_tags(course_uri))
    context['tags_form'] = CourseTagsForm({'tags': tags})
    if context['cohort']['term'] == 'FIXED':
        context['term_form'] = CourseTermForm(context['cohort'])
    else:
        context['term_form'] = CourseTermForm()
    context['signup_form'] = CohortSignupForm(
        initial={'signup': context['cohort']['signup']}
    )

    context['metadata_form'] = LrmiForm(context['meta_data'])
    if 'educational_alignment' in context:
        context['educational_alignment_form'] = EducationalAlignmentForm(
            context['educational_alignment']
        )
    else:
        context['educational_alignment_form'] = EducationalAlignmentForm()

    context['settings_active'] = True

    return render_to_response(
        'courses/course_settings.html',
        context,
        context_instance=RequestContext(request)
    )
Example #3
0
def _populate_course_context( request, course_id, context ):
    course_uri = course_model.course_id2uri(course_id)
    course = _get_course_or_404(course_uri)
    context['course'] = course
    context['course_url'] = request.get_full_path()
    if 'image_uri' in course:
        context['course']['image'] = media_model.get_image(course['image_uri'])

    #NOTE if performance becomes a problem dont fetch cohort
    cohort = course_model.get_course_cohort(course_uri)
    context['cohort'] = cohort
    user_uri = "/uri/user/{0}".format(request.user.username)
    context['organizer'] = course_model.is_cohort_organizer(
        user_uri, cohort['uri']
    )
    context['organizer'] |= request.user.is_superuser
    context['can_edit'] = context['organizer'] and not course['status'] == 'archived'
    if course_model.user_in_cohort(user_uri, cohort['uri']):
        if not context['organizer']:
            context['show_leave_course'] = True
        context['learner'] = True
    elif cohort['signup'] == "OPEN":
        context['show_signup'] = True

    return context
Example #4
0
def create_content( request, course_id ):
    course_uri = course_model.course_id2uri(course_id)
    course = _get_course_or_404(course_uri)
    if request.method == "POST":
        form = ContentForm(request.POST)
        if form.is_valid():
            user = request.user.get_profile()
            user_uri = u"/uri/user/{0}".format(user.username)
            content_data = {
                'title': form.cleaned_data.get('title'),
                'content': form.cleaned_data.get('content'),
                'author_uri': user_uri,
            }
            content = content_model.create_content(**content_data)
            course_model.add_course_content(course['uri'], content['uri'])

            redirect_url = request.POST.get('next_url', None)
            if not redirect_url:
                redirect_url = reverse('courses_show',
                    kwargs={'course_id': course['id'], 'slug': course['slug']}
                )
            return http.HttpResponseRedirect(redirect_url)
    else:
        form = ContentForm()

    context = { 'form': form }
    context = _populate_course_context(request, course_id, context)
    if request.GET.get('next_url', None):
        context['next_url'] = request.GET.get('next_url', None)

    return render_to_response('courses/create_content.html', 
        context, context_instance=RequestContext(request)
    )
Example #5
0
def course_settings( request, course_id ):
    course_uri = course_model.course_id2uri(course_id)
    course = _get_course_or_404(course_uri)
 
    context = { }
    context = _populate_course_context(request, course_id, context)

    context['update_form'] = CourseUpdateForm(course)
    context['image_form'] = CourseImageForm()
    context['status_form'] = CourseStatusForm(course)
    tags = ", ".join(course_model.get_course_tags(course_uri))
    context['tags_form'] = CourseTagsForm({'tags': tags})
    if context['cohort']['term'] == 'FIXED':
        context['term_form'] = CourseTermForm(context['cohort'])
    else:
        context['term_form'] = CourseTermForm()
    context['signup_form'] = CohortSignupForm(
        initial={'signup': context['cohort']['signup']}
    )

    context['metadata_form'] = LrmiForm(context['meta_data'])
    if 'educational_alignment' in context:
        context['educational_alignment_form'] = EducationalAlignmentForm(
            context['educational_alignment']
        )
    else:
        context['educational_alignment_form'] = EducationalAlignmentForm()

    context['settings_active'] = True

    return render_to_response(
        'courses/course_settings.html',
        context,
        context_instance=RequestContext(request)
    )
Example #6
0
def course_learn_api_data( request, course_id ):
    """ return data required by the learn API """
    course_uri = course_model.course_id2uri(course_id)
    try:
        course_data = course_model.get_course_learn_api_data(course_uri)
    except:
        raise http.Http404

    return http.HttpResponse(json.dumps(course_data), mimetype="application/json")
Example #7
0
def course_learn_api_data( request, course_id ):
    """ return data required by the learn API """
    course_uri = course_model.course_id2uri(course_id)
    try:
        course_data = course_model.get_course_learn_api_data(course_uri)
    except:
        raise http.Http404

    return http.HttpResponse(json.dumps(course_data), mimetype="application/json")
Example #8
0
def course_update_attribute( request, course_id, attribute):
    course_uri = course_model.course_id2uri(course_id)
    form = CourseUpdateForm(request.POST)
    if form.is_valid():
        kwargs = { attribute: form.cleaned_data[attribute] }
        course_model.update_course( course_uri, **kwargs )
    else:
        messages.error(request, _("Could not update {0}.".format(attribute)))
    redirect_url = reverse('courses_settings', kwargs={'course_id': course_id})
    return http.HttpResponseRedirect(redirect_url)
Example #9
0
def course_update_attribute( request, course_id, attribute):
    course_uri = course_model.course_id2uri(course_id)
    form = CourseUpdateForm(request.POST)
    if form.is_valid():
        kwargs = { attribute: form.cleaned_data[attribute] }
        course_model.update_course( course_uri, **kwargs )
    else:
        messages.error(request, _("Could not update {0}.".format(attribute)))
    redirect_url = reverse('courses_settings', kwargs={'course_id': course_id})
    return http.HttpResponseRedirect(redirect_url)
Example #10
0
 def check_organizer(*args, **kwargs):
     request = args[0]
     course_id = kwargs.get("course_id")
     course_uri = course_model.course_id2uri(course_id)
     user_uri = "/uri/user/{0}".format(request.user.username)
     cohort = course_model.get_course_cohort(course_uri)
     organizer = course_model.is_cohort_organizer(user_uri, cohort["uri"])
     organizer |= request.user.is_superuser
     if not organizer:
         return http.HttpResponseForbidden(_("You need to be a course organizer."))
     return function(*args, **kwargs)
Example #11
0
def delete_spam(request, course_id):
    course_uri = course_model.course_id2uri(course_id)
    course = _get_course_or_404(course_uri)
    if request.method == "POST":
        course_model.delete_spam_course(course_uri)
        return http.HttpResponseRedirect(reverse('home'))

    context = { }
    context = _populate_course_context(request, course_id, context)
    return render_to_response('courses/course_delete_confirmation.html', 
        context, context_instance=RequestContext(request)
    )
Example #12
0
 def check_organizer(*args, **kwargs):
     request = args[0]
     course_id = kwargs.get('course_id')
     course_uri = course_model.course_id2uri(course_id)
     user_uri = "/uri/user/{0}".format(request.user.username)
     cohort = course_model.get_course_cohort(course_uri)
     organizer = course_model.is_cohort_organizer(user_uri, cohort['uri'])
     organizer |= request.user.is_superuser
     if not organizer:
         return http.HttpResponseForbidden(
             _("You need to be a course organizer."))
     return function(*args, **kwargs)
Example #13
0
def course_update_tags( request, course_id ):
    course_uri = course_model.course_id2uri(course_id)
    form = CourseTagsForm(request.POST)
    if form.is_valid():
        tags = [tag.strip() for tag in form.cleaned_data['tags'].split(',')]
        course_model.remove_course_tags(
            course_uri, course_model.get_course_tags(course_uri)
        )
        course_model.add_course_tags(course_uri, tags)
        messages.success( request, _("Course tags successfully updated") )

    redirect_url = reverse('courses_settings', kwargs={'course_id': course_id})
    return http.HttpResponseRedirect(redirect_url)
Example #14
0
def course_discussion( request, course_id ):
    course_uri = course_model.course_id2uri(course_id)
    course = _get_course_or_404(course_uri)
 
    context = { }
    context = _populate_course_context(request, course_id, context)
    context['discussion_active'] = True

    return render_to_response(
        'courses/course_discussion.html',
        context,
        context_instance=RequestContext(request)
    )
Example #15
0
def course_update_tags( request, course_id ):
    course_uri = course_model.course_id2uri(course_id)
    form = CourseTagsForm(request.POST)
    if form.is_valid():
        tags = [tag.strip() for tag in form.cleaned_data['tags'].split(',')]
        course_model.remove_course_tags(
            course_uri, course_model.get_course_tags(course_uri)
        )
        course_model.add_course_tags(course_uri, tags)
        messages.success( request, _("Course tags successfully updated") )

    redirect_url = reverse('courses_settings', kwargs={'course_id': course_id})
    return http.HttpResponseRedirect(redirect_url)
Example #16
0
def delete_spam(request, course_id):
    course_uri = course_model.course_id2uri(course_id)
    course = _get_course_or_404(course_uri)
    if request.method == "POST":
        course_model.delete_spam_course(course_uri)
        #TODO display splash message to indicate success
        return http.HttpResponseRedirect(reverse('home'))

    context = { }
    context = _populate_course_context(request, course_id, context)
    return render_to_response('courses/course_delete_confirmation.html', 
        context, context_instance=RequestContext(request)
    )
Example #17
0
def course_admin_content( request, course_id ):
    course_uri = course_model.course_id2uri(course_id)
    course = _get_course_or_404(course_uri)
 
    context = { }
    context = _populate_course_context(request, course_id, context)
    context['content_active'] = True

    return render_to_response(
        'courses/course_admin_content.html',
        context,
        context_instance=RequestContext(request)
    )
Example #18
0
def course_image( request, course_id ):
    course_uri = course_model.course_id2uri(course_id)
    user_uri = u"/uri/user/{0}".format(request.user.username)
    image_form = CourseImageForm(request.POST, request.FILES)
    if image_form.is_valid():
        image_file = request.FILES['image']
        image = media_model.upload_image(image_file, course_uri)
        course_model.update_course(
            course_uri=course_uri,
            image_uri=image['uri'],
        )
    else:
        messages.error(request, _("Could not upload image"))
    redirect_url = reverse('courses_settings', kwargs={'course_id': course_id})
    return http.HttpResponseRedirect(redirect_url)
Example #19
0
def course_image( request, course_id ):
    course_uri = course_model.course_id2uri(course_id)
    user_uri = u"/uri/user/{0}".format(request.user.username)
    image_form = CourseImageForm(request.POST, request.FILES)
    if image_form.is_valid():
        image_file = request.FILES['image']
        image = media_model.upload_image(image_file, course_uri)
        course_model.update_course(
            course_uri=course_uri,
            image_uri=image['uri'],
        )
    else:
        messages.error(request, _("Could not upload image"))
    redirect_url = reverse('courses_settings', kwargs={'course_id': course_id})
    return http.HttpResponseRedirect(redirect_url)
Example #20
0
def _populate_course_context( request, course_id, context ):
    course_uri = course_model.course_id2uri(course_id)
    course = _get_course_or_404(course_uri)
    course['author'] = course['author_uri'].strip('/').split('/')[-1]
    context['course'] = course
    context['course_url'] = reverse('courses_show',
        kwargs={'course_id': course['id'], 'slug': course['slug']}
    )
    if 'image_uri' in course:
        context['course']['image'] = media_model.get_image(course['image_uri'])

    #NOTE if performance becomes a problem dont fetch cohort
    cohort = course_model.get_course_cohort(course_uri)
    context['cohort'] = cohort
    user_uri = u"/uri/user/{0}".format(request.user.username)
    context['organizer'] = course_model.is_cohort_organizer(
        user_uri, cohort['uri']
    )
    context['organizer'] |= request.user.is_superuser
    context['admin'] = request.user.is_superuser
    context['can_edit'] = context['organizer'] and not course['status'] == 'archived'
    context['trusted_user'] = request.user.has_perm('users.trusted_user')
    if course_model.user_in_cohort(user_uri, cohort['uri']):
        if not context['organizer']:
            context['show_leave_course'] = True
        context['learner'] = True
    elif cohort['signup'] == "OPEN":
        context['show_signup'] = True

    try:
        course_lists = learn_model.get_lists_for_course(reverse(
            'courses_slug_redirect',
            kwargs={'course_id': course_id}
        ))
        f = lambda l: l['name'] not in ['drafts', 'listed', 'archived']
        context['lists'] = filter(f, course_lists)
    except:
        log.error("Could not get lists for course!")

    if 'based_on_uri' in course:
        course['based_on'] = course_model.get_course(course['based_on_uri'])

    context['meta_data'] = lrmi_model.get_tags(course_uri)
    if 'educational_alignment' in context['meta_data']:
        context['educational_alignment'] = json.loads(context['meta_data']['educational_alignment'])
        del context['meta_data']['educational_alignment']

    return context
Example #21
0
def course_discussion( request, course_id ):
    course_uri = course_model.course_id2uri(course_id)
    course = _get_course_or_404(course_uri)
 
    context = { }
    context = _populate_course_context(request, course_id, context)
    context['discussion_active'] = True
    context['disqus_public_key'] = settings.DISQUS_PUBLIC_KEY
    if request.user.is_authenticated():
        context['disqus_sso'] = get_disqus_sso(request.user)

    return render_to_response(
        'courses/course_discussion.html',
        context,
        context_instance=RequestContext(request)
    )
Example #22
0
def course_change_status( request, course_id ):
    user_uri = u"/uri/user/{0}".format(request.user.username)
    course_uri = course_model.course_id2uri(course_id)
    form = CourseStatusForm(request.POST)
    if form.is_valid():
        status = form.cleaned_data['status']
        if status == 'draft':
            course = course_model.unpublish_course(course_uri)
        elif status == 'published':
            course = course_model.publish_course(course_uri)
        elif status == 'archived':
            course = course_model.archive_course(course_uri)
        messages.success(request, _('Course status updated.'))

    redirect_url = reverse('courses_settings', kwargs={'course_id': course_id})
    return http.HttpResponseRedirect(redirect_url)
Example #23
0
def course_change_status( request, course_id ):
    user_uri = u"/uri/user/{0}".format(request.user.username)
    course_uri = course_model.course_id2uri(course_id)
    form = CourseStatusForm(request.POST)
    if form.is_valid():
        status = form.cleaned_data['status']
        if status == 'draft':
            course = course_model.unpublish_course(course_uri)
        elif status == 'published':
            course = course_model.publish_course(course_uri)
        elif status == 'archived':
            course = course_model.archive_course(course_uri)
        messages.success(request, _('Course status updated.'))

    redirect_url = reverse('courses_settings', kwargs={'course_id': course_id})
    return http.HttpResponseRedirect(redirect_url)
Example #24
0
def course_discussion( request, course_id ):
    course_uri = course_model.course_id2uri(course_id)
    course = _get_course_or_404(course_uri)
 
    context = { }
    context = _populate_course_context(request, course_id, context)
    context['discussion_active'] = True
    context['disqus_public_key'] = settings.DISQUS_PUBLIC_KEY
    if request.user.is_authenticated():
        context['disqus_sso'] = get_disqus_sso(request.user)

    return render_to_response(
        'courses/course_discussion.html',
        context,
        context_instance=RequestContext(request)
    )
Example #25
0
def course_people( request, course_id ):
    course_uri = course_model.course_id2uri(course_id)
    course = _get_course_or_404(course_uri)
 
    context = { }
    context = _populate_course_context(request, course_id, context)

    from users.models import get_user_profile_image_url
    for user in context['cohort']['users'].values():
        user['profile_image_url'] = get_user_profile_image_url(user['uri'])

    context['people_active'] = True

    return render_to_response(
        'courses/course_people.html',
        context,
        context_instance=RequestContext(request)
    )
Example #26
0
def course_people( request, course_id ):
    course_uri = course_model.course_id2uri(course_id)
    course = _get_course_or_404(course_uri)
 
    context = { }
    context = _populate_course_context(request, course_id, context)

    from users.models import get_user_profile_image_url
    for user in context['cohort']['users'].values():
        user['profile_image_url'] = get_user_profile_image_url(user['uri'])

    context['people_active'] = True

    return render_to_response(
        'courses/course_people.html',
        context,
        context_instance=RequestContext(request)
    )
Example #27
0
def course_update_metadata( request, course_id ):
    course_uri = course_model.course_id2uri(course_id)
    form = LrmiForm(request.POST)
    if form.is_valid():
        for key, value in form.cleaned_data.items():
            lrmi_model.save_tag(course_uri, key, value)

    ea_form = EducationalAlignmentForm(request.POST)
    if ea_form.is_valid():
        lrmi_model.save_tag(
            course_uri,
            'educational_alignment',
            json.dumps(ea_form.cleaned_data)
        )
    else:
        lrmi_model.save_tag(course_uri, 'educational_alignment', '')
    
    redirect_url = reverse('courses_settings', kwargs={'course_id': course_id})
    return http.HttpResponseRedirect(redirect_url)
Example #28
0
def course_update_metadata( request, course_id ):
    course_uri = course_model.course_id2uri(course_id)
    form = LrmiForm(request.POST)
    if form.is_valid():
        for key, value in form.cleaned_data.items():
            lrmi_model.save_tag(course_uri, key, value)

    ea_form = EducationalAlignmentForm(request.POST)
    if ea_form.is_valid():
        lrmi_model.save_tag(
            course_uri,
            'educational_alignment',
            json.dumps(ea_form.cleaned_data)
        )
    else:
        lrmi_model.save_tag(course_uri, 'educational_alignment', '')
    
    redirect_url = reverse('courses_settings', kwargs={'course_id': course_id})
    return http.HttpResponseRedirect(redirect_url)
Example #29
0
def course_export_emails( request, course_id ):
    if not request.user.has_perm('users.trusted_user'):
        msg = _('You do not have permission to view this page')
        return http.HttpResponseForbidden(msg)
    
    course_uri = course_model.course_id2uri(course_id)
    cohort = course_model.get_course_cohort(course_uri)

    response = http.HttpResponse(mimetype='text/csv')
    response['Content-Disposition'] = 'attachment; '
    response['Content-Disposition'] += 'filename=detailed_report.csv'
    writer = unicodecsv.writer(response)
    writer.writerow(["username", "email address", "signup date"])

    for user in cohort['users'].values():
        username = user['uri'].strip('/').split('/')[-1]
        user['email'] = UserProfile.objects.get(username=username).email
        writer.writerow([username, user['email'], user['signup_date']])

    return response
Example #30
0
def course_export_emails( request, course_id ):
    if not request.user.has_perm('users.trusted_user'):
        msg = _('You do not have permission to view this page')
        return http.HttpResponseForbidden(msg)
    
    course_uri = course_model.course_id2uri(course_id)
    cohort = course_model.get_course_cohort(course_uri)

    response = http.HttpResponse(mimetype='text/csv')
    response['Content-Disposition'] = 'attachment; '
    response['Content-Disposition'] += 'filename=detailed_report.csv'
    writer = unicodecsv.writer(response)
    writer.writerow(["username", "email address", "signup date"])

    for user in cohort['users'].values():
        username = user['uri'].strip('/').split('/')[-1]
        user['email'] = UserProfile.objects.get(username=username).email
        writer.writerow([username, user['email'], user['signup_date']])

    return response
Example #31
0
def show_course( request, course_id, slug=None ):
    course_uri = course_model.course_id2uri(course_id)
    course = _get_course_or_404(course_uri)
    
    if slug != course['slug']:
        return course_slug_redirect( request, course_id)

    context = { }
    context = _populate_course_context(request, course_id, context)
    context['about_active'] = True

    if context['organizer']:
        context['update_form'] = CourseUpdateForm(course)

    context['about'] = content_model.get_content(course['about_uri'])

    return render_to_response(
        'courses/course.html',
        context,
        context_instance=RequestContext(request)
    )
Example #32
0
def show_course( request, course_id, slug=None ):
    course_uri = course_model.course_id2uri(course_id)
    course = _get_course_or_404(course_uri)
    
    if slug != course['slug']:
        return course_slug_redirect( request, course_id)

    context = { }
    context = _populate_course_context(request, course_id, context)
    context['about_active'] = True

    if context['organizer']:
        context['update_form'] = CourseUpdateForm(course)

    context['about'] = content_model.get_content(course['about_uri'])

    return render_to_response(
        'courses/course.html',
        context,
        context_instance=RequestContext(request)
    )
Example #33
0
def post_content_comment( request, course_id, content_id):
    #TODO use form with field that sanitizes the input!
    comment_content = request.POST.get('comment')
    user = request.user.get_profile()
    user_uri = u"/uri/user/{0}".format(user.username)
    comment = comment_model.create_comment(comment_content, user_uri)

    reference_uri = "/uri/content/{0}".format(content_id)
    course_uri = course_model.course_id2uri(course_id)
    cohort = course_model.get_course_cohort(course_uri)
    course_model.add_comment_to_cohort(
        comment['uri'], cohort['uri'], reference_uri
    )

    if request.POST.get('next_url'):
        redirect_url = request.POST.get('next_url')
    else:
        redirect_url = reverse('courses_content_show',
            kwargs={'course_id': course_id, 'content_id': content_id}
        )
    return http.HttpResponseRedirect(redirect_url)
Example #34
0
def edit_content( request, course_id, content_id ):
    course_uri = course_model.course_id2uri(course_id)
    course = _get_course_or_404(course_uri)
    content = content_model.get_content("/uri/content/{0}".format(content_id))

    if request.method == "POST":
        form = ContentForm(request.POST)
        if form.is_valid():
            content_data = {
                'title': form.cleaned_data.get('title'),
                'content': form.cleaned_data.get('content'),
            }
            user = request.user.get_profile()
            user_uri = u"/uri/user/{0}".format(user.username)
            content = content_model.update_content(
                content['uri'], content_data['title'], 
                content_data['content'], user_uri
            )
            
            redirect_url = request.POST.get('next_url', None)
            if not redirect_url:
                redirect_url = reverse('courses_content_show',
                    kwargs={'course_id': course_id, 'content_id': content_id}
                )
            return http.HttpResponseRedirect(redirect_url)
    else:
        form = ContentForm(initial=content)

    context = {
        'form': form,
        'content': content,
    }
    context = _populate_course_context(request, course_id, context)
    if request.GET.get('next_url', None):
        context['next_url'] = request.GET.get('next_url', None)
    return render_to_response('courses/edit_content.html', 
        context, context_instance=RequestContext(request)
    )
Example #35
0
def edit_content( request, course_id, content_id ):
    course_uri = course_model.course_id2uri(course_id)
    course = _get_course_or_404(course_uri)
    content = content_model.get_content("/uri/content/{0}".format(content_id))

    if request.method == "POST":
        form = ContentForm(request.POST)
        if form.is_valid():
            content_data = {
                'title': form.cleaned_data.get('title'),
                'content': form.cleaned_data.get('content'),
            }
            user = request.user.get_profile()
            user_uri = u"/uri/user/{0}".format(user.username)
            content = content_model.update_content(
                content['uri'], content_data['title'], 
                content_data['content'], user_uri
            )
            
            redirect_url = request.POST.get('next_url', None)
            if not redirect_url:
                redirect_url = reverse('courses_content_show',
                    kwargs={'course_id': course_id, 'content_id': content_id}
                )
            return http.HttpResponseRedirect(redirect_url)
    else:
        form = ContentForm(initial=content)

    context = {
        'form': form,
        'content': content,
    }
    context = _populate_course_context(request, course_id, context)
    if request.GET.get('next_url', None):
        context['next_url'] = request.GET.get('next_url', None)
    return render_to_response('courses/edit_content.html', 
        context, context_instance=RequestContext(request)
    )
Example #36
0
def remove_content( request, course_id, content_id ):
    course_uri = course_model.course_id2uri(course_id)
    content_uri = "/uri/content/{0}".format(content_id)
    course_model.remove_course_content(course_uri, content_uri)
    redirect_url = reverse('courses_admin_content', kwargs={'course_id': course_id})
    return http.HttpResponseRedirect(redirect_url)
Example #37
0
def remove_content( request, course_id, content_id ):
    course_uri = course_model.course_id2uri(course_id)
    content_uri = "/uri/content/{0}".format(content_id)
    course_model.remove_course_content(course_uri, content_uri)
    redirect_url = reverse('courses_admin_content', kwargs={'course_id': course_id})
    return http.HttpResponseRedirect(redirect_url)
Example #38
0
def clone_course( request, course_id ):
    course_uri = course_model.course_id2uri(course_id)
    user_uri = u"/uri/user/{0}".format(request.user.username)
    course = course_model.clone_course(course_uri, user_uri)
    return course_slug_redirect(request, course['id'])
Example #39
0
def course_slug_redirect( request, course_id ):
    course_uri = course_model.course_id2uri(course_id)
    course = _get_course_or_404(course_uri)
    redirect_url = reverse('courses_show', 
        kwargs={'course_id': course_id, 'slug': course['slug']})
    return http.HttpResponseRedirect(redirect_url)
Example #40
0
def clone_course( request, course_id ):
    course_uri = course_model.course_id2uri(course_id)
    user_uri = u"/uri/user/{0}".format(request.user.username)
    course = course_model.clone_course(course_uri, user_uri)
    return course_slug_redirect(request, course['id'])
Example #41
0
def course_slug_redirect( request, course_id ):
    course_uri = course_model.course_id2uri(course_id)
    course = _get_course_or_404(course_uri)
    redirect_url = reverse('courses_show', 
        kwargs={'course_id': course_id, 'slug': course['slug']})
    return http.HttpResponseRedirect(redirect_url)