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) )
def import_project(project, hashtag): course = {} course['title'] = project.name course['hashtag'] = hashtag course['description'] = project.short_description course['language'] = project.language user_uri = "/uri/user/{0}".format( project.participations.filter( organizing=True).order_by('joined_on')[0].user.username) course['organizer_uri'] = user_uri course = course_model.create_course(**course) # update about page about = { "uri": course['about_uri'], "title": "About", "content": project.long_description, "author_uri": user_uri, } content_model.update_content(**about) # add other pages to course for page in project.pages.filter(deleted=False, listed=True).order_by('index'): content = { "title": page.title, "content": content_utils.clean_user_content(page.content), "author_uri": "/uri/user/{0}".format(page.author.username), } content = content_model.create_content(**content) course_model.add_course_content(course['uri'], content['uri']) return course
def import_project(project, hashtag): course = {} course['title'] = project.name course['hashtag'] = hashtag course['description'] = project.short_description course['language'] = project.language user_uri = "/uri/user/{0}".format(project.participations.filter(organizing=True).order_by('joined_on')[0].user.username) course['organizer_uri'] = user_uri course = course_model.create_course(**course) # update about page about = { "uri": course['about_uri'], "title": "About", "content": project.long_description, "author_uri": user_uri, } content_model.update_content(**about) # add other pages to course for page in project.pages.filter(deleted=False, listed=True).order_by('index'): content = { "title": page.title, "content": content_utils.clean_user_content(page.content), "author_uri": "/uri/user/{0}".format(page.author.username), } content = content_model.create_content(**content) course_model.add_course_content(course['uri'], content['uri']) return course
def add_content_from_response(course_uri, url, user_uri): content = None response = request_oembedded_content(url) if response.status_code == 200: content = response.json content_data = { 'title': content['title'], 'content': content['html'], 'author_uri': user_uri, } content = content_model.create_content(**content_data) course_model.add_course_content(course_uri, content['uri']) else: raise BadgeNotFoundException return content