diff options
| author | Daniel Friesel <derf@finalrewind.org> | 2015-02-23 00:22:10 +0100 | 
|---|---|---|
| committer | Daniel Friesel <derf@finalrewind.org> | 2015-02-23 00:22:10 +0100 | 
| commit | a373d2bdc4f9f2ccd0720956d2ba2be4fdfe5002 (patch) | |
| tree | cde8ab4fbc3ad22ddf146f75fcfca4270e9ecc86 | |
| parent | 93b908f503359232a57c309c1d33d1462cf23849 (diff) | |
arrange most things by most things! (also, fugly code at the moment)
| -rw-r--r-- | index.pl | 17 | ||||
| -rw-r--r-- | templates/main.html.ep | 12 | 
2 files changed, 25 insertions, 4 deletions
| @@ -60,6 +60,8 @@ get '/2ddata.tsv' => sub {  		$msgnum = 0;  	} +	my $where_clause = '1 = 1'; +  	my $res = "x\ty\n";  	my $query; @@ -72,25 +74,32 @@ get '/2ddata.tsv' => sub {  		when ('weekhour') {  			$format = 'strftime("%w%H", scheduled_time, "unixepoch")';  		} +		when ('line') { +			$format = 'train_type || " " || line_no'; +			$where_clause = 'line_no is not null'; +		} +		when ('train_type') { +			$format = 'train_type'; +		}  	}  	given ($metric) {  		when ('delay') {  			$query = qq{  				select $format as aggregate, -				avg(delay) from $table where not is_canceled group by aggregate +				avg(delay) from $table where not is_canceled and $where_clause group by aggregate  			};  		}  		when ('cancel_num') {  			$query = qq{  				select $format as aggregate, -				count(is_canceled) from $table group by aggregate +				count(is_canceled) from $table where $where_clause group by aggregate  			};  		}  		when ('cancel_percent') {  			$query = qq{  				select $format as aggregate, -				avg(is_canceled) * 100 from $table group by aggregate +				avg(is_canceled) * 100 from $table where $where_clause group by aggregate  			};  		}  		when ('message_percent') { @@ -98,7 +107,7 @@ get '/2ddata.tsv' => sub {  				select $format as aggregate,  				avg(msgtable.train_id is not null) * 100 from departures  				left outer join msg_$msgnum as msgtable using -				(scheduled_time, train_id) group by aggregate +				(scheduled_time, train_id) where $where_clause group by aggregate  			};  		}  	} diff --git a/templates/main.html.ep b/templates/main.html.ep index e0e6205..d0bc8fa 100644 --- a/templates/main.html.ep +++ b/templates/main.html.ep @@ -104,6 +104,18 @@ show_bargraph('/2ddata.tsv?aggregate=weekday&metric=cancel_percent', 'Anteil Zug  show_bargraph('/2ddata.tsv?aggregate=weekhour&metric=delay', 'Durchschnittliche Verspätung nach Wochentag und Uhrzeit',  	'Tag/Stunde', 'Minuten'); +show_bargraph('/2ddata.tsv?aggregate=line&metric=delay', 'Durchschnittliche Verspätung nach Linie', +	'Typ', 'Minuten'); + +show_bargraph('/2ddata.tsv?aggregate=line&metric=cancel_percent', 'Anteil Zugausfälle nach Linie', +	'typ', 'Ausfälle [%]'); + +show_bargraph('/2ddata.tsv?aggregate=train_type&metric=delay', 'Durchschnittliche Verspätung nach Zugtyp', +	'Typ', 'Minuten'); + +show_bargraph('/2ddata.tsv?aggregate=train_type&metric=cancel_percent', 'Anteil Zugausfälle nach Zugtyp', +	'typ', 'Ausfälle [%]'); +  msglist = [[2, 'Polizeiliche Ermittlung'],  	[3, 'Feuerwehreinsatz neben der Strecke'],  	[5, 'Aerztliche Versorgung eines Fahrgastes'], | 
