Exemplo n.º 1
0
def discussion_category(request, course_id):
    if api.views.is_cached(request):
        return api.views.api_cacherender(request)
    course = api.views.get_course(course_id)
    if course is None:
        return api.views.api_render(request, {'error': 'Unknown course code'},
                                    status.HTTP_404_NOT_FOUND)

    json_file = course['dbname'].replace("_", "-") + '.json'
    courseinfo = loadcourseinfo(json_file)

    if courseinfo is None:
        return api.views.api_render(request,
                                    {'error': 'Can not find course info'},
                                    status.HTTP_404_NOT_FOUND)

    data = {}

    discussions = []
    data['categories'] = get_discussions(courseinfo, discussions)

    DiscussionForum.connect_to_mongo()
    db_df = DiscussionForum.mongo_client['discussion_forum']
    col_df = db_df[course['discussiontable']]
    data['min_date'] = str(DiscussionForum.min_date(col_df))
    data['max_date'] = str(DiscussionForum.max_date(col_df))
    data['popular_number'] = 20

    for category in data['categories']:
        category_id = category['discussion_id']
        data[category_id] = {}
        category_group_by_date = DiscussionForum.category_group_by_date(
            col_df, category_id)
        data[category_id]['thread_datecount'] = sorted(
            category_group_by_date['thread'].iteritems())
        data[category_id]['comment_datecounts'] = sorted(
            category_group_by_date['comment'].iteritems())
        data[category_id]['ccomment_datecounts'] = sorted(
            category_group_by_date['ccomment'].iteritems())

        category_sort_by_answer = DiscussionForum.category_sort_by_answer(
            col_df, category_id, data['popular_number'])
        data[category_id]['popular_threads'] = category_sort_by_answer[
            'popular_threads']
        data[category_id]['zones'] = category_sort_by_answer['zones']

    return api.views.api_render(request, data, status.HTTP_200_OK)
Exemplo n.º 2
0
def discussion_category(request, course_id):
    if api.views.is_cached(request):
        return api.views.api_cacherender(request)
    course = api.views.get_course(course_id)
    if course is None:
        return api.views.api_render(request, {'error': 'Unknown course code'}, status.HTTP_404_NOT_FOUND)

    json_file = course['dbname'].replace("_", "-") + '.json'
    courseinfo = loadcourseinfo(json_file)

    if courseinfo is None:
        return api.views.api_render(request, {'error': 'Can not find course info'}, status.HTTP_404_NOT_FOUND)

    data = {}

    discussions = []
    data['categories'] = get_discussions(courseinfo, discussions)

    DiscussionForum.connect_to_mongo()
    db_df = DiscussionForum.mongo_client['discussion_forum']
    col_df = db_df[course['discussiontable']]
    data['min_date'] = str(DiscussionForum.min_date(col_df))
    data['max_date'] = str(DiscussionForum.max_date(col_df))
    data['popular_number'] = 20

    for category in data['categories']:
        category_id = category['discussion_id']
        data[category_id] = {}
        category_group_by_date = DiscussionForum.category_group_by_date(col_df, category_id)
        data[category_id]['thread_datecount'] = sorted(category_group_by_date['thread'].iteritems())
        data[category_id]['comment_datecounts'] = sorted(category_group_by_date['comment'].iteritems())
        data[category_id]['ccomment_datecounts'] = sorted(category_group_by_date['ccomment'].iteritems())

        category_sort_by_answer = DiscussionForum.category_sort_by_answer(col_df, category_id, data['popular_number'])
        data[category_id]['popular_threads'] = category_sort_by_answer['popular_threads']
        data[category_id]['zones'] = category_sort_by_answer['zones']

    return api.views.api_render(request, data, status.HTTP_200_OK)