- Sivusto hieman edustuksellisempi

Sun, 11 Jun 2017 01:28:25 +0300

author
Teemu Piippo <teemu@hecknology.net>
date
Sun, 11 Jun 2017 01:28:25 +0300
changeset 20
3199e289ae62
parent 19
16fa9fb20b32
child 21
6a0394d5a159

- 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

mercurial