Skip to content

Commit

Permalink
Added button to release grades
Browse files Browse the repository at this point in the history
  • Loading branch information
millro04 committed Aug 20, 2016
1 parent d8f99a7 commit cac0c1c
Show file tree
Hide file tree
Showing 3 changed files with 99 additions and 2 deletions.
19 changes: 17 additions & 2 deletions controllers/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -673,7 +673,11 @@ def grading():
assignments = {}
assignments_query = db(db.assignments.course == auth.user.course_id).select()
summative_qid = db(db.assignment_types.name == 'summative').select(db.assignment_types.id).first().id

assignmentids = {}

for row in assignments_query:
assignmentids[row.name] = int(row.id)
assignment_questions = db((db.assignment_questions.assignment_id == int(row.id)) & (db.assignment_questions.assessment_type == summative_qid)).select()
questions = []
for q in assignment_questions:
Expand Down Expand Up @@ -707,8 +711,7 @@ def grading():
for chapter_q in chapter_questions:
q_list.append(chapter_q.name)
chapter_labels[row.chapter_label] = q_list

return dict(assignmentinfo=assignments, students=searchdict, chapters=chapter_labels, gradingUrl = URL('assignments', 'problem'), course_id = auth.user.course_name,
return dict(assignmentinfo=assignments, students=searchdict, chapters=chapter_labels, gradingUrl = URL('assignments', 'problem'), course_id = auth.user.course_name, assignmentids = assignmentids

)
except Exception as ex:
Expand Down Expand Up @@ -1330,3 +1333,15 @@ def editindexrst():
except Exception as ex:
print(ex)


@auth.requires(lambda: verifyInstructorStatus(auth.user.course_name, auth.user), requires_login=True)
def releasegrades():
try:
assignmentid = request.vars['assignmentid']
assignment = db(db.assignments.id == assignmentid).select().first()
assignment.update_record(released=True)
return "Success"
except Exception as ex:
print(ex)


78 changes: 78 additions & 0 deletions static/js/admin.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,25 @@
function gradeIndividualItem() {
var select3 = document.getElementById("gradingoption3");
var colType = select3.options[select3.selectedIndex].value;

var col1 = document.getElementById("gradingoption1");
var col1val = col1.options[col1.selectedIndex].value;

var col2 = document.getElementById("gradingoption2");
var col2val = col2.options[col2.selectedIndex].value;
release_button = document.getElementById("releasebutton");


if (col1val == 'assignment' | col2val == 'assignment') {
//show the release grades button
release_button.style.visibility = 'visible';
}

else {
//hide the release grades button
release_button.style.visibility = 'hidden';
}

var select = document.getElementById("gradingcolumn3");
var val = select.options[select.selectedIndex].value;
var rightSideDiv = $('#rightsideGradingTab');
Expand Down Expand Up @@ -311,6 +330,8 @@ function pickedAssignments(column) {
var pickedcolumn = document.getElementById(column);
$("#" + column).empty();
var assignments = JSON.parse(assignmentinfo);
release_button = document.getElementById("releasebutton");
release_button.style.visibility = 'visible';

for (i in assignments) {
var option = document.createElement("option");
Expand Down Expand Up @@ -397,6 +418,10 @@ function showColumn1() {
var val2 = select.options[select.selectedIndex].value;
var val = select1.options[select1.selectedIndex].value;

release_button = document.getElementById("releasebutton");
release_button.style.visibility = 'hidden';



$("#gradingcolumn2").empty();
$("#gradingcolumn3").empty();
Expand Down Expand Up @@ -478,6 +503,7 @@ function showColumn2() {
select3.selectedIndex = 0;
$("#gradingcolumn3").empty();


if (first_val == "") {
select1.selectedIndex = 0;
alert("That is not a valid combination");
Expand Down Expand Up @@ -1362,3 +1388,55 @@ function edit_indexrst(form) {

}}
}




function release_grades() {
var col1 = document.getElementById("gradingoption1");
var col1val = col1.options[col1.selectedIndex].value;

var col2 = document.getElementById("gradingoption2");
var col2val = col2.options[col2.selectedIndex].value;
var assignment = null;

if (col1val == 'assignment') {
var assignmentcolumn = document.getElementById("gradingcolumn1");
if (assignmentcolumn.selectedIndex != -1) {
assignment = assignmentcolumn.options[assignmentcolumn.selectedIndex].value;

}

else {
alert("Please choose an assignment first");
}
}

else if (col2val == 'assignment') {

var assignmentcolumn = document.getElementById("gradingcolumn2");
if (assignmentcolumn.selectedIndex != -1) {
assignment = assignmentcolumn.options[assignmentcolumn.selectedIndex].value;

}

else {
alert("Please choose an assignment first");
}

}

if (assignment != null) {
//go release the grades now
var ids = JSON.parse(assignmentids);
var assignmentid = ids[assignment];
var obj = new XMLHttpRequest();
obj.open('POST', '/runestone/admin/releasegrades?assignmentid=' + assignmentid, true);
obj.send(JSON.stringify({variable: 'variable'}));
obj.onreadystatechange = function () {
if (obj.readyState == 4 && obj.status == 200) {
alert("Grades released");
}
}
}
}
4 changes: 4 additions & 0 deletions views/admin/grading.html
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,9 @@
<select onchange="gradeIndividualItem();" style="visibility: hidden; float:left; overflow-x: auto; margin-top: 25px; width:30%; margin-right: 5px;" size="10" id="gradingcolumn3"></select>
<p style="visibility: hidden">This paragraph takes up some space to deal with a funky display issue of the right side lumping over onto the left</p>

<button id="releasebutton" style="text-align: center; visibility: hidden;" class="list-group-item" onclick="release_grades();">Release Grades</button>


</div>


Expand Down Expand Up @@ -95,6 +98,7 @@ <h4 id="rightTitle"></h4>
var chapters = "{{=chapters}}".replace(/&#x27;/g,'"');
chapters = JSON.parse(chapters);
var students = '{{=students}}';
var assignmentids = "{{=assignmentids}}".replace(/&#x27;/g,'"');
</script>


Expand Down

0 comments on commit cac0c1c

Please sign in to comment.