Commit fbc2d492 by David Ormsbee

More work to hook actual choices up instead of just point values.

parent 0a2e5efe
from django.contrib import admin
from openassessment.peer.models import Assessment
from openassessment.peer.models import Assessment, AssessmentPart
admin.site.register(Assessment)
admin.site.register(AssessmentPart)
......@@ -10,9 +10,8 @@ class PeerAssessmentMixin(AssessmentMixin):
def assess(self, data, suffix=''):
"""Place an assessment into OpenAssessment system
"""
# with self.get_assessment_module('peer-assessment') as assessment:
assessment_ui_model = self.get_assessment_module('peer-assessment')
rubric_dict = {
'criteria': self.rubric_criteria
}
......@@ -20,22 +19,23 @@ class PeerAssessmentMixin(AssessmentMixin):
"points_earned": map(int, data["points_earned"]),
"points_possible": sum(c['total_value'] for c in self.rubric_criteria),
"feedback": "Not yet implemented.",
"options_selected": {}, # Placeholder
"options_selected": data["options_selected"],
}
assessment = peer_api.create_assessment(
data["submission_uuid"],
self.get_student_item_dict()["student_id"],
int(assessment_ui_model.must_grade),
int(assessment_ui_model.must_be_graded_by),
assessment_dict
assessment_dict,
rubric_dict,
)
}
# Temp kludge until we fix JSON serialization for datetime
assessment["scored_at"] = str(assessment["scored_at"])
return assessment_ui_model, "Success"
@XBlock.handler
def render_peer_assessment(self, data, suffix=''):
with self.get_assessment_module('peer-assessment') as assessment:
......
......@@ -69,10 +69,10 @@
<li class="answer">
<div class="wrapper--input">
<input type="radio"
name="assessment__rubric__question--{{ criterion.name }}"
id="assessment__rubric__question--{{ criterion.name }}--01"
name="{{ criterion.name }}"
id="assessment__rubric__question--{{ criterion.name }}"
class="answer__value"
value="answer--001__option--01 - Very Well" />
value="{{ option.name }}" />
({{option.points}})
<label for="assessment__rubric__question--001__option--01"
class="answer__label"
......
/* START Javascript for OpenassessmentComposeXBlock. */
function OpenAssessmentBlock(runtime, element) {
var handlerUrl = runtime.handlerUrl(element, 'assess');
var success_msg = '<p class="success">Thanks for your feedback!</p>';
var failure_msg = '<p class="failure">An error occurred with your feedback</p>';
var click_msg = '<p class="clickhere">(click here to dismiss this message)</p>';
/* Sample Debug Console: http://localhost:8000/submissions/Joe_Bloggs/TestCourse/u_3 */
function prepare_assessment_post(element) {
var selector = $("input[type=radio]:checked", element);
var values = [];
for (i=0; i<selector.length; i++) {
values[i] = selector[i].value;
}
return {"submission_uuid":$("div#peer_submission_uuid")[0].innerText, "points_earned":values};
}
function displayStatus(result) {
var status = result[0];
var error_msg = result[1];
if (status) {
$('.openassessment_response_status_block', element).html(success_msg.concat(click_msg));
} else {
$('.openassessment_response_status_block', element).html(failure_msg.concat(error_msg).concat(click_msg));
}
$('.openassessment_response_status_block', element).css('display', 'block');
}
$('.openassessment_response_status_block', element).click(function(eventObject) {
$('.openassessment_response_status_block', element).css('display', 'none');
});
$('.openassessment_submit', element).click(function(eventObject) {
$.ajax({
type: "POST",
url: handlerUrl,
/* data: JSON.stringify({"submission": $('.openassessment_submission', element).val()}), */
data: JSON.stringify(prepare_assessment_post(element)),
success: displayStatus
});
});
$(function ($) {
/* Here's where you'd do things on page load. */
$(element).css('background-color', 'LightBlue')
});
}
/* END Javascript for OpenassessmentComposeXBlock. */
......@@ -45,17 +45,24 @@ function OpenAssessmentBlock(runtime, element) {
function prepare_assessment_post(element) {
var selector = $("input[type=radio]:checked", element);
var criteriaChoices = {};
var values = [];
for (var i=0; i<selector.length; i++) {
values[i] = selector[i].value;
criteriaChoices[selector[i].name] = selector[i].value
}
return {"submission_uuid":$("div#peer_submission_uuid")[0].innerText, "points_earned":values};
return {
"submission_uuid":$("div#peer_submission_uuid")[0].innerText,
"points_earned":values,
"options_selected":criteriaChoices
};
}
$('#peer-assessment--001__assessment__submit', element).click(function(eventObject) {
eventObject.preventDefault();
$.ajax({
type: "POST",
url: handlerUrl,
url: runtime.handlerUrl(element, 'assess'),
/* data: JSON.stringify({"submission": $('.openassessment_submission', element).val()}), */
data: JSON.stringify(prepare_assessment_post(element)),
success: function(data) {
......
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