Skip to content

Commit

Permalink
encoding for uploads, frontend enhancements
Browse files Browse the repository at this point in the history
  • Loading branch information
Sumukh committed Apr 9, 2016
1 parent 4a2392d commit 0572026
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 12 deletions.
7 changes: 5 additions & 2 deletions server/app/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -807,6 +807,7 @@ class AssignmentAPI(APIResource):
'methods': set(['POST']),
'web_args': {
'submitter': Arg(str, required=True),
'autograde': Arg(int, required=True),
'token': Arg(str)
}
}
Expand Down Expand Up @@ -910,6 +911,7 @@ def manual_submit(self, obj, user, data):
if not obj.can(user, need, obj):
raise need.exception()


# to avoid handling late submissions, make the submission time one
# second before due date
server_time = obj.due_date - datetime.timedelta(seconds=1)
Expand All @@ -918,7 +920,8 @@ def manual_submit(self, obj, user, data):
if not submitter:
raise BadValueError('User does not exist')

files = {f.filename: f.getvalue() for f in request.files.values()}
files = {f.filename: f.getvalue().decode('latin-1')
for f in request.files.values()}

files['submit'] = True # add a phony file

Expand All @@ -942,7 +945,7 @@ def manual_submit(self, obj, user, data):

final = submission.mark_as_final()

if obj.autograding_enabled and data['token']:
if obj.autograding_enabled and data['token'] and data['autograde']:
ag_results = autograde_subms(
obj,
user,
Expand Down
14 changes: 10 additions & 4 deletions server/static/js/admin/controllers.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,9 @@ app.controller("AssignmentDetailCtrl", ["$scope", "$window", "$stateParams", "As
app.controller("AssignmentSubmitCtrl", ["$scope", "$window", "$state", "$stateParams", "Assignment", "Course",
function ($scope, $window, $state, $stateParams, Assignment, Course) {

$scope.newSubmission = {}
$scope.newSubmission = {
'ag_toggle': true
}

$scope.course = Course.get({id: $stateParams.courseId});
$scope.assignment = Assignment.get({
Expand Down Expand Up @@ -103,8 +105,10 @@ app.controller("AssignmentSubmitCtrl", ["$scope", "$window", "$state", "$statePa
this.on("successmultiple", function(files, response) {
// Gets triggered when the files have successfully been sent.
// Redirect user or notify of success.
var data = response.data;

$window.swal({ title: "Success",
text: "Backup ID: " + response.data.final.submission.backup.id,
text: "Backup ID: " + data.final.submission.backup.id + ". Autograding:" + Boolean(data.autograder),
type: "success",
showCancelButton: true,
confirmButtonText: "View Code",
Expand All @@ -113,9 +117,11 @@ app.controller("AssignmentSubmitCtrl", ["$scope", "$window", "$state", "$statePa
closeOnCancel: true},
function(isConfirm){
if (isConfirm) {
$state.transitionTo("submission.final", { finalId: response.data.final.id});
$state.transitionTo("submission.final", { finalId: data.final.id});
} else {
$scope.newSubmission = {}
$scope.newSubmission = {
'ag_toggle': true
}
myDropzone.removeAllFiles(true);
}
});
Expand Down
19 changes: 13 additions & 6 deletions server/static/partials/admin/assignment.submit.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@

<section>
<div class="row">
<div class="col-md-3">
<div class="col-md-2">
</div>
<div class="col-md-6">
<div class="col-md-8">
<h2>Assignment: {{assignment.display_name}}</h2>

<div class="box" >
Expand All @@ -26,13 +26,20 @@ <h2>Assignment: {{assignment.display_name}}</h2>
<input ng-model="newSubmission.submitter" type="text" name="submitter" class="form-control input-lg" placeholder="student@cs61a.org">
</div>
<div ng-hide="!assignment.autograding_enabled">
<div class="form-group">
<label>Autograde</label>
<select name="autograde" type="select" class="form-control" ng-model="newSubmission.ag_toggle" ng-options="option for option in [false, true]">
</select>
</div>
</div>
<div ng-hide="!(assignment.autograding_enabled && newSubmission.ag_toggle)">
<div class="form-group">
<label>Ok Token</label>
<br>
<code>cd ~/.config/ok; python3 -c "import pickle; print(pickle.load(open('auth_refresh', 'rb'))['access_token'])"</code>

<code>cd ~/.config/ok;python3 -c "import pickle; print(pickle.load(open('auth_refresh', 'rb'))['access_token'])"; cd -;</code>
<br>
<input ng-model="newSubmission.token"
type="text" name="token" class="form-control input-lg" placeholder="ya29.foobar">
type="text" name="token" class="form-control input-lg" autocomplete="on" placeholder="ya29.foobar">
</div>
</div>

Expand All @@ -54,7 +61,7 @@ <h2>Assignment: {{assignment.display_name}}</h2>
</div>


<button type="submit" class="btn btn-block btn-primary btn-lg">Create New Submission</button>
<button type="submit" ng-disabled="!assignment.$resolved" class="btn btn-block btn-primary btn-lg">Create New Submission</button>
</form>
</div>

Expand Down

0 comments on commit 0572026

Please sign in to comment.