@@ -193,7 +193,7 @@ def list_courses(self):
193
193
194
194
return retvalue
195
195
196
- def fetch_assignment (self , course_id , assignment_id ):
196
+ def fetch_assignment (self , course_id , assignment_id , replace_missing_files = False ):
197
197
with self .get_assignment_dir_config () as config :
198
198
try :
199
199
config = self .load_config ()
@@ -205,7 +205,9 @@ def fetch_assignment(self, course_id, assignment_id):
205
205
fetch = ExchangeFactory (config = config ).FetchAssignment (
206
206
coursedir = coursedir ,
207
207
authenticator = authenticator ,
208
- config = config )
208
+ config = config ,
209
+ replace_missing_files = replace_missing_files
210
+ )
209
211
fetch .start ()
210
212
211
213
except :
@@ -310,22 +312,22 @@ def post(self, action):
310
312
except web .MissingArgumentError :
311
313
data = self .get_json_body ()
312
314
315
+ assignment_id = data ['assignment_id' ]
316
+ course_id = data ['course_id' ]
317
+
313
318
if action == 'fetch' :
314
- assignment_id = data ['assignment_id' ]
315
- course_id = data ['course_id' ]
316
319
self .manager .fetch_assignment (course_id , assignment_id )
317
320
self .finish (json .dumps (self .manager .list_assignments (course_id = course_id )))
321
+ elif action == 'fetch_missing' :
322
+ self .manager .fetch_assignment (course_id , assignment_id , replace_missing_files = True )
323
+ self .finish (json .dumps (self .manager .list_assignments (course_id = course_id )))
318
324
elif action == 'submit' :
319
- assignment_id = data ['assignment_id' ]
320
- course_id = data ['course_id' ]
321
325
output = self .manager .submit_assignment (course_id , assignment_id )
322
326
if output ['success' ]:
323
327
self .finish (json .dumps (self .manager .list_assignments (course_id = course_id )))
324
328
else :
325
329
self .finish (json .dumps (output ))
326
330
elif action == 'fetch_feedback' :
327
- assignment_id = data ['assignment_id' ]
328
- course_id = data ['course_id' ]
329
331
self .manager .fetch_feedback (course_id , assignment_id )
330
332
self .finish (json .dumps (self .manager .list_assignments (course_id = course_id )))
331
333
@@ -367,7 +369,7 @@ def get(self):
367
369
#-----------------------------------------------------------------------------
368
370
369
371
370
- _assignment_action_regex = r"(?P<action>fetch|submit|fetch_feedback)"
372
+ _assignment_action_regex = r"(?P<action>fetch|fetch_missing| submit|fetch_feedback)"
371
373
372
374
default_handlers = [
373
375
(r"/assignments" , AssignmentListHandler ),
0 commit comments