Compare commits
1 Commits
a872c70e93
...
moreOnStyl
Author | SHA1 | Date | |
---|---|---|---|
|
20db73836c |
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
__pycacahe__/*
|
@@ -7,4 +7,3 @@ Web app for tracking current ticket numbers
|
|||||||
- keep all ticket numbers and timestamps in SQL table "tickets"
|
- keep all ticket numbers and timestamps in SQL table "tickets"
|
||||||
- display last ticket number
|
- display last ticket number
|
||||||
- don't allow tickets that are out of probable ticket number range
|
- don't allow tickets that are out of probable ticket number range
|
||||||
- if last submited ticket is timestamped more then 90 minutes ago, try to predict the next number
|
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
from flask import render_template, request, redirect
|
from flask import render_template, request, redirect
|
||||||
from freeriders import app, db
|
from freeriders import app, db
|
||||||
from freeriders.models import Ticket
|
from freeriders.models import Ticket
|
||||||
from datetime import datetime
|
|
||||||
import time
|
import time
|
||||||
|
|
||||||
@app.route('/sms', methods=['GET'])
|
@app.route('/sms', methods=['GET'])
|
||||||
@@ -9,10 +8,7 @@ def sms():
|
|||||||
if request.method == 'GET':
|
if request.method == 'GET':
|
||||||
try:
|
try:
|
||||||
lastticket = Ticket.query.order_by(Ticket.timestamp.desc()).first()
|
lastticket = Ticket.query.order_by(Ticket.timestamp.desc()).first()
|
||||||
date = datetime.now()
|
return render_template('sms.html', ticket = lastticket)
|
||||||
datenow = f'{"{:02d}".format(date.day)}.{"{:02d}".format(date.month)}.{date.year}'
|
|
||||||
timenow = f'{"{:02d}".format(date.hour)}:{"{:02d}".format(date.minute)}:{date.second}'
|
|
||||||
return render_template('sms.html', ticket = lastticket, date = datenow, time = timenow)
|
|
||||||
except:
|
except:
|
||||||
return 'Error retriving last ticket'
|
return 'Error retriving last ticket'
|
||||||
else:
|
else:
|
||||||
|
@@ -1,9 +1,9 @@
|
|||||||
:root {
|
:root {
|
||||||
--border-radus: 1rem;
|
--border-radus: 1rem;
|
||||||
--background: #EEE;
|
--background: #F9F9F9;
|
||||||
--header-background: #DDD;
|
--header-background: #EEE;
|
||||||
--header-height: 3rem;
|
--header-height: 3rem;
|
||||||
--input-bar-height: 2rem;
|
--input-bar-height: 3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
body{
|
body{
|
||||||
@@ -14,14 +14,13 @@ body{
|
|||||||
}
|
}
|
||||||
|
|
||||||
main {
|
main {
|
||||||
max-width: 400px;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-self: flex-start;
|
align-self: flex-start;
|
||||||
gap: 1rem;
|
gap: 1rem;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
padding: 1rem 0.5rem;
|
padding: 2rem 0.5rem;
|
||||||
height: calc(100vh - 5rem);
|
height: calc(100vh - var(--header-height) - var(--input-bar-height));
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
@@ -30,22 +29,25 @@ header {
|
|||||||
background-color: var(--header-background);
|
background-color: var(--header-background);
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
padding: 1rem;
|
align-items: center;
|
||||||
|
padding: 0 1rem;
|
||||||
gap: 1rem;
|
gap: 1rem;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
width: 100vw;
|
width: 100vw;
|
||||||
height: var(header-height);
|
height: var(--header-height);
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
footer {
|
footer {
|
||||||
width: 100vw;
|
width: 100vw;
|
||||||
height: var(input-bar-height);
|
height: var(--input-bar-height);
|
||||||
background-color: #FDD;
|
background-color: var(--background);
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
padding: 0 1rem;
|
padding: 0 1rem;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
gap: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.request {
|
.request {
|
||||||
@@ -68,3 +70,11 @@ footer {
|
|||||||
align-self: center;
|
align-self: center;
|
||||||
margin-top: 0.5rem;
|
margin-top: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.textbox{
|
||||||
|
background-color: var(--header-background);
|
||||||
|
width: 80%;
|
||||||
|
height: 1rem;
|
||||||
|
padding: 0.2rem;
|
||||||
|
border-radius: 2rem;
|
||||||
|
}
|
@@ -20,8 +20,8 @@
|
|||||||
U Beogradu, za broj telefona ste kupili
|
U Beogradu, za broj telefona ste kupili
|
||||||
VREMENSKU KARTU OD 90 MINUTA U ZONI A po
|
VREMENSKU KARTU OD 90 MINUTA U ZONI A po
|
||||||
ceni od 50 din + osnovna cena poruke,
|
ceni od 50 din + osnovna cena poruke,
|
||||||
koja vazi do {{ date }}, {{ time }}.
|
koja vazi do 03.10.2023, 09:42:54.
|
||||||
Karta broj: {{ ticket }}.
|
Karta broj: 0000343232.
|
||||||
Placanjem operateru izmirujete dugovanja
|
Placanjem operateru izmirujete dugovanja
|
||||||
za ovu kartu prema JKP Naplata prevozne
|
za ovu kartu prema JKP Naplata prevozne
|
||||||
usluge Beograd. Sacuvajte ovu poruku.
|
usluge Beograd. Sacuvajte ovu poruku.
|
||||||
|
Reference in New Issue
Block a user