Commit 32f0c4ff by gradyward Committed by Stephen Sanchez

First draft

parent 7af5a24c
......@@ -19,7 +19,7 @@
<h2>{% trans "Scored Rubric" %}</h2>
<ol class="openassessment_training_example_criteria_selections list-input settings-list">
{% for criterion in example.criteria %}
<li class="field comp-setting-entry">
<li class="field comp-setting-entry openassessment_training_example_criterion" data-criterion={{criterion.name}}>
<div class="wrapper-comp-setting">
<label class="openassessment_training_example_criterion_name setting-label">
{{criterion.label}}
......
......@@ -83,6 +83,8 @@ OpenAssessment.Container = function(containerItem, kwargs) {
$("." + this.containerItemClass, this.containerElement).each(
function(index, element) { new container.containerItem(element); }
);
this.modificationHandler = new OpenAssessment.RubricValidationEventHandler('#oa_student_training_editor');
};
OpenAssessment.Container.prototype = {
......@@ -129,6 +131,7 @@ OpenAssessment.Container.prototype = {
**/
remove: function(item) {
$(item.element).closest("." + this.containerItemClass).remove();
this.containerItem.removeHandler(this.modificationHandler);
},
/**
......
......@@ -47,6 +47,12 @@ OpenAssessment.RubricOption.prototype = {
if (nameString !== "") { fields.name = nameString; }
return fields;
},
removeHandler: function (rubricValidationHandler){
var criterionName = $(this.element).data('criterion');
var optionName = $(this.element).data('option');
rubricValidationHandler.optionRemove(criterionName, optionName);
}
};
......
var generateOptionString = function(name, points){
return gettext(name + ' - ' + points + ' points')
};
OpenAssessment.RubricValidationEventHandler = function () {
this.element = $('#oa_student_training_editor');
this.alert = new OpenAssessment.ValidationAlert($('#openassessment_rubric_validation_alert', this.element));
};
OpenAssessment.RubricValidationEventHandler.prototype = {
optionRefresh: function(criterionName, oldName, newName, newPoints){
$('.openassessment_training_example_criterion', this.element).each(function(){
if ($(this).data('criterion') == criterionName && $(this).val() == oldName) {
$(this).val(newName);
$(this).text(generateOptionString(newName, newPoints));
}
});
},
optionAdd: function(criterionName){
$('.openassessment_training_example_criterion_option', this.element).each(function(){
if ($(this).data('criterion') == criterionName) {
$(this).append(
"<option value=''> </option>"
);
}
});
},
optionRemove: function(criterionName, optionName){
var removed = 0;
$('.openassessment_training_example_criterion_option', this.element).each(function(){
if ($(this).data('criterion') == criterionName && $(this).val() == optionName) {
$(this).val("");
$(this).addClass("openassessment_highlighted_field");
removed++;
}
});
if (removed > 0){
var title = "Option Deletion Led to Invalidation";
var msg = "Because you deleted an option, there were " + removed + " instance(s) of training examples" +
"where the choice had to be reset.";
this.alert.setMessage(title, msg);
}
},
criterionRename: function(criterionName, newValue){
$('.openassessment_training_example_criterion', this.element).each(function(){
if ($(this).data('criterion') == criterionName){
$(".openassessment_training_example_criterion_name_wrapper", this).text(newValue);
}
});
},
criterionAdd: function() {
$(".openassessment_training_example_criterion", this.element).each(function(){
$(this).append(
'<li class="field comp-setting-entry openassessment_training_example_criterion" data-criterion=APPLES>' +
'<div class="wrapper-comp-setting">' +
'<label class="openassessment_training_example_criterion_name setting-label">' +
'<div class="openassessment_training_example_criterion_name_wrapper">' +
'Banannas!' +
'</div>' +
'<select class="openassessment_training_example_criterion_option setting-input" data-criterion=APPLES>' +
'</select>' +
'</label>'+
'</div>'+
'</li>'
);
});
}
};
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