Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
c9f7558d
Commit
c9f7558d
authored
Nov 16, 2012
by
Brian Wilson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
first pass at add/remove moderators
parent
2c01bf4a
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
117 additions
and
13 deletions
+117
-13
lms/djangoapps/instructor/views.py
+88
-13
lms/templates/courseware/instructor_dashboard.html
+29
-0
No files found.
lms/djangoapps/instructor/views.py
View file @
c9f7558d
# ======== Instructor views =============================================================================
# ======== Instructor views =============================================================================
import
csv
import
csv
import
itertools
#
import itertools
import
json
#
import json
import
logging
import
logging
import
os
import
os
import
urllib
import
urllib
import
track.views
import
track.views
from
functools
import
partial
#
from functools import partial
from
collections
import
defaultdict
from
collections
import
defaultdict
from
django.conf
import
settings
from
django.conf
import
settings
from
django.core.context_processors
import
csrf
#
from django.core.context_processors import csrf
from
django.core.urlresolvers
import
reverse
#
from django.core.urlresolvers import reverse
from
django.contrib.auth.models
import
User
,
Group
from
django.contrib.auth.models
import
User
,
Group
from
django.contrib.auth.decorators
import
login_required
#
from django.contrib.auth.decorators import login_required
from
django.http
import
Http
404
,
Http
Response
from
django.http
import
HttpResponse
from
django.shortcuts
import
redirect
#
from django.shortcuts import redirect
from
mitxmako.shortcuts
import
render_to_response
,
render_to_string
from
mitxmako.shortcuts
import
render_to_response
#
, render_to_string
#from django.views.decorators.csrf import ensure_csrf_cookie
#from django.views.decorators.csrf import ensure_csrf_cookie
from
django_future.csrf
import
ensure_csrf_cookie
from
django_future.csrf
import
ensure_csrf_cookie
from
django.views.decorators.cache
import
cache_control
from
django.views.decorators.cache
import
cache_control
from
courseware
import
grades
from
courseware
import
grades
from
courseware.access
import
has_access
,
get_access_group_name
from
courseware.access
import
has_access
,
get_access_group_name
from
courseware.courses
import
(
get_course_with_access
,
get_courses_by_university
)
from
courseware.courses
import
get_course_with_access
#
, get_courses_by_university)
from
psychometrics
import
psychoanalyze
from
psychometrics
import
psychoanalyze
from
student.models
import
UserProfile
#
from student.models import UserProfile
from
student.models
import
UserTestGroup
,
CourseEnrollment
from
student.models
import
CourseEnrollment
from
util.cache
import
cache
,
cache_if_anonymous
#
from util.cache import cache, cache_if_anonymous
from
xmodule.course_module
import
CourseDescriptor
from
xmodule.course_module
import
CourseDescriptor
from
xmodule.modulestore
import
Location
from
xmodule.modulestore
import
Location
from
xmodule.modulestore.django
import
modulestore
from
xmodule.modulestore.django
import
modulestore
from
xmodule.modulestore.exceptions
import
InvalidLocationError
,
ItemNotFoundError
,
NoPathToItem
from
xmodule.modulestore.exceptions
import
InvalidLocationError
,
ItemNotFoundError
,
NoPathToItem
from
xmodule.modulestore.search
import
path_to_location
from
xmodule.modulestore.search
import
path_to_location
from
django_comment_client.models
import
Role
log
=
logging
.
getLogger
(
"mitx.courseware"
)
log
=
logging
.
getLogger
(
"mitx.courseware"
)
...
@@ -204,6 +205,55 @@ def instructor_dashboard(request, course_id):
...
@@ -204,6 +205,55 @@ def instructor_dashboard(request, course_id):
track
.
views
.
server_track
(
request
,
'remove-staff
%
s'
%
user
,
{},
page
=
'idashboard'
)
track
.
views
.
server_track
(
request
,
'remove-staff
%
s'
%
user
,
{},
page
=
'idashboard'
)
#----------------------------------------
#----------------------------------------
# forum administration
elif
action
==
'List course forum administrators'
:
pass
elif
action
==
'Remove forum admin'
:
uname
=
request
.
POST
[
'forumadmin'
]
msg
+=
_update_forum_role_membership
(
uname
,
course_id
,
'Administrator'
,
'remove'
)
track
.
views
.
server_track
(
request
,
'
%
s
%
s as
%
s for
%
s'
%
(
'remove'
,
uname
,
'Administrator'
,
course_id
),
{},
page
=
'idashboard'
)
elif
action
==
'Add forum admin'
:
uname
=
request
.
POST
[
'forumadmin'
]
msg
+=
_update_forum_role_membership
(
uname
,
course_id
,
'Administrator'
,
'add'
)
track
.
views
.
server_track
(
request
,
'
%
s
%
s as
%
s for
%
s'
%
(
'add'
,
uname
,
'Administrator'
,
course_id
),
{},
page
=
'idashboard'
)
elif
action
==
'List course forum moderators'
:
pass
elif
action
==
'Remove forum moderator'
:
uname
=
request
.
POST
[
'forummoderator'
]
msg
+=
_update_forum_role_membership
(
uname
,
course_id
,
'Moderator'
,
'remove'
)
track
.
views
.
server_track
(
request
,
'
%
s
%
s as
%
s for
%
s'
%
(
'remove'
,
uname
,
'Moderator'
,
course_id
),
{},
page
=
'idashboard'
)
elif
action
==
'Add forum moderator'
:
uname
=
request
.
POST
[
'forummoderator'
]
msg
+=
_update_forum_role_membership
(
uname
,
course_id
,
'Moderator'
,
'add'
)
track
.
views
.
server_track
(
request
,
'
%
s
%
s as
%
s for
%
s'
%
(
'add'
,
uname
,
'Moderator'
,
course_id
),
{},
page
=
'idashboard'
)
elif
action
==
'List course forum community TAs'
:
pass
elif
action
==
'Remove forum community TA'
:
uname
=
request
.
POST
[
'forumcommunityta'
]
msg
+=
_update_forum_role_membership
(
uname
,
course_id
,
'Community TA'
,
'remove'
)
track
.
views
.
server_track
(
request
,
'
%
s
%
s as
%
s for
%
s'
%
(
'remove'
,
uname
,
'Community TA'
,
course_id
),
{},
page
=
'idashboard'
)
elif
action
==
'Add forum community TA'
:
uname
=
request
.
POST
[
'forumcommunityta'
]
msg
+=
_update_forum_role_membership
(
uname
,
course_id
,
'Community TA'
,
'add'
)
track
.
views
.
server_track
(
request
,
'
%
s
%
s as
%
s for
%
s'
%
(
'add'
,
uname
,
'Community TA'
,
course_id
),
{},
page
=
'idashboard'
)
#----------------------------------------
# psychometrics
# psychometrics
elif
action
==
'Generate Histogram and IRT Plot'
:
elif
action
==
'Generate Histogram and IRT Plot'
:
...
@@ -215,6 +265,8 @@ def instructor_dashboard(request, course_id):
...
@@ -215,6 +265,8 @@ def instructor_dashboard(request, course_id):
if
idash_mode
==
'Psychometrics'
:
if
idash_mode
==
'Psychometrics'
:
problems
=
psychoanalyze
.
problems_with_psychometric_data
(
course_id
)
problems
=
psychoanalyze
.
problems_with_psychometric_data
(
course_id
)
#----------------------------------------
#----------------------------------------
# context for rendering
# context for rendering
context
=
{
'course'
:
course
,
context
=
{
'course'
:
course
,
...
@@ -232,6 +284,29 @@ def instructor_dashboard(request, course_id):
...
@@ -232,6 +284,29 @@ def instructor_dashboard(request, course_id):
return
render_to_response
(
'courseware/instructor_dashboard.html'
,
context
)
return
render_to_response
(
'courseware/instructor_dashboard.html'
,
context
)
def
_update_forum_role_membership
(
uname
,
course_id
,
rolename
,
add_or_remove
):
'''
returns message status to append to displayed message
'''
msg
=
''
try
:
user
=
User
.
objects
.
get
(
username
=
uname
)
except
User
.
DoesNotExist
:
return
'<font color="red">Error: unknown username "
%
s"</font>'
%
uname
if
user
is
not
None
:
role
=
Role
.
objects
.
get
(
name
=
rolename
,
course_id
=
course_id
)
log
.
debug
(
'rolename=
%
s'
%
rolename
)
if
(
add_or_remove
==
'remove'
):
user
.
roles
.
remove
(
role
)
msg
+=
'<font color="green">Removed
%
s from
%
s forum role =
%
s</font>'
%
(
user
,
rolename
)
else
:
user
.
roles
.
add
(
role
)
msg
+=
'<font color="green">Added
%
s to
%
s forum role =
%
s</font>'
%
(
user
,
rolename
)
return
msg
def
get_student_grade_summary_data
(
request
,
course
,
course_id
,
get_grades
=
True
,
get_raw_scores
=
False
):
def
get_student_grade_summary_data
(
request
,
course
,
course_id
,
get_grades
=
True
,
get_raw_scores
=
False
):
'''
'''
...
...
lms/templates/courseware/instructor_dashboard.html
View file @
c9f7558d
...
@@ -57,6 +57,7 @@ function goto( mode)
...
@@ -57,6 +57,7 @@ function goto( mode)
<a
href=
"#"
onclick=
"goto('Psychometrics');"
class=
"${modeflag.get('Psychometrics')}"
>
Psychometrics
</a>
|
<a
href=
"#"
onclick=
"goto('Psychometrics');"
class=
"${modeflag.get('Psychometrics')}"
>
Psychometrics
</a>
|
%endif
%endif
<a
href=
"#"
onclick=
"goto('Admin');"
class=
"${modeflag.get('Admin')}"
>
Admin
</a>
]
<a
href=
"#"
onclick=
"goto('Admin');"
class=
"${modeflag.get('Admin')}"
>
Admin
</a>
]
<a
href=
"#"
onclick=
"goto('Forum Admin');"
class=
"${modeflag.get('Admin')}"
>
Forum Admin
</a>
]
</h2>
</h2>
<div
style=
"text-align:right"
id=
"djangopid"
>
${djangopid}
</div>
<div
style=
"text-align:right"
id=
"djangopid"
>
${djangopid}
</div>
...
@@ -134,6 +135,34 @@ function goto( mode)
...
@@ -134,6 +135,34 @@ function goto( mode)
%endif
%endif
%endif
%endif
##-----------------------------------------------------------------------------
%if modeflag.get('Forum Admin'):
%if instructor_access:
<hr
width=
"40%"
style=
"align:left"
>
<p>
<input
type=
"submit"
name=
"action"
value=
"List course forum administrators"
>
<p>
<input
type=
"text"
name=
"forumadmin"
>
<input
type=
"submit"
name=
"action"
value=
"Remove forum admin"
>
<input
type=
"submit"
name=
"action"
value=
"Add forum admin"
>
<hr
width=
"40%"
style=
"align:left"
>
%endif
%if instructor_access or forum_admin_access:
<p>
<input
type=
"submit"
name=
"action"
value=
"List course forum moderators"
>
<p>
<input
type=
"text"
name=
"forummoderator"
>
<input
type=
"submit"
name=
"action"
value=
"Remove forum moderator"
>
<input
type=
"submit"
name=
"action"
value=
"Add forum moderator"
>
<hr
width=
"40%"
style=
"align:left"
>
<p>
<input
type=
"submit"
name=
"action"
value=
"List course forum community TAs"
>
<p>
<input
type=
"text"
name=
"forumcommunityta"
>
<input
type=
"submit"
name=
"action"
value=
"Remove forum community TA"
>
<input
type=
"submit"
name=
"action"
value=
"Add forum community TA"
>
<hr
width=
"40%"
style=
"align:left"
>
%endif
%endif
</form>
</form>
##-----------------------------------------------------------------------------
##-----------------------------------------------------------------------------
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment