Commit 803b7eb2 by Vik Paruchuri

Fix peer grading rubric issue. Redo peer grading JS to scope locally

parent 15b0e120
...@@ -419,6 +419,22 @@ div.result-container { ...@@ -419,6 +419,22 @@ div.result-container {
} }
} }
div.rubric {
ul.rubric-list{
margin: 0;
padding: 0;
list-style-type: none;
list-style: none;
li {
&.rubric-list-item {
margin-bottom: 0;
padding: 0;
border-radius: $baseline/4;
}
}
}
}
section.open-ended-child { section.open-ended-child {
@media print { @media print {
...@@ -659,14 +675,13 @@ section.open-ended-child { ...@@ -659,14 +675,13 @@ section.open-ended-child {
margin-bottom: lh(); margin-bottom: lh();
margin-left: .75em; margin-left: .75em;
margin-left: .75rem; margin-left: .75rem;
list-style: disc outside none;
} }
ul.rubric-list{ ul.rubric-list{
margin: 0; margin: 0;
padding: 0; padding: 0;
list-style-type: none; list-style-type: none;
list-style: none;
li { li {
&.rubric-list-item { &.rubric-list-item {
margin-bottom: 0; margin-bottom: 0;
......
...@@ -3,10 +3,20 @@ ...@@ -3,10 +3,20 @@
# Can (and should be) expanded upon when our problem list # Can (and should be) expanded upon when our problem list
# becomes more sophisticated # becomes more sophisticated
class @PeerGrading class @PeerGrading
peer_grading_sel: '.peer-grading'
peer_grading_container_sel: '.peer-grading-container'
error_container_sel: '.error-container'
message_container_sel: '.message-container'
problem_button_sel: '.problem-button'
problem_list_sel: '.problem-list'
progress_bar_sel: '.progress-bar'
constructor: (element) -> constructor: (element) ->
@peer_grading_container = $('.peer-grading') @el = element
@peer_grading_container = @$(@peer_grading_sel)
@use_single_location = @peer_grading_container.data('use-single-location') @use_single_location = @peer_grading_container.data('use-single-location')
@peer_grading_outer_container = $('.peer-grading-container') @peer_grading_outer_container = @$(@peer_grading_container_sel)
@ajax_url = @peer_grading_container.data('ajax-url') @ajax_url = @peer_grading_container.data('ajax-url')
if @use_single_location.toLowerCase() == "true" if @use_single_location.toLowerCase() == "true"
...@@ -14,23 +24,27 @@ class @PeerGrading ...@@ -14,23 +24,27 @@ class @PeerGrading
@activate_problem() @activate_problem()
else else
#Otherwise, activate the panel view. #Otherwise, activate the panel view.
@error_container = $('.error-container') @error_container = @$(@error_container_sel)
@error_container.toggle(not @error_container.is(':empty')) @error_container.toggle(not @error_container.is(':empty'))
@message_container = $('.message-container') @message_container = @$(@message_container_sel)
@message_container.toggle(not @message_container.is(':empty')) @message_container.toggle(not @message_container.is(':empty'))
@problem_button = $('.problem-button') @problem_button = @$(@problem_button_sel)
@problem_button.click @show_results @problem_button.click @show_results
@problem_list = $('.problem-list') @problem_list = @$(@problem_list_sel)
@construct_progress_bar() @construct_progress_bar()
# locally scoped jquery.
$: (selector) ->
$(selector, @el)
construct_progress_bar: () => construct_progress_bar: () =>
problems = @problem_list.find('tr').next() problems = @problem_list.find('tr').next()
problems.each( (index, element) => problems.each( (index, element) =>
problem = $(element) problem = $(element)
progress_bar = problem.find('.progress-bar') progress_bar = problem.find(@progress_bar_sel)
bar_value = parseInt(problem.data('graded')) bar_value = parseInt(problem.data('graded'))
bar_max = parseInt(problem.data('required')) + bar_value bar_max = parseInt(problem.data('required')) + bar_value
progress_bar.progressbar({value: bar_value, max: bar_max}) progress_bar.progressbar({value: bar_value, max: bar_max})
...@@ -43,10 +57,10 @@ class @PeerGrading ...@@ -43,10 +57,10 @@ class @PeerGrading
if response.success if response.success
@peer_grading_outer_container.after(response.html).remove() @peer_grading_outer_container.after(response.html).remove()
backend = new PeerGradingProblemBackend(@ajax_url, false) backend = new PeerGradingProblemBackend(@ajax_url, false)
new PeerGradingProblem(backend) new PeerGradingProblem(backend, @el)
else else
@gentle_alert response.error @gentle_alert response.error
activate_problem: () => activate_problem: () =>
backend = new PeerGradingProblemBackend(@ajax_url, false) backend = new PeerGradingProblemBackend(@ajax_url, false)
new PeerGradingProblem(backend) new PeerGradingProblem(backend, @el)
\ No newline at end of file \ No newline at end of file
...@@ -158,11 +158,47 @@ class @PeerGradingProblemBackend ...@@ -158,11 +158,47 @@ class @PeerGradingProblemBackend
return response return response
class @PeerGradingProblem class @PeerGradingProblem
constructor: (backend) ->
@prompt_wrapper = $('.prompt-wrapper') prompt_wrapper_sel: '.prompt-wrapper'
peer_grading_container_sel: '.peer-grading-container'
submission_container_sel: '.submission-container'
prompt_container_sel: '.prompt-container'
rubric_container_sel: '.rubric-container'
flag_student_container_sel: '.flag-student-container'
answer_unknown_container_sel: '.answer-unknown-container'
calibration_panel_sel: '.calibration-panel'
grading_panel_sel: '.grading-panel'
content_panel_sel: '.content-panel'
grading_message_sel: '.grading-message'
question_header_sel: '.question-header'
flag_submission_confirmation_sel: '.flag-submission-confirmation'
flag_submission_confirmation_button_sel: '.flag-submission-confirmation-button'
flag_submission_removal_button_sel: '.flag-submission-removal-button'
grading_wrapper_sel: '.grading-wrapper'
calibration_feedback_sel: '.calibration-feedback'
interstitial_page_sel: '.interstitial-page'
calibration_interstitial_page_sel: '.calibration-interstitial-page'
error_container_sel: '.error-container'
feedback_area_sel: '.feedback-area'
score_selection_container_sel: '.score-selection-container'
rubric_selection_container_sel: '.rubric-selection-container'
submit_button_sel: '.submit-button'
action_button_sel: '.action-button'
calibration_feedback_button_sel: '.calibration-feedback-button'
interstitial_page_button_sel: '.interstitial-page-button'
calibration_interstitial_page_button_sel: '.calibration-interstitial-page-button'
flag_checkbox_sel: '.flag-checkbox'
answer_unknown_checkbox_sel: '.answer-unknown-checkbox'
calibration_text_sel: '.calibration-text'
grading_text_sel: '.grading-text'
calibration_feedback_wrapper_sel: '.calibration-feedback-wrapper'
constructor: (backend, el) ->
@el = el
@prompt_wrapper = $(@prompt_wrapper_sel)
@backend = backend @backend = backend
@is_ctrl = false @is_ctrl = false
@el = $('.peer-grading-container') @el = $(@peer_grading_container_sel)
# get the location of the problem # get the location of the problem
@location = $('.peer-grading').data('location') @location = $('.peer-grading').data('location')
...@@ -172,51 +208,51 @@ class @PeerGradingProblem ...@@ -172,51 +208,51 @@ class @PeerGradingProblem
return return
# get the other elements we want to fill in # get the other elements we want to fill in
@submission_container = $('.submission-container') @submission_container = @$(@submission_container_sel)
@prompt_container = $('.prompt-container') @prompt_container = @$(@prompt_container_sel)
@rubric_container = $('.rubric-container') @rubric_container = @$(@rubric_container_sel)
@flag_student_container = $('.flag-student-container') @flag_student_container = @$(@flag_student_container_sel)
@answer_unknown_container = $('.answer-unknown-container') @answer_unknown_container = @$(@answer_unknown_container_sel)
@calibration_panel = $('.calibration-panel') @calibration_panel = @$(@calibration_panel_sel)
@grading_panel = $('.grading-panel') @grading_panel = @$(@grading_panel_sel)
@content_panel = $('.content-panel') @content_panel = @$(@content_panel_sel)
@grading_message = $('.grading-message') @grading_message = @$(@grading_message_sel)
@grading_message.hide() @grading_message.hide()
@question_header = $('.question-header') @question_header = @$(@question_header_sel)
@question_header.click @collapse_question @question_header.click @collapse_question
@flag_submission_confirmation = $('.flag-submission-confirmation') @flag_submission_confirmation = @$(@flag_submission_confirmation_sel)
@flag_submission_confirmation_button = $('.flag-submission-confirmation-button') @flag_submission_confirmation_button = @$(@flag_submission_confirmation_button_sel)
@flag_submission_removal_button = $('.flag-submission-removal-button') @flag_submission_removal_button = @$(@flag_submission_removal_button_sel)
@flag_submission_confirmation_button.click @close_dialog_box @flag_submission_confirmation_button.click @close_dialog_box
@flag_submission_removal_button.click @remove_flag @flag_submission_removal_button.click @remove_flag
@grading_wrapper =$('.grading-wrapper') @grading_wrapper = @$(@grading_wrapper_sel)
@calibration_feedback_panel = $('.calibration-feedback') @calibration_feedback_panel = @$(@calibration_feedback_sel)
@interstitial_page = $('.interstitial-page') @interstitial_page = @$(@interstitial_page_sel)
@interstitial_page.hide() @interstitial_page.hide()
@calibration_interstitial_page = $('.calibration-interstitial-page') @calibration_interstitial_page = @$(@calibration_interstitial_page_sel)
@calibration_interstitial_page.hide() @calibration_interstitial_page.hide()
@error_container = $('.error-container') @error_container = @$(@error_container_sel)
@submission_key_input = $("input[name='submission-key']") @submission_key_input = $("input[name='submission-key']")
@essay_id_input = $("input[name='essay-id']") @essay_id_input = @$("input[name='essay-id']")
@feedback_area = $('.feedback-area') @feedback_area = @$(@feedback_area_sel)
@score_selection_container = $('.score-selection-container') @score_selection_container = @$(@score_selection_container_sel)
@rubric_selection_container = $('.rubric-selection-container') @rubric_selection_container = @$(@rubric_selection_container_sel)
@grade = null @grade = null
@calibration = null @calibration = null
@submit_button = $('.submit-button') @submit_button = @$(@submit_button_sel)
@action_button = $('.action-button') @action_button = @$(@action_button_sel)
@calibration_feedback_button = $('.calibration-feedback-button') @calibration_feedback_button = @$(@calibration_feedback_button_sel)
@interstitial_page_button = $('.interstitial-page-button') @interstitial_page_button = @$(@interstitial_page_button_sel)
@calibration_interstitial_page_button = $('.calibration-interstitial-page-button') @calibration_interstitial_page_button = @$(@calibration_interstitial_page_button_sel)
@flag_student_checkbox = $('.flag-checkbox') @flag_student_checkbox = @$(@flag_checkbox_sel)
@answer_unknown_checkbox = $('.answer-unknown-checkbox') @answer_unknown_checkbox = @$(@answer_unknown_checkbox_sel)
$(window).keydown @keydown_handler $(window).keydown @keydown_handler
$(window).keyup @keyup_handler $(window).keyup @keyup_handler
...@@ -251,6 +287,10 @@ class @PeerGradingProblem ...@@ -251,6 +287,10 @@ class @PeerGradingProblem
@is_calibrated_check() @is_calibrated_check()
# locally scoped jquery.
$: (selector) ->
$(selector, @el)
########## ##########
# #
...@@ -300,11 +340,11 @@ class @PeerGradingProblem ...@@ -300,11 +340,11 @@ class @PeerGradingProblem
@close_dialog_box() @close_dialog_box()
close_dialog_box: () => close_dialog_box: () =>
$( ".flag-submission-confirmation" ).dialog('close') @$(@flag_submission_confirmation_sel).dialog('close')
flag_box_checked: () => flag_box_checked: () =>
if @flag_student_checkbox.is(':checked') if @flag_student_checkbox.is(':checked')
$( ".flag-submission-confirmation" ).dialog({ height: 400, width: 400 }) @$(@flag_submission_confirmation_sel).dialog({ height: 400, width: 400 })
# called after we perform an is_student_calibrated check # called after we perform an is_student_calibrated check
calibration_check_callback: (response) => calibration_check_callback: (response) =>
...@@ -399,10 +439,10 @@ class @PeerGradingProblem ...@@ -399,10 +439,10 @@ class @PeerGradingProblem
# Display the right text # Display the right text
# both versions of the text are written into the template itself # both versions of the text are written into the template itself
# we only need to show/hide the correct ones at the correct time # we only need to show/hide the correct ones at the correct time
@calibration_panel.find('.calibration-text').show() @calibration_panel.find(@calibration_text_sel).show()
@grading_panel.find('.calibration-text').show() @grading_panel.find(@calibration_text_sel).show()
@calibration_panel.find('.grading-text').hide() @calibration_panel.find(@grading_text_sel).hide()
@grading_panel.find('.grading-text').hide() @grading_panel.find(@grading_text_sel).hide()
@flag_student_container.hide() @flag_student_container.hide()
@answer_unknown_container.hide() @answer_unknown_container.hide()
...@@ -429,10 +469,10 @@ class @PeerGradingProblem ...@@ -429,10 +469,10 @@ class @PeerGradingProblem
# Display the correct text # Display the correct text
# both versions of the text are written into the template itself # both versions of the text are written into the template itself
# we only need to show/hide the correct ones at the correct time # we only need to show/hide the correct ones at the correct time
@calibration_panel.find('.calibration-text').hide() @calibration_panel.find(@calibration_text_sel).hide()
@grading_panel.find('.calibration-text').hide() @grading_panel.find(@calibration_text_sel).hide()
@calibration_panel.find('.grading-text').show() @calibration_panel.find(@grading_text_sel).show()
@grading_panel.find('.grading-text').show() @grading_panel.find(@grading_text_sel).show()
@flag_student_container.show() @flag_student_container.show()
@answer_unknown_container.show() @answer_unknown_container.show()
@feedback_area.val("") @feedback_area.val("")
...@@ -473,7 +513,7 @@ class @PeerGradingProblem ...@@ -473,7 +513,7 @@ class @PeerGradingProblem
render_calibration_feedback: (response) => render_calibration_feedback: (response) =>
# display correct grade # display correct grade
@calibration_feedback_panel.slideDown() @calibration_feedback_panel.slideDown()
calibration_wrapper = $('.calibration-feedback-wrapper') calibration_wrapper = @$(@calibration_feedback_wrapper_sel)
calibration_wrapper.html("<p>The score you gave was: #{@grade}. The actual score is: #{response.actual_score}</p>") calibration_wrapper.html("<p>The score you gave was: #{@grade}. The actual score is: #{response.actual_score}</p>")
score = parseInt(@grade) score = parseInt(@grade)
...@@ -490,7 +530,7 @@ class @PeerGradingProblem ...@@ -490,7 +530,7 @@ class @PeerGradingProblem
calibration_wrapper.append("<div>Instructor Feedback: #{response.actual_feedback}</div>") calibration_wrapper.append("<div>Instructor Feedback: #{response.actual_feedback}</div>")
# disable score selection and submission from the grading interface # disable score selection and submission from the grading interface
$("input[name='score-selection']").attr('disabled', true) @$("input[name='score-selection']").attr('disabled', true)
@submit_button.hide() @submit_button.hide()
@calibration_feedback_button.show() @calibration_feedback_button.show()
...@@ -516,7 +556,7 @@ class @PeerGradingProblem ...@@ -516,7 +556,7 @@ class @PeerGradingProblem
setup_score_selection: (max_score) => setup_score_selection: (max_score) =>
# And now hook up an event handler again # And now hook up an event handler again
$("input[class='score-selection']").change @graded_callback @$("input[class='score-selection']").change @graded_callback
gentle_alert: (msg) => gentle_alert: (msg) =>
@grading_message.fadeIn() @grading_message.fadeIn()
......
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