def spremeni_oceno(): nova_ocena = request.forms.nova_ocena if (not nova_ocena): bottle.response.set_cookie('napaka', None, path='/', secret=secret) bottle.response.set_cookie('id_izleta', None, path='/', secret=secret) redirect(url('/moja_stran')) return ocena = int(nova_ocena) id_izleta = bottle.request.get_cookie('id_izleta', default=None, secret=secret) if (ocena > 10 or ocena < 1): bottle.response.set_cookie('napaka', 'Ocena mora biti med 1 in 10.', path='/', secret=secret) redirect(url('/moja_stran/uredi_oceno')) return cur.execute("UPDATE izlet SET ocena = %s WHERE id = %s", [ocena, id_izleta]) conn.commit() bottle.response.set_cookie('napaka', None, path='/', secret=secret) bottle.response.set_cookie('id_izleta', None, path='/', secret=secret) redirect(url('/moja_stran')) return
def sprememba_gesla(): email = request.forms.email geslo1 = request.forms.geslo1 geslo2 = request.forms.geslo2 if (geslo1 != geslo2): # Geslo se ne ujemata bottle.response.set_cookie('napaka', 'Gesli se ne ujemata.', path='/', secret=secret) redirect(url("/pozabljeno_geslo")) return cur.execute("SELECT * FROM osebe WHERE email = %s", [email]) oseba = cur.fetchone() if (oseba): geslo = password_hash(geslo1) cur.execute("UPDATE osebe SET geslo = %s WHERE email = %s", [geslo, email]) conn.commit() redirect(url("/spremenjeno_geslo")) return else: bottle.response.set_cookie('napaka', 'Ta email naslov ne obstaja.', path='/', secret=secret) redirect(url("/pozabljeno_geslo")) return
def narocilo(): uporabnik = request.get_cookie('uporabnik', secret=skrivnost) vrsta = request.forms.vrsta_zaloge kolicina = request.forms.kolicina if kolicina == '': nastaviSporocilo( 'Naročite lahko minimalno eno jed. Prosim izpolnite polje kolicina' ) redirect('/ponudba') #print(vrsta) #print(kolicina) cur.execute("SELECT cena FROM ponudba WHERE vrsta = %s", (vrsta, )) cena_jedi = cur.fetchone()[0] #print(cena_izdelka) cena_narocila = float(cena_jedi) * int(kolicina) #print(cena_narocila) try: cur.execute( "INSERT INTO narocila (id_narocnika, id_ponudbe, kolicina) VALUES ((SELECT id FROM narocniki WHERE up_ime=%s), (SELECT id FROM ponudba WHERE vrsta=%s), %s)", (uporabnik, vrsta, kolicina)) conn.commit() except Exception as ex: conn.rollback() #napaka = "Še enkrat preglejte Vaše naročilo" #response.set_cookie('vrsta', vrsta, secret=skrivnost) #response.set_cookie('kolicina', kolicina, secret=skrivnost) #return template('povzetek_narocila.html',vrsta=vrsta, kolicina=kolicina, cena_narocila=cena_narocila, napaka=napaka) nastaviSporocilo( "{uporabnik}, vaše naročilo je bilo uspešno oddano. Skupna cena naročila znaša {cena_narocila} €" .format(uporabnik=uporabnik, cena_narocila=cena_narocila)) redirect(url('/ponudba'))
def povecaj_zalogo_post(): #id = request.forms.id #zaloga_dodana = request.forms.zaloga_dodana id = request.forms.vrsta_zaloge zaloga_dodana = request.forms.kolicina_nove_zaloge #print(id) #print(zaloga_dodana) try: #cur.execute("UPDATE ponudba SET zaloga = zaloga + %s WHERE id = %s",(int(zaloga_dodana), int(id))) cur.execute("UPDATE ponudba SET zaloga = zaloga + %s WHERE vrsta = %s", (int(zaloga_dodana), id)) conn.commit() except Exception as ex: conn.rollback() cur.execute("SELECT vrsta FROM ponudba") ponudba = cur.fetchall() return template('povecaj_zalogo2.html', ponudba=ponudba, vrsta_zaloge='', kolicina_nove_zaloge='', napaka='Zgodila se je napaka: %s' % ex) nastaviSporocilo( "Število zaloge za {id} se je uspešno povečalo za {zaloga_dodana}.". format(id=id, zaloga_dodana=zaloga_dodana)) redirect(url('/vodenje_restavracija'))
def register_post(): """Registriraj novega uporabnika.""" ime = request.forms.ime priimek = request.forms.priimek email = request.forms.email # email = password_hash(email) drzavljanstvo = request.forms.drzavljanstvo geslo1 = request.forms.geslo1 geslo2 = request.forms.geslo2 # cur.execute("SELECT id, ime FROM drzave") # drzave = cur.fetchall() # Ali uporabnik že obstaja? cur.execute("SELECT * FROM osebe WHERE email = %s", [email]) if cur.fetchone(): # Uporabnik že obstaja bottle.response.set_cookie('napaka', 'Ta E-mail že obstaja.', path='/', secret=secret) redirect(url("/registracija/")) return # return bottle.template("registracija.tpl", drzave=drzave, # napaka='Ta E-mail že obstaja', oseba=None) elif not geslo1 == geslo2: # Geslo se ne ujemata bottle.response.set_cookie('napaka', 'Gesli se ne ujemata.', path='/', secret=secret) redirect(url("/registracija/")) return # return bottle.template("registracija.tpl", drzave=drzave, # napaka='Gesli se ne ujemata', oseba=None) else: # Vse je v redu, vstavi novega uporabnika v bazo geslo = password_hash(geslo1) cur.execute( "INSERT INTO osebe (ime, priimek, drzavljanstvo, email, geslo) VALUES (%s, %s, %s, %s, %s)", (ime, priimek, drzavljanstvo, email, geslo)) conn.commit() # Daj uporabniku cookie bottle.response.set_cookie('email', email, path='/', secret=secret) bottle.response.set_cookie('geslo', geslo, path='/', secret=secret) bottle.redirect(url("/")) return
def dodaj_zaposlenega_post(): ime = request.forms.ime priimek = request.forms.priimek placa = request.forms.placa rojstvo = request.forms.rojstvo telefon = request.forms.telefon uporabnisko_ime = request.forms.uporabnisko_ime geslo1 = request.forms.geslo1 geslo2 = request.forms.geslo2 #print(placa) #print(rojstvo) #jezekdotak=cur.execute("SELECT * FROM narocniki WHERE up_ime=%s", (uporabnisko_ime)) if preveri_za_narocnika(uporabnisko_ime) == False: return template( 'dodaj_zaposlenega.html', ime=ime, priimek=priimek, placa=placa, rojstvo=rojstvo, telefon=telefon, uporabnisko_ime=uporabnisko_ime, geslo1=geslo1, geslo2=geslo2, napaka='Restavracija že ima člana s tem uporabniškim imenom') if geslo1 != geslo2: return template('dodaj_zaposlenega.html', ime=ime, priimek=priimek, placa=placa, rojstvo=rojstvo, telefon=telefon, uporabnisko_ime=uporabnisko_ime, geslo1=geslo1, geslo2=geslo2, napaka='Gesli se ne ujemata') else: try: geslo = password_hash(geslo1) cur.execute( "INSERT INTO zaposleni (ime, priimek, telefon, placa, rojstvo, up_ime, geslo) VALUES (%s, %s, %s, %s, %s, %s, %s)", (ime, priimek, telefon, placa, rojstvo, uporabnisko_ime, geslo)) conn.commit() except Exception as ex: conn.rollback() return template('dodaj_zaposlenega.html', ime=ime, priimek=priimek, placa=placa, rojstvo=rojstvo, telefon=telefon, uporabnisko_ime=uporabnisko_ime, geslo1=geslo1, geslo2=geslo2, napaka='Zgodila se je napaka') nastaviSporocilo('Nov član je bil uspešno dodan') redirect(url('vodenje_restavracija'))
def stran_uporabnika(): email = request.forms.email geslo = request.forms.geslo geslo = password_hash(geslo) cur.execute("SELECT * FROM osebe WHERE email = %s AND geslo = %s", [email, geslo]) oseba = cur.fetchone() if oseba: bottle.response.set_cookie('email', email, path='/', secret=secret) bottle.response.set_cookie('geslo', geslo, path='/', secret=secret) redirect(url("/")) return else: bottle.response.set_cookie('napaka', "Email in geslo se ne ujemata.", path='/', secret=secret) redirect(url("/prijava")) return
def prijava(): uporabnik = request.forms.uporabnisko_ime geslo = request.forms.geslo #print(uporabnik) #print(geslo) if uporabnik == '' or geslo == '': #print('podatki manjkajo') nastaviSporocilo('Uporabniško ima in geslo morata biti neprazna') redirect(url('/')) return hashBaza_zaposlen = None hashBaza_narocnik = None try: cur.execute("SELECT geslo FROM zaposleni WHERE up_ime = %s", (uporabnik, )) hashBaza_zaposlen = cur.fetchone()[0] #print(hashBaza_zaposlen) except: hashBaza_zaposlen = None try: cur.execute("SELECT geslo FROM narocniki WHERE up_ime = %s", (uporabnik, )) hashBaza_narocnik = cur.fetchone()[0] #print(hashBaza_narocnik) except: hashBaza_narocnik = None #print(hashBaza_zaposlen) #print(hashBaza_narocnik) if hashBaza_narocnik is None and hashBaza_zaposlen is None: #print('ne obstaja niti narocnik, niti zaposlen') nastaviSporocilo('Uporabniško ime ali geslo ni ustrezno') redirect(url('/')) return if hashBaza_zaposlen is None: #print('zaposlen is None') if password_hash(geslo) != hashBaza_narocnik: #print('geslo narocnik se ne ujema') nastaviSporocilo('Uporabniško ime ali geslo ni ustrezno') redirect(url('/')) return #print('narocnika smo uspesno prijavili') response.set_cookie('uporabnik', uporabnik, secret=skrivnost) nastaviSporocilo( "{0} pozdravljen! Preglej našo današnjo ponudbo in če želiš, oddaj naročilo." .format(uporabnik)) redirect(url('/ponudba')) #if hashBaza_narocnik is not None: # nastaviSporocilo('Uporabniško geslo ali ime nista ustrezni') # redirect('/') # return if password_hash(geslo) != hashBaza_zaposlen: #print('geslo zaposlen se ne ujema') nastaviSporocilo('Uporabniško ime ali geslo ni ustrezno') redirect(url('/')) return response.set_cookie('uporabnik', uporabnik, secret=skrivnost) #print('zaposlenega smo uspešno prijavili') nastaviSporocilo("{0} pozdravljen!".format(uporabnik)) redirect(url('/vodenje_restavracija'))
def dodaj_transakcijo_post(): znesek = request.forms.znesek racun = request.forms.racun opis = request.forms.opis try: cur.execute( "INSERT INTO transakcija (znesek, racun, opis) VALUES (%s, %s, %s)", (znesek, racun, opis)) conn.commit() except Exception as ex: conn.rollback() return template('dodaj_transakcijo.html', znesek=znesek, racun=racun, opis=opis, napaka='Zgodila se je napaka: %s' % ex) redirect(url('index'))
def priljubljeni_izleti_post(id_izleta): email = bottle.request.get_cookie('email', default=None, secret=secret) geslo = bottle.request.get_cookie('geslo', default=None, secret=secret) cur.execute("SELECT * FROM osebe WHERE email = %s AND geslo = %s", [email, geslo]) oseb_a = cur.fetchone() print("oseba je: ", oseb_a) trenutni_datum = datetime.today().strftime('%Y-%m-%d') cur.execute( """ INSERT INTO izlet (oseba, transport, datum, ocena) VALUES (%s, %s, %s, %s) RETURNING id """, [oseb_a[0], id_izleta, trenutni_datum, 0]) # ocena na zacetku nic. redirect(url("/moja_stran")) #vrne na mojo stran return
def spremeni_placo_post(): priimek = request.forms.zaposleni spremeni_placo = request.forms.spremeni_placo try: cur.execute( "UPDATE zaposleni SET placa = placa + %s WHERE priimek = %s", (float(spremeni_placo), priimek)) conn.commit() except Exception as ex: cur.execute("SELECT priimek FROM zaposleni") zaposleni = cur.fetchall() #conn.rollback() return template('spremeni_placo.html', zaposleni=zaposleni, spremeni_placo='', napaka='Sprememba plače krši delovno pogodbo') nastaviSporocilo( "Plača {priimek} je bila uspešno spremenjena za {spremeni_placo}.". format(priimek=priimek, spremeni_placo=spremeni_placo)) redirect(url('vodenje_restavracija'))
def dodaj_ponudbo_post(): vrsta = request.forms.vrsta cena = request.forms.cena zaloga = request.forms.zaloga try: cur.execute( "INSERT INTO ponudba (vrsta, cena, zaloga) VALUES (%s, %s, %s)", (vrsta, cena, zaloga)) conn.commit() except Exception as ex: conn.rollback() return template('ponudba2.html', vrsta=vrsta, cena=cena, zaloga=zaloga, napaka='Zgodila se je napaka: %s' % ex) nastaviSporocilo( "V ponudbo je bilo uspešno dodano {zaloga} {vrsta}, cena bo {cena} €.". format(vrsta=vrsta, cena=cena, zaloga=zaloga)) redirect(url('/vodenje_restavracija'))
def oddaj_narocilo(): uporabnisko_ime = request.forms.uporabnisko_ime vrsta = request.forms.vrsta kolicina = request.forms.kolicina try: cur.execute("SELECT cena FROM ponudba WHERE id = %s" % int(vrsta)) cena_izdelka = cur.fetchone()[0] cur.execute("UPDATE ponudba SET zaloga = zaloga - %s WHERE id = %s", (int(kolicina), int(vrsta))) cur.execute( "INSERT INTO narocila(stevilka_narocila, uporabnisko_ime,vrsta,kolicina,cena) VALUES(DEFAULT, %s,%s,%s,%s)", (uporabnisko_ime, vrsta, kolicina, int(kolicina) * cena_izdelka)) conn.commit() except Exception as ex: conn.rollback() return template('oddaj_narocilo.html', uporabnisko_ime='', vrsta='', kolicina='', napaka='Zgodila se je napaka: %s' % ex) redirect(url('/'))
def registracija_post(): ime = request.forms.ime priimek = request.forms.priimek kraj = request.forms.kraj naslov = request.forms.naslov telefon = request.forms.telefon uporabnisko_ime = request.forms.uporabnisko_ime geslo1 = request.forms.geslo1 geslo2 = request.forms.geslo2 #jezekdotak=cur.execute("SELECT * FROM narocniki WHERE up_ime=%s", (uporabnisko_ime)) if preveri_za_narocnika(uporabnisko_ime) == False: return template( 'registracija.html', ime=ime, priimek=priimek, kraj=kraj, naslov=naslov, telefon=telefon, uporabnisko_ime=uporabnisko_ime, geslo1=geslo1, geslo2=geslo2, napaka='Uporabnik s tem uporabniškim imenom že obstaja') #return template('registracija.html', ime='', priimek='', kraj='', naslov='', telefon='', uporabnisko_ime='', geslo1='', geslo2='', #napaka = 'Uporabnik s tem uporabniškim imenom že obstaja') #nastaviSporocilo('Uporabnik s tem imenom že obstaja') #redirect('/registracija') if geslo1 != geslo2: return template('registracija.html', ime=ime, priimek=priimek, kraj=kraj, naslov=naslov, telefon=telefon, uporabnisko_ime=uporabnisko_ime, geslo1=geslo1, geslo2=geslo2, napaka='Gesli se ne ujemata') #return template('registracija.html', ime='', priimek='', kraj='', naslov='', telefon='', uporabnisko_ime='', geslo1='', geslo2='', # napaka = 'Gesli se ne ujemata') #nastaviSporocilo('Gesli se ne ujemata') #redirect('/registracija') else: try: geslo = password_hash(geslo1) cur.execute( "INSERT INTO narocniki (ime, priimek, kraj, naslov, telefon, up_ime, geslo) VALUES (%s, %s, %s, %s, %s, %s, %s)", (ime, priimek, kraj, naslov, telefon, uporabnisko_ime, geslo)) conn.commit() #response.set_cookie('uporabnisko_ime', uporabnisko_ime, secret=skrivnost) except Exception as ex: conn.rollback() return template('registracija.html', ime=ime, priimek=priimek, kraj=kraj, naslov=naslov, telefon=telefon, uporabnisko_ime=uporabnisko_ime, geslo1=geslo1, geslo2=geslo2, napaka='Zgodila se je napaka: %s' % ex) #nastaviSporocilo('Zgodila se je napaka') #redirect('/registracija') nastaviSporocilo('Registracija uspešna. Lahko se prijavite.') redirect(url('/'))
def odjava(): response.delete_cookie('uporabnik') nastaviSporocilo('Odjava uspešna. Lep pozdrav in nasvidenje.') redirect(url('/'))
def odjava(): print("odjavljam se") bottle.response.set_cookie('email', None, path='/', secret=secret) bottle.response.set_cookie('geslo', None, path='/', secret=secret) redirect(url("/")) return
def spremeni(): novo_ime = request.forms.ime novi_priimek = request.forms.priimek nov_email = request.forms.email novo_drzavljanstvo = request.forms.drzavljanstvo novo_geslo1 = request.forms.geslo1 novo_geslo2 = request.forms.geslo2 email = bottle.request.get_cookie('email', default=None, secret=secret) geslo = bottle.request.get_cookie('geslo', default=None, secret=secret) cur.execute("SELECT * FROM osebe WHERE email = %s AND geslo = %s", [email, geslo]) oseba = cur.fetchone() print(novo_ime, novi_priimek, novo_drzavljanstvo, nov_email, novo_geslo1) # cur.execute("SELECT ime FROM drzave WHERE id = %s", [oseba[3]]) # drzava = cur.fetchone() if (novo_geslo1 != novo_geslo2): bottle.response.set_cookie('napaka', 'Gesli se ne ujemata.', path='/', secret=secret) redirect(url('/nastavitve')) return # return bottle.template("nastavitve.tpl", drzava=drzava[0], # napaka='Gesli se ne ujemata') if novo_ime == "" or None: novo_ime = oseba[1] if novi_priimek == "" or None: novi_priimek = oseba[2] if nov_email == "" or None: nov_email = oseba[4] else: cur.execute("SELECT * FROM osebe WHERE email = %s", [nov_email]) if (cur.fetchone()): bottle.response.set_cookie('napaka', 'Email že obstaja.', path='/', secret=secret) redirect(url('/nastavitve')) return if novo_geslo1 == "" or None: novo_geslo1 = oseba[5] else: novo_geslo1 = password_hash(novo_geslo1) print(novo_ime, novi_priimek, novo_drzavljanstvo, nov_email, novo_geslo1) cur.execute( """ UPDATE osebe SET ime = %s, priimek = %s, drzavljanstvo = %s, email = %s, geslo = %s WHERE id = %s """, [ novo_ime, novi_priimek, novo_drzavljanstvo, nov_email, novo_geslo1, oseba[0] ]) conn.commit() bottle.response.set_cookie('email', nov_email, path='/', secret=secret) bottle.response.set_cookie('geslo', novo_geslo1, path='/', secret=secret) # if (nov_email != oseba[4]): # cur.execute(" UPDATE osebe SET email = %s WHERE redirect(url("/nastavitve")) return
def najdi_oceno(): id_izleta = request.forms.uredi bottle.response.set_cookie('id_izleta', id_izleta, path='/', secret=secret) redirect(url('/moja_stran/uredi_oceno')) return