コード例 #1
0
def followed_threads(request, course_id, user_id):
    nr_transaction = newrelic.agent.current_transaction()

    course = get_course_with_access(request.user, course_id, 'load_forum')
    try:
        profiled_user = cc.User(id=user_id, course_id=course_id)

        query_params = {
            'page': request.GET.get('page', 1),
            'per_page':
            THREADS_PER_PAGE,  # more than threads_per_page to show more activities
            'sort_key': request.GET.get('sort_key', 'date'),
            'sort_order': request.GET.get('sort_order', 'desc'),
        }

        threads, page, num_pages = profiled_user.subscribed_threads(
            query_params)
        query_params['page'] = page
        query_params['num_pages'] = num_pages
        user_info = cc.User.from_django_user(request.user).to_dict()

        with newrelic.agent.FunctionTrace(nr_transaction,
                                          "get_metadata_for_threads"):
            annotated_content_info = utils.get_metadata_for_threads(
                course_id, threads, request.user, user_info)
        if request.is_ajax():
            return utils.JsonResponse({
                'annotated_content_info':
                annotated_content_info,
                'discussion_data':
                map(utils.safe_content, threads),
                'page':
                query_params['page'],
                'num_pages':
                query_params['num_pages'],
            })
        else:

            context = {
                'course':
                course,
                'user':
                request.user,
                'django_user':
                User.objects.get(id=user_id),
                'profiled_user':
                profiled_user.to_dict(),
                'threads':
                saxutils.escape(json.dumps(threads), escapedict),
                'user_info':
                saxutils.escape(json.dumps(user_info), escapedict),
                'annotated_content_info':
                saxutils.escape(json.dumps(annotated_content_info),
                                escapedict),
                #                'content': content,
            }

            return render_to_response('discussion/user_profile.html', context)
    except User.DoesNotExist:
        raise Http404
コード例 #2
0
ファイル: views.py プロジェクト: hughdbrown/edx-platform
def update_moderator_status(request, course_id, user_id):
    """
    given a course id and user id, check if the user has moderator
    and send back a user profile
    """
    is_moderator = request.POST.get('is_moderator', '').lower()
    if is_moderator not in ["true", "false"]:
        return JsonError("Must provide is_moderator as boolean value")
    is_moderator = is_moderator == "true"
    user = User.objects.get(id=user_id)
    role = Role.objects.get(course_id=course_id, name="Moderator")
    if is_moderator:
        user.roles.add(role)
    else:
        user.roles.remove(role)
    if request.is_ajax():
        course = get_course_with_access(request.user, course_id, 'load')
        discussion_user = cc.User(id=user_id, course_id=course_id)
        context = {
            'course': course,
            'course_id': course_id,
            'user': request.user,
            'django_user': user,
            'profiled_user': discussion_user.to_dict(),
        }
        return JsonResponse({
            'html': render_to_string('discussion/ajax_user_profile.html', context)
        })
    else:
        return JsonResponse({})
コード例 #3
0
ファイル: views.py プロジェクト: qunub/MHST2013-14
def user_profile(request, course_id, user_id):
    #TODO: Allow sorting?
    course = get_course_with_access(request.user, course_id, 'load')
    try:
        profiled_user = cc.User(id=user_id, course_id=course_id)

        query_params = {
            'page': request.GET.get('page', 1),
            'per_page':
            THREADS_PER_PAGE,  # more than threads_per_page to show more activities
        }

        threads, page, num_pages = profiled_user.active_threads(query_params)
        query_params['page'] = page
        query_params['num_pages'] = num_pages
        user_info = cc.User.from_django_user(request.user).to_dict()

        annotated_content_info = utils.get_metadata_for_threads(
            course_id, threads, request.user, user_info)

        if request.is_ajax():
            return utils.JsonResponse({
                'discussion_data':
                map(utils.safe_content, threads),
                'page':
                query_params['page'],
                'num_pages':
                query_params['num_pages'],
                'annotated_content_info':
                saxutils.escape(json.dumps(annotated_content_info),
                                escapedict),
            })
        else:
            context = {
                'course':
                course,
                'user':
                request.user,
                'django_user':
                User.objects.get(id=user_id),
                'profiled_user':
                profiled_user.to_dict(),
                'threads':
                saxutils.escape(json.dumps(threads), escapedict),
                'user_info':
                saxutils.escape(json.dumps(user_info), escapedict),
                'annotated_content_info':
                saxutils.escape(json.dumps(annotated_content_info),
                                escapedict),
                #                'content': content,
            }

            return render_to_response('discussion/user_profile.html', context)
    except (cc.utils.CommentClientError, cc.utils.CommentClientUnknownError,
            User.DoesNotExist):
        raise Http404