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
803b7eb2
Commit
803b7eb2
authored
Aug 08, 2013
by
Vik Paruchuri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix peer grading rubric issue. Redo peer grading JS to scope locally
parent
15b0e120
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
126 additions
and
57 deletions
+126
-57
common/lib/xmodule/xmodule/css/combinedopenended/display.scss
+17
-2
common/lib/xmodule/xmodule/js/src/peergrading/peer_grading.coffee
+24
-10
common/lib/xmodule/xmodule/js/src/peergrading/peer_grading_problem.coffee
+85
-45
No files found.
common/lib/xmodule/xmodule/css/combinedopenended/display.scss
View file @
803b7eb2
...
...
@@ -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
{
@media
print
{
...
...
@@ -659,14 +675,13 @@ section.open-ended-child {
margin-bottom
:
lh
();
margin-left
:
.75em
;
margin-left
:
.75rem
;
list-style
:
disc
outside
none
;
}
ul
.rubric-list
{
margin
:
0
;
padding
:
0
;
list-style-type
:
none
;
list-style
:
none
;
li
{
&
.rubric-list-item
{
margin-bottom
:
0
;
...
...
common/lib/xmodule/xmodule/js/src/peergrading/peer_grading.coffee
View file @
803b7eb2
...
...
@@ -3,10 +3,20 @@
# Can (and should be) expanded upon when our problem list
# becomes more sophisticated
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
)
->
@
peer_grading_container
=
$
(
'.peer-grading'
)
@
el
=
element
@
peer_grading_container
=
@
$
(
@
peer_grading_sel
)
@
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'
)
if
@
use_single_location
.
toLowerCase
()
==
"true"
...
...
@@ -14,23 +24,27 @@ class @PeerGrading
@
activate_problem
()
else
#Otherwise, activate the panel view.
@
error_container
=
$
(
'.error-container'
)
@
error_container
=
@
$
(
@
error_container_sel
)
@
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'
))
@
problem_button
=
$
(
'.problem-button'
)
@
problem_button
=
@
$
(
@
problem_button_sel
)
@
problem_button
.
click
@
show_results
@
problem_list
=
$
(
'.problem-list'
)
@
problem_list
=
@
$
(
@
problem_list_sel
)
@
construct_progress_bar
()
# locally scoped jquery.
$
:
(
selector
)
->
$
(
selector
,
@
el
)
construct_progress_bar
:
()
=>
problems
=
@
problem_list
.
find
(
'tr'
).
next
()
problems
.
each
(
(
index
,
element
)
=>
problem
=
$
(
element
)
progress_bar
=
problem
.
find
(
'.progress-bar'
)
progress_bar
=
problem
.
find
(
@
progress_bar_sel
)
bar_value
=
parseInt
(
problem
.
data
(
'graded'
))
bar_max
=
parseInt
(
problem
.
data
(
'required'
))
+
bar_value
progress_bar
.
progressbar
({
value
:
bar_value
,
max
:
bar_max
})
...
...
@@ -43,10 +57,10 @@ class @PeerGrading
if
response
.
success
@
peer_grading_outer_container
.
after
(
response
.
html
).
remove
()
backend
=
new
PeerGradingProblemBackend
(
@
ajax_url
,
false
)
new
PeerGradingProblem
(
backend
)
new
PeerGradingProblem
(
backend
,
@
el
)
else
@
gentle_alert
response
.
error
activate_problem
:
()
=>
backend
=
new
PeerGradingProblemBackend
(
@
ajax_url
,
false
)
new
PeerGradingProblem
(
backend
)
\ No newline at end of file
new
PeerGradingProblem
(
backend
,
@
el
)
\ No newline at end of file
common/lib/xmodule/xmodule/js/src/peergrading/peer_grading_problem.coffee
View file @
803b7eb2
...
...
@@ -158,11 +158,47 @@ class @PeerGradingProblemBackend
return
response
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
@
is_ctrl
=
false
@
el
=
$
(
'.peer-grading-container'
)
@
el
=
$
(
@
peer_grading_container_sel
)
# get the location of the problem
@
location
=
$
(
'.peer-grading'
).
data
(
'location'
)
...
...
@@ -172,51 +208,51 @@ class @PeerGradingProblem
return
# get the other elements we want to fill in
@
submission_container
=
$
(
'.submission-container'
)
@
prompt_container
=
$
(
'.prompt-container'
)
@
rubric_container
=
$
(
'.rubric-container'
)
@
flag_student_container
=
$
(
'.flag-student-container'
)
@
answer_unknown_container
=
$
(
'.answer-unknown-container'
)
@
calibration_panel
=
$
(
'.calibration-panel'
)
@
grading_panel
=
$
(
'.grading-panel'
)
@
content_panel
=
$
(
'.content-panel'
)
@
grading_message
=
$
(
'.grading-message'
)
@
submission_container
=
@
$
(
@
submission_container_sel
)
@
prompt_container
=
@
$
(
@
prompt_container_sel
)
@
rubric_container
=
@
$
(
@
rubric_container_sel
)
@
flag_student_container
=
@
$
(
@
flag_student_container_sel
)
@
answer_unknown_container
=
@
$
(
@
answer_unknown_container_sel
)
@
calibration_panel
=
@
$
(
@
calibration_panel_sel
)
@
grading_panel
=
@
$
(
@
grading_panel_sel
)
@
content_panel
=
@
$
(
@
content_panel_sel
)
@
grading_message
=
@
$
(
@
grading_message_sel
)
@
grading_message
.
hide
()
@
question_header
=
$
(
'.question-header'
)
@
question_header
=
@
$
(
@
question_header_sel
)
@
question_header
.
click
@
collapse_question
@
flag_submission_confirmation
=
$
(
'.flag-submission-confirmation'
)
@
flag_submission_confirmation_button
=
$
(
'.flag-submission-confirmation-button'
)
@
flag_submission_removal_button
=
$
(
'.flag-submission-removal-button'
)
@
flag_submission_confirmation
=
@
$
(
@
flag_submission_confirmation_sel
)
@
flag_submission_confirmation_button
=
@
$
(
@
flag_submission_confirmation_button_sel
)
@
flag_submission_removal_button
=
@
$
(
@
flag_submission_removal_button_sel
)
@
flag_submission_confirmation_button
.
click
@
close_dialog_box
@
flag_submission_removal_button
.
click
@
remove_flag
@
grading_wrapper
=
$
(
'.grading-wrapper'
)
@
calibration_feedback_panel
=
$
(
'.calibration-feedback'
)
@
interstitial_page
=
$
(
'.interstitial-page'
)
@
grading_wrapper
=
@
$
(
@
grading_wrapper_sel
)
@
calibration_feedback_panel
=
@
$
(
@
calibration_feedback_sel
)
@
interstitial_page
=
@
$
(
@
interstitial_page_sel
)
@
interstitial_page
.
hide
()
@
calibration_interstitial_page
=
$
(
'.calibration-interstitial-page'
)
@
calibration_interstitial_page
=
@
$
(
@
calibration_interstitial_page_sel
)
@
calibration_interstitial_page
.
hide
()
@
error_container
=
$
(
'.error-container'
)
@
error_container
=
@
$
(
@
error_container_sel
)
@
submission_key_input
=
$
(
"input[name='submission-key']"
)
@
essay_id_input
=
$
(
"input[name='essay-id']"
)
@
feedback_area
=
$
(
'.feedback-area'
)
@
essay_id_input
=
@
$
(
"input[name='essay-id']"
)
@
feedback_area
=
@
$
(
@
feedback_area_sel
)
@
score_selection_container
=
$
(
'.score-selection-container'
)
@
rubric_selection_container
=
$
(
'.rubric-selection-container'
)
@
score_selection_container
=
@
$
(
@
score_selection_container_sel
)
@
rubric_selection_container
=
@
$
(
@
rubric_selection_container_sel
)
@
grade
=
null
@
calibration
=
null
@
submit_button
=
$
(
'.submit-button'
)
@
action_button
=
$
(
'.action-button'
)
@
calibration_feedback_button
=
$
(
'.calibration-feedback-button'
)
@
interstitial_page_button
=
$
(
'.interstitial-page-button'
)
@
calibration_interstitial_page_button
=
$
(
'.calibration-interstitial-page-button'
)
@
flag_student_checkbox
=
$
(
'.flag-checkbox'
)
@
answer_unknown_checkbox
=
$
(
'.answer-unknown-checkbox'
)
@
submit_button
=
@
$
(
@
submit_button_sel
)
@
action_button
=
@
$
(
@
action_button_sel
)
@
calibration_feedback_button
=
@
$
(
@
calibration_feedback_button_sel
)
@
interstitial_page_button
=
@
$
(
@
interstitial_page_button_sel
)
@
calibration_interstitial_page_button
=
@
$
(
@
calibration_interstitial_page_button_sel
)
@
flag_student_checkbox
=
@
$
(
@
flag_checkbox_sel
)
@
answer_unknown_checkbox
=
@
$
(
@
answer_unknown_checkbox_sel
)
$
(
window
).
keydown
@
keydown_handler
$
(
window
).
keyup
@
keyup_handler
...
...
@@ -251,6 +287,10 @@ class @PeerGradingProblem
@
is_calibrated_check
()
# locally scoped jquery.
$
:
(
selector
)
->
$
(
selector
,
@
el
)
##########
#
...
...
@@ -300,11 +340,11 @@ class @PeerGradingProblem
@
close_dialog_box
()
close_dialog_box
:
()
=>
$
(
".flag-submission-confirmation"
).
dialog
(
'close'
)
@
$
(
@
flag_submission_confirmation_sel
).
dialog
(
'close'
)
flag_box_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
calibration_check_callback
:
(
response
)
=>
...
...
@@ -399,10 +439,10 @@ class @PeerGradingProblem
# Display the right text
# both versions of the text are written into the template itself
# we only need to show/hide the correct ones at the correct time
@
calibration_panel
.
find
(
'.calibration-text'
).
show
()
@
grading_panel
.
find
(
'.calibration-text'
).
show
()
@
calibration_panel
.
find
(
'.grading-text'
).
hide
()
@
grading_panel
.
find
(
'.grading-text'
).
hide
()
@
calibration_panel
.
find
(
@
calibration_text_sel
).
show
()
@
grading_panel
.
find
(
@
calibration_text_sel
).
show
()
@
calibration_panel
.
find
(
@
grading_text_sel
).
hide
()
@
grading_panel
.
find
(
@
grading_text_sel
).
hide
()
@
flag_student_container
.
hide
()
@
answer_unknown_container
.
hide
()
...
...
@@ -429,10 +469,10 @@ class @PeerGradingProblem
# Display the correct text
# both versions of the text are written into the template itself
# we only need to show/hide the correct ones at the correct time
@
calibration_panel
.
find
(
'.calibration-text'
).
hide
()
@
grading_panel
.
find
(
'.calibration-text'
).
hide
()
@
calibration_panel
.
find
(
'.grading-text'
).
show
()
@
grading_panel
.
find
(
'.grading-text'
).
show
()
@
calibration_panel
.
find
(
@
calibration_text_sel
).
hide
()
@
grading_panel
.
find
(
@
calibration_text_sel
).
hide
()
@
calibration_panel
.
find
(
@
grading_text_sel
).
show
()
@
grading_panel
.
find
(
@
grading_text_sel
).
show
()
@
flag_student_container
.
show
()
@
answer_unknown_container
.
show
()
@
feedback_area
.
val
(
""
)
...
...
@@ -473,7 +513,7 @@ class @PeerGradingProblem
render_calibration_feedback
:
(
response
)
=>
# display correct grade
@
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>"
)
score
=
parseInt
(
@
grade
)
...
...
@@ -490,7 +530,7 @@ class @PeerGradingProblem
calibration_wrapper
.
append
(
"<div>Instructor Feedback:
#{
response
.
actual_feedback
}
</div>"
)
# 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
()
@
calibration_feedback_button
.
show
()
...
...
@@ -516,7 +556,7 @@ class @PeerGradingProblem
setup_score_selection
:
(
max_score
)
=>
# 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
)
=>
@
grading_message
.
fadeIn
()
...
...
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