# HG changeset patch # User Teemu Piippo # Date 1497133705 -10800 # Node ID 3199e289ae6243d68e0e19acfa0e37ccfad6fd4e # Parent 16fa9fb20b324d14ffc0e41172f72be34a189fb4 - Sivusto hieman edustuksellisempi - Aikataulut ottavat edelliselle päivälle merkitty, mutta nykyiselle päivälle "vuotavat" vuorot huomioon (yölinjat) diff -r 16fa9fb20b32 -r 3199e289ae62 buses.py --- a/buses.py Sat Jun 10 22:30:55 2017 +0300 +++ b/buses.py Sun Jun 11 01:28:25 2017 +0300 @@ -78,7 +78,8 @@ jää alimittaiseksi, mahdollisesti jopa tyhjäksi. ''' result = [] - date = tänään() + # -1 päivää yövuoroja varten + date = tänään() - timedelta(days = 1) # Niin kauan kuin aikatauluja ei ole vielä tarpeeksi, while len(result) < max_amount: try: diff -r 16fa9fb20b32 -r 3199e289ae62 busroute.py --- a/busroute.py Sat Jun 10 22:30:55 2017 +0300 +++ b/busroute.py Sun Jun 11 01:28:25 2017 +0300 @@ -113,6 +113,7 @@ 'Moisio': 25, 'Pääskyvuori': 100, 'Rautatieasema': 100, + 'Rymättylä': 50, } if 'Kauppatori' not in reitti: diff -r 16fa9fb20b32 -r 3199e289ae62 misc.py --- a/misc.py Sat Jun 10 22:30:55 2017 +0300 +++ b/misc.py Sun Jun 11 01:28:25 2017 +0300 @@ -8,19 +8,6 @@ return datetime.now() #return datetime.combine(tänään(), datetime.now().time()) -def time_representation(aika, suhteellinen = True): - erotus = aika - nyt() - if suhteellinen and erotus < timedelta(minutes = 1): - return 'nyt' - elif suhteellinen and erotus < timedelta(minutes = 10): - return '%dm' % round(erotus.seconds / 60) - elif aika.date() == tänään(): - return '%d:%02d' % (aika.hour, aika.minute) - elif erotus < timedelta(7): - return aika.strftime('%-a %H:%M') - else: - return aika.strftime('%-d.%-m. %H:%M') - def lue_csv(tiedosto, muunnokset = None): import csv lukija = csv.reader(tiedosto) diff -r 16fa9fb20b32 -r 3199e289ae62 service.py --- a/service.py Sat Jun 10 22:30:55 2017 +0300 +++ b/service.py Sun Jun 11 01:28:25 2017 +0300 @@ -11,7 +11,19 @@ app = Flask(__name__) # Varmista ettei järjestelmän kieliasetukset sotke muotoiluja -locale.setlocale(locale.LC_ALL, locale.getdefaultlocale()) +def reset_locale(): + locale.setlocale(locale.LC_ALL, locale.getdefaultlocale()) + +def activate_locale(language = None): + language = language or language_for_page() + class result: + def __enter__(self): + locale.setlocale(locale.LC_ALL, tr('locale', 'other', language = language)) + def __exit__(self, *args): + reset_locale() + return result() + +reset_locale() # Lataa käännökset class Translator: @@ -77,9 +89,25 @@ linkki_karttaan = pysäkki.sijainti.link_to_map, alue = pysäkki.alue, sijainti = pysäkki.sijainti, - cluster = pysäkki.cluster.name, + cluster = pysäkki.cluster.name if len(pysäkki.cluster.stops) > 1 else None, + tr = tr, ) +def time_representation(aika, suhteellinen = True): + erotus = aika - nyt() + if suhteellinen and erotus < timedelta(minutes = 1): + return tr('right-now', 'misc-text') + elif suhteellinen and erotus < timedelta(minutes = 10): + return '%dm' % round(erotus.seconds / 60) + elif aika.date() == tänään(): + return '%d:%02d' % (aika.hour, aika.minute) + elif erotus < timedelta(7): + with activate_locale(): + return aika.strftime('%-a %H:%M') + else: + with activate_locale(): + return aika.strftime('%-d.%-m. %H:%M') + @app.route('/pysäkkiryhmä/') def cluster_schedule(cluster_name): from buses import pysäkit, clusters_by_name @@ -110,7 +138,8 @@ 'name': tr(stop.nimi, 'pysäkit'), } for stop in cluster.stops), key = lambda stop: (len(stop['id']), stop['id']) - ) + ), + tr = tr, ) @app.route('/ajovuoro/') @@ -145,13 +174,14 @@ kyltti = supista_reitti([k['alue'] for k in suppea_reitti], kokonainen = True) sivu = suppea and 'ajovuoro-suppea.html' or 'ajovuoro.html' return render_template(sivu, - reitti = reitti, - suppea_reitti = suppea_reitti, - numero = numero, - linja = ajovuoro.linja.viite, - selite = ' - '.join(tr(paikka, 'paikat') for paikka in kyltti), - yö = time_representation(datetime.combine(tänään(), time()) + ajovuoro.reitti[-1].saapumisaika), - ) + reitti = reitti, + suppea_reitti = suppea_reitti, + numero = numero, + linja = ajovuoro.linja.viite, + selite = ' - '.join(tr(paikka, 'paikat') for paikka in kyltti), + yö = is_night_time(datetime.combine(tänään(), time()) + ajovuoro.reitti[-1].saapumisaika), + tr = tr, + ) @app.route('/static/') def static_file(path): diff -r 16fa9fb20b32 -r 3199e289ae62 static/style.css --- a/static/style.css Sat Jun 10 22:30:55 2017 +0300 +++ b/static/style.css Sun Jun 11 01:28:25 2017 +0300 @@ -1,6 +1,6 @@ body { - font-family: "Oxygen-Sans", "Latin Modern Sans", Tahoma, FreeSans, Arial, sans-serif; + font-family: FreeSans, helvetica, Arial, sans-serif; background: white; color: black; margin: 0; diff -r 16fa9fb20b32 -r 3199e289ae62 templates/ajovuoro.html --- a/templates/ajovuoro.html Sat Jun 10 22:30:55 2017 +0300 +++ b/templates/ajovuoro.html Sun Jun 11 01:28:25 2017 +0300 @@ -6,7 +6,7 @@