Commit caeae2f2 by Justin Riley

combine release/disable ajax urls into override

Combined the 'release' and 'disable' dispatch urls in handle_ajax into a
single 'override' dispatch. The new 'override' dispatch expects the user
to POST and toggles the proctor xmodule's staff_release based on the
'enabled' key (true or false) in the request data.
parent 248b80b5
...@@ -188,14 +188,15 @@ class ProctorModule(ProctorFields, XModule): ...@@ -188,14 +188,15 @@ class ProctorModule(ProctorFields, XModule):
return Fragment(self.runtime.render_template('conditional_ajax.html', return Fragment(self.runtime.render_template('conditional_ajax.html',
proc_ctx)) proc_ctx))
def _str_to_bool(self, v):
return v.lower() == 'true'
def handle_ajax(self, dispatch, data): def handle_ajax(self, dispatch, data):
if self.runtime.user_is_staff: if self.runtime.user_is_staff:
if dispatch == 'release': if dispatch == 'override':
self.staff_release = True enabled = self._str_to_bool(data.get('enabled', 'false'))
return json.dumps({'html': 'staff_release successful'}) self.staff_release = enabled
if dispatch == 'disable': return json.dumps({'enabled': enabled})
self.staff_release = False
return json.dumps({'html': 'staff_disable successful'})
# Proctor Student Admin URLs (STAFF ONLY) # Proctor Student Admin URLs (STAFF ONLY)
if dispatch == 'reset': if dispatch == 'reset':
......
...@@ -31,12 +31,9 @@ ...@@ -31,12 +31,9 @@
<!--<script type="text/javascript" src="${static.url('js/vendor/jquery.leanModal.min.js')}"></script>--> <!--<script type="text/javascript" src="${static.url('js/vendor/jquery.leanModal.min.js')}"></script>-->
<script type="text/javascript" src="/static/js/vendor/jquery.leanModal.min.js"></script> <script type="text/javascript" src="/static/js/vendor/jquery.leanModal.min.js"></script>
<script type="text/javascript"> <script type="text/javascript">
<% override_cmd = "disable" if staff_release else "release" %>
proctor_override = function(){ proctor_override = function(){
$.get( "${ajax_url}/${override_cmd}", function( data ) { var data = {enabled: "${not staff_release}"};
// $("#proctor_release").html( data ); $.post( "${ajax_url}/override", data, function( data ) {
// procrel.set_skiperr();
console.log("release successful");
location.reload(); location.reload();
}); });
} }
...@@ -79,11 +76,6 @@ procrel = (function(){ ...@@ -79,11 +76,6 @@ procrel = (function(){
var set_skiperr = function(){ skiperr = true; } var set_skiperr = function(){ skiperr = true; }
var mkurl = function(cmd) {
ps = encodeURIComponent("${pp.procset_name}");
return "${ajax_url}/cmd/" + cmd + "/${pp.user.id}/" + ps;
}
var statel = $('#proctor_stat_${element_id}'); var statel = $('#proctor_stat_${element_id}');
var setstat = function(status){ var setstat = function(status){
...@@ -91,7 +83,7 @@ procrel = (function(){ ...@@ -91,7 +83,7 @@ procrel = (function(){
} }
var do_pp_get = function(cmd, gfun){ var do_pp_get = function(cmd, gfun){
$.ajax({ url: mkurl(cmd), $.ajax({ url: "${ajax_url}/" + cmd,
type: 'GET', type: 'GET',
data: { "uname": "${pp.user.username}", data: { "uname": "${pp.user.username}",
"name": "${pp.user.profile.name}" "name": "${pp.user.profile.name}"
...@@ -103,7 +95,7 @@ procrel = (function(){ ...@@ -103,7 +95,7 @@ procrel = (function(){
alert('Error: cannot connect to server ' + status + " error: " + error); alert('Error: cannot connect to server ' + status + " error: " + error);
} }
} }
}); });
} }
var check_access = function(){ var check_access = function(){
...@@ -143,12 +135,14 @@ procrel = (function(){ ...@@ -143,12 +135,14 @@ procrel = (function(){
el.click(make_request); el.click(make_request);
return { "check": check_access, "make": make_request, return {
"mkurl": mkurl, "do_pp_get": do_pp_get, "check": check_access,
"set_skiperr": set_skiperr "make": make_request,
}; "do_pp_get": do_pp_get,
"set_skiperr": set_skiperr
};
}() ); }());
</script> </script>
% elif child_html is not None: % elif child_html is not None:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment