aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xweb/reports.cgi13
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));