From 033ce7ef42011a4d8aaf88883e982f3f4c54091b Mon Sep 17 00:00:00 2001 From: Arjun Singh Date: Fri, 14 Sep 2012 18:34:37 -0700 Subject: [PATCH] Discussioninfo needs to be multicourse-friendly.. --- lms/djangoapps/django_comment_client/utils.py | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/lms/djangoapps/django_comment_client/utils.py b/lms/djangoapps/django_comment_client/utils.py index 2d4737a4f2..ead9bc9999 100644 --- a/lms/djangoapps/django_comment_client/utils.py +++ b/lms/djangoapps/django_comment_client/utils.py @@ -26,7 +26,7 @@ import pystache_custom as pystache # TODO these should be cached via django's caching rather than in-memory globals _FULLMODULES = None -_DISCUSSIONINFO = None +_DISCUSSIONINFO = defaultdict(dict) def extract(dic, keys): return {k: dic.get(k) for k in keys} @@ -61,23 +61,23 @@ def get_discussion_id_map(course): return a dict of the form {category: modules} """ global _DISCUSSIONINFO - if not _DISCUSSIONINFO: + if not _DISCUSSIONINFO[course.id]: initialize_discussion_info(course) - return _DISCUSSIONINFO['id_map'] + return _DISCUSSIONINFO[course.id]['id_map'] def get_discussion_title(course, discussion_id): global _DISCUSSIONINFO - if not _DISCUSSIONINFO: + if not _DISCUSSIONINFO[course.id]: initialize_discussion_info(course) - title = _DISCUSSIONINFO['id_map'].get(discussion_id, {}).get('title', '(no title)') + title = _DISCUSSIONINFO[course.id]['id_map'].get(discussion_id, {}).get('title', '(no title)') return title def get_discussion_category_map(course): global _DISCUSSIONINFO - if not _DISCUSSIONINFO: + if not _DISCUSSIONINFO[course.id]: initialize_discussion_info(course) - return filter_unstarted_categories(_DISCUSSIONINFO['category_map']) + return filter_unstarted_categories(_DISCUSSIONINFO[course.id]['category_map']) def filter_unstarted_categories(category_map): @@ -128,7 +128,7 @@ def sort_map_entries(category_map): def initialize_discussion_info(course): global _DISCUSSIONINFO - if _DISCUSSIONINFO: + if _DISCUSSIONINFO[course.id]: return course_id = course.id @@ -197,10 +197,8 @@ def initialize_discussion_info(course): "start_date": time.gmtime()} sort_map_entries(category_map) - _DISCUSSIONINFO = {} - - _DISCUSSIONINFO['id_map'] = discussion_id_map - _DISCUSSIONINFO['category_map'] = category_map + _DISCUSSIONINFO[course.id]['id_map'] = discussion_id_map + _DISCUSSIONINFO[course.id]['category_map'] = category_map class JsonResponse(HttpResponse): def __init__(self, data=None):