def prijava_post():
    pomozne.vrni_sejo()

    uporabnisko_ime = request.forms.get('uporabnisko_ime')
    uporabnik = modeli.podatki_uporabnika(uporabnisko_ime)

    if uporabnik == None:
        return template('prijava')

    zeton = pomozne.kriptiraj_geslo(request.forms.get('geslo'),
                                    uporabnik['sol'])

    if uporabnik['prijavni_zeton'] != zeton:
        return template('prijava')

    pomozne.dodaj_uporabnika_v_sejo(uporabnisko_ime)

    pack = pomozne.vrni_podatke_iz_seje()
    if pack != None and pack['kolo'] != None:
        modeli.dodaj_rezervacijo(pack['datum_od'], pack['datum_do'],
                                 pack['kolo'], pack['lokacija'],
                                 uporabnik['id'])
        pomozne.pobrisi_izbiro()
        return redirect('/zakljucek')

    if uporabnik['tip'] == Uporabnik.ADMINISTRATOR:
        return redirect('/admin')

    return redirect('/')
def registracija_post():
    pomozne.vrni_sejo()

    geslo = request.forms.get('geslo')
    potrditev = request.forms.get('potrditev')
    if geslo != potrditev:
        return template('registracija', napaka="Gesli se ne ujemata!")

    ime = request.forms.get('ime')
    priimek = request.forms.get('priimek')
    uporabnisko_ime = request.forms.get('uporabnisko_ime')
    email = request.forms.get('email')
    stevilka_osebne = request.forms.get('stevilka_osebne')

    if modeli.podatki_uporabnika(uporabnisko_ime) != None:
        return template('registracija',
                        napaka="Uporabniško ime je že zasedeno!")

    sol = random.randint(1, 100000000)
    prijavni_zeton = pomozne.kriptiraj_geslo(geslo, sol)

    modeli.dodaj_uporabnika(ime, 1, priimek, email, stevilka_osebne,
                            uporabnisko_ime, prijavni_zeton, sol,
                            Uporabnik.NAVADEN)

    pomozne.dodaj_uporabnika_v_sejo(uporabnisko_ime)

    return redirect('/')
def statistika():
    pomozne.vrni_sejo()

    uporabnisko_ime = pomozne.vrni_uporabnika_iz_seje()
    uporabnik = modeli.podatki_uporabnika(uporabnisko_ime)

    if uporabnik == None or uporabnik['tip'] != Uporabnik.ADMINISTRATOR:
        return redirect('/')

    return template('statistika',
                    podatki=modeli.statistika(uporabnik['lokacija']))
def indeks():
    pomozne.vrni_sejo()
    minDate = datetime.today().strftime('%Y, %m - 1, %d')

    uporabnisko_ime = pomozne.vrni_uporabnika_iz_seje()
    uporabnik = modeli.podatki_uporabnika(uporabnisko_ime)

    lokacije = modeli.vrni_lokacije()
    return template('indeks',
                    lokacije=lokacije,
                    minDate=minDate,
                    uporabnik=uporabnik)
def admin():
    pomozne.vrni_sejo()

    uporabnisko_ime = pomozne.vrni_uporabnika_iz_seje()
    uporabnik = modeli.podatki_uporabnika(uporabnisko_ime)

    if uporabnik == None or uporabnik['tip'] != Uporabnik.ADMINISTRATOR:
        return redirect('/')

    lokacija = modeli.vrni_lokacijo(uporabnik['lokacija'])
    rezervacije = modeli.vrni_rezervacije(lokacija['id'])
    izposoje = modeli.vrni_izposoje(lokacija['id'])

    return template('admin',
                    rezervacije=rezervacije,
                    izposoje=izposoje,
                    lokacija=lokacija)
def rezervacija():
    pomozne.vrni_sejo()

    kolo = request.forms.get('kolo')
    pack = pomozne.vrni_podatke_iz_seje()
    pack['kolo'] = kolo
    pomozne.dodaj_podatke_v_sejo(pack)

    uporabnisko_ime = pomozne.vrni_uporabnika_iz_seje()
    if uporabnisko_ime == None:
        redirect('/prijava')

    uporabnik = modeli.podatki_uporabnika(uporabnisko_ime)

    modeli.dodaj_rezervacijo(pack['datum_od'], pack['datum_do'], pack['kolo'],
                             pack['lokacija'], uporabnik['id'])
    pomozne.pobrisi_izbiro()

    return redirect('/zakljucek')
def izbira_kolesa():
    pomozne.vrni_sejo()

    format = '%Y-%m-%d'
    lokacija = request.forms.get('lokacija')
    f_od = request.forms.get('datum_od').strip()
    f_do = request.forms.get('datum_do').strip()
    if f_od == '' or f_do == '':
        return redirect('/')

    od = datetime.strptime(f_od, format).date()
    do = datetime.strptime(f_do, format).date()

    pack = {'lokacija': lokacija, 'datum_od': od, 'datum_do': do}
    pomozne.dodaj_podatke_v_sejo(pack)

    kolesa = modeli.vrni_kolesa(od, do)

    return template('izbira_kolesa', kolesa=kolesa)
def izposodi():
    pomozne.vrni_sejo()

    uporabnisko_ime = pomozne.vrni_uporabnika_iz_seje()
    uporabnik = modeli.podatki_uporabnika(uporabnisko_ime)

    if uporabnik == None or uporabnik['tip'] != Uporabnik.ADMINISTRATOR:
        return redirect('/')

    if 'izposodi' in request.POST:
        rez = request.forms.get('izposodi')
        modeli.izposodi_rezervacijo(rez, datetime.now().strftime('%Y-%m-%d'))
    elif 'prestavi' in request.POST:
        kolo = request.forms.get('prestavi')
        modeli.prestavi_kolo(kolo, uporabnik['lokacija'])
    elif 'vrni' in request.POST:
        iz = request.forms.get('vrni')
        modeli.zakljuci_izposojo(iz, datetime.now().strftime('%Y-%m-%d'))

    return redirect('/admin')
def prijava():
    pomozne.vrni_sejo()
    return template('prijava')
def odjava():
    pomozne.vrni_sejo()
    pomozne.odjavi_uporabnika()
    return redirect('/')
def registracija():
    pomozne.vrni_sejo()
    return template('registracija', napaka=None)
def zakljucek():
    pomozne.vrni_sejo()
    return template('zakljucek')