def replaceMissingHWQ(server, pwd, student_id, question): if server and ":" in server: s, p = server.split(":") msgr = ScanMessenger(s, port=p) else: msgr = ScanMessenger(server) msgr.start() if not pwd: pwd = getpass.getpass("Please enter the 'scanner' password:"******"scanner", pwd) except PlomExistingLoginException as e: print( "You appear to be already logged in!\n\n" " * Perhaps a previous session crashed?\n" " * Do you have another scanner-script running,\n" " e.g., on another computer?\n\n" 'In order to force-logout the existing authorisation run "plom-scan clear"' ) exit(10) rval = msgr.replaceMissingHWQuestion( student_id=student_id, test=None, question=question) # can replace by SID or by test-number msgr.triggerUpdateAfterHWUpload() msgr.closeUser() msgr.stop() return rval
def uploadHWPages(bundle_name, skip_list, student_id, question, server=None, password=None): """Upload the hw pages to the server. hwpages uploaded to given student_id and question. Skips pages-image with orders in the skip-list (ie the page number within the bundle.pdf) Bundle must already be created. We will upload the files and then send a 'please trigger an update' message to the server. """ if server and ":" in server: s, p = server.split(":") msgr = ScanMessenger(s, port=p) else: msgr = ScanMessenger(server) msgr.start() # get the password if not specified if password is None: try: pwd = getpass.getpass("Please enter the 'scanner' password:"******"ERROR", error) else: pwd = password # get started try: msgr.requestAndSaveToken("scanner", pwd) except PlomExistingLoginException: print( "You appear to be already logged in!\n\n" " * Perhaps a previous session crashed?\n" " * Do you have another scanner-script running,\n" " e.g., on another computer?\n\n" 'In order to force-logout the existing authorisation run "plom-hwscan clear"' ) exit(10) file_list = [] # files are sitting in "bundles/submittedHWByQ/<bundle_name>" os.chdir(os.path.join("bundles", "submittedHWByQ", bundle_name)) # Look for pages in pageImages for ext in PlomImageExts: file_list.extend( sorted(glob(os.path.join("pageImages", "*.{}".format(ext))))) HWUP = sendHWFiles(msgr, file_list, skip_list, student_id, question, bundle_name) updates = msgr.triggerUpdateAfterHWUpload() # go back to original dir os.chdir("..") os.chdir("..") os.chdir("..") # close down messenger msgr.closeUser() msgr.stop() return [HWUP, updates]