diff options
-rwxr-xr-x | web/reports.cgi | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/web/reports.cgi b/web/reports.cgi index b9b584635..58e08b6aa 100755 --- a/web/reports.cgi +++ b/web/reports.cgi @@ -32,9 +32,15 @@ sub main { } my ($one_council, $area_type, $area_name); - if ($q_council =~ /^(\d\d)([a-z][a-z])?$/i) { - $one_council = $q_council; - my $va_info = mySociety::MaPit::get_voting_area_info($q_council); + if ($q_council =~ /^(\d\d[a-z]{2})[a-z]{2}$/i) { + my $va_info = mySociety::MaPit::get_voting_area_info(uc $q_council); + my $ward_name = $va_info->{name}; + $va_info = mySociety::MaPit::get_voting_area_info($va_info->{parent_area_id}); + my $council_name = $va_info->{name}; + print $q->redirect($base_url . '/reports/' . Page::short_name($council_name) . '/' . Page::short_name($ward_name)); + return; + } elsif ($q_council =~ /^(\d\d)([a-z][a-z])?$/i) { + my $va_info = mySociety::MaPit::get_voting_area_info(uc $q_council); $area_name = $va_info->{name}; print $q->redirect($base_url . '/reports/' . Page::short_name($area_name)); return; @@ -59,7 +65,6 @@ sub main { return; } } elsif ($q_council =~ /^\d+$/) { - $one_council = $q_council; my $va_info = mySociety::MaPit::get_voting_area_info($q_council); $area_name = $va_info->{name}; print $q->redirect($base_url . '/reports/' . Page::short_name($area_name)); |