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
de027211
Commit
de027211
authored
Jan 24, 2013
by
Victor Shnayder
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add removing students from cohorts.
parent
9e84ae14
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
65 additions
and
5 deletions
+65
-5
common/djangoapps/course_groups/views.py
+31
-0
common/static/js/course_groups/cohorts.js
+30
-4
lms/templates/course_groups/cohort_management.html
+1
-1
lms/urls.py
+3
-0
No files found.
common/djangoapps/course_groups/views.py
View file @
de027211
...
...
@@ -164,6 +164,37 @@ def add_users_to_cohort(request, course_id, cohort_id):
'present'
:
present
,
'unknown'
:
unknown
})
@ensure_csrf_cookie
def
remove_user_from_cohort
(
request
,
course_id
,
cohort_id
):
"""
Expects 'username': username in POST data.
Return json dict of:
{'success': True} or
{'success': False,
'msg': error_msg}
"""
get_course_with_access
(
request
.
user
,
course_id
,
'staff'
)
if
request
.
method
!=
"POST"
:
raise
Http404
(
"Must POST to add users to cohorts"
)
username
=
request
.
POST
.
get
(
'username'
)
if
username
is
None
:
return
JsonHttpReponse
({
'success'
:
False
,
'msg'
:
'No username specified'
})
cohort
=
cohorts
.
get_cohort_by_id
(
course_id
,
cohort_id
)
try
:
user
=
User
.
objects
.
get
(
username
=
username
)
cohort
.
users
.
remove
(
user
)
return
JsonHttpReponse
({
'success'
:
True
})
except
User
.
DoesNotExist
:
log
.
debug
(
'no user'
)
return
JsonHttpReponse
({
'success'
:
False
,
'msg'
:
"No user '{0}'"
.
format
(
username
)})
def
debug_cohort_mgmt
(
request
,
course_id
):
"""
...
...
common/static/js/course_groups/cohorts.js
View file @
de027211
...
...
@@ -67,7 +67,8 @@ var CohortManager = (function ($) {
var
detail_page_num
=
$$
(
".page_num"
);
var
users_area
=
$$
(
".users_area"
);
var
add_members_button
=
$$
(
".add_members"
);
var
op_results
=
$$
(
"op_results"
);
var
op_results
=
$$
(
".op_results"
);
var
cohort_id
=
null
;
var
cohort_title
=
null
;
var
detail_url
=
null
;
var
page
=
null
;
...
...
@@ -79,6 +80,7 @@ var CohortManager = (function ($) {
var
el
=
$
(
this
);
cohort_title
=
el
.
text
();
detail_url
=
el
.
data
(
'href'
);
cohort_id
=
el
.
data
(
'id'
);
state
=
state_detail
;
render
();
}
...
...
@@ -118,12 +120,31 @@ var CohortManager = (function ($) {
// *********** Detail view methods
function
remove_user_from_cohort
(
username
,
cohort_id
,
row
)
{
var
delete_url
=
detail_url
+
'/delete'
;
var
data
=
{
'username'
:
username
}
$
.
post
(
delete_url
,
data
).
done
(
function
()
{
row
.
remove
()})
.
fail
(
function
(
jqXHR
,
status
,
error
)
{
log_error
(
'Error removing user '
+
username
+
' from cohort. '
+
status
+
' '
+
error
);
});
}
function
add_to_users_list
(
item
)
{
var
tr
=
$
(
'<tr><td class="name"></td><td class="username"></td>'
+
'<td class="email"></td></tr>'
);
'<td class="email"></td>'
+
'<td class="remove"></td></tr>'
);
var
current_cohort_id
=
cohort_id
;
$
(
".name"
,
tr
).
text
(
item
.
name
);
$
(
".username"
,
tr
).
text
(
item
.
username
);
$
(
".email"
,
tr
).
text
(
item
.
email
);
$
(
".remove"
,
tr
).
html
(
'<a href="#">remove</a>'
)
.
click
(
function
()
{
remove_user_from_cohort
(
item
.
username
,
current_cohort_id
,
tr
);
});
detail_users
.
append
(
tr
);
};
...
...
@@ -145,7 +166,12 @@ var CohortManager = (function ($) {
function
adder
(
note
,
color
)
{
return
function
(
item
)
{
var
li
=
$
(
'<li></li>'
)
li
.
text
(
note
+
' '
+
item
.
name
+
', '
+
item
.
username
+
', '
+
item
.
email
);
if
(
typeof
item
===
"object"
)
{
li
.
text
(
note
+
' '
+
item
.
name
+
', '
+
item
.
username
+
', '
+
item
.
email
);
}
else
{
// string
li
.
text
(
note
+
' '
+
item
);
}
li
.
css
(
'color'
,
color
);
op_results
.
append
(
li
);
}
...
...
@@ -153,7 +179,7 @@ var CohortManager = (function ($) {
if
(
response
&&
response
.
success
)
{
response
.
added
.
forEach
(
adder
(
"Added"
,
"green"
));
response
.
present
.
forEach
(
adder
(
"Already present:"
,
"black"
));
response
.
unknown
.
forEach
(
adder
(
"
Already present
:"
,
"red"
));
response
.
unknown
.
forEach
(
adder
(
"
Unknown user
:"
,
"red"
));
}
else
{
log_error
(
response
.
msg
||
"There was an error adding users"
);
}
...
...
lms/templates/course_groups/cohort_management.html
View file @
de027211
...
...
@@ -29,7 +29,7 @@
<p>
Add users by username or email. One per line or comma-separated.
</p>
<textarea
cols=
"50"
row=
"30"
class=
"users_area"
></textarea>
<textarea
cols=
"50"
row=
"30"
class=
"users_area"
style=
"height: 200px"
></textarea>
<a
href=
"#"
class=
"button add_members"
>
Add cohort members
</a>
<ul
class=
"op_results"
>
...
...
lms/urls.py
View file @
de027211
...
...
@@ -287,6 +287,9 @@ if settings.COURSEWARE_ENABLED:
url
(
r'^courses/(?P<course_id>[^/]+/[^/]+/[^/]+)/cohorts/(?P<cohort_id>[0-9]+)/add$'
,
'course_groups.views.add_users_to_cohort'
,
name
=
"add_to_cohort"
),
url
(
r'^courses/(?P<course_id>[^/]+/[^/]+/[^/]+)/cohorts/(?P<cohort_id>[0-9]+)/delete$'
,
'course_groups.views.remove_user_from_cohort'
,
name
=
"remove_from_cohort"
),
url
(
r'^courses/(?P<course_id>[^/]+/[^/]+/[^/]+)/cohorts/debug$'
,
'course_groups.views.debug_cohort_mgmt'
,
name
=
"debug_cohort_mgmt"
),
...
...
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