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
75c5c1ce
Commit
75c5c1ce
authored
Mar 20, 2012
by
Piotr Mitros
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Name changes work, but meta storage not tested
parent
2b173379
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
80 additions
and
20 deletions
+80
-20
djangoapps/student/views.py
+40
-15
templates/name_changes.html
+31
-1
templates/profile.html
+5
-4
urls.py
+4
-0
No files found.
djangoapps/student/views.py
View file @
75c5c1ce
...
@@ -383,8 +383,11 @@ def change_name_request(request):
...
@@ -383,8 +383,11 @@ def change_name_request(request):
if
not
request
.
user
.
is_authenticated
:
if
not
request
.
user
.
is_authenticated
:
raise
Http404
raise
Http404
pnc
=
PendingNameChange
()
try
:
pnc
.
user
=
request
.
User
pnc
=
PendingNameChange
.
objects
.
get
(
user
=
request
.
user
)
except
:
pnc
=
PendingNameChange
()
pnc
.
user
=
request
.
user
pnc
.
new_name
=
request
.
POST
[
'new_name'
]
pnc
.
new_name
=
request
.
POST
[
'new_name'
]
pnc
.
rationale
=
request
.
POST
[
'rationale'
]
pnc
.
rationale
=
request
.
POST
[
'rationale'
]
if
len
(
pnc
.
new_name
)
<
2
:
if
len
(
pnc
.
new_name
)
<
2
:
...
@@ -395,37 +398,59 @@ def change_name_request(request):
...
@@ -395,37 +398,59 @@ def change_name_request(request):
return
HttpResponse
(
json
.
dumps
({
'success'
:
True
}))
return
HttpResponse
(
json
.
dumps
({
'success'
:
True
}))
@ensure_csrf_cookie
@ensure_csrf_cookie
def
change_name_list
(
request
):
def
pending_name_changes
(
request
):
print
request
.
user
.
is_staff
,
request
.
user
if
not
request
.
user
.
is_staff
:
if
not
request
.
user
.
is_staff
:
print
"AAAA"
raise
Http404
raise
Http404
changes
=
list
(
PendingNameChange
.
objects
.
all
())
changes
=
list
(
PendingNameChange
.
objects
.
all
())
json
=
[{
'new_name'
:
c
.
new_name
,
js
=
{
'students'
:
[{
'new_name'
:
c
.
new_name
,
'rationale'
:
c
.
rationale
,
'rationale'
:
c
.
rationale
,
'old_name'
:
UserProfile
.
Objects
.
get
(
username
=
c
.
user
)
.
name
,
'old_name'
:
UserProfile
.
objects
.
get
(
user
=
c
.
user
)
.
name
,
'email'
:
c
.
user
.
email
,
'email'
:
c
.
user
.
email
,
'id'
:
c
.
id
}
for
c
in
changes
]
'uid'
:
c
.
user
.
id
,
return
render_to_response
(
'name_changes.html'
,
json
)
'cid'
:
c
.
id
}
for
c
in
changes
]}
return
render_to_response
(
'name_changes.html'
,
js
)
@ensure_csrf_cookie
@ensure_csrf_cookie
def
change_name_reject
(
request
):
def
reject_name_change
(
request
):
''' Course staff clicks 'reject' on a given name change '''
''' Course staff clicks 'reject' on a given name change '''
if
not
request
.
user
.
is_staff
:
if
not
request
.
user
.
is_staff
:
raise
Http404
raise
Http404
pnc
=
PendingNameChange
.
objects
.
get
(
id
=
int
(
request
.
POST
[
'id'
]))
try
:
pnc
=
PendingNameChange
.
objects
.
get
(
id
=
int
(
request
.
POST
[
'id'
]))
except
:
return
HttpResponse
(
json
.
dumps
({
'success'
:
False
,
'error'
:
'Invalid ID'
}))
pnc
.
delete
()
pnc
.
delete
()
return
HttpResponse
(
json
.
dumps
({
'success'
:
True
}))
return
HttpResponse
(
json
.
dumps
({
'success'
:
True
}))
@ensure_csrf_cookie
@ensure_csrf_cookie
def
change_name_accept
(
request
):
def
accept_name_change
(
request
):
''' Course staff clicks 'accept' on a given name change '''
''' Course staff clicks 'accept' on a given name change '''
pnc
=
PendingNameChange
.
objects
.
get
(
id
=
int
(
request
.
POST
[
'id'
]))
if
not
request
.
user
.
is_staff
:
raise
Http404
try
:
pnc
=
PendingNameChange
.
objects
.
get
(
id
=
int
(
request
.
POST
[
'id'
]))
except
:
return
HttpResponse
(
json
.
dumps
({
'success'
:
False
,
'error'
:
'Invalid ID'
}))
u
=
pnc
.
user
u
=
pnc
.
user
up
=
UserProfile
.
objects
.
get
(
user
=
u
)
up
=
UserProfile
.
objects
.
get
(
user
=
u
)
up
.
name
=
pnc
.
name
# Save old name
meta
=
up
.
get_meta
()
print
meta
if
'old_names'
not
in
meta
:
meta
[
'old_names'
]
=
[]
meta
[
'old_names'
]
.
append
(
up
.
name
)
up
.
set_meta
(
meta
)
up
.
name
=
pnc
.
new_name
up
.
save
()
up
.
save
()
pnc
.
delete
()
pnc
.
delete
()
return
HttpResponse
(
json
.
dumps
({
'success'
:
True
}))
return
HttpResponse
(
json
.
dumps
({
'success'
:
True
}))
templates/name_changes.html
View file @
75c5c1ce
<
%
inherit
file=
"main.html"
/>
<
%
inherit
file=
"main.html"
/>
<
%
include
file=
"navigation.html"
args=
"active_page=''"
/>
<
%
include
file=
"navigation.html"
args=
"active_page=''"
/>
<section
class=
"main-content"
>
<section
class=
"main-content"
>
<script>
function
name_confirm
(
id
)
{
postJSON
(
'/accept_name_change'
,{
"id"
:
id
},
function
(
data
){
if
(
data
.
success
){
$
(
"#div"
+
id
).
html
(
"Accepted"
);
}
else
{
alert
(
'Error'
);
}
});
}
function
name_deny
(
id
)
{
postJSON
(
'/reject_name_change'
,{
"id"
:
id
},
function
(
data
){
if
(
data
.
success
){
$
(
"#div"
+
id
).
html
(
"Rejected"
);
}
else
{
alert
(
'Error'
);
}
});
}
</script>
<div
class=
"gradebook-wrapper"
>
<div
class=
"gradebook-wrapper"
>
<section
class=
"gradebook-content"
>
<section
class=
"gradebook-content"
>
<h1>
Pending name changes
</h1>
<h1>
Pending name changes
</h1>
<table>
<table>
% for s in students:
% for s in students:
<tr><td><a
href=
/profile/${s.uid}/
>
${s.oldname}
</td><td>
${s.newname}
</td><td
onclick=
"update({$s.uid});"
>
[Change]
</td></tr>
<tr>
<td><a
href=
/profile/${s['uid']}/
>
${s['old_name']}
</td>
<td>
${s['new_name']|h}
</td>
<td>
${s['email']|h}
</td>
<td>
${s['rationale']|h}
</td>
<td><span
id=
"div${s['cid']}"
><span
onclick=
"name_confirm(${s['cid']});"
>
[Confirm]
</span>
<span
onclick=
"name_deny(${s['cid']});"
>
[Reject]
</span></span></td></tr>
% endfor
% endfor
</table>
</table>
</section>
</section>
...
...
templates/profile.html
View file @
75c5c1ce
...
@@ -102,13 +102,13 @@ $(function() {
...
@@ -102,13 +102,13 @@ $(function() {
var
new_name
=
$
(
'#new_name_field'
).
val
();
var
new_name
=
$
(
'#new_name_field'
).
val
();
var
rationale
=
$
(
'#name_rationale_field'
).
val
();
var
rationale
=
$
(
'#name_rationale_field'
).
val
();
postJSON
(
'/change_
email
'
,{
"new_name"
:
new_name
,
postJSON
(
'/change_
name
'
,{
"new_name"
:
new_name
,
"rationale"
:
rationale
},
"rationale"
:
rationale
},
function
(
data
){
function
(
data
){
if
(
data
.
success
){
if
(
data
.
success
){
$
(
"#
change_email
"
).
html
(
"Request submitted. We'll send you an e-mail if we approve the change or need further information."
);
$
(
"#
apply_name_change
"
).
html
(
"Request submitted. We'll send you an e-mail if we approve the change or need further information."
);
}
else
{
}
else
{
$
(
"#
change_email
_error"
).
html
(
data
.
error
);
$
(
"#
apply_name_change
_error"
).
html
(
data
.
error
);
}
}
});
});
log_event
(
"profile"
,
{
"type"
:
"name_change_request"
,
log_event
(
"profile"
,
{
"type"
:
"name_change_request"
,
...
@@ -190,7 +190,7 @@ $(function() {
...
@@ -190,7 +190,7 @@ $(function() {
</li>
</li>
<li>
<li>
E-mail:
<strong>
${email}
</strong>
<a
href=
"#change_email"
rel=
"leanModal"
class=
"edit-email"
>
Edit
</a>
E-mail:
<strong>
${email}
</strong>
<a
href=
"#change_email"
rel=
"leanModal"
class=
"edit-email"
>
Change
</a>
</li>
</li>
<li>
<li>
Location:
<div
id=
"location_sub"
>
${location}
</div><div
id=
"description"
></div>
<a
href=
"#"
id=
"change_location"
>
Edit
</a>
Location:
<div
id=
"location_sub"
>
${location}
</div><div
id=
"description"
></div>
<a
href=
"#"
id=
"change_location"
>
Edit
</a>
...
@@ -249,6 +249,7 @@ $(function() {
...
@@ -249,6 +249,7 @@ $(function() {
<div
id=
"change_email"
class=
"leanModal_box"
>
<div
id=
"change_email"
class=
"leanModal_box"
>
<h1>
Change e-mail
</h1>
<h1>
Change e-mail
</h1>
<div
id=
"apply_name_change_error"
></div>
<form
id=
"change_email_form"
>
<form
id=
"change_email_form"
>
<div
id=
"change_email_error"
>
</div>
<div
id=
"change_email_error"
>
</div>
<fieldset>
<fieldset>
...
...
urls.py
View file @
75c5c1ce
...
@@ -11,6 +11,10 @@ urlpatterns = ('',
...
@@ -11,6 +11,10 @@ urlpatterns = ('',
url
(
r'^$'
,
'student.views.index'
),
# Main marketing page, or redirect to courseware
url
(
r'^$'
,
'student.views.index'
),
# Main marketing page, or redirect to courseware
url
(
r'^change_email$'
,
'student.views.change_email_request'
),
url
(
r'^change_email$'
,
'student.views.change_email_request'
),
url
(
r'^email_confirm/(?P<key>[^/]*)$'
,
'student.views.confirm_email_change'
),
url
(
r'^email_confirm/(?P<key>[^/]*)$'
,
'student.views.confirm_email_change'
),
url
(
r'^change_name$'
,
'student.views.change_name_request'
),
url
(
r'^accept_name_change$'
,
'student.views.accept_name_change'
),
url
(
r'^reject_name_change$'
,
'student.views.reject_name_change'
),
url
(
r'^pending_name_changes$'
,
'student.views.pending_name_changes'
),
url
(
r'^gradebook$'
,
'courseware.views.gradebook'
),
url
(
r'^gradebook$'
,
'courseware.views.gradebook'
),
url
(
r'^event$'
,
'track.views.user_track'
),
url
(
r'^event$'
,
'track.views.user_track'
),
url
(
r'^t/(?P<template>[^/]*)$'
,
'static_template_view.views.index'
),
url
(
r'^t/(?P<template>[^/]*)$'
,
'static_template_view.views.index'
),
...
...
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