saraconta / OPB-kozmeticni-salon

MIT License
0 stars 1 forks source link

Datum se ne zapiše v URL #1

Closed klaratravnik closed 1 year ago

klaratravnik commented 1 year ago

Pozdravljena,

danes smo že vprašali glede datuma, ki se nam noče lepo zapisati v url v html-ju 'termin.html'. Formo v html-ju smo zdaj spremenile, da se kliče s funkcijo url, ampak nam še vedno ne dela. Datum se zapiše kot /?datum=2023-06-20 in zato ne preusmeri na željeno stran. Mislim, da je težava v funkciji termin_stranka v app.py, kjer datum v return template kličemo kot datum='', vendar nevemo, kako bi to drugače naredili.

Hvala za pomoč, Klara

majbc1999 commented 1 year ago

Živjo,

našel sem način, kako zaobiti težavo. Bottle nikakor noče datuma (stringa) dati v url in ga zato pošilja kot parameter. V app.py boste morali dodati funkcijo, ki sprejme datum in ga redirecta na pravilen url (v funkcijo termin_ura).

@get('/termin/<id_storitev:int>/<id_usluzbenec:int>/')
def termin_date_conversion(id_usluzbenec, id_storitev):
    datum = request.query.datum # dobimo datum iz urlja
    year = datum[0:4]
    month = datum[5:7]
    day = datum[8:10]

    # redirect na termin_ura s pravilno oblikovanim datumom
    return redirect(url('termin_ura', id_usluzbenec=id_usluzbenec, id_storitev=id_storitev, year=year, month=month, day=day))

Funkcijo termin_ura bo treba spremeniti, tako da dobi prave parametre:

@get('/termin/<id_storitev:int>/<id_usluzbenec:int>/<year:int>-<month:int>-<day:int>')
#@cookie_required
def termin_ura(id_usluzbenec, id_storitev, year, month, day):
    datum = f"{year}-{month}-{day}"  # nastavimo parameter datum
    cur.execute("""
      select 
      t.datum::time zacetek,  t.datum::time + (s.trajanje * interval '1 Minute' ) konec
      from termin1 t
    ...

V termin.html bo treba spremeniti še redirect:

<form action="{{url('termin_date_conversion', id_usluzbenec=id_usluzbenec, id_storitev=id_storitev, datum=datum)}}" method="GET">

Najbrž obstaja bolj eleganten način za rešitev tega problema, ampak ga vsaj zaenkrat nisem našel.

klaratravnik commented 1 year ago

Najlepša hvala za pomoč, je uspelo :)