diff --git a/lms/djangoapps/instructor/views.py b/lms/djangoapps/instructor/views.py index 0b755145b3..5ae92ceb3b 100644 --- a/lms/djangoapps/instructor/views.py +++ b/lms/djangoapps/instructor/views.py @@ -46,6 +46,7 @@ template_imports = {'urllib': urllib} @ensure_csrf_cookie @cache_control(no_cache=True, no_store=True, must_revalidate=True) + def instructor_dashboard(request, course_id): """Display the instructor dashboard for a course.""" course = get_course_with_access(request.user, course_id, 'staff') @@ -209,7 +210,11 @@ def instructor_dashboard(request, course_id): elif action == 'List course forum administrators': - pass + rolename = 'Administrator' + datatable = {} + msg += _list_course_forum_members(course_id, rolename, datatable) + track.views.server_track(request, 'list-%s' % rolename, {}, page='idashboard') + elif action == 'Remove forum admin': uname = request.POST['forumadmin'] @@ -224,7 +229,10 @@ def instructor_dashboard(request, course_id): {}, page='idashboard') elif action == 'List course forum moderators': - pass + rolename = 'Moderator' + datatable = {} + msg += _list_course_forum_members(course_id, rolename, datatable) + track.views.server_track(request, 'list-%s' % rolename, {}, page='idashboard') elif action == 'Remove forum moderator': uname = request.POST['forummoderator'] @@ -239,7 +247,10 @@ def instructor_dashboard(request, course_id): {}, page='idashboard') elif action == 'List course forum community TAs': - pass + rolename = 'Community TA' + datatable = {} + msg += _list_course_forum_members(course_id, rolename, datatable) + track.views.server_track(request, 'list-%s' % rolename, {}, page='idashboard') elif action == 'Remove forum community TA': uname = request.POST['forumcommunityta'] @@ -284,6 +295,19 @@ def instructor_dashboard(request, course_id): return render_to_response('courseware/instructor_dashboard.html', context) +def _list_course_forum_members(course_id, rolename, datatable): + ''' TODO + ''' + role = Role.objects.get(name=rolename, course_id=course_id) + uset = role.users.all() + msg = 'Role = %s' % rolename + log.debug('role=%s' % rolename) + datatable['header'] = ['Username', 'Full name', 'Roles'] + datatable['data'] = [[x.username, x.profile.name, ', '.join([r.name for r in x.roles.all()])] for x in uset] + datatable['title'] = 'List of Forum %s in course %s' % (rolename, course_id) + return msg + + def _update_forum_role_membership(uname, course_id, rolename, add_or_remove): ''' @@ -301,10 +325,10 @@ def _update_forum_role_membership(uname, course_id, rolename, add_or_remove): log.debug('rolename=%s' % rolename) if (add_or_remove == 'remove'): user.roles.remove(role) - msg += 'Removed %s from %s forum role = %s' % (user, rolename) + msg += 'Removed %s from %s forum role = %s' % (user, course_id, rolename) else: user.roles.add(role) - msg += 'Added %s to %s forum role = %s' % (user, rolename) + msg += 'Added %s to %s forum role = %s' % (user, course_id, rolename) return msg