def updatePage(): session['rastit'] = db.getRastit(session['adminKilpailu']['id']) for x in range(len(session['rastit'])): session['rastit'][x]['query'] = m.buildQuery(url_for(u"rastilistaus"),{'index':unicode(x),'kNimi':session['adminKilpailu']['nimi']})+u"#footer" return render_template(u"rastilistaus.html", tempLon=tempLon, tempLat=tempLat, tempKoodi=tempKoodi, lanLabelError=lanLabelError, lonLabelError=lonLabelError, koodiLabelError=koodiLabelError, poistaError=poistaError)
def updatePage(): session['rastit'] = db.getRastit(session['adminKilpailu']['id']) for x in range(len(session['rastit'])): session['rastit'][x]['query'] = m.buildQuery( url_for(u"rastilistaus"), { 'index': unicode(x), 'kNimi': session['adminKilpailu']['nimi'] }) + u"#footer" resp = make_response( render_template(u"rastilistaus.xml", tempLon=tempLon, tempLat=tempLat, tempKoodi=tempKoodi, lanLabelError=lanLabelError, lonLabelError=lonLabelError, koodiLabelError=koodiLabelError, poistaError=poistaError)) resp.charset = "UTF-8" resp.headers.extend({'nextState': u"rastilistaus"}) resp.headers.extend({'updateFooter': session['updateFooter']}) resp.mimetype = "text/xml" return resp
def muokkaaJoukkue(): # Sivukohtaisen muuttujat kNimi = u"" joukkueNimi = u"" sarjat = [] joukkueNimiError = u"" jasenError = u"" poistoError = u"" rastit = [] kisaRastit = [] salasana = u"" salasanaError = u"" if session['kirjautunut'] == u"admin": try: args = request.args.get('jNimi') jNimi = m.unQuoteInput(args) joukkue = db.getJoukkueByNimi(jNimi) if joukkue is None: debug("Virhe: joukkuetta ei löyty. Palataan mainPageen.") return redirect(url_for(u"mainPage")) else: session['joukkue'] = joukkue except Exception as e: debug(e) if 'joukkue' not in session: debug(u"VIRHE: joukkue pitaisi olla maaritelty jo.") if 'kirjautunut' not in session: debug(u"VIRHE: kirjautunut pitaisi olla maaritelty jo.") # Tahan admin tarkistukset. if 'tempJasenet' not in session: session['tempJasenet'] = [u"",u"",u"",u"",u""] if 'tempSarjaNimi' not in session: session['tempSarja'] = u"" if 'tempJNimi' not in session: session['tempJNimi'] = u"" if 'nykyinenSarja' not in session: session['nykyinenSarja'] = u"" # TODO: admin ei voi ottaa sarjoja footerTextista! kisa = db.getKilpailu(session['joukkue']['id']) sarjat = db.getSarjatByKisaNimi(kisa['nimi']) # Haetaan joukkueen rastileimaukset. rastit = db.haeJoukkueenRastileimaukset(session['joukkue']['id']) kisaRastit = db.getRastit(session['adminKilpailu']['id']) debug(kisaRastit) for x in rastit: x['href'] = m.buildQuery(url_for(u"muokkaaTupa"), {'aika':x['tAika'],'koodi':x['rKoodi'],'jNimi':session['joukkue']['nimi']}) # Sivun uudelleen piirto funktio. def updatePage(): return render_template(u"muokkaaJoukkue.html", sarjat=sarjat, joukkueNimiError=joukkueNimiError, jasenError=jasenError, poistoError=poistoError, salasanaError=salasanaError, kisaRastit=kisaRastit, rastit=rastit) if request.method == u"GET": session['tempJNimi'] = session['joukkue']['nimi'] session['nykyinenSarja'] = db.getSarjaByJoukkueId(session['joukkue']['id'])['nimi'] session['tempJasenet'] = createJasentenNimet(5,session['joukkue']['jasenet']) if request.method == u"POST": # Lisataan rasti. if request.form.get('lisaaRasti') is not None: newRastiUrl = m.buildQuery(url_for(u"muokkaaTupa"),{'aika':u"",'koodi':u"",'jNimi':session['joukkue']['nimi']}) return redirect(newRastiUrl) # Admin tilaa varten. poista = None # Otetaan talteen lomakkeen tiedot. try: session['tempJNimi'] = request.form.get(u'joukkueNimi').strip() session['nykyinenSarja'] = request.form.get(u'SARJA') poista = request.form.get(u'poistaJoukkue') if session['kirjautunut'] == u"regular": salasana = request.form.get(u"newSalasana") jasenet = [] for x in range(5): jasenet.append(request.form.get(u"Jäsen"+ unicode(x+1)).strip()) session['tempJasenet'] = createJasentenNimet(5,jasenet) except Exception as e: debug(e) # Tarkistetaan lomaketiedot. # Tahan joukkueen poisto. if session['kirjautunut'] == u"admin" and poista is not None: if len(rastit) > 0: poistoError = u"Poistoa ei suoriteta: joukkueella leimauksia." return updatePage() else: db.poistaJoukkue(session['joukkue']['nimi']) session.pop('tempJNimi',None) session.pop('tempSarja',None) session.pop('nykyinenSarja',None) session.pop('tempJasenet',None) return redirect(url_for(u"mainPage")) # Onko joukkueen nimi tyhja? if len(session['tempJNimi']) == 0: joukkueNimiError = u"joukkue nimi ei saa olla tyhjä" return updatePage() # Onko tuon niminen joukkue jo olemassa? j = db.getJoukkueByNimi(session['tempJNimi']) if j is not None and j['nimi'] == session['tempJNimi'] and session['joukkue']['id'] != j['id']: joukkueNimiError = u"Saman niminen joukkue on jo olemassa." return updatePage() # Onko jasenia tarpeeksi? if len([x for x in session['tempJasenet'] if len(x) > 0]) < 2: jasenError = u"Jasenia taytyy olla vahintaan 2." return updatePage() # Jos salasanakenttaan on annettu jotain, niin luodaan uusi salasana. if len(salasana) > 0: d = hashlib.sha512() d.update(str(session['joukkue']['id'])) d.update(salasana) # Ei ehka pitaisi taalla tehda naita salasanajuttuja. Ehka # tietokannassa.... session['joukkue']['salasana'] = d.hexdigest().decode("UTF-8") # Jos tanne asti paastiin, niin tallennetaan. TODO: tarkista viela # poista juttu admin tilassa. kisa = db.getKilpailu(session['joukkue']['id']) newSarja = db.getSarjaByKisaNimi(kisa['nimi'],session['nykyinenSarja']) # Jos ei loydy sarjaa, niin huono homma. Palataan # jonnekin toiselle sivulle. if newSarja is None: debug("newSarja == None. Ei hyva.") if session['kirjautunut'] == u"admin": return redirect(url_for(u'mainPage')) elif session['kirjautunut'] == u"regular": return redirect(url_for(u'joukkuelistaus')) js = [x for x in session['tempJasenet'] if len(x) > 0] newJoukkue = {'id': session['joukkue']['id'],'nimi':session['tempJNimi'], 'sarja':newSarja['id'],'jasenet':unicode(json.dumps(js)), 'salasana': session['joukkue']['salasana']} if db.paivitaJoukkue(newJoukkue): # Hommaudutaan naista eroon. En tieda onko pakko... session['joukkue'] = db.getJoukkueById(session['joukkue']['id']) session.pop('tempJNimi',None) session.pop('nykyinenSarja',None) session.pop('tempJasenet',None) if session['kirjautunut'] == u'regular': return redirect(url_for(u"joukkuelistaus")) elif session['kirjautunut'] == u'admin': return redirect(m.buildQuery(url_for(u"muokkaaSarja"),{'sNimi':newSarja['nimi'],'kNimi':kisa['nimi']})) return updatePage()
def muokkaaTupa(): debug(request.args) aika = u"" koodi = u"" jNimi = u"" poista = None errorPoista = u"" errorAika = u"" alkuperainenJoukkue = u"" tupaData = {'aika':u"", 'koodi':u"", 'nimi':u""} rastit = [] try: rastit = db.getRastit(session['adminKilpailu']['id']) except Exception as e: debug(e) if 'muokkaaTupaAika' not in session: session['muokkaaTupaAika'] = u"ksdf" if 'muokkaaTupaPoista' not in session: session['muokkaaTupaPoista'] = None if 'alkuperainenTupa' not in session: session['alkuperainenTupa'] = None def updatePage(): return render_template(u"muokkaaTupa.html", rastit=rastit, koodi=koodi, errorAika=errorAika, errorPoista=errorPoista, aika=aika, jNimi=jNimi, alkuperainenJoukkue=alkuperainenJoukkue) def returnToPrevious(): return redirect(m.buildQuery(url_for(u"muokkaaJoukkue"),{'jNimi':session['joukkue']['nimi']})) if request.method == u"GET": try: aika = m.unQuoteInput(request.args.get('aika')) koodi = m.unQuoteInput(request.args.get('koodi')) jNimi = m.unQuoteInput(request.args.get('jNimi')) alkuperainenJoukkue = jNimi tupaData = db.getTupaData(aika,koodi,jNimi) if tupaData is not None: session['alkuperainenTupa'] = {'rId': tupaData['rid'], 'jId': tupaData['jid'], 'aika': tupaData['aika']} except Exception as e: debug(e) return updatePage() if request.method == u"POST": try: debug(request.form) aika = request.form.get('aika') koodi = request.form.get('sKoodi') jNimi = request.form.get('jNimi') poista = request.form.get('poistaTupa') #uusi = request.form.get('uusiTupa') alkuperainenJoukkue = request.form.get('alkuperainenJoukkue') #if uusi is not None: # session['alkuperainenTupa'] = None # aika = u"" # koodi = u"" # updatePage() # Poisto... if poista is not None: if session['alkuperainenTupa'] is None: return returnToPrevious() else: db.poistaTupa(session['alkuperainenTupa']) return returnToPrevious() # Tarkistukset. try: datetime.strptime(aika,u"%Y-%m-%d %H:%M:%S") except Exception as a: errorAika = u"Ajan täytyy olla muodoa yyyy-mm-dd hh:mm:ss" return updatePage() # Yritetaan tallentaa. # Tallenetaan ihan uusi... if len(errorAika) == 0 and session['alkuperainenTupa'] is None: r = db.getRastiByKilpailuAndKoodi(session['adminKilpailu']['id'],koodi) j = db.getJoukkueByNimi(alkuperainenJoukkue) db.tallennaTupa(r['id'],j['id'],aika) return returnToPrevious() # Tallennetaan olemassa oleva rasti. elif len(errorAika) == 0 and session['alkuperainenTupa'] is not None: r = db.getRastiByKilpailuAndKoodi(session['adminKilpailu']['id'],koodi) j = db.getJoukkueByNimi(alkuperainenJoukkue) debug(u"muokataan") db.muokkaaTupa(session['alkuperainenTupa'],r['id'],j['id'],aika) debug(u"muokataan2") return returnToPrevious() except Exception as e: debug(e) return returnToPrevious() return updatePage() return updatePage()
def rastilistaus(): tempLon = u"" tempLat = u"" tempKoodi = u"" tempPoista = None koodiLabelError = u"" lanLabelError = u"" lonLabelError = u"" poistaError = u"" kisaNimi = u"" if 'rastiNow' not in session: session['rastiNow'] = None def updatePage(): session['rastit'] = db.getRastit(session['adminKilpailu']['id']) for x in range(len(session['rastit'])): session['rastit'][x]['query'] = m.buildQuery(url_for(u"rastilistaus"),{'index':unicode(x),'kNimi':session['adminKilpailu']['nimi']})+u"#footer" return render_template(u"rastilistaus.html", tempLon=tempLon, tempLat=tempLat, tempKoodi=tempKoodi, lanLabelError=lanLabelError, lonLabelError=lonLabelError, koodiLabelError=koodiLabelError, poistaError=poistaError) if request.method == u"GET": try: debug(request.args) kisaNimi = request.args.get('kNimi') session['rastit'] = db.getRastit(session['adminKilpailu']['id']) try: rastiIndex = request.args.get('index') debug(rastiIndex) session['rastiNow'] = session['rastit'][int(rastiIndex)] except Excpetion as e: debug(e) tempLon = session['rastiNow']['lon'] tempLat = session['rastiNow']['lat'] tempKoodi = session['rastiNow']['koodi'] return updatePage() except Exception as e: debug(e) if request.method == u"POST": try: tempLon = request.form.get('lonLabel').strip() tempLat = request.form.get('lanLabel').strip() tempKoodi = request.form.get('koodiLabel').strip() tempPoista = request.form.get('poistaRasti') debug(request.form) # Tarkistukset. lat = None lon = None if tempPoista is not None: if session['rastiNow'] is not None: if session['rastiNow']['lkm'] > 0: poistaError = u"Rastia ei voi poistaa: rastilla on leimauksia." return updatePage() db.poistaRasti(session['rastiNow']['id']) session['rastiNow'] = None tempLon = u"" tempLat = u"" tempKoodi = u"" tempPoista = u"" return updatePage() debug(u"yeah") try: lat = float(tempLat) except: lanLabelError = u"Anna liukuluku" try: lon = float(tempLon) except: lonLabelError = u"Anna liukuluku" if len(tempKoodi) == 0: koodiLabelError = u"Et voi antaa koodiksi pelkkää tyhjää." if len(lanLabelError) > 0 or len(lonLabelError) > 0 or len(koodiLabelError) > 0: return updatePage() # Tallennetaan rasti. # Muokataan olemassa olevaa rastia. if session['rastiNow'] is not None: db.paivitaRasti({'id': session['rastiNow']['id'],'lat': lat, 'lon': lon, 'koodi': tempKoodi, 'kilpailu': session['adminKilpailu']['id']}) # Tallennetaan ihan uusi rasti. else: debug(u"yeah4") db.tallennaRasti({'lat': lat, 'lon': lon, 'koodi': tempKoodi,'kilpailu': session['adminKilpailu']['id']}) except Exception as e: debug(e) return redirect(url_for(u"mainPage")) session['rastiNow'] = None tempLon = u"" tempLat = u"" tempKoodi = u"" tempPoista = u"" return updatePage()