diff options
-rwxr-xr-x | bin/import-categories | 79 | ||||
-rwxr-xr-x | web-admin/index.cgi | 9 |
2 files changed, 84 insertions, 4 deletions
diff --git a/bin/import-categories b/bin/import-categories new file mode 100755 index 000000000..f0f6ff88f --- /dev/null +++ b/bin/import-categories @@ -0,0 +1,79 @@ +#!/usr/bin/perl -w + +# import-categories: +# Initial choice of categories for councils. Most likely wrong. +# +# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved. +# Email: matthew@mysociety.org. WWW: http://www.mysociety.org +# +# $Id: import-categories,v 1.1 2007-03-21 15:48:31 matthew Exp $ + +use strict; +require 5.8.0; + +# Horrible boilerplate to set up appropriate library paths. +use FindBin; +use lib "$FindBin::Bin/../perllib"; +use lib "$FindBin::Bin/../../perllib"; + +use mySociety::Config; +use mySociety::DBHandle qw(dbh select_all); +use mySociety::MaPit; +use mySociety::Util; +use mySociety::VotingArea; + +BEGIN { + mySociety::Config::set_file("$FindBin::Bin/../conf/general"); + mySociety::DBHandle::configure( + Name => mySociety::Config::get('BCI_DB_NAME'), + User => mySociety::Config::get('BCI_DB_USER'), + Password => mySociety::Config::get('BCI_DB_PASS'), + Host => mySociety::Config::get('BCI_DB_HOST', undef), + Port => mySociety::Config::get('BCI_DB_PORT', undef) + ); +} + +my @district_cats = ( + 'Abandoned vehicles', 'Car parking', 'Dog fouling', 'Flyposting', 'Flytipping', + 'Graffiti', 'Parks/landscapes', 'Public toilets', 'Rubbish (refuse and recycling)', + 'Street nameplates', 'Street cleaning', 'Trees' +); +my @county_cats = ( + 'Bus stops', 'Pavements/footpaths', 'Potholes', 'Roads/highways', + 'Road traffic signs', 'Street lighting', 'Traffic lights' +); + +my @councils; +foreach my $type (@$mySociety::VotingArea::council_parent_types) { + my $areas = mySociety::MaPit::get_areas_by_type($type); + push @councils, @$areas; +} +my $councils = mySociety::MaPit::get_voting_areas_info(\@councils); +foreach my $id (keys %$councils) { + my $type = $councils->{$id}->{type}; + my ($email,$confirmed) = dbh()->selectrow_array( + "SELECT email,confirmed FROM contacts WHERE deleted='f' + and area_id=? AND category='Other'", {}, $id); + next unless $email; + if ($type eq 'DIS') { + add_categories($id, $email, $confirmed, @district_cats); + } elsif ($type eq 'CTY') { + add_categories($id, $email, $confirmed, @county_cats); + } else { + add_categories($id, $email, $confirmed, @district_cats, @county_cats); + } +} +# dbh()->commit(); + +sub add_categories { + my ($id, $email, $confirmed, @cats) = @_; + foreach (@cats) { + dbh()->do("insert into contacts + (area_id, category, email, editor, whenedited, note, confirmed, deleted) + values + (?, ?, ?, 'import', ms_current_timestamp(), 'Initial copy', ?, 0)", {}, + $id, $_, $email, ($confirmed ? 1 : 0) + ); + } +} + diff --git a/web-admin/index.cgi b/web-admin/index.cgi index 5944fd5e5..6718f63ae 100755 --- a/web-admin/index.cgi +++ b/web-admin/index.cgi @@ -7,10 +7,10 @@ # Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved. # Email: francis@mysociety.org; WWW: http://www.mysociety.org/ # -# $Id: index.cgi,v 1.13 2007-03-21 14:45:45 matthew Exp $ +# $Id: index.cgi,v 1.14 2007-03-21 15:48:31 matthew Exp $ # -my $rcsid = ''; $rcsid .= '$Id: index.cgi,v 1.13 2007-03-21 14:45:45 matthew Exp $'; +my $rcsid = ''; $rcsid .= '$Id: index.cgi,v 1.14 2007-03-21 15:48:31 matthew Exp $'; use strict; @@ -245,7 +245,7 @@ sub do_council_contacts ($$) { } print $q->start_table({border=>1}); - print $q->th({}, ["Category", "Email", "Confirmed", "Deleted", "Editor", "Note", "When edited"]); + print $q->th({}, ["Category", "Email", "Confirmed", "Deleted", "Last editor", "Note", "When edited"]); foreach my $l (@$bci_data) { print $q->Tr($q->td([ $q->a({href=>build_url($q, $q->url('relative'=>1), @@ -258,6 +258,7 @@ sub do_council_contacts ($$) { print $q->end_table(); # Display form for adding new category + print $q->h3('Add new category'); print $q->start_form(-method => 'POST', -action => $q->url('relative'=>1)); print $q->p($q->strong("Category: "), $q->textfield(-name => "category", -size => 30)); @@ -309,7 +310,7 @@ sub do_council_edit ($$$) { map { $q->param($_, $bci_data->{$_}) } qw/category email confirmed deleted/; print $q->strong("Category: ") . $bci_data->{category}; print $q->hidden("category"); - print $q->strong("Email: "); + print $q->strong(" Email: "); print $q->textfield(-name => "email", -size => 30) . " "; print $q->checkbox(-name => "confirmed", -value => 1, -label => "Confirmed") . " "; print $q->checkbox(-name => "deleted", -value => 1, -label => "Deleted"); |