def POST(self): form = self.consolidateform() if not form.validates(): return render.consolidata(form, challenges.current()['image']) elif form['key'].value != challenges.key: return 'You are out of sync, please reload! ({},{})'.format(form['key'].value, challenges.key) else: savedir = path.expanduser('~/.scaleupbrazil/consolidated/') if form['unreadable'].checked: savedir = path.join(savedir, 'unreadable') safewrite( path.join(savedir, challenges.current()['id']), form['consolidated'].value) challenges.shift() if challenges.current(): return render.consolidata(self.consolidateform(), challenges.current()['image']) else: return 'Congratulations, you are done!'
def POST(self): if not logged_in(): raise web.seeother('/login') params = web.input(msg="") form = self.uploadform() if not form.validates(): ## TODO -- there must be a better way to add arguments to ## a redirect, but i haven't been able to find it yet web.debug('upload form failed validation...') return render.uploadscans(form, quests, len(quests), params['msg']) #raise web.seeother('/upload?msg=That appears to be an invalid questionnaire number.') else: qnum = form['Arquivo'].name # this is all to get the filename (on the client side), # which we need to determine that it's tiff or pdf... # see: https://groups.google.com/forum/?fromgroups=#!topic/webpy/2k3x6ULb5t8 # and http://epydoc.sourceforge.net/stdlib/cgi.FieldStorage-class.html ri = web.webapi.rawinput() infilename = ri['Arquivo'].filename if infilename.lower().endswith('pdf'): filetype = 'pdf' elif infilename.lower().endswith('tiff'): filetype = 'tiff' else: raise web.seeother('/upload?msg=Unrecognized file type! I know pdf and tiff.') ## TODO -- determine whether questionnaire is pdf or tiff... fn = path.expanduser(save_dir) + '/' + form['Questionario'].value + '.' + filetype web.debug('writing to ' + fn) ## TODO -- detect problems here... safewrite(fn, form['Arquivo'].value) quests.remove(form['Questionario'].value) raise web.seeother('/upload?msg=Upload sucessful.')