Commit 3813e51c by Sarina Canelake

Add more feedback for instructors on Student Admin section of the dash.

parent 91d85f5c
......@@ -101,7 +101,8 @@ class StudentAdmin
@$table_running_tasks = @$section.find ".running-tasks-table"
# response areas
@$request_response_error_single = find_and_assert @$section, ".student-specific-container .request-response-error"
@$request_response_error_progress = find_and_assert @$section, ".student-specific-container .request-response-error"
@$request_response_error_grade = find_and_assert @$section, ".student-grade-container .request-response-error"
@$request_response_error_all = @$section.find ".course-specific-container .request-response-error"
# start polling for task list
......@@ -119,6 +120,8 @@ class StudentAdmin
@$progress_link.click (e) =>
e.preventDefault()
unique_student_identifier = @$field_student_select_progress.val()
if not unique_student_identifier
return @$request_response_error_progress.text "Please enter a student email address or username."
$.ajax
dataType: 'json'
......@@ -126,7 +129,7 @@ class StudentAdmin
data: unique_student_identifier: unique_student_identifier
success: @clear_errors_then (data) ->
window.location = data.progress_url
error: std_ajax_err => @$request_response_error_single.text "Error getting student progress url for '#{unique_student_identifier}'."
error: std_ajax_err => @$request_response_error_progress.text "Error getting student progress url for '#{unique_student_identifier}'."
# enroll student
@$btn_enroll.click =>
......@@ -140,7 +143,7 @@ class StudentAdmin
url: @$btn_enroll.data 'endpoint'
data: send_data
success: @clear_errors_then -> console.log "student #{send_data.emails} enrolled"
error: std_ajax_err => @$request_response_error_single.text "Error enrolling student '#{send_data.emails}'."
error: std_ajax_err => @$request_response_error_progress.text "Error enrolling student '#{send_data.emails}'."
# unenroll student
@$btn_unenroll.click =>
......@@ -153,12 +156,16 @@ class StudentAdmin
url: @$btn_unenroll.data 'endpoint'
data: send_data
success: @clear_errors_then -> console.log "student #{send_data.emails} unenrolled"
error: std_ajax_err => @$request_response_error_single.text "Error unenrolling student '#{send_data.emails}'."
error: std_ajax_err => @$request_response_error_progress.text "Error unenrolling student '#{send_data.emails}'."
# reset attempts for student on problem
@$btn_reset_attempts_single.click =>
unique_student_identifier = @$field_student_select_grade.val()
problem_to_reset = @$field_problem_select_single.val()
if not unique_student_identifier
return @$request_response_error_grade.text "Please enter a student email address or username."
if not problem_to_reset
return @$request_response_error_grade.text "Please enter a problem urlname."
send_data =
unique_student_identifier: unique_student_identifier
problem_to_reset: problem_to_reset
......@@ -169,15 +176,21 @@ class StudentAdmin
url: @$btn_reset_attempts_single.data 'endpoint'
data: send_data
success: @clear_errors_then -> alert "Success! Problem attempts reset for problem '#{problem_to_reset}' and student '#{unique_student_identifier}'."
error: std_ajax_err => @$request_response_error_single.text "Error resetting problem attempts for problem '#{problem_to_reset}' and student '#{unique_student_identifier}'."
error: std_ajax_err => @$request_response_error_grade.text "Error resetting problem attempts for problem '#{problem_to_reset}' and student '#{unique_student_identifier}'."
# delete state for student on problem
@$btn_delete_state_single.click => confirm_then
msg: "Delete student '#{@$field_student_select_grade.val()}'s state on problem '#{@$field_problem_select_single.val()}'?"
ok: =>
@$btn_delete_state_single.click =>
unique_student_identifier = @$field_student_select_grade.val()
problem_to_reset = @$field_problem_select_single.val()
if not unique_student_identifier
return @$request_response_error_grade.text "Please enter a student email address or username."
if not problem_to_reset
return @$request_response_error_grade.text "Please enter a problem urlname."
if window.confirm "Delete student '#{unique_student_identifier}'s state on problem '#{problem_to_reset}'?"
send_data =
unique_student_identifier: @$field_student_select_grade.val()
problem_to_reset: @$field_problem_select_single.val()
unique_student_identifier: unique_student_identifier
problem_to_reset: problem_to_reset
delete_module: true
$.ajax
......@@ -185,12 +198,18 @@ class StudentAdmin
url: @$btn_delete_state_single.data 'endpoint'
data: send_data
success: @clear_errors_then -> alert 'Module state successfully deleted.'
error: std_ajax_err => @$request_response_error_single.text "Error deleting problem state."
error: std_ajax_err => @$request_response_error_grade.text "Error deleting problem state."
else
@clear_errors()
# start task to rescore problem for student
@$btn_rescore_problem_single.click =>
unique_student_identifier = @$field_student_select_grade.val()
problem_to_reset = @$field_problem_select_single.val()
if not unique_student_identifier
return @$request_response_error_grade.text "Please enter a student email address or username."
if not problem_to_reset
return @$request_response_error_grade.text "Please enter a problem urlname."
send_data =
unique_student_identifier: unique_student_identifier
problem_to_reset: problem_to_reset
......@@ -200,18 +219,19 @@ class StudentAdmin
url: @$btn_rescore_problem_single.data 'endpoint'
data: send_data
success: @clear_errors_then -> alert "Started rescore problem task for problem '#{problem_to_reset}' and student '#{unique_student_identifier}'. Click the 'Show Background Task History for Student' button to see the status of the task."
error: std_ajax_err => @$request_response_error_single.text "Error starting a task to rescore problem '#{problem_to_reset}' for student '#{unique_student_identifier}'."
error: std_ajax_err => @$request_response_error_grade.text "Error starting a task to rescore problem '#{problem_to_reset}' for student '#{unique_student_identifier}'."
# list task history for student+problem
@$btn_task_history_single.click =>
unique_student_identifier = @$field_student_select_grade.val()
problem_to_reset = @$field_problem_select_single.val()
if not unique_student_identifier
return @$request_response_error_grade.text "Please enter a student email address or username."
if not problem_to_reset
return @$request_response_error_grade.text "Please enter a problem urlname."
send_data =
unique_student_identifier: @$field_student_select_grade.val()
problem_urlname: @$field_problem_select_single.val()
if not send_data.unique_student_identifier
return @$request_response_error_single.text "Please enter a student email address or username."
if not send_data.problem_urlname
return @$request_response_error_single.text "Please enter a problem urlname."
unique_student_identifier: unique_student_identifier
problem_urlname: problem_to_reset
$.ajax
dataType: 'json'
......@@ -219,13 +239,14 @@ class StudentAdmin
data: send_data
success: @clear_errors_then (data) =>
create_task_list_table @$table_task_history_single, data.tasks
error: std_ajax_err => @$request_response_error_single.text "Error getting task history for student+problem"
error: std_ajax_err => @$request_response_error_grade.text "Error getting task history for student '#{unique_student_identifier}' and problem '#{problem_to_reset}'."
# start task to reset attempts on problem for all students
@$btn_reset_attempts_all.click => confirm_then
msg: "Reset attempts for all students on problem '#{@$field_problem_select_all.val()}'?"
ok: =>
@$btn_reset_attempts_all.click =>
problem_to_reset = @$field_problem_select_all.val()
if not problem_to_reset
return @$request_response_error_all.text "Please enter a problem urlname."
if window.confirm "Reset attempts for all students on problem '#{@$field_problem_select_all.val()}'?"
send_data =
all_students: true
problem_to_reset: problem_to_reset
......@@ -236,12 +257,15 @@ class StudentAdmin
data: send_data
success: @clear_errors_then -> alert "Successfully started task to reset attempts for problem '#{problem_to_reset}'. Click the 'Show Background Task History for Problem' button to see the status of the task."
error: std_ajax_err => @$request_response_error_all.text "Error starting a task to reset attempts for all students on this problem."
else
@clear_errors()
# start task to rescore problem for all students
@$btn_rescore_problem_all.click => confirm_then
msg: "Rescore problem '#{@$field_problem_select_all.val()}' for all students?"
ok: =>
@$btn_rescore_problem_all.click =>
problem_to_reset = @$field_problem_select_all.val()
if not problem_to_reset
return @$request_response_error_all.text "Please enter a problem urlname."
if window.confirm "Rescore problem '#{@$field_problem_select_all.val()}' for all students?"
send_data =
all_students: true
problem_to_reset: problem_to_reset
......@@ -252,6 +276,8 @@ class StudentAdmin
data: send_data
success: @clear_errors_then -> alert "Successfully started task to rescore problem '#{problem_to_reset}' for all students. Click the 'Show Background Task History for Problem' button to see the status of the task."
error: std_ajax_err => @$request_response_error_all.text "Error starting a task to rescore this problem for all students."
else
@clear_errors()
# list task history for problem
@$btn_task_history_all.click =>
......@@ -259,7 +285,7 @@ class StudentAdmin
problem_urlname: @$field_problem_select_all.val()
if not send_data.problem_urlname
return @$request_response_error_all.text "Enter a problem urlname."
return @$request_response_error_all.text "Please enter a problem urlname."
$.ajax
dataType: 'json'
......@@ -279,11 +305,18 @@ class StudentAdmin
# wraps a function, but first clear the error displays
clear_errors_then: (cb) ->
@$request_response_error_single.empty()
@$request_response_error_progress.empty()
@$request_response_error_grade.empty()
@$request_response_error_all.empty()
->
cb?.apply this, arguments
clear_errors: ->
@$request_response_error_progress.empty()
@$request_response_error_grade.empty()
@$request_response_error_all.empty()
# handler for when the section title is clicked.
onClickTitle: -> @task_poller?.start()
......
......@@ -29,9 +29,11 @@
-->
<hr>
</div>
<div class="student-grade-container action-type-container">
<h2>${_("Student-specific grade adjustment")}</h2>
<div class="request-response-error"></div>
<p>
<!-- Doesn't work for username but this MUST work -->
${_("Specify the {platform_name} email address or username of a student here:").format(platform_name=settings.PLATFORM_NAME)}
......
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