diff --git a/common/static/coffee/src/discussion/discussion_module_view.coffee b/common/static/coffee/src/discussion/discussion_module_view.coffee index 4e4c2d1e7a..2e58b2c0b8 100644 --- a/common/static/coffee/src/discussion/discussion_module_view.coffee +++ b/common/static/coffee/src/discussion/discussion_module_view.coffee @@ -79,7 +79,7 @@ if Backbone? #determined in the coffeescript based on whether or not there's a #group id - if response.is_cohorted + if response.is_cohorted and response.is_moderator source = "script#_inline_discussion_cohorted" else source = "script#_inline_discussion" diff --git a/lms/djangoapps/django_comment_client/base/views.py b/lms/djangoapps/django_comment_client/base/views.py index e4e5ce1550..c93ca5f308 100644 --- a/lms/djangoapps/django_comment_client/base/views.py +++ b/lms/djangoapps/django_comment_client/base/views.py @@ -96,24 +96,25 @@ def create_thread(request, course_id, commentable_id): #kevinchugh because the new requirement is that all groups will be determined #by the group id in the request this all goes away + #not anymore, only for admins # Cohort the thread if the commentable is cohorted. - #if is_commentable_cohorted(course_id, commentable_id): - # user_group_id = get_cohort_id(user, course_id) + if is_commentable_cohorted(course_id, commentable_id): + user_group_id = get_cohort_id(user, course_id) + # TODO (vshnayder): once we have more than just cohorts, we'll want to # change this to a single get_group_for_user_and_commentable function # that can do different things depending on the commentable_id - # if cached_has_permission(request.user, "see_all_cohorts", course_id): + if cached_has_permission(request.user, "see_all_cohorts", course_id): # admins can optionally choose what group to post as - # group_id = post.get('group_id', user_group_id) - # else: + group_id = post.get('group_id', user_group_id) + else: # regular users always post with their own id. - # group_id = user_group_id - group_id = post.get('group_id') + group_id = user_group_id + if group_id: thread.update_attributes(group_id=group_id) - log.debug("Saving thread %r", thread.attributes) thread.save() if post.get('auto_subscribe', 'false').lower() == 'true': diff --git a/lms/djangoapps/django_comment_client/forum/views.py b/lms/djangoapps/django_comment_client/forum/views.py index efacbc1b4e..d4a6d0cc38 100644 --- a/lms/djangoapps/django_comment_client/forum/views.py +++ b/lms/djangoapps/django_comment_client/forum/views.py @@ -133,32 +133,23 @@ def inline_discussion(request, course_id, discussion_id): #if the commentable is cohorted, otherwise everything is not cohorted #and no one has the option of choosing a cohort is_cohorted = is_course_cohorted(course_id) and is_commentable_cohorted(course_id, discussion_id) - + is_moderator = cached_has_permission(request.user, "see_all_cohorts", course_id) + cohorts_list = list() if is_cohorted: cohorts_list.append({'name':'All Groups','id':None}) #if you're a mod, send all cohorts and let you pick - if cached_has_permission(request.user, "see_all_cohorts", course_id): + + if is_moderator: cohorts = get_course_cohorts(course_id) for c in cohorts: cohorts_list.append({'name':c.name, 'id':c.id}) else: - #otherwise, just make a dictionary of two - user_cohort = get_cohort(cc_user, course_id) - if user_cohort: - user_cohort_name = user_cohort.name - user_cohort_id = user_cohort.id - else: - user_cohort_name = user_cohort_id = None - - if user_cohort: - cohorts_list.append({'name':user_cohort_name, 'id':user_cohort_id}) - else: - cohorts_list = None - + #students don't get to choose + cohorts_list = None return utils.JsonResponse({ 'discussion_data': map(utils.safe_content, threads), @@ -170,6 +161,7 @@ def inline_discussion(request, course_id, discussion_id): 'allow_anonymous_to_peers': allow_anonymous_to_peers, 'allow_anonymous': allow_anonymous, 'cohorts': cohorts_list, + 'is_moderator': is_moderator, 'is_cohorted': is_cohorted }) diff --git a/lms/templates/discussion/_new_post.html b/lms/templates/discussion/_new_post.html index 223b593368..7848dd1488 100644 --- a/lms/templates/discussion/_new_post.html +++ b/lms/templates/discussion/_new_post.html @@ -46,21 +46,18 @@ %elif course.metadata.get("allow_anonymous_to_peers", False): %endif - %if is_course_cohorted: + %if is_course_cohorted and is_moderator: