diff --git a/common/lib/xmodule/xmodule/combined_open_ended_module.py b/common/lib/xmodule/xmodule/combined_open_ended_module.py index 7cbb3b2b67..f7960b13b1 100644 --- a/common/lib/xmodule/xmodule/combined_open_ended_module.py +++ b/common/lib/xmodule/xmodule/combined_open_ended_module.py @@ -213,7 +213,7 @@ class CombinedOpenEndedFields(object): help="The number of times the student can try to answer this problem.", default=1, scope=Scope.settings, - values={"min" : 1 } + values={"min": 1 } ) accept_file_upload = Boolean( display_name="Allow File Uploads", @@ -229,12 +229,10 @@ class CombinedOpenEndedFields(object): ) due = Date( help="Date that this problem is due by", - default=None, scope=Scope.settings ) graceperiod = Timedelta( help="Amount of time after the due date that submissions will be accepted", - default=None, scope=Scope.settings ) version = VersionInteger(help="Current version number", default=DEFAULT_VERSION, scope=Scope.settings) @@ -244,7 +242,7 @@ class CombinedOpenEndedFields(object): display_name="Problem Weight", help="Defines the number of points each problem is worth. If the value is not set, each problem is worth one point.", scope=Scope.settings, - values={"min" : 0 , "step": ".1"}, + values={"min": 0, "step": ".1"}, default=1 ) min_to_calibrate = Integer( @@ -252,28 +250,28 @@ class CombinedOpenEndedFields(object): help="The minimum number of calibration essays each student will need to complete for peer grading.", default=3, scope=Scope.settings, - values={"min" : 1, "max" : 20, "step" : "1"} + values={"min": 1, "max": 20, "step": "1"} ) max_to_calibrate = Integer( display_name="Maximum Peer Grading Calibrations", help="The maximum number of calibration essays each student will need to complete for peer grading.", default=6, scope=Scope.settings, - values={"min" : 1, "max" : 20, "step" : "1"} + values={"min": 1, "max": 20, "step": "1"} ) peer_grader_count = Integer( display_name="Peer Graders per Response", help="The number of peers who will grade each submission.", default=3, scope=Scope.settings, - values={"min" : 1, "step" : "1", "max" : 5} + values={"min": 1, "step": "1", "max": 5} ) required_peer_grading = Integer( display_name="Required Peer Grading", help="The number of other students each student making a submission will have to grade.", default=3, scope=Scope.settings, - values={"min" : 1, "step" : "1", "max" : 5} + values={"min": 1, "step": "1", "max": 5} ) markdown = String( help="Markdown source of this module", diff --git a/common/lib/xmodule/xmodule/css/capa/display.scss b/common/lib/xmodule/xmodule/css/capa/display.scss index 2d8fb765d9..13bdc52538 100644 --- a/common/lib/xmodule/xmodule/css/capa/display.scss +++ b/common/lib/xmodule/xmodule/css/capa/display.scss @@ -19,10 +19,10 @@ h2 { iframe[seamless]{ - background-color: transparent; - border: 0px none transparent; - padding: 0px; - overflow: hidden; + overflow: hidden; + padding: 0px; + border: 0px none transparent; + background-color: transparent; } .inline-error { @@ -31,17 +31,17 @@ iframe[seamless]{ section.problem-progress { display: inline-block; - color: #999; - font-size: em(16); - font-weight: 100; padding-left: 5px; + color: #999; + font-weight: 100; + font-size: em(16); } section.problem { @media print { display: block; - width: auto; padding: 0; + width: auto; canvas, img { page-break-inside: avoid; @@ -49,30 +49,29 @@ section.problem { } .inline { - display: inline; + display: inline; } .choicegroup { @include clearfix; - - label.choicegroup_correct{ - &:after{ - content: url('../images/correct-icon.png'); - margin-left:15px - } - } - - label.choicegroup_incorrect{ - &:after{ - content: url('../images/incorrect-icon.png'); - margin-left:15px; - } - } - - min-width:100px; + min-width: 100px; width: auto !important; width: 100px; + label.choicegroup_correct { + &:after { + margin-left: 15px; + content: url('../images/correct-icon.png'); + } + } + + label.choicegroup_incorrect { + &:after { + margin-left: 15px; + content: url('../images/incorrect-icon.png'); + } + } + .indicator_container { float: left; width: 25px; @@ -82,9 +81,9 @@ section.problem { fieldset { @include box-sizing(border-box); + margin: 0px 0px $baseline; + padding-left: $baseline; border-left: 1px solid #ddd; - padding-left: 20px; - margin: 0px 0px 20px; } input[type="radio"], @@ -102,21 +101,21 @@ section.problem { ol.enumerate { li { &:before { - content: " "; display: block; - height: 0; visibility: hidden; + height: 0; + content: " "; } } } .solution-span { > span { - margin: 20px 0; + margin: $baseline 0; display: block; border: 1px solid #ddd; - padding: 9px 15px 20px; - background: #FFF; + padding: 9px 15px $baseline; + background: #fff; position: relative; box-shadow: inset 0 0 0 1px #eee; border-radius: 3px; @@ -133,26 +132,26 @@ section.problem { margin-top: -2px; } &.status { + margin: 8px 0 0 $baseline/2; text-indent: -9999px; - margin: 8px 0 0 10px; } } &.unanswered { p.status { @include inline-block(); - background: url('../images/unanswered-icon.png') center center no-repeat; - height: 14px; width: 14px; + height: 14px; + background: url('../images/unanswered-icon.png') center center no-repeat; } } &.correct, &.ui-icon-check { p.status { @include inline-block(); - background: url('../images/correct-icon.png') center center no-repeat; - height: 20px; width: 25px; + height: 20px; + background: url('../images/correct-icon.png') center center no-repeat; } input { @@ -163,9 +162,9 @@ section.problem { &.processing { p.status { @include inline-block(); - background: url('../images/spinner.gif') center center no-repeat; - height: 20px; width: 20px; + height: 20px; + background: url('../images/spinner.gif') center center no-repeat; } input { @@ -176,9 +175,9 @@ section.problem { &.incorrect, &.incomplete, &.ui-icon-close { p.status { @include inline-block(); - background: url('../images/incorrect-icon.png') center center no-repeat; - height: 20px; width: 20px; + height: 20px; + background: url('../images/incorrect-icon.png') center center no-repeat; text-indent: -9999px; } @@ -195,12 +194,12 @@ section.problem { p.answer { @include inline-block(); margin-bottom: 0; - margin-left: 10px; + margin-left: $baseline/2; &:before { + display: inline; content: "Answer: "; font-weight: bold; - display: inline; } &:empty { @@ -228,12 +227,12 @@ section.problem { margin-bottom: 0; &.math { - padding: 6px; - background: #f1f1f1; - border: 1px solid #e3e3e3; @include inline-block; - border-radius: 4px; + padding: 6px; min-width: 30px; + border: 1px solid #e3e3e3; + border-radius: 4px; + background: #f1f1f1; } } } @@ -241,98 +240,91 @@ section.problem { span { &.unanswered, &.ui-icon-bullet { @include inline-block(); - background: url('../images/unanswered-icon.png') center center no-repeat; - height: 14px; position: relative; top: 4px; width: 14px; + height: 14px; + background: url('../images/unanswered-icon.png') center center no-repeat; } &.processing, &.ui-icon-processing { @include inline-block(); - background: url('../images/spinner.gif') center center no-repeat; - height: 20px; position: relative; top: 6px; width: 25px; + height: 20px; + background: url('../images/spinner.gif') center center no-repeat; } &.correct, &.ui-icon-check { @include inline-block(); - background: url('../images/correct-icon.png') center center no-repeat; - height: 20px; position: relative; top: 3px; width: 25px; + height: 20px; + background: url('../images/correct-icon.png') center center no-repeat; } &.partially-correct { @include inline-block(); - background: url('../images/partially-correct-icon.png') center center no-repeat; - height: 20px; position: relative; top: 6px; width: 25px; + height: 20px; + background: url('../images/partially-correct-icon.png') center center no-repeat; } &.incorrect, &.incomplete, &.ui-icon-close { @include inline-block(); - background: url('../images/incorrect-icon.png') center center no-repeat; - height: 20px; - width: 20px; position: relative; top: 3px; + width: 20px; + height: 20px; + background: url('../images/incorrect-icon.png') center center no-repeat; } } - .reload - { + .reload { float:right; - margin: 10px; + margin: $baseline/2; } .grader-status { - padding: 9px; - background: #F6F6F6; - border: 1px solid #ddd; - border-top: 0; - margin-bottom: 20px; @include clearfix; + margin: $baseline/2 0; + padding: $baseline/2; + border-radius: 5px; + background: #F6F6F6; span { - text-indent: -9999px; - overflow: hidden; display: block; float: left; + overflow: hidden; margin: -7px 7px 0 0; + text-indent: -9999px; } .grading { - background: url('../images/info-icon.png') left center no-repeat; - padding-left: 25px; - text-indent: 0px; margin: 0px 7px 0 0; + padding-left: 25px; + background: url('../images/info-icon.png') left center no-repeat; + text-indent: 0px; } p { - line-height: 20px; - text-transform: capitalize; - margin-bottom: 0; float: left; + margin-bottom: 0; + text-transform: capitalize; + line-height: 20px; } &.file { - background: #FFF; - margin-top: 20px; - padding: 20px 0 0 0; - - border: { - top: 1px solid #eee; - right: 0; - bottom: 0; - left: 0; - } + margin-top: $baseline; + padding: $baseline 0 0 0; + border: 0; + border-top: 1px solid #eee; + background: #fff; p.debug { display: none; @@ -345,54 +337,54 @@ section.problem { } .evaluation { - p { - margin-bottom: 4px; - } + p { + margin-bottom: 4px; + } } .feedback-on-feedback { - height: 100px; - margin-right: 20px; + margin-right: $baseline; + height: 100px; } .evaluation-response { - header { - text-align: right; - a { - font-size: .85em; - } + header { + text-align: right; + a { + font-size: .85em; } + } } .evaluation-scoring { - .scoring-list { - list-style-type: none; - margin-left: 3px; + .scoring-list { + margin-left: 3px; + list-style-type: none; - li { - &:first-child { - margin-left: 0px; - } - display:inline; - margin-left: 50px; + li { + display:inline; + margin-left: 50px; + + &:first-child { + margin-left: 0px; + } - label { - font-size: .9em; - } - - } + label { + font-size: .9em; + } } - + } } + .submit-message-container { - margin: 10px 0px ; + margin: $baseline 0px ; } } form.option-input { - margin: -10px 0 20px; - padding-bottom: 20px; + margin: -$baseline/2 0 $baseline; + padding-bottom: $baseline; select { margin-right: flex-gutter(); @@ -400,17 +392,17 @@ section.problem { } ul { - list-style: disc outside none; margin-bottom: lh(); margin-left: .75em; margin-left: .75rem; + list-style: disc outside none; } ol { - list-style: decimal outside none; margin-bottom: lh(); margin-left: .75em; margin-left: .75rem; + list-style: decimal outside none; } dl { @@ -431,8 +423,8 @@ section.problem { } li { - line-height: 1.4em; margin-bottom: lh(.5); + line-height: 1.4em; &:last-child { margin-bottom: 0; @@ -449,8 +441,8 @@ section.problem { table-layout: auto; th { - font-weight: bold; text-align: left; + font-weight: bold; } td { @@ -463,44 +455,43 @@ section.problem { } caption { - background: #f1f1f1; margin-bottom: .75em; margin-bottom: .75rem; padding: .75em 0; padding: .75rem 0; + background: #f1f1f1; } tr, td, th { vertical-align: middle; } - } code { margin: 0 2px; padding: 0px 5px; - white-space: nowrap; - border: 1px solid #EAEAEA; - background-color: #F8F8F8; + border: 1px solid #eaeaea; border-radius: 3px; + background-color: #f8f8f8; + white-space: nowrap; font-size: .9em; } pre { - background-color: #F8F8F8; - border: 1px solid #CCC; + overflow: auto; + padding: 6px $baseline/2; + border: 1px solid #ccc; + border-radius: 3px; + background-color: #f8f8f8; font-size: .9em; line-height: 1.4; - overflow: auto; - padding: 6px 10px; - border-radius: 3px; > code { margin: 0; padding: 0; - white-space: pre; border: none; background: transparent; + white-space: pre; } } @@ -517,26 +508,25 @@ section.problem { } pre { - border-radius: 0; - border-radius: 0; - border-width: 0; + overflow: hidden; margin: 0; padding: 0; + border-width: 0; + border-radius: 0; background: transparent; - font-family: inherit; - font-size: inherit; white-space: pre; word-wrap: normal; - overflow: hidden; + font-size: inherit; + font-family: inherit; resize: none; &.CodeMirror-cursor { - z-index: 10; position: absolute; + z-index: 10; visibility: hidden; - border-left: 1px solid black; - border-right: none; width: 0; + border-right: none; + border-left: 1px solid black; } } } @@ -546,14 +536,14 @@ section.problem { } hr { - background: #ddd; - border: none; - clear: both; - color: #ddd; float: none; - height: 1px; + clear: both; margin: 0 0 .75rem; width: 100%; + height: 1px; + border: none; + background: #ddd; + color: #ddd; } .hidden { @@ -570,17 +560,17 @@ section.problem { center { display: block; margin: lh() 0; - border: 1px solid #ccc; padding: lh(); + border: 1px solid #ccc; } section.action { - margin-top: 20px; + margin-top: $baseline; .save, .check, .show, .reset { height: ($baseline*2); - font-weight: 600; vertical-align: middle; + font-weight: 600; } .save { @@ -590,8 +580,8 @@ section.problem { .show { .show-label { - font-size: 1.0em; font-weight: 600; + font-size: 1.0em; } } @@ -602,20 +592,20 @@ section.problem { // padding: 8px 12px; // margin-top: 10px; @include inline-block; - font-style: italic; - margin: 8px 0 0 10px; + margin: 8px 0 0 $baseline/2; color: #777; + font-style: italic; -webkit-font-smoothing: antialiased; } } .detailed-solution { > p:first-child { - font-size: 0.9em; + color: #aaa; + text-transform: uppercase; font-weight: bold; font-style: normal; - text-transform: uppercase; - color: #AAA; + font-size: 0.9em; } p:last-child { @@ -624,12 +614,12 @@ section.problem { } div.capa_alert { + margin-top: $baseline; padding: 8px 12px; - border: 1px solid #EBE8BF; + border: 1px solid #ebe8bf; border-radius: 3px; - background: #FFFCDD; + background: #fffcdd; font-size: 0.9em; - margin-top: 10px; } div.capa_reset { @@ -638,12 +628,14 @@ section.problem { background-color: lighten($error-red, 25%); border-radius: 3px; font-size: 1em; - margin-top: 10px; - margin-bottom: 10px; + margin-top: $baseline/2; + margin-bottom: $baseline/2; } + .capa_reset>h2 { - color: #AA0000; + color: #aa0000; } + .capa_reset li { font-size: 0.9em; } @@ -652,10 +644,10 @@ section.problem { border: 1px solid #ccc; h3 { - border-bottom: 1px solid #e3e3e3; - text-shadow: 0 1px 0 #fff; padding: 9px; + border-bottom: 1px solid #e3e3e3; background: #eee; + text-shadow: 0 1px 0 #fff; font-weight: bold; font-size: em(16); } @@ -675,7 +667,7 @@ section.problem { a { display: block; padding: 9px; - background: #F6F6F6; + background: #f6f6f6; box-shadow: inset 0 0 0 1px #fff; } } @@ -693,22 +685,22 @@ section.problem { margin-bottom: 12px; h3 { - font-size: 0.9em; + color: #aaa; + text-transform: uppercase; font-weight: bold; font-style: normal; - text-transform: uppercase; - color: #AAA; + font-size: 0.9em; } } > section { - border: 1px solid #ddd; - padding: 9px 9px 20px; - margin-bottom: 10px; - background: #FFF; position: relative; - box-shadow: inset 0 0 0 1px #eee; + margin-bottom: $baseline/2; + padding: 9px 9px $baseline; + border: 1px solid #ddd; border-radius: 3px; + background: #fff; + box-shadow: inset 0 0 0 1px #eee; p:last-of-type { margin-bottom: 0; @@ -719,28 +711,29 @@ section.problem { } a.full { - @include position(absolute, 0 0 1px 0px); - font-size: .8em; - padding: 4px; - text-align: right; - width: 100%; - display: block; - background: #F3F3F3; + @include position(absolute, 0 0 1px 0); @include box-sizing(border-box); + display: block; + padding: 4px; + width: 100%; + background: #f3f3f3; + text-align: right; + font-size: .8em; } } } .external-grader-message { section { - padding-left: 20px; - background-color: #FAFAFA; - color: #2C2C2C; - font-family: monospace; + padding-top: $baseline/2; + padding-left: $baseline; + background-color: #fafafa; + color: #2c2c2c; font-size: 1em; - padding-top: 10px; + font-family: monospace; + header { - font-size: 1.4em; + font-size: 1.4em; } .shortform { @@ -748,35 +741,36 @@ section.problem { } .longform { - padding: 0px; - margin: 0px; + margin: 0; + padding: 0; .result-errors { - margin: 5px; - padding: 10px 10px 10px 40px; + margin: $baseline/4; + padding: $baseline/2 $baseline/2 $baseline/2 $baseline*2; background: url('../images/incorrect-icon.png') center left no-repeat; + li { - color: #B00; - } + color: #b00; + } } .result-output { - margin: 5px; - padding: 20px 0px 15px 50px; - border-top: 1px solid #DDD; - border-left: 20px solid #FAFAFA; + margin: $baseline/4; + padding: $baseline 0 15px 50px; + border-top: 1px solid #ddd; + border-left: $baseline solid #fafafa; h4 { - font-family: monospace; font-size: 1em; + font-family: monospace; } dl { - margin: 0px; + margin: 0; } dt { - margin-top: 20px; + margin-top: $baseline; } dd { @@ -786,6 +780,7 @@ section.problem { .result-correct { background: url('../images/correct-icon.png') left 20px no-repeat; + .result-actual-output { color: #090; } @@ -793,6 +788,7 @@ section.problem { .result-incorrect { background: url('../images/incorrect-icon.png') left 20px no-repeat; + .result-actual-output { color: #B00; } @@ -800,16 +796,16 @@ section.problem { .markup-text{ margin: 5px; - padding: 20px 0px 15px 50px; - border-top: 1px solid #DDD; - border-left: 20px solid #FAFAFA; + padding: $baseline 0 15px 50px; + border-top: 1px solid #ddd; + border-left: 20px solid #fafafa; bs { - color: #BB0000; + color: #bb0000; } bg { - color: #BDA046; + color: #bda046; } } } @@ -817,96 +813,111 @@ section.problem { } .rubric { - tr { - margin:10px 0px; - height: 100%; - } - td { - padding: 20px 0px; - margin: 10px 0px; - height: 100%; - } - th { - padding: 5px; - margin: 5px; - } - label, - .view-only { - margin:3px; - position: relative; - padding: 15px; - width: 150px; - height:100%; - display: inline-block; - min-height: 50px; - min-width: 50px; - background-color: #CCC; - font-size: .9em; - } - .grade { - position: absolute; - bottom:0px; - right:0px; - margin:10px; - } - .selected-grade { - background: #666; - color: white; - } - input[type=radio]:checked + label { - background: #666; - color: white; } - input[class='score-selection'] { - display: none; - } + tr { + margin: $baseline/2 0; + height: 100%; + } + + td { + margin: $baseline/2 0; + padding: $baseline 0; + height: 100%; + } + + th { + margin: $baseline/4; + padding: $baseline/4; + } + + label, + .view-only { + position: relative; + display: inline-block; + margin: 3px; + padding: 15px; + min-width: 50px; + min-height: 50px; + width: 150px; + height: 100%; + background-color: #ccc; + font-size: .9em; + } + + .grade { + position: absolute; + right: 0; + bottom: 0; + margin: $baseline/2; + } + + .selected-grade { + background: #666; + color: white; + } + + input[type=radio]:checked + label { + background: #666; + color: white; + } + + input[class='score-selection'] { + display: none; + } } .annotation-input { $yellow: rgba(255,255,10,0.3); - + margin: 0 0 1em 0; border: 1px solid #ccc; border-radius: 1em; - margin: 0 0 1em 0; .annotation-header { - font-weight: bold; - border-bottom: 1px solid #ccc; padding: .5em 1em; + border-bottom: 1px solid #ccc; + font-weight: bold; } + .annotation-body { padding: .5em 1em; } + a.annotation-return { float: right; font: inherit; font-weight: normal; } + a.annotation-return:after { content: " \2191" } .block, ul.tags { margin: .5em 0; padding: 0; } + .block-highlight { padding: .5em; + border: 1px solid darken($yellow, 10%); + background-color: $yellow; color: #333; font-style: normal; - background-color: $yellow; - border: 1px solid darken($yellow, 10%); } + .block-comment { font-style: italic; } ul.tags { display: block; - list-style-type: none; margin-left: 1em; + list-style-type: none; + li { + position: relative; display: block; margin: 1em 0 0 0; - position: relative; + .tag { display: inline-block; - cursor: pointer; + margin-left: $baseline*2; border: 1px solid rgb(102,102,102); - margin-left: 40px; + cursor: pointer; + &.selected { background-color: $yellow; } @@ -918,42 +929,49 @@ section.problem { .tag-status, .tag { padding: .25em .5em; } } } + textarea.comment { $num-lines-to-show: 5; $line-height: 1.4em; $padding: .2em; - width: 100%; padding: $padding (2 * $padding); - line-height: $line-height; + width: 100%; height: ($num-lines-to-show * $line-height) + (2*$padding) - (($line-height - 1)/2); + line-height: $line-height; } + .answer-annotation { display: block; margin: 0; } /* for debugging the input value field. enable the debug flag on the inputtype */ .debug-value { - color: #fff; - padding: 1em; - margin: 1em 0; - background-color: #999; - border: 1px solid #000; - input[type="text"] { width: 100%; } - pre { background-color: #CCC; color: #000; } - &:before { - display: block; - content: "debug input value"; - text-transform: uppercase; - font-weight: bold; - font-size: 1.5em; - } + margin: 1em 0; + padding: 1em; + border: 1px solid #000; + background-color: #999; + color: #fff; + + input[type="text"] { width: 100%; } + + pre { background-color: #CCC; color: #000; } + + &:before { + display: block; + content: "debug input value"; + text-transform: uppercase; + font-weight: bold; + font-size: 1.5em; + } } } + .choicetextgroup{ + @extend .choicegroup; + input[type="text"]{ margin-bottom: 0.5em; } - @extend .choicegroup; - label.choicetextgroup_correct, section.choicetextgroup_correct{ + label.choicetextgroup_correct, section.choicetextgroup_correct { @extend label.choicegroup_correct; input[type="text"] { @@ -961,17 +979,18 @@ section.problem { } } - label.choicetextgroup_incorrect, section.choicetextgroup_incorrect{ + label.choicetextgroup_incorrect, section.choicetextgroup_incorrect { @extend label.choicegroup_incorrect; } - label.choicetextgroup_show_correct, section.choicetextgroup_show_correct{ - &:after{ - content: url('../images/correct-icon.png'); + label.choicetextgroup_show_correct, section.choicetextgroup_show_correct { + &:after { margin-left:15px; + content: url('../images/correct-icon.png'); } } - span.mock_label{ + + span.mock_label { cursor : default; } } diff --git a/common/lib/xmodule/xmodule/css/combinedopenended/display.scss b/common/lib/xmodule/xmodule/css/combinedopenended/display.scss index 78f0213c8d..7ca99be5c4 100644 --- a/common/lib/xmodule/xmodule/css/combinedopenended/display.scss +++ b/common/lib/xmodule/xmodule/css/combinedopenended/display.scss @@ -1,3 +1,6 @@ +// lms - xmodule - combinedopenended +// ==================== + h2 { margin-top: 0; margin-bottom: 15px; @@ -16,244 +19,470 @@ h2 { } } + // Problem Header +div.name{ + padding-bottom: 15px; + + h2 { + display: inline; + } + + .progress-container { + display: inline; + float: right; + padding-top: 3px; + } +} + .inline-error { color: darken($error-red, 10%); } section.combined-open-ended { @include clearfix; - .status-container - { - padding-bottom: 5px; +} + + +div.problemwrapper { + border: 1px solid lightgray; + border-radius: $baseline/2; + + .status-bar { + background-color: #eee; + border-radius: $baseline/2 $baseline/2 0 0; + border-bottom: 1px solid lightgray; + + .statustable { + width: 100%; + padding: $baseline; + } + + .status-container { + display: table-cell; + text-align: center; + + .status-elements { + border-radius: $baseline/4; + border: 1px solid lightgray; + } + } + + .problemtype-container { + padding: $baseline/2; + width: 60%; + } + + .problemtype{ + padding: $baseline/2; + } + + .assessments-container { + float: right; + padding: $baseline/2 $baseline $baseline/2 $baseline/2; + + .assessment-text { + display: inline-block; + display: table-cell; + padding-right: $baseline/2; + } + } } - .item-container - { - padding-bottom: 10px; + .item-container { + padding-bottom: $baseline/2; + margin: 15px; } - .result-container - { - float:left; - width: 100%; - position:relative; - } - h4 - { - margin-bottom:10px; + .result-container { + float: left; + width: 100%; + position: relative; } } section.legend-container { + margin: 15px; + border-radius: $baseline/4; + .legenditem { - background-color : #d4d4d4; - font-size: .9em; - padding: 2px; display: inline; + padding: $baseline/2; width: 20%; + background-color: #eee; + font-size: .9em; } - margin-bottom: 5px; } section.combined-open-ended-status { + vertical-align: center; - .statusitem { - color: #2C2C2C; - background-color : #d4d4d4; - font-size: .9em; - padding: 2px; - display: inline; - width: 20%; - .show-results { - margin-top: .3em; - text-align:right; - } - .show-results-button { - font: 1em monospace; - } + .statusitem { + display: table-cell; + padding: $baseline/2; + width: 30px; + border-right: 1px solid lightgray; + background-color: #eee; + color: #2c2c2c; + font-size: .9em; + + &:first-child { + border-radius: $baseline/4 0 0 $baseline/4; } - .statusitem-current { - background-color: #B2B2B2; - color: #222; - } - - span { - &.unanswered { - @include inline-block(); - background: url('../images/unanswered-icon.png') center center no-repeat; - height: 14px; - position: relative; - width: 14px; - float: right; - } - - &.correct { - @include inline-block(); - background: url('../images/correct-icon.png') center center no-repeat; - height: 20px; - position: relative; - width: 25px; - float: right; - } - - &.incorrect { - @include inline-block(); - background: url('../images/incorrect-icon.png') center center no-repeat; - height: 20px; - width: 20px; - position: relative; - float: right; - } + &:last-child { + border-right: 0; + border-radius: 0 $baseline/4 $baseline/4 0; } + + &:only-child { + border-radius: $baseline/4; + } + + .show-results { + margin-top: .3em; + text-align:right; + } + + .show-results-button { + font: 1em monospace; + } + } + + .statusitem-current { + background-color: #fff; + color: #222; + } + + span { + &.unanswered { + @include inline-block(); + position: relative; + float: right; + width: 14px; + height: 14px; + background: url('../images/unanswered-icon.png') center center no-repeat; + } + + &.correct { + @include inline-block(); + position: relative; + float: right; + width: 25px; + height: 20px; + background: url('../images/correct-icon.png') center center no-repeat; + } + + &.incorrect { + @include inline-block(); + position: relative; + float: right; + width: 20px; + height: 20px; + background: url('../images/incorrect-icon.png') center center no-repeat; + } + } + + .icon-caret-right { + display: inline-block; + margin-right: ($baseline/4); + vertical-align: baseline; + } +} + +// Problem Section Controls + +.visibility-control, .visibility-control-prompt { + display: block; + width: 100%; + height: 40px; + + .inner { + float: left; + margin-top: $baseline; + width: 85%; + height: 5px; + border-top: 1px dotted #ddd; + } +} + +.section-header { + display: block; + float: right; + padding-top: $baseline/2; + width: 15%; + text-align: center; + font-size: .9em; +} + +// Rubric Styling + +.wrapper-score-selection { + display: table-cell; + padding: 0 $baseline/2; + width: 20px; + vertical-align: middle; +} + +.wrappable { + display: table-cell; + padding: $baseline/4; +} + +.rubric-list-item { + margin-bottom: 2px; + padding: $baseline/2; + + &:hover { + background-color: #eee; + } + .rubric-label-selected{ + border-radius: $baseline/4; + background-color: #eee; + } +} + +span.rubric-category { + display: block; + margin-bottom: $baseline/2; + padding-top: $baseline/2; + width: 100%; + border-bottom: 1px solid lightgray; + font-size: 1.1em; } div.combined-rubric-container { - ul.rubric-list{ + margin: 15px; + padding-top: $baseline/2; + padding-bottom: $baseline/4; + + ul.rubric-list { + margin: 0 $baseline $baseline/2 $baseline; + padding: 0; list-style-type: none; - padding:0; - margin:0; + li { - &.rubric-list-item{ + + &.rubric-list-item { margin-bottom: 2px; - padding: 0px; + padding: $baseline/2; } } } + h4 { + padding-top: $baseline/2; + } + span.rubric-category { - font-size: .9em; + display: block; + width: 100%; + border-bottom: 1px solid lightgray; font-weight: bold; + font-size: .9em; } - padding-bottom: 5px; - padding-top: 10px; + + label.choicegroup_correct { + &:before { + margin-right: 15px; + content: url('../images/correct-icon.png'); + } + } + + label.choicegroup_partialcorrect { + &:before { + margin-right: 15px; + content: url('../images/partially-correct-icon.png'); + } + } + + label.choicegroup_incorrect { + &:before { + margin-right: 15px; + content: url('../images/incorrect-icon.png'); + } + } + + div.written-feedback { + background: #f6f6f6; + padding: 15px; + } } - + div.result-container { - padding-top: 10px; - padding-bottom: 5px; - .evaluation { + padding-top: $baseline/2; + padding-bottom: $baseline/4; - p { - margin-bottom: 1px; + .evaluation { + p { + margin-bottom: 1px; + } + } + + .feedback-on-feedback { + height: 100px; + margin-right: 0; + } + + .evaluation-response { + margin-bottom: 2px; + + header { + a { + font-size: .85em; + } + } + } + + .evaluation-scoring { + .scoring-list { + margin-left: 3px; + list-style-type: none; + + li { + display:inline; + margin-left: 0; + + &:first-child { + margin-left: 0; } - } - .feedback-on-feedback { - height: 100px; - margin-right: 0px; - } - - .evaluation-response { - margin-bottom: 2px; - header { - a { - font-size: .85em; - } + label { + font-size: .9em; } + } } - .evaluation-scoring { - .scoring-list { - list-style-type: none; - margin-left: 3px; + } - li { - &:first-child { - margin-left: 0px; - } - display:inline; - margin-left: 0px; + .submit-message-container { + margin: $baseline/2 0; + } - label { - font-size: .9em; - } - } + .external-grader-message { + margin-bottom: $baseline/4; + + section { + padding-left: $baseline; + background-color: #fafafa; + color: #2c2c2c; + font-family: monospace; + font-size: 1em; + padding-top: $baseline/2; + padding-bottom: 30px; + + header { + font-size: 1.4em; + } + + .shortform { + font-weight: bold; + } + + .longform { + padding: 0; + margin: 0; + + .result-errors { + margin: $baseline/4; + padding: $baseline/2 $baseline/2 $baseline/2 $baseline*2; + background: url('../images/incorrect-icon.png') center left no-repeat; + + li { + color: #B00; + } } - } - .submit-message-container { - margin: 10px 0px ; - } - .external-grader-message { - margin-bottom: 5px; - section { - padding-left: 20px; - background-color: #FAFAFA; - color: #2C2C2C; - font-family: monospace; - font-size: 1em; - padding-top: 10px; - padding-bottom:30px; - header { - font-size: 1.4em; + .result-output { + margin: $baseline/4; + padding: $baseline 0 15px 50px; + border-top: 1px solid #ddd; + border-left: 20px solid #fafafa; + + h4 { + font-size: 1em; + font-family: monospace; } - .shortform { - font-weight: bold; + dl { + margin: 0; } - .longform { - padding: 0px; - margin: 0px; + dt { + margin-top: $baseline; + } - .result-errors { - margin: 5px; - padding: 10px 10px 10px 40px; - background: url('../images/incorrect-icon.png') center left no-repeat; - li { - color: #B00; - } - } + dd { + margin-left: 24pt; + } + } - .result-output { - margin: 5px; - padding: 20px 0px 15px 50px; - border-top: 1px solid #DDD; - border-left: 20px solid #FAFAFA; + .markup-text{ + margin: $baseline/4; + padding: $baseline 0 15px 50px; + border-top: 1px solid #ddd; + border-left: 20px solid #fafafa; - h4 { - font-family: monospace; - font-size: 1em; - } + bs { + color: #bb0000; + } - dl { - margin: 0px; - } - - dt { - margin-top: 20px; - } - - dd { - margin-left: 24pt; - } - } - - .markup-text{ - margin: 5px; - padding: 20px 0px 15px 50px; - border-top: 1px solid #DDD; - border-left: 20px solid #FAFAFA; - - bs { - color: #BB0000; - } - - bg { - color: #BDA046; - } - } + bg { + color: #bda046; } } } + } + } + .rubric-result-container { + padding: 2px; + margin: 0; + display: inline; + .rubric-result { font-size: .9em; padding: 2px; display: inline-table; } - padding: 2px; - margin: 0px; - display : inline; + } +} + +div.rubric { + ul.rubric-list{ + margin: 0 $baseline $baseline/2 $baseline; + padding: 0; + list-style: none; + list-style-type: none; + + li { + &.rubric-list-item { + margin-bottom: 2px; + padding: $baseline/2; + border-radius: $baseline/4; + + &:hover { + background-color: #eee; + } + + .wrapper-score-selection { + display: table-cell; + padding: 0 $baseline/2; + width: 20px; + vertical-align: middle; + } + + .wrappable { + display: table-cell; + padding: $baseline/4; + } + } + } + } + + span.rubric-category { + display: block; + width: 100%; + border-bottom: 1px solid lightgray; + font-weight: bold; + font-size: .9em; } } @@ -261,8 +490,8 @@ div.result-container { section.open-ended-child { @media print { display: block; - width: auto; padding: 0; + width: auto; canvas, img { page-break-inside: avoid; @@ -270,30 +499,30 @@ section.open-ended-child { } .inline { - display: inline; + display: inline; } ol.enumerate { li { &:before { - content: " "; display: block; - height: 0; visibility: hidden; + height: 0; + content: " "; } } } .solution-span { > span { - margin: 20px 0; - display: block; - border: 1px solid #ddd; - padding: 9px 15px 20px; - background: #FFF; position: relative; - box-shadow: inset 0 0 0 1px #eee; + display: block; + margin: $baseline 0; + padding: 9px 15px $baseline; + border: 1px solid #ddd; border-radius: 3px; + background: #fff; + box-shadow: inset 0 0 0 1px #eee; &:empty { display: none; @@ -301,196 +530,190 @@ section.open-ended-child { } } - p { - &.answer { - margin-top: -2px; - } - &.status { - text-indent: -9999px; - margin: 8px 0 0 10px; - } + p { + &.answer { + margin-top: -2px; } - - div.unanswered { - p.status { - @include inline-block(); - background: url('../images/unanswered-icon.png') center center no-repeat; - height: 14px; - width: 14px; - } + &.status { + margin: 8px 0 0 $baseline/2; + text-indent: -9999px; } + } - div.correct, div.ui-icon-check { - p.status { - @include inline-block(); - background: url('../images/correct-icon.png') center center no-repeat; - height: 20px; - width: 25px; - } - - input { - border-color: green; - } - } - - div.processing { - p.status { - @include inline-block(); - background: url('../images/spinner.gif') center center no-repeat; - height: 20px; - width: 20px; - } - - input { - border-color: #aaa; - } - } - - div.incorrect, div.ui-icon-close { - p.status { - @include inline-block(); - background: url('../images/incorrect-icon.png') center center no-repeat; - height: 20px; - width: 20px; - text-indent: -9999px; - } - - input { - border-color: red; - } - } - - > span { - display: block; - margin-bottom: lh(.5); - } - - p.answer { + div.unanswered { + p.status { @include inline-block(); - margin-bottom: 0; - margin-left: 10px; + width: 14px; + height: 14px; + background: url('../images/unanswered-icon.png') center center no-repeat; + } + } + div.correct, div.ui-icon-check { + p.status { + @include inline-block(); + width: 25px; + height: 20px; + background: url('../images/correct-icon.png') center center no-repeat; + } + + input { + border-color: green; + } + } + + div.processing { + p.status { + @include inline-block(); + width: 20px; + height: 20px; + background: url('../images/spinner.gif') center center no-repeat; + } + + input { + border-color: #aaa; + } + } + + div.incorrect, div.ui-icon-close { + p.status { + @include inline-block(); + width: 20px; + height: 20px; + background: url('../images/incorrect-icon.png') center center no-repeat; + text-indent: -9999px; + } + + input { + border-color: red; + } + } + + > span { + display: block; + margin-bottom: lh(.5); + } + + p.answer { + @include inline-block(); + margin-bottom: 0; + margin-left: $baseline/2; + + &:before { + content: "Answer: "; + font-weight: bold; + display: inline; + + } + &:empty { &:before { - content: "Answer: "; - font-weight: bold; - display: inline; - - } - &:empty { - &:before { - display: none; - } + display: none; } } + } + + span { + &.unanswered, &.ui-icon-bullet { + @include inline-block(); + position: relative; + top: 4px; + width: 14px; + height: 14px; + background: url('../images/unanswered-icon.png') center center no-repeat; + } + + &.processing, &.ui-icon-processing { + @include inline-block(); + position: relative; + top: 6px; + width: 25px; + height: 20px; + background: url('../images/spinner.gif') center center no-repeat; + } + + &.correct, &.ui-icon-check { + @include inline-block(); + position: relative; + top: 6px; + width: 25px; + height: 20px; + background: url('../images/correct-icon.png') center center no-repeat; + } + + &.incorrect, &.ui-icon-close { + @include inline-block(); + position: relative; + top: 6px; + width: 20px; + height: 20px; + background: url('../images/incorrect-icon.png') center center no-repeat; + } + } + + .reload { + float:right; + margin: $baseline/2; + } + + div.short-form-response { + @include clearfix; + overflow-y: auto; + margin-bottom: 0; + padding: $baseline/2; + min-height: 20px; + height: auto; + border: 1px solid #ddd; + background: #f6f6f6; + } + + .grader-status { + @include clearfix; + margin: $baseline/2 0; + padding: $baseline/2; + border-radius: 5px; + background: #f6f6f6; span { - &.unanswered, &.ui-icon-bullet { - @include inline-block(); - background: url('../images/unanswered-icon.png') center center no-repeat; - height: 14px; - position: relative; - top: 4px; - width: 14px; - } - - &.processing, &.ui-icon-processing { - @include inline-block(); - background: url('../images/spinner.gif') center center no-repeat; - height: 20px; - position: relative; - top: 6px; - width: 25px; - } - - &.correct, &.ui-icon-check { - @include inline-block(); - background: url('../images/correct-icon.png') center center no-repeat; - height: 20px; - position: relative; - top: 6px; - width: 25px; - } - - &.incorrect, &.ui-icon-close { - @include inline-block(); - background: url('../images/incorrect-icon.png') center center no-repeat; - height: 20px; - width: 20px; - position: relative; - top: 6px; - } + display: block; + float: left; + overflow: hidden; + margin: -7px 7px 0 0; + text-indent: -9999px; } - .reload - { - float:right; - margin: 10px; + .grading { + margin: 0 7px 0 0; + padding-left: 25px; + background: url('../images/info-icon.png') left center no-repeat; + text-indent: 0; } - div.short-form-response { - background: #F6F6F6; - border: 1px solid #ddd; - margin-bottom: 0px; - overflow-y: auto; - height: 200px; - @include clearfix; - } + p { + float: left; + margin-bottom: 0; + line-height: 20px; + } - .grader-status { - padding: 9px; - background: #F6F6F6; - border: 1px solid #ddd; - border-top: 0; - margin-bottom: 20px; - @include clearfix; + &.file { + margin-top: $baseline; + padding: $baseline 0 0 0; + border: 0; + border-top: 1px solid #eee; + background: #fff; - span { - text-indent: -9999px; - overflow: hidden; - display: block; - float: left; - margin: -7px 7px 0 0; + p.debug { + display: none; } - .grading { - background: url('../images/info-icon.png') left center no-repeat; - padding-left: 25px; - text-indent: 0px; - margin: 0px 7px 0 0; - } - - p { - line-height: 20px; - margin-bottom: 0; + input { float: left; } - - &.file { - background: #FFF; - margin-top: 20px; - padding: 20px 0 0 0; - - border: { - top: 1px solid #eee; - right: 0; - bottom: 0; - left: 0; - } - - p.debug { - display: none; - } - - input { - float: left; - } - } - } + } form.option-input { - margin: -10px 0 20px; - padding-bottom: 20px; + margin: -$baseline/2 0 $baseline; + padding-bottom: $baseline; select { margin-right: flex-gutter(); @@ -498,29 +721,31 @@ section.open-ended-child { } ul { - list-style: disc outside none; margin-bottom: lh(); margin-left: .75em; margin-left: .75rem; } - ul.rubric-list{ - list-style-type: none; - padding:0; - margin:0; - li { - &.rubric-list-item{ - margin-bottom: 0px; - padding: 0px; - } - } + 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; + } } + } ol { - list-style: decimal outside none; margin-bottom: lh(); margin-left: .75em; margin-left: .75rem; + list-style: decimal outside none; } dl { @@ -541,8 +766,9 @@ section.open-ended-child { } li { - margin-bottom: 0px; - padding: 0px; + margin-bottom: 0; + padding: 0; + &:last-child { margin-bottom: 0; } @@ -553,14 +779,14 @@ section.open-ended-child { } hr { - background: #ddd; - border: none; - clear: both; - color: #ddd; float: none; - height: 1px; + clear: both; margin: 0 0 .75rem; width: 100%; + height: 1px; + border: none; + background: #ddd; + color: #ddd; } .hidden { @@ -574,7 +800,7 @@ section.open-ended-child { } section.action { - margin-top: 20px; + margin-top: $baseline; input.save { @extend .blue-button !optional; @@ -582,20 +808,20 @@ section.open-ended-child { .submission_feedback { @include inline-block; - font-style: italic; - margin: 8px 0 0 10px; + margin: 8px 0 0 $baseline/2; color: #777; + font-style: italic; -webkit-font-smoothing: antialiased; } } .detailed-solution { > p:first-child { - font-size: 0.9em; + color: #aaa; + text-transform: uppercase; font-weight: bold; font-style: normal; - text-transform: uppercase; - color: #AAA; + font-size: 0.9em; } p:last-child { @@ -605,56 +831,136 @@ section.open-ended-child { div.open-ended-alert, .save_message { + margin-top: $baseline/2; + margin-bottom: $baseline/4; padding: 8px 12px; - border: 1px solid #EBE8BF; + border: 1px solid #ebe8bf; border-radius: 3px; - background: #FFFCDD; + background: #fffcdd; font-size: 0.9em; - margin-top: 10px; - margin-bottom:5px; } div.capa_reset { + margin-top: $baseline/2; + margin-bottom: $baseline/2; padding: 25px; border: 1px solid $error-red; - background-color: lighten($error-red, 25%); border-radius: 3px; + background-color: lighten($error-red, 25%); font-size: 1em; - margin-top: 10px; - margin-bottom: 10px; } - .capa_reset>h2 { - color: #AA0000; + + .capa_reset > h2 { + color: #aa0000; } + .capa_reset li { font-size: 0.9em; } .assessment-container { - margin: 40px 0px 30px 0px; - .scoring-container - { - p - { - margin-bottom: 1em; - } - label { - margin: 10px; - padding: 5px; - display: inline-block; - min-width: 50px; - background-color: #CCC; - text-size: 1.5em; - } - - input[type=radio]:checked + label { - background: #666; - color: white; - } - input[class='grade-selection'] { - display: none; - } + margin: $baseline*2 0px 30px 0px; + .scoring-container { + p { + margin-bottom: 1em; } + + label { + display: inline-block; + margin: $baseline/2; + padding: $baseline/4; + min-width: 50px; + background-color: #ccc; + text-size: 1.5em; + } + + input[type=radio]:checked + label { + background: #666; + color: white; + } + + input[class='grade-selection'] { + display: none; + } + } + } + + div.prompt { + background-color: white; + } + + h4 { + padding: $baseline/2 0; } } + +//OE Tool Area Styling + +.oe-tools { + display: inline-block; + width: 100%; + border-radius: 5px; + + .oe-tools-label, .oe-tools-scores-label { + display: inline-block; + padding: $baseline/2; + vertical-align: middle; + font-size: 0.8em; + } + + .rubric-button { + padding: 8px $baseline/4; + } + + .rubric-previous-button { + margin-right: $baseline/4; + } + + .rubric-next-button { + margin-left: $baseline/4; + } + + .next-step-button { + margin: $baseline/2; + } + .reset-button { + vertical-align: middle; + } +} + +// Staff Grading +.problem-list-container { + margin: $baseline/2; + + .instructions { + padding-bottom: $baseline/2; + } +} + +.staff-grading { + + .breadcrumbs { + padding: $baseline/10; + background-color: #f6f6f6; + border-radius: 5px; + margin-bottom: $baseline/2; + } + + .prompt-wrapper { + padding-top: $baseline/2; + + .meta-info-wrapper { + padding: $baseline/2; + border-radius: $baseline/4; + } + } +} + +section.peer-grading-container{ + div.peer-grading{ + section.calibration-feedback { + padding: 20px; + } + } +} diff --git a/common/lib/xmodule/xmodule/js/fixtures/combined-open-ended.html b/common/lib/xmodule/xmodule/js/fixtures/combined-open-ended.html index abea783ae8..e5eb0858f7 100644 --- a/common/lib/xmodule/xmodule/js/fixtures/combined-open-ended.html +++ b/common/lib/xmodule/xmodule/js/fixtures/combined-open-ended.html @@ -1,75 +1,80 @@
-
+
- -

Problem 1

-
-

Status

-
-
- -
- - Step 1 (Problem complete) : 1 / 1 +

Problem 1

+
+

Status

+
+
+
+ Step 1 (Problem complete) : 1 / 1 - -
- -
- - Step 2 (Being scored) : None / 1 +
+
+ Step 2 (Being scored) : None / 1 - +
+
+
-
-
- -
- -
-

Problem

+
+

Problem

-
-
- - Some prompt. - -
-
-
- Submitted for grading. - -
- -
- - -
+
+
+
+
+
+ Some prompt. +
+ +
+
+ Submitted for grading. +
+ + +
+ +
- - +
+
+ - +
+
- -
-
-
- - -
- -
- Edit / - +
+ +
+ + +
+ + +
+ + + + Edit + / + QA -
-
Staff Debug Info
+ +
+ + Staff Debug Info + +
-

Rubric

+
+
+
+ Rubric +
diff --git a/lms/static/sass/course/_rubric.scss b/lms/static/sass/course/_rubric.scss index 294ac86d78..b97eea5cd3 100644 --- a/lms/static/sass/course/_rubric.scss +++ b/lms/static/sass/course/_rubric.scss @@ -1,56 +1,85 @@ +.rubric-header { + background-color: #fafafa; + border-radius: 5px; + + .rubric-collapse { + margin-right: $baseline/2; + } +} + +.button { + display: inline-block; +} + .rubric { - margin: 0px 0px; + margin: 0; color: #3C3C3C; + tr { - margin:0px 0px; - height: 100%; + margin: 0; + height: 100%; } + td { - height: 100%; - border: 1px black solid; - text-align: center; + height: 100%; + border: 1px black solid; + text-align: center; } + th { - padding: 5px; - margin: 5px; - text-align: center; + margin: $baseline/4; + padding: $baseline/4; + text-align: center; } + .points-header th { - padding: 0px; + padding: 0px; } - .rubric-label - { - position: relative; - font-size: .9em; - display: block; + + .rubric-label { + position: relative; + display: block; + font-size: .9em; + + .choicegroup-correct { + //nothing + } + + .choicegroup-incorrect { + display:none; + } } + .grade { position: absolute; - bottom:0px; - right:0px; + bottom: 0; + right: 0; } .selected-grade, .selected-grade .rubric-label { background: #666; color: white; } - input[type=radio]:checked + .rubric-label { + + input[type=radio]:checked + .rubric-label { background: white; color: $base-font-color; white-space:nowrap; - } + } + .wrappable { - white-space:normal; + white-space:normal; } + input[class='score-selection'] { - position: relative; - font-size: 16px; + position: relative; + font-size: 16px; } - ul.rubric-list - { - list-style-type: none; - padding:0; - margin:0; + + ul.rubric-list { + margin: 0; + padding: 0; + list-style-type: none; } } diff --git a/lms/static/sass/course/_staff_grading.scss b/lms/static/sass/course/_staff_grading.scss index b387d753d1..1087aae67a 100644 --- a/lms/static/sass/course/_staff_grading.scss +++ b/lms/static/sass/course/_staff_grading.scss @@ -1,49 +1,52 @@ div.staff-grading, div.peer-grading{ + border: 1px solid lightgray; + textarea.feedback-area { + margin: 0; height: 75px; - margin: 0px; } ul.rubric-list{ + margin: 0; + padding: 0; list-style-type: none; - padding:0; - margin:0; + li { - &.rubric-list-item{ - margin-bottom: 0px; - padding: 0px; - } + &.rubric-list-item{ + margin-bottom: 0; + padding: 0; + } } } h1 { - margin : 0 0 0 10px; + margin: 0 0 0 $baseline/2; } - h2{ - a - { + h2 { + a { text-size: .5em; } } div { - margin: 0px; + margin: 0; + &.submission-container{ - overflow-y: auto; - height: 150px; - background: #F6F6F6; - border: 1px solid #ddd; - @include clearfix; + @include clearfix; + overflow-y: auto; + max-height: 300px; + height: auto; + border: 1px solid #ddd; + background: #f6f6f6; } } label { - margin: 0px; + margin: 0; padding: 2px; min-width: 50px; - background-color: white; text-size: 1.5em; } @@ -58,143 +61,161 @@ div.peer-grading{ display: none; } - .problem-list - { - text-align: center; + .problem-list { + width: 100%; table-layout: auto; - width:100%; - th - { + text-align: center; + + th { padding: 2px; } - td - { - padding:2px; + + td { + padding: 2px; } - td.problem-name - { - text-align:left; + + td.problem-name { + text-align: left; } - .ui-progressbar - { - height:1em; - margin:0px; - padding:0px; + + .ui-progressbar { + margin: 0; + padding: 0; + height: 1em; } } .prompt-information-container, .rubric-wrapper, .calibration-feedback-wrapper, - .grading-container - { - padding: 2px; + .grading-container { + padding: $baseline/2 0; } - .error-container - { - background-color: #FFCCCC; + + .error-container { + margin-left: 0; padding: 2px; - margin-left: 0px; + background-color: #ffcccc; } - .submission-wrapper - { - h3 - { - margin-bottom: 2px; - } - p - { - margin-left:2px; - } + + .submission-wrapper { padding: 2px; padding-bottom: 15px; + + h3 { + margin-bottom: 2px; + } + + p { + margin-left: 2px; + } } - .meta-info-wrapper - { - background-color: #eee; + .meta-info-wrapper { padding:2px; - div - { - display : inline; + background-color: #eee; + + div { + display: inline; } } .message-container, - .grading-message - { - background-color: $yellow; + .grading-message { + margin-left: 0; padding: 2px; - margin-left:0px; + background-color: $yellow; } - .breadcrumbs - { - margin-top:2px; - margin-left:0px; - margin-bottom:2px; + .breadcrumbs { + margin: $baseline/2 $baseline/4; font-size: .8em; } - .instructions-panel - { - - margin-right:2px; - > div - { - padding: 2px; - margin-bottom: 5px; - background: #eee; - width:47.6%; - h3 - { - text-align:center; - text-transform:uppercase; - color: #777; - } - p - { - color: #777; - } - } - .calibration-panel - { - float:left; - } - .grading-panel - { - float:right; - } - .current-state - { - background: #1D9DD9; - h3, p - { - color: white; - } - } + .instructions-panel { @include clearfix; + padding: $baseline/2; + background-color: #eee; + font-size: .8em; + + > div { + margin-bottom: 5px; + padding: $baseline/2; + width: 49%; + background: #eee; + + h3 { + color: #777; + text-align: center; + text-transform: uppercase; + } + + p{ + color: #777; + } + } + .calibration-panel { + display: inline-block; + width: 20%; + border-radius: 3px; + } + + .grading-panel { + display: inline-block; + width: 20%; + border-radius: 3px; + } + .current-state { + background: #fff; + + } } + .collapsible { + margin-left: 0; - .collapsible - { - margin-left: 0px; - header - { - margin-top:2px; - margin-bottom:2px; + header { + margin-top: 2px; + margin-bottom: 2px; font-size: 1.2em; } } - .interstitial-page - { + .interstitial-page { text-align: center; - input[type=button] - { - margin-top: 20px; + + input[type=button] { + margin-top: $baseline; } } - padding: 15px; - border: none; +} + +div.peer-grading { + border-radius: $baseline/2; + padding: 0; + + .peer-grading-tools { + padding: $baseline; + } + + .error-container { + margin: $baseline; + border-radius: $baseline/4; + padding: $baseline/2; + } + + .interstitial-page, .calibration -feedback, .calibration-interstitial-page { + padding: $baseline; + } + + .prompt-wrapper { + padding: $baseline; + } + + .grading-wrapper { + padding: $baseline; + } +} + +div.staff-grading { + padding: $baseline; } diff --git a/lms/templates/combinedopenended/combined_open_ended.html b/lms/templates/combinedopenended/combined_open_ended.html index 50f962d691..5f088265a2 100644 --- a/lms/templates/combinedopenended/combined_open_ended.html +++ b/lms/templates/combinedopenended/combined_open_ended.html @@ -1,28 +1,60 @@ <%! from django.utils.translation import ugettext as _ %>
-
- ${status|n} +
+

${display_name}

+
+
-

${display_name}

- -
-

Prompt (Hide)

-
- % for item in items: -
${item['content'] | n}
- % endfor +
+
+ + + + + +
+
+ ${_("Open Response")} +
+
+
+ ${_("Assessments:")} +
+
+ ${status|n} +
+
- - -
+
+ +
+ % for item in items: +
${item['content'] | n}
+ % endfor +
+
+ + +
+
-
-
-
-
+
+
+
+ + +
-
+
+
+ +
+
diff --git a/lms/templates/combinedopenended/combined_open_ended_hidden_results.html b/lms/templates/combinedopenended/combined_open_ended_hidden_results.html new file mode 100644 index 0000000000..396a657273 --- /dev/null +++ b/lms/templates/combinedopenended/combined_open_ended_hidden_results.html @@ -0,0 +1,10 @@ +
+
+
+
+ Submitted Rubric +
+
+ ${error} +
+
diff --git a/lms/templates/combinedopenended/combined_open_ended_results.html b/lms/templates/combinedopenended/combined_open_ended_results.html index 0a03737b8f..5e5294bf60 100644 --- a/lms/templates/combinedopenended/combined_open_ended_results.html +++ b/lms/templates/combinedopenended/combined_open_ended_results.html @@ -1,4 +1,37 @@ -
-

${task_name}

- ${results | n} -
+<%! from django.utils.translation import ugettext as _ %> +% for (i,result) in enumerate(results): + % if 'task_name' in result and 'result' in result: +
0: + data-status="hidden" data-number="${i}"> + % else: + data-status="shown" data-number="${i}"> + % endif +
+
+
+ ${_("Submitted Rubric")} +
+
+ + + + + % if len(results)>1: + + % endif + ${result['task_name']} from grader ${i+1} + % if len(results)>1: + + % endif + +
+ ${result['result'] | n} +
+ ${result['feedback'] | n} +
+
+ %endif + +% endfor + diff --git a/lms/templates/combinedopenended/combined_open_ended_status.html b/lms/templates/combinedopenended/combined_open_ended_status.html index 0369d6d9ff..866eaccb1c 100644 --- a/lms/templates/combinedopenended/combined_open_ended_status.html +++ b/lms/templates/combinedopenended/combined_open_ended_status.html @@ -1,23 +1,14 @@ <%! from django.utils.translation import ugettext as _ %>
-
- ${_("Status")} -
%for i in xrange(0,len(status_list)): <%status=status_list[i]%> - %if i==len(status_list)-1: + %if status['current']:
%else:
%endif - %if status['grader_type'] in grader_type_image_dict and render_via_ajax: - <% grader_image = grader_type_image_dict[status['grader_type']]%> - - %else: - ${status['human_task']} - %endif - (${status['human_state']}) + ${status['human_task']}
%endfor
diff --git a/lms/templates/combinedopenended/openended/open_ended.html b/lms/templates/combinedopenended/openended/open_ended.html index 15b3be1303..c6a8cb2253 100644 --- a/lms/templates/combinedopenended/openended/open_ended.html +++ b/lms/templates/combinedopenended/openended/open_ended.html @@ -4,7 +4,11 @@
${prompt|n}
-

${_("Response")}

+
+
+
+ ${_("Response")} +
@@ -12,7 +16,7 @@ % if state == 'initial': ${_("Unanswered")} % elif state == 'assessing': - ${_("Submitted for grading.")} + % if eta_message is not None: ${eta_message} % endif @@ -27,8 +31,8 @@
- - + +
diff --git a/lms/templates/combinedopenended/openended/open_ended_combined_rubric.html b/lms/templates/combinedopenended/openended/open_ended_combined_rubric.html index 61393cdc95..10366e49b3 100644 --- a/lms/templates/combinedopenended/openended/open_ended_combined_rubric.html +++ b/lms/templates/combinedopenended/openended/open_ended_combined_rubric.html @@ -1,24 +1,32 @@
% for i in range(len(categories)): <% category = categories[i] %> - ${category['description']}
+ ${category['description']}
    % for j in range(len(category['options'])): <% option = category['options'][j] %> -
  • + %if len(category['options'][j]['grader_types'])>0: +
  • + %else: +
  • + %endif
    - %for grader_type in category['options'][j]['grader_types']: - % if grader_type in grader_type_image_dict: - <% grader_image = grader_type_image_dict[grader_type] %> - % if grader_type in human_grader_types: - <% human_title = human_grader_types[grader_type] %> - % else: - <% human_title = grader_type %> - % endif - - % endif - %endfor - ${option['points']} points : ${option['text']} + %if len(category['options'][j]['grader_types'])>0: + %if correct[i]==1: + + %elif correct[i]==.5: + + %else: + + %endif + ${option['points']} points : ${option['text']} + + %else: + + %endif
  • % endfor diff --git a/lms/templates/combinedopenended/openended/open_ended_rubric.html b/lms/templates/combinedopenended/openended/open_ended_rubric.html index f1d6abb8fa..55194a9318 100644 --- a/lms/templates/combinedopenended/openended/open_ended_rubric.html +++ b/lms/templates/combinedopenended/openended/open_ended_rubric.html @@ -1,11 +1,17 @@ <%! from django.utils.translation import ugettext as _ %> +<% from random import randint %>
    -

    ${_("Rubric")}

    -

    ${_("Select the criteria you feel best represents this submission in each category.")}

    +
    +
    +
    + ${_("Rubric")} +
    +

    Select the criteria you feel best represents this submission in each category.

    % for i in range(len(categories)): <% category = categories[i] %> - ${category['description']}
    + <% m = randint(0,1000) %> + ${category['description']}
      % for j in range(len(category['options'])): <% option = category['options'][j] %> @@ -14,8 +20,8 @@ %else:
    • % endif -
    • diff --git a/lms/templates/combinedopenended/selfassessment/self_assessment_prompt.html b/lms/templates/combinedopenended/selfassessment/self_assessment_prompt.html index 3cc73fc657..ab4d9cfb95 100644 --- a/lms/templates/combinedopenended/selfassessment/self_assessment_prompt.html +++ b/lms/templates/combinedopenended/selfassessment/self_assessment_prompt.html @@ -5,20 +5,22 @@
      ${prompt}
      - -

      ${_("Response")}

      +
      +
      +
      + ${_("Response")} +
      -
      -
      +
      +
      ${initial_rubric}
      -
      - -
      -
      - + + +
      +
diff --git a/lms/templates/instructor/staff_grading.html b/lms/templates/instructor/staff_grading.html index 40e80de11e..15ea97332a 100644 --- a/lms/templates/instructor/staff_grading.html +++ b/lms/templates/instructor/staff_grading.html @@ -19,75 +19,71 @@

${_("Staff grading")}

- -
-
-
-
+ +
+
-

${_("Instructions")}

-
-

${_("This is the list of problems that currently need to be graded in order to train the machine learning models. Each problem needs to be trained separately, and we have indicated the number of student submissions that need to be graded in order for a model to be generated. You can grade more than the minimum required number of submissions--this will improve the accuracy of machine learning, though with diminishing returns. You can see the current accuracy of machine learning while grading.")}

-
+

${_("Instructions")}

+
+

${_("This is the list of problems that currently need to be graded in order to train the machine learning models. Each problem needs to be trained separately, and we have indicated the number of student submissions that need to be graded in order for a model to be generated. You can grade more than the minimum required number of submissions--this will improve the accuracy of machine learning, though with diminishing returns. You can see the current accuracy of machine learning while grading.")}

+
-

${_("Problem List")}

- -
+

${_("Problem List")}

+ +
-

-
-
-
-
-
-
-
+
+

+

+
+
+
+
+
+
+

${_('Prompt')} ${_("(Hide)")}

-
-
+
- +
- +
+
+
+

${_("Student Response")}

+
+
+
+
+

+

+

+

+

${_("Written Feedback")}

+ +

+ ${_("Flag as inappropriate content for later review")} +

+
+
+ + +
+ +
+
+
-
-
-

${_("Student Response")}

-
-
-
-
-

-

-

-

-

${_("Written Feedback")}

- -

- ${_("Flag as inappropriate content for later review")} -

-
- - -
- - -
- -
- - diff --git a/lms/templates/peer_grading/peer_grading.html b/lms/templates/peer_grading/peer_grading.html index f423de1c6b..b0dffe8f9d 100644 --- a/lms/templates/peer_grading/peer_grading.html +++ b/lms/templates/peer_grading/peer_grading.html @@ -2,59 +2,61 @@
${error_text}
-

${_("Peer Grading")}

-

${_("Instructions")}

-

${_("Here are a list of problems that need to be peer graded for this course.")}

- % if success: - % if len(problem_list) == 0: -
- ${_("Nothing to grade!")} -
- %else: -
- - - - - - - - +
+

${_("Peer Grading")}

+

${_("Instructions")}

+

${_("Here are a list of problems that need to be peer graded for this course.")}

+ % if success: + % if len(problem_list) == 0: +
+ ${_("You currently do not having any peer grading to do. In order to have peer grading to do, you need to have submitted a response to a peer grading problem. The instructor also needs to score the essays that are used to help you better understand the grading criteria.")} +
+ %else: +
+
${_("Problem Name")}${_("Due date")}${_("Graded")}${_("Available")}${_("Required")}${_("Progress")}
+ + + + + + + + + %for problem in problem_list: + + + + + + + - %for problem in problem_list: - - - - - - - - - %endfor -
${_("Problem Name")}${_("Due date")}${_("Graded")}${_("Available")}${_("Required")}${_("Progress")}
+ %if problem['closed']: + ${problem['problem_name']} + %else: + ${problem['problem_name']} + %endif + + % if problem['due']: + ${problem['due']} + % else: + ${_("No due date")} + % endif + + ${problem['num_graded']} + + ${problem['num_pending']} + + ${problem['num_required']} + +
+
+
- %if problem['closed']: - ${problem['problem_name']} - %else: - ${problem['problem_name']} - %endif - - % if problem['due']: - ${problem['due']} - % else: - ${_("No due date")} - % endif - - ${problem['num_graded']} - - ${problem['num_pending']} - - ${problem['num_required']} - -
-
-
-
+ %endfor + +
+ %endif %endif - %endif +
diff --git a/lms/templates/peer_grading/peer_grading_problem.html b/lms/templates/peer_grading/peer_grading_problem.html index d99e14c706..80b230e2aa 100644 --- a/lms/templates/peer_grading/peer_grading_problem.html +++ b/lms/templates/peer_grading/peer_grading_problem.html @@ -4,98 +4,95 @@
-
-
-

${_("Learning to Grade")}

+
+
+

${_("Learning to Grade")}

+
+
+

${_("Peer Grading")}

+
-
-

${_("Peer Grading")}

-
-
-
-

${_('Prompt')} ${_('(Hide)')}

-
-
-
+
+ +
+
+
+
+
+
+
+
+
+
+

${_("Student Response")}

+
+
+

+
+
+ + +
+
+

+

+

${_("Written Feedback")}

+

${_("Please include some written feedback as well.")}

+ +
${_("This submission has explicit or pornographic content : ")} + +
+
${_("I do not know how to grade this question : ")} + +
+
+
+ +
+
+ +
+

${_("How did I do?")}

+
+ +
-
+ +
+

${_("Ready to grade!")}

+

${_("You have finished learning to grade, which means that you are now ready to start grading.")}

+ +
+ +
+

${_("Learning to grade")}

+

${_("You have not yet finished learning to grade this problem.")}

+

${_("You will now be shown a series of instructor-scored essays, and will be asked to score them yourself.")}

+

${_("Once you can score the essays similarly to an instructor, you will be ready to grade your peers.")}

+ +
-
-

${_("Student Response")}

- -
-
-

-
+ +
+

${_("Are you sure that you want to flag this submission?")}

+

+ ${_("You are about to flag a submission. You should only flag a submission that contains explicit or offensive content. If the submission is not addressed to the question or is incorrect, you should give it a score of zero and accompanying feedback instead of flagging it.")} +

+
+ +
- - -
-
-

-

-

-

${_("Written Feedback")}

-

${_("Please include some written feedback as well.")}

- -
${_("This submission has explicit or pornographic content : ")}
-
${_("I do not know how to grade this question : ")}
-
+
- -
- -
- -
-
-
- -
- - -
-

${_("How did I do?")}

-
-
- -
- - -
-

${_("Ready to grade!")}

-

${_("You have finished learning to grade, which means that you are now ready to start grading.")}

- -
- - -
-

${_("Learning to grade")}

-

${_("You have not yet finished learning to grade this problem.")}

-

${_("You will now be shown a series of instructor-scored essays, and will be asked to score them yourself.")}

-

${_("Once you can score the essays similarly to an instructor, you will be ready to grade your peers.")}

- -
- - -
-

${_("Are you sure that you want to flag this submission?")}

-

- ${_("You are about to flag a submission. You should only flag a submission that contains explicit or offensive content. If the submission is not addressed to the question or is incorrect, you should give it a score of zero and accompanying feedback instead of flagging it.")} -

-
- - -
-
- - - +