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):
return Fragment(self.runtime.render_template('conditional_ajax.html',
proc_ctx))
def _str_to_bool(self, v):
return v.lower() == 'true'
def handle_ajax(self, dispatch, data):
if self.runtime.user_is_staff:
if dispatch == 'release':
self.staff_release = True
return json.dumps({'html': 'staff_release successful'})
if dispatch == 'disable':
self.staff_release = False
return json.dumps({'html': 'staff_disable successful'})
if dispatch == 'override':
enabled = self._str_to_bool(data.get('enabled', 'false'))
self.staff_release = enabled
return json.dumps({'enabled': enabled})
# Proctor Student Admin URLs (STAFF ONLY)
if dispatch == 'reset':
......
......@@ -31,12 +31,9 @@
<!--<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">
<% override_cmd = "disable" if staff_release else "release" %>
proctor_override = function(){
$.get( "${ajax_url}/${override_cmd}", function( data ) {
// $("#proctor_release").html( data );
// procrel.set_skiperr();
console.log("release successful");
var data = {enabled: "${not staff_release}"};
$.post( "${ajax_url}/override", data, function( data ) {
location.reload();
});
}
......@@ -79,11 +76,6 @@ procrel = (function(){
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 setstat = function(status){
......@@ -91,7 +83,7 @@ procrel = (function(){
}
var do_pp_get = function(cmd, gfun){
$.ajax({ url: mkurl(cmd),
$.ajax({ url: "${ajax_url}/" + cmd,
type: 'GET',
data: { "uname": "${pp.user.username}",
"name": "${pp.user.profile.name}"
......@@ -103,7 +95,7 @@ procrel = (function(){
alert('Error: cannot connect to server ' + status + " error: " + error);
}
}
});
});
}
var check_access = function(){
......@@ -143,12 +135,14 @@ procrel = (function(){
el.click(make_request);
return { "check": check_access, "make": make_request,
"mkurl": mkurl, "do_pp_get": do_pp_get,
"set_skiperr": set_skiperr
};
return {
"check": check_access,
"make": make_request,
"do_pp_get": do_pp_get,
"set_skiperr": set_skiperr
};
}() );
}());
</script>
% 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