Sun, 11 Jun 2017 01:28:25 +0300
- Sivusto hieman edustuksellisempi
- Aikataulut ottavat edelliselle päivälle merkitty, mutta nykyiselle päivälle "vuotavat" vuorot huomioon (yölinjat)
buses.py | file | annotate | diff | comparison | revisions | |
busroute.py | file | annotate | diff | comparison | revisions | |
misc.py | file | annotate | diff | comparison | revisions | |
service.py | file | annotate | diff | comparison | revisions | |
static/style.css | file | annotate | diff | comparison | revisions | |
templates/ajovuoro.html | file | annotate | diff | comparison | revisions | |
templates/cluster.html | file | annotate | diff | comparison | revisions | |
templates/pysäkki.html | file | annotate | diff | comparison | revisions | |
tr/en.ini | file | annotate | diff | comparison | revisions | |
tr/fi.ini | file | annotate | diff | comparison | revisions | |
tr/sv.ini | file | annotate | diff | comparison | revisions |
--- 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:
--- 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:
--- 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)
--- 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ä/<cluster_name>') 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/<numero>') @@ -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/<path:path>') def static_file(path):
--- 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;
--- 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 @@ <style> body { - font-family: "Oxygen-Sans", FreeSans, Arial, sans-serif; + font-family: FreeSans, Arial, sans-serif; background: white; color: black; margin: 0;
--- a/templates/cluster.html Sat Jun 10 22:30:55 2017 +0300 +++ b/templates/cluster.html Sun Jun 11 01:28:25 2017 +0300 @@ -22,10 +22,10 @@ </p> <table id='aikataulu' cellspacing="0"> <tr> - <th class='sarake-aika'>Aika</th> - <th class='sarake-linja'>Linja</th> - <th class='sarake-määränpää'>Määränpää</th> - <th class='sarake-pysäkki'>Pysäkki</th> + <th class='sarake-aika'>{{tr('time', 'headings')}}</th> + <th class='sarake-linja'>{{tr('route', 'headings')}}</th> + <th class='sarake-määränpää'>{{tr('destination', 'headings')}}</th> + <th class='sarake-pysäkki'>{{tr('bus-stop', 'headings')}}</th> </tr> {% for rivi in aikataulu %} <tr class="{% if rivi['yö'] %} yö {% endif %}">
--- a/templates/pysäkki.html Sat Jun 10 22:30:55 2017 +0300 +++ b/templates/pysäkki.html Sun Jun 11 01:28:25 2017 +0300 @@ -15,14 +15,16 @@ — <a class="pysäkki-sijainti" href="{{linkki_karttaan}}" target="_blank">📌 ({{sijainti}})</a> </p> + {% if cluster %} <p> - <a href="/pysäkkiryhmä/{{cluster}}">Lähialueen aikataulu</a> + <a href="/pysäkkiryhmä/{{cluster}}">{{tr('nearby-area-schedule', 'misc-text')}}</a> </p> + {% endif %} <table id='aikataulu' cellspacing="0"> <tr> - <th class='sarake-aika'>Aika</th> - <th class='sarake-linja'>Linja</th> - <th class='sarake-määränpää'>Määränpää</th> + <th class='sarake-aika'>{{tr('time', 'headings')}}</th> + <th class='sarake-linja'>{{tr('route', 'headings')}}</th> + <th class='sarake-määränpää'>{{tr('destination', 'headings')}}</th> </tr> {% for rivi in aikataulu %} <tr class="{% if rivi['yö'] %} yö {% endif %}">
--- a/tr/en.ini Sat Jun 10 22:30:55 2017 +0300 +++ b/tr/en.ini Sun Jun 11 01:28:25 2017 +0300 @@ -9,3 +9,11 @@ linja-autoasema = Bus Station rautatieasema = 🚉 Central Railway Station kaarinan keskusta = Kaarina + +[misc-text] +right-now = now +nearby-area-schedule = Nearby area schedule +stops-in-cluster = Bus stops in this cluster + +[other] +locale = en_US.utf8
--- a/tr/fi.ini Sat Jun 10 22:30:55 2017 +0300 +++ b/tr/fi.ini Sun Jun 11 01:28:25 2017 +0300 @@ -6,3 +6,17 @@ kauppakeskus mylly = Mylly kaarinan keskusta = Kaarina rautatieasema = 🚉 Rautatieasema + +[headings] +time = Aika +route = Linja +bus-stop = Pysäkki +destination = Määränpää + +[misc-text] +right-now = nyt +stops-in-cluster = Pysäkit ryhmässä +nearby-area-schedule = Lähialueen aikataulu + +[other] +locale = fi_FI.utf8
--- a/tr/sv.ini Sat Jun 10 22:30:55 2017 +0300 +++ b/tr/sv.ini Sun Jun 11 01:28:25 2017 +0300 @@ -1675,6 +1675,7 @@ mäntymäki = Tallbacka moikoinen = Moikois naantali = Nådendal +naantalin keskusta = Nådendal centrum nummenmäki = Nummis paattinen = Patis papinsaari = Prästholmen @@ -1721,3 +1722,17 @@ lieto = Lundo koski tl = Koskis marttila = S:t Mårtens + +[headings] +time = Tid +route = Linje +bus-stop = Hållplats +destination = Destination + +[misc-text] +right-now = just nu +stops-in-cluster = Hållplatser runt här +nearby-area-schedule = Schema för närliggande hållplatser + +[other] +locale = sv_SE.utf8