def action(self, query, args=None): if query == None: return sqlResult = None attempt = 0 while attempt < 5: try: if args == None: #logger.debug(self.filename+": "+query) sqlResult = self.connection.execute(query) else: #logger.debug(self.filename+": "+query+" with args "+str(args)) logger.log(self.filename+": "+query+" with args "+str(args)) sqlResult = self.connection.execute(query, args) self.connection.commit() break except sqlite3.OperationalError, e: if "unable to open database file" in e.message or "database is locked" in e.message: logger.log('Database Error: %s' % e) attempt += 1 time.sleep(1) else: print 'Database error: %s' % e raise except sqlite3.DatabaseError, e: print 'Fatal Error executing %s :: %s' % (query, e) raise
def upload(self,*args,**kwargs): invul={} error=[] if kwargs: errorflag=False #check voor compleetheid if len(kwargs["klas"])==0: error.append("Geen klas ingevuld") errorflag=True invul['klas']="0" elif (kwargs['klas']=="nieuw" and len(kwargs['klasnieuw'])==0) or \ (kwargs['klas']=="nieuw" and not kwargs['klasnieuw'].isdigit()) or \ (kwargs['klas']=="nieuw" and not int(kwargs['klasnieuw']) in range(1,7)): error.append("Geen geldige nieuwe klas ingevuld") errorflag=True invul['klas']="nieuw" else: invul['klas']=kwargs['klas'] if len(kwargs["hoofdstuk"])==0: error.append("Geen hoofdstuk gekozen") errorflag=True invul['hoofdstuk']='' elif (kwargs['hoofdstuk']=="nieuw" and len(kwargs['hoofdstuknieuw'])==0): error.append("Geen nieuw hoofdstuk ingevuld hoofdstuk gekozen") errorflag=True invul['hoofdstuk']="nieuw" else: invul['hoofdstuk']=kwargs['hoofdstuk'] if len(kwargs["naam"])==0: error.append("Geen naam ingevuld") errorflag=True else: invul['naam']=kwargs['naam'] if 'cb' in kwargs.keys(): logger.log(kwargs['cb']) invul['cb']=kwargs['cb'] else: invul['cb']="off" if not helper.checkFile(kwargs['docxfile']): error.append("Geen geldig word-bestand") errorflag=True if len(kwargs['pdffile'].filename)>0 and not helper.checkFile(kwargs['pdffile'],"pdf"): error.append("Geen geldig pdf-bestand") errorflag=True if errorflag: myDB=db.DBConnection() items = myDB.select("SELECT hoofdstuk, klas FROM practica") return serve_template("upload.html",erro=error,bekenden=dict(items),ingevuld=invul) else: bestandsnamen = helper.processUpload(kwargs) return serve_template("uploaded.html",bestanden=bestandsnamen) myDB=db.DBConnection() items = myDB.select("SELECT hoofdstuk, klas FROM practica") return serve_template("upload.html",erro="",bekenden=dict(items),ingevuld={"klas":"0","hoofdstuk":"","Naam":"","cb":"off"})
def processUpload(kwargs): if kwargs['klas']=="nieuw": klas = kwargs['klasnieuw'] else: klas=kwargs['klas'] if kwargs['hoofdstuk'] =="nieuw": hoofdstuk = kwargs['hoofdstuknieuw'] else: hoofdstuk=kwargs['hoofdstuk'] naam = kwargs['naam'] if "cb" in kwargs.keys(): cb = True if not "cb" in naam.lower(): naam += " CB" else: cb=False vandaag = date.today().strftime("%Y-%m-%d") bestandsnaamenpad = practicumbank.PRACTICUM_DIR+"\\klas "+klas+"\\"+hoofdstuk+"\\"+naam+" - "+vandaag bestandspad = practicumbank.PRACTICUM_DIR+"\\klas "+klas+"\\"+hoofdstuk saveFile(kwargs['docxfile'],bestandspad,bestandsnaamenpad) retlist=[os.path.normpath(bestandsnaamenpad+".docx")] if checkFile(kwargs['pdffile'],"pdf"): saveFile(kwargs['pdffile'],bestandspad,bestandsnaamenpad) retlist.append(os.path.normpath(bestandsnaamenpad+".pdf")) try: query = "SELECT * FROM practica WHERE name = ?" mydb=db.DBConnection() indatabase = mydb.select(query, [naam]) except: indatabase=None if indatabase: files=list(indatabase[5]) files.extend(retlist) else: files=retlist controldict={"klas":int(klas),"hoofdstuk":hoofdstuk,"naam":naam} valdict={"cb":cb,"bestanden":str(files)} logger.log(str(controldict)+str(valdict)) savetodb("practica",controldict,valdict) return retlist
def initialize(): practicumbank.PAD = os.path.abspath(__file__) practicumbank.DIR = os.path.dirname(practicumbank.PAD) practicumbank.LOG_DIR = os.path.join(os.path.dirname(practicumbank.PAD),"logs") logger.pb_log_instance.initLogging() logger.log("initiating practicumbank") if not os.path.exists(practicumbank.LOG_DIR): try: os.makedirs(practicumbank.LOG_DIR) except: pass practicumbank.CONF = { '/': { 'tools.staticdir.root': os.path.join(practicumbank.DIR,'data') }, '/interfaces':{ 'tools.staticdir.on': True, 'tools.staticdir.dir': "interfaces" } } helper.dbcheck()