aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--bin/generate_council_location26
-rwxr-xr-xbin/open311-populate-service-list12
-rw-r--r--bin/open311-update-reports21
-rwxr-xr-xbin/send-reports43
-rw-r--r--conf/crontab.ugly2
-rw-r--r--conf/httpd.conf-example4
-rw-r--r--data/openlayers.fixmystreet.cfg1
-rw-r--r--db/schema.sql15
-rw-r--r--db/schema_0009-add_extra_to_problem.sql6
-rw-r--r--db/schema_0010-add_open311_conf.sql11
-rw-r--r--db/schema_0011-add_extra_to_contacts.sql6
-rw-r--r--locale/FixMyStreet.po628
-rw-r--r--locale/cy_GB.UTF-8/LC_MESSAGES/EmptyHomes.po861
-rw-r--r--locale/nb_NO.UTF-8/LC_MESSAGES/FixMyStreet.po1037
-rw-r--r--notes/cobranding.txt44
-rw-r--r--perllib/FixMyStreet/App/Controller/Admin.pm37
-rw-r--r--perllib/FixMyStreet/App/Controller/Around.pm2
-rw-r--r--perllib/FixMyStreet/App/Controller/Report/New.pm83
-rw-r--r--perllib/FixMyStreet/App/Controller/Report/Update.pm8
-rw-r--r--perllib/FixMyStreet/App/Controller/Reports.pm15
-rwxr-xr-xperllib/FixMyStreet/App/Controller/Rss.pm1
-rw-r--r--perllib/FixMyStreet/App/Controller/Tokens.pm1
-rw-r--r--perllib/FixMyStreet/Cobrand/Default.pm8
-rw-r--r--perllib/FixMyStreet/Cobrand/Reading.pm108
-rw-r--r--perllib/FixMyStreet/DB/Result/Contact.pm25
-rw-r--r--perllib/FixMyStreet/DB/Result/Open311conf.pm39
-rw-r--r--perllib/FixMyStreet/DB/Result/Problem.pm108
-rw-r--r--perllib/FixMyStreet/Geocode/Bing.pm3
-rw-r--r--perllib/FixMyStreet/Map/FMS.pm10
-rw-r--r--perllib/Open311.pm204
-rw-r--r--perllib/Open311/GetUpdates.pm82
-rw-r--r--perllib/Open311/PopulateServiceList.pm240
-rw-r--r--t/app/controller/admin.t53
-rw-r--r--t/app/controller/report_new.t15
-rw-r--r--t/app/controller/report_new_open311.t167
-rw-r--r--t/app/model/problem.t109
-rw-r--r--t/open311.t24
-rw-r--r--t/open311/getupdates.t198
-rw-r--r--t/open311/populate-service-list.t255
-rw-r--r--templates/email/default/submit-example.txt62
-rw-r--r--templates/web/default/admin/council_contacts.html34
-rwxr-xr-xtemplates/web/default/around/display_location.html2
-rw-r--r--templates/web/default/common_header_tags.html6
-rw-r--r--templates/web/default/footer.html28
-rw-r--r--templates/web/default/header.html6
-rw-r--r--templates/web/default/report/new/category_extras.html26
-rw-r--r--templates/web/default/report/new/councils_text_none.html6
-rw-r--r--templates/web/default/report/new/fill_in_details_form.html4
-rw-r--r--templates/web/default/report/new/fill_in_details_text.html3
-rw-r--r--templates/web/default/reports/cobrand_stats.html0
-rwxr-xr-xtemplates/web/default/reports/council.html2
-rw-r--r--templates/web/emptyhomes/alert/index.html5
-rwxr-xr-xtemplates/web/emptyhomes/around/display_location.html57
-rw-r--r--templates/web/emptyhomes/front/stats.html27
-rw-r--r--templates/web/emptyhomes/header.html1
-rw-r--r--templates/web/emptyhomes/index.html40
-rw-r--r--templates/web/emptyhomes/report/display.html32
-rw-r--r--templates/web/emptyhomes/report/new/councils_text_all.html (renamed from templates/web/emptyhomes/report/new/all_councils_text.html)0
-rw-r--r--templates/web/emptyhomes/report/new/councils_text_none.html (renamed from templates/web/emptyhomes/report/new/no_councils_text.html)0
-rwxr-xr-xtemplates/web/emptyhomes/reports/council.html73
-rwxr-xr-xtemplates/web/emptyhomes/reports/index.html2
-rw-r--r--templates/web/reading/footer.html47
-rw-r--r--templates/web/reading/header.html39
-rw-r--r--templates/web/reading/reports/cobrand_stats.html5
-rw-r--r--templates/web/southampton/report/new/category.html11
-rw-r--r--templates/web/southampton/report/new/form_heading.html4
-rw-r--r--web/cobrands/reading/css/css.scss93
-rw-r--r--web/cobrands/reading/css/print3rdParty.css33
-rw-r--r--web/cobrands/reading/css/reading.css176
-rwxr-xr-xweb/cobrands/reading/images/favicon.icobin0 -> 3262 bytes
-rw-r--r--web/cobrands/reading/images/reading-borough-council-logo.gifbin0 -> 4575 bytes
-rw-r--r--web/css/_main.scss47
-rw-r--r--web/css/core.scss8
-rw-r--r--web/i/mysociety-on-white.gifbin0 -> 1132 bytes
-rw-r--r--web/i/promo-fb4tf.gifbin0 -> 1213 bytes
-rw-r--r--web/i/promo-icicles.gifbin0 -> 2518 bytes
-rw-r--r--web/js/OpenLayers.fixmystreet.js10
-rw-r--r--web/js/fixmystreet.js21
-rw-r--r--web/js/map-OpenLayers.js9
-rw-r--r--web/js/map-bing-ol.js10
81 files changed, 4415 insertions, 1027 deletions
diff --git a/.gitignore b/.gitignore
index c8eebb0b2..4f3cb067d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,5 +14,6 @@ lib
tags
/web/cobrands/fiksgatami/css.css
/web/cobrands/southampton/css.css
+/web/cobrands/reading/css/css.css
/web/css/core.css
/web/css/main.css
diff --git a/bin/generate_council_location b/bin/generate_council_location
new file mode 100644
index 000000000..36bf14d04
--- /dev/null
+++ b/bin/generate_council_location
@@ -0,0 +1,26 @@
+use strict;
+use JSON;
+use LWP::Simple;
+
+my $id = shift;
+
+my $url = sprintf( 'http://mapit.mysociety.org/area/%s/geometry', $id);
+
+my $json = get( $url );
+my $geo = decode_json( $json );
+
+my $max_lat = $geo->{max_lat};
+my $min_lat = $geo->{min_lat};
+my $max_lon = $geo->{max_lon};
+my $min_lon = $geo->{min_lon};
+my $c_lat = $geo->{centre_lat};
+my $c_lon = $geo->{centre_lon};
+
+my $spn_lat = $max_lat - $min_lat;
+my $spn_lon = $max_lon - $min_lon;
+
+print <<"EOT";
+ centre => '$c_lat,$c_lon',
+ span => '$spn_lat,$spn_lon',
+ bounds => [ '$min_lat,$min_lon','$max_lat,$max_lon' ],
+EOT
diff --git a/bin/open311-populate-service-list b/bin/open311-populate-service-list
new file mode 100755
index 000000000..36e04f5a6
--- /dev/null
+++ b/bin/open311-populate-service-list
@@ -0,0 +1,12 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use FixMyStreet::App;
+use Open311::PopulateServiceList;
+
+
+my $council_list = FixMyStreet::App->model('DB::Open311conf');
+my $p = Open311::PopulateServiceList->new( council_list => $council_list );
+
+$p->process_councils;
diff --git a/bin/open311-update-reports b/bin/open311-update-reports
new file mode 100644
index 000000000..41c9c4546
--- /dev/null
+++ b/bin/open311-update-reports
@@ -0,0 +1,21 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Open311::GetUpdates;
+use FixMyStreet::App;
+
+# FIXME - make this configurable and/or better
+my $system_user = FixMyStreet::App->model('DB::User')->find_or_create(
+ {
+ email => FixMyStreet::App->config->{'CONTACT_EMAIL'},
+ name => 'System User',
+ }
+);
+
+my $council_list = FixMyStreet::App->model('DB::Open311conf');
+
+my $update = Open311::GetUpdates->new(
+ council_list => $council_list,
+ system_user => $system_user
+)->get_updates;
diff --git a/bin/send-reports b/bin/send-reports
index 9ab6f8274..648e83192 100755
--- a/bin/send-reports
+++ b/bin/send-reports
@@ -27,6 +27,8 @@ use mySociety::EmailUtil;
use mySociety::MaPit;
use mySociety::Web qw(ent);
+use Open311;
+
# Set up site, language etc.
my ($verbose, $nomail) = CronFns::options();
my $base_url = mySociety::Config::get('BASE_URL');
@@ -39,7 +41,7 @@ my $unsent = FixMyStreet::App->model("DB::Problem")->search( {
} );
my (%notgot, %note);
while (my $row = $unsent->next) {
-
+
my $cobrand = FixMyStreet::Cobrand->get_class_for_moniker($row->cobrand)->new();
# Cobranded and non-cobranded messages can share a database. In this case, the conf file
@@ -75,7 +77,7 @@ while (my $row = $unsent->next) {
$h{fuzzy} = $row->used_map ? _('To view a map of the precise location of this issue')
: _('The user could not locate the problem on a map, but to see the area around the location they entered');
$h{closest_address} = '';
-
+
# If we are in the UK include eastings and northings, and nearest stuff
$h{easting_northing} = '';
if ( $cobrand->country eq 'GB' ) {
@@ -93,7 +95,7 @@ while (my $row = $unsent->next) {
$h{closest_address} = $cobrand->find_closest( $h{latitude}, $h{longitude} );
}
- my (@to, @recips, $template, $areas_info);
+ my (@to, @recips, $template, $areas_info, @open311_councils);
if ($site eq 'emptyhomes') {
my $council = $row->council;
@@ -135,6 +137,9 @@ while (my $row = $unsent->next) {
$h{category} = 'Customer Services' if $h{category} eq 'Other';
} elsif ($areas_info->{$council}->{type} eq 'LBO') { # London
$send_web = 'london';
+ } elsif ( my $endpoint = FixMyStreet::App->model("DB::Open311conf")->search( { area_id => $council, endpoint => { '!=', '' } } )->first ) {
+ push @open311_councils, $endpoint;
+ $send_web = 'open311';
} else {
my $contact = FixMyStreet::App->model("DB::Contact")->find( {
deleted => 0,
@@ -247,6 +252,36 @@ while (my $row = $unsent->next) {
if (!$nomail) {
$result *= post_london_report( $row, %h );
}
+ } elsif ($send_web eq 'open311') {
+ foreach my $conf ( @open311_councils ) {
+ print 'posting to end point for ' . $conf->area_id . "\n" if $verbose;
+
+ my $contact = FixMyStreet::App->model("DB::Contact")->find( {
+ deleted => 0,
+ area_id => $conf->area_id,
+ category => $row->category
+ } );
+
+ my $open311 = Open311->new(
+ jurisdiction => $conf->jurisdiction,
+ endpoint => $conf->endpoint,
+ api_key => $conf->api_key,
+ );
+
+ # non standard west berks end points
+ if ( $row->council =~ /2619/ ) {
+ $open311->endpoints( { services => 'Services', requests => 'Requests' } );
+ }
+
+ my $resp = $open311->send_service_request( $row, \%h, $contact->email );
+
+ if ( $resp ) {
+ $row->external_id( $resp );
+ $result *= 0;
+ } else {
+ $result *= 1;
+ }
+ }
}
if ($result == mySociety::EmailUtil::EMAIL_SUCCESS) {
@@ -425,7 +460,7 @@ sub post_london_report {
# Nearest things
sub london_lookup {
- my $org = shift;
+ my $org = shift || '';
my $str = "Unknown ($org)";
open(FP, "$FindBin::Bin/../data/dft.csv");
while (<FP>) {
diff --git a/conf/crontab.ugly b/conf/crontab.ugly
index 415176779..8c52c898d 100644
--- a/conf/crontab.ugly
+++ b/conf/crontab.ugly
@@ -15,7 +15,7 @@ MAILTO=cron-!!(*= $site *)!!@mysociety.org
5,10,15,20,25,30,35,40,45,50,55 * * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/send-reports.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper send-reports" || echo "stalled?"
0 0-11,13-23 * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/send-reports.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper send-reports" || echo "stalled?"
0 12 * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/send-reports.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper send-reports --verbose" || echo "stalled?"
-2 * * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/send-alerts.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper send-alerts" || echo "stalled?"
+#2 * * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/send-alerts.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper send-alerts" || echo "stalled?"
0,30 * * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/send-questionnaires.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper send-questionnaires" || echo "stalled?"
!!(* } elsif (($vhost eq 'www.fixmystreet.com') || ($vhost eq 'matthew.fixmystreet.com')) { *)!!
diff --git a/conf/httpd.conf-example b/conf/httpd.conf-example
index 8ed6a9c81..c1b6d96c2 100644
--- a/conf/httpd.conf-example
+++ b/conf/httpd.conf-example
@@ -19,13 +19,13 @@
# AllowOverride None
# </Directory>
#
-# <Directory /home/yourname/fixmystreet/web-admin>
+# <Location /admin>
# #
# # WARNING - enable auth here on production machine
# #
# Options +ExecCGI
# AddHandler cgi-script .cgi
-# </Directory>
+# </Location>
#
# Alias /admin/ /home/yourname/fixmystreet/web-admin/
#
diff --git a/data/openlayers.fixmystreet.cfg b/data/openlayers.fixmystreet.cfg
index c2c06a9ed..faeb3ed50 100644
--- a/data/openlayers.fixmystreet.cfg
+++ b/data/openlayers.fixmystreet.cfg
@@ -16,6 +16,7 @@ OpenLayers/Control/Attribution.js
OpenLayers/Control/DragFeature.js
OpenLayers/Control/Navigation.js
OpenLayers/Control/PanZoom.js
+OpenLayers/Control/PinchZoom.js
OpenLayers/Control/Permalink.js
OpenLayers/Control/SelectFeature.js
OpenLayers/Format/JSON.js
diff --git a/db/schema.sql b/db/schema.sql
index 99cf2832d..fcd137919 100644
--- a/db/schema.sql
+++ b/db/schema.sql
@@ -78,7 +78,10 @@ create table contacts (
-- time of last change
whenedited timestamp not null,
-- what the last change was for: author's notes
- note text not null
+ note text not null,
+
+ -- extra fields required for open311
+ extra text
);
create unique index contacts_area_id_category_idx on contacts(area_id, category);
@@ -184,6 +187,7 @@ create table problem (
lastupdate timestamp not null default ms_current_timestamp(),
whensent timestamp,
send_questionnaire boolean not null default 't',
+ extra text, -- extra fields required for open311
flagged boolean not null default 'f'
);
create index problem_state_latitude_longitude_idx on problem(state, latitude, longitude);
@@ -407,3 +411,12 @@ create table admin_log (
whenedited timestamp not null default ms_current_timestamp()
);
+-- Record open 311 configuration details
+
+create table open311conf (
+ id serial primary key,
+ area_id integer not null unique,
+ endpoint text not null,
+ jurisdiction text,
+ api_key text
+);
diff --git a/db/schema_0009-add_extra_to_problem.sql b/db/schema_0009-add_extra_to_problem.sql
new file mode 100644
index 000000000..bac5806c7
--- /dev/null
+++ b/db/schema_0009-add_extra_to_problem.sql
@@ -0,0 +1,6 @@
+begin;
+
+ALTER TABLE problem
+ ADD COLUMN extra TEXT;
+
+commit;
diff --git a/db/schema_0010-add_open311_conf.sql b/db/schema_0010-add_open311_conf.sql
new file mode 100644
index 000000000..920272c05
--- /dev/null
+++ b/db/schema_0010-add_open311_conf.sql
@@ -0,0 +1,11 @@
+begin;
+
+CREATE TABLE open311conf (
+ id SERIAL PRIMARY KEY,
+ area_id INTEGER NOT NULL unique,
+ endpoint TEXT NOT NULL,
+ jurisdiction TEXT,
+ api_key TEXT
+);
+
+commit;
diff --git a/db/schema_0011-add_extra_to_contacts.sql b/db/schema_0011-add_extra_to_contacts.sql
new file mode 100644
index 000000000..fd6eae807
--- /dev/null
+++ b/db/schema_0011-add_extra_to_contacts.sql
@@ -0,0 +1,6 @@
+begin;
+
+ALTER TABLE contacts
+ ADD COLUMN extra TEXT;
+
+commit;
diff --git a/locale/FixMyStreet.po b/locale/FixMyStreet.po
index 47c063ec3..b08ce69da 100644
--- a/locale/FixMyStreet.po
+++ b/locale/FixMyStreet.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 1.0\n"
"Report-Msgid-Bugs-To: matthew@mysociety.org\n"
-"POT-Creation-Date: 2011-08-18 11:07+0100\n"
+"POT-Creation-Date: 2011-10-21 15:56+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <team@fixmystreet.com>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: bin/send-reports:179 perllib/FixMyStreet/DB/Result/Problem.pm:378
+#: bin/send-reports:183 perllib/FixMyStreet/DB/Result/Problem.pm:535
msgid " and "
msgstr ""
@@ -25,7 +25,7 @@ msgstr ""
msgid " and <strong>we will now send it to the council</strong>"
msgstr ""
-#: templates/web/default/report/new/councils_text_all.html:10 templates/web/default/report/new/councils_text_all.html:3 templates/web/default/report/new/councils_text_none.html:15 templates/web/default/report/new/councils_text_none.html:3 templates/web/default/report/new/councils_text_some.html:20 templates/web/default/report/new/councils_text_some.html:23 templates/web/default/report/new/councils_text_some.html:5 templates/web/emptyhomes/report/new/all_councils_text.html:2
+#: templates/web/default/report/new/councils_text_all.html:10 templates/web/default/report/new/councils_text_all.html:3 templates/web/default/report/new/councils_text_none.html:14 templates/web/default/report/new/councils_text_none.html:17 templates/web/default/report/new/councils_text_some.html:20 templates/web/default/report/new/councils_text_some.html:23 templates/web/default/report/new/councils_text_some.html:5 templates/web/emptyhomes/report/new/all_councils_text.html:2
msgid " or "
msgstr ""
@@ -41,11 +41,11 @@ msgstr ""
msgid "%d council contacts &ndash; %d confirmed, %d unconfirmed"
msgstr ""
-#: perllib/Utils.pm:251
+#: perllib/Utils.pm:252
msgid "%d day"
msgstr ""
-#: perllib/Utils.pm:251
+#: perllib/Utils.pm:252
msgid "%d days"
msgstr ""
@@ -53,11 +53,11 @@ msgstr ""
msgid "%d edits by %s"
msgstr ""
-#: perllib/Utils.pm:252
+#: perllib/Utils.pm:253
msgid "%d hour"
msgstr ""
-#: perllib/Utils.pm:252
+#: perllib/Utils.pm:253
msgid "%d hours"
msgstr ""
@@ -65,11 +65,11 @@ msgstr ""
msgid "%d live updates"
msgstr ""
-#: perllib/Utils.pm:253
+#: perllib/Utils.pm:254
msgid "%d minute"
msgstr ""
-#: perllib/Utils.pm:253
+#: perllib/Utils.pm:254
msgid "%d minutes"
msgstr ""
@@ -77,11 +77,11 @@ msgstr ""
msgid "%d questionnaires sent &ndash; %d answered (%s%%)"
msgstr ""
-#: perllib/Utils.pm:250
+#: perllib/Utils.pm:251
msgid "%d week"
msgstr ""
-#: perllib/Utils.pm:250
+#: perllib/Utils.pm:251
msgid "%d weeks"
msgstr ""
@@ -89,19 +89,19 @@ msgstr ""
msgid "%s - Summary reports"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Default.pm:826 perllib/FixMyStreet/Cobrand/Default.pm:840
+#: perllib/FixMyStreet/Cobrand/Default.pm:844 perllib/FixMyStreet/Cobrand/Default.pm:858
msgid "%s ward, %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:309
+#: perllib/FixMyStreet/DB/Result/Problem.pm:466
msgid "%s, reported anonymously at %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:311
+#: perllib/FixMyStreet/DB/Result/Problem.pm:468
msgid "%s, reported by %s at %s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Default.pm:857 perllib/FixMyStreet/Cobrand/Default.pm:871
+#: perllib/FixMyStreet/Cobrand/Default.pm:875 perllib/FixMyStreet/Cobrand/Default.pm:889
msgid "%s, within %s ward"
msgstr ""
@@ -137,7 +137,7 @@ msgstr ""
msgid "(not sent to council)"
msgstr ""
-#: templates/web/default/report/new/fill_in_details_form.html:208
+#: templates/web/default/report/new/fill_in_details_form.html:217
msgid "(optional)"
msgstr ""
@@ -145,23 +145,23 @@ msgstr ""
msgid "(sent to both)"
msgstr ""
-#: templates/web/default/report/new/fill_in_details_form.html:202
+#: templates/web/default/report/new/fill_in_details_form.html:211
msgid "(we never show your email address or phone number)"
msgstr ""
-#: templates/web/default/report/display.html:206
+#: templates/web/default/report/display.html:217
msgid "(we never show your email)"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:270
+#: perllib/FixMyStreet/App/Controller/Admin.pm:279
msgid "*unknown*"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:504 perllib/FixMyStreet/App/Controller/Report/New.pm:532 perllib/FixMyStreet/DB/Result/Problem.pm:206
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:534 perllib/FixMyStreet/App/Controller/Report/New.pm:566 perllib/FixMyStreet/DB/Result/Problem.pm:314
msgid "-- Pick a category --"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:490 perllib/FixMyStreet/DB/Result/Problem.pm:212
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:520 perllib/FixMyStreet/DB/Result/Problem.pm:320
msgid "-- Pick a property type --"
msgstr ""
@@ -169,7 +169,7 @@ msgstr ""
msgid ". You can <a href=\"%s\">view the problem on this site</a>."
msgstr ""
-#: templates/web/default/footer.html:13
+#: templates/web/default/footer.html:13 templates/web/reading/footer.html:16
msgid "<a href=\"http://www.mysociety.org/\"><img id=\"logo\" width=\"133\" height=\"26\" src=\"/i/mysociety-dark.png\" alt=\"View mySociety.org\"><span id=\"logoie\"></span></a>"
msgstr ""
@@ -229,31 +229,31 @@ msgstr ""
msgid "<strong>No</strong>, I do not, let me sign in by email:"
msgstr ""
-#: templates/web/default/report/new/fill_in_details_form.html:154
+#: templates/web/default/report/new/fill_in_details_form.html:162
msgid "<strong>No</strong>, let me confirm my report by email:"
msgstr ""
-#: templates/web/default/report/display.html:160
+#: templates/web/default/report/display.html:170
msgid "<strong>No</strong>, let me confirm my update by email:"
msgstr ""
-#: templates/web/default/auth/general.html:37 templates/web/default/report/display.html:142 templates/web/default/report/new/fill_in_details_form.html:136
+#: templates/web/default/auth/general.html:37 templates/web/default/report/display.html:148 templates/web/default/report/new/fill_in_details_form.html:140
msgid "<strong>Yes</strong>, I have a password:"
msgstr ""
-#: templates/web/default/static/about.html:1 templates/web/default/static/about.html:3 templates/web/emptyhomes/header.html:32 templates/web/emptyhomes/static/about.html:1 templates/web/emptyhomes/static/about.html:3
+#: templates/web/default/static/about.html:1 templates/web/default/static/about.html:3 templates/web/emptyhomes/header.html:31 templates/web/emptyhomes/static/about.html:1 templates/web/emptyhomes/static/about.html:3
msgid "About us"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:50
+#: templates/web/default/admin/council_contacts.html:57
msgid "Add new category"
msgstr ""
-#: templates/web/default/my/my.html:51
+#: templates/web/default/my/my.html:56
msgid "Added %s"
msgstr ""
-#: templates/web/default/auth/change_password.html:31
+#: templates/web/default/auth/change_password.html:29
msgid "Again:"
msgstr ""
@@ -265,7 +265,7 @@ msgstr ""
msgid "Alert %d disabled (created %s)"
msgstr ""
-#: templates/web/default/report/display.html:211
+#: templates/web/default/report/display.html:222
msgid "Alert me to future updates"
msgstr ""
@@ -277,7 +277,7 @@ msgstr ""
msgid "All confirmed"
msgstr ""
-#: templates/web/default/footer.html:8 templates/web/emptyhomes/header.html:29 templates/web/fiksgatami/footer.html:6
+#: templates/web/default/footer.html:8 templates/web/emptyhomes/header.html:28 templates/web/fiksgatami/footer.html:7 templates/web/reading/footer.html:8
msgid "All reports"
msgstr ""
@@ -329,15 +329,19 @@ msgstr ""
msgid "Ban email address"
msgstr ""
-#: templates/web/default/footer.html:16
+#: templates/web/default/footer.html:16 templates/web/reading/footer.html:14
msgid "Built by <a href=\"http://www.mysociety.org/\">mySociety</a>"
msgstr ""
-#: templates/web/fiksgatami/footer.html:15
+#: templates/web/fiksgatami/footer.html:16
msgid "Built by <a href=\"http://www.mysociety.org/\">mySociety</a> and maintained by <a href=\"http://www.nuug.no/\">NUUG</a>"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:19 templates/web/default/admin/index.html:36 templates/web/default/admin/list_flagged.html:14 templates/web/default/admin/search_reports.html:17
+#: templates/web/default/admin/stats.html:80
+msgid "By Date"
+msgstr ""
+
+#: templates/web/default/admin/council_contacts.html:26 templates/web/default/admin/index.html:36 templates/web/default/admin/list_flagged.html:14 templates/web/default/admin/search_reports.html:17
msgid "Category"
msgstr ""
@@ -345,18 +349,34 @@ msgstr ""
msgid "Category fix rate for problems > 4 weeks old"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:507 perllib/FixMyStreet/App/Controller/Report/New.pm:533 templates/web/default/admin/council_contacts.html:56 templates/web/default/admin/council_edit.html:23 templates/web/default/admin/report_edit.html:26 templates/web/default/report/new/fill_in_details_form.html:67
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:537 perllib/FixMyStreet/App/Controller/Report/New.pm:567 templates/web/default/admin/council_contacts.html:63 templates/web/default/admin/council_edit.html:23 templates/web/default/admin/report_edit.html:29 templates/web/default/report/new/fill_in_details_form.html:67
msgid "Category:"
msgstr ""
-#: bin/send-reports:176
+#: bin/send-reports:180
msgid "Category: %s"
msgstr ""
-#: templates/web/default/auth/change_password.html:1 templates/web/default/auth/change_password.html:3 templates/web/default/auth/change_password.html:35
+#: templates/web/default/auth/change_password.html:1 templates/web/default/auth/change_password.html:3 templates/web/default/auth/change_password.html:33
msgid "Change Password"
msgstr ""
+#: templates/web/default/admin/report_edit.html:22 templates/web/default/admin/report_edit.html:24 templates/web/default/report/display.html:85 templates/web/default/report/display.html:87
+msgid "Closed"
+msgstr ""
+
+#: perllib/FixMyStreet/DB/Result/Problem.pm:627
+msgid "Closed by council"
+msgstr ""
+
+#: templates/web/default/my/my.html:32
+msgid "Closed reports"
+msgstr ""
+
+#: templates/web/default/admin/problem_row.html:25
+msgid "Closed:"
+msgstr ""
+
#: templates/web/default/around/display_location.html:102 templates/web/default/around/display_location.html:104
msgid "Closest nearby problems <small>(within&nbsp;%skm)</small>"
msgstr ""
@@ -365,19 +385,35 @@ msgstr ""
msgid "Co-ordinates:"
msgstr ""
-#: templates/web/default/admin/list_flagged.html:16 templates/web/default/admin/list_updates.html:11 templates/web/default/admin/search_reports.html:19
+#: templates/web/default/admin/list_flagged.html:16 templates/web/default/admin/list_updates.html:13 templates/web/default/admin/search_reports.html:19
msgid "Cobrand"
msgstr ""
-#: templates/web/default/admin/report_edit.html:36 templates/web/default/admin/update_edit.html:26
+#: templates/web/default/admin/report_edit.html:39 templates/web/default/admin/update_edit.html:41
msgid "Cobrand data:"
msgstr ""
-#: templates/web/default/admin/report_edit.html:35 templates/web/default/admin/update_edit.html:25
+#: templates/web/default/admin/report_edit.html:38 templates/web/default/admin/update_edit.html:40
msgid "Cobrand:"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:26
+#: perllib/FixMyStreet/App/Controller/Admin.pm:349
+msgid "Configuration updated"
+msgstr ""
+
+#: perllib/FixMyStreet/App/Controller/Admin.pm:359
+msgid "Configuration updated - contacts will be generated automatically later"
+msgstr ""
+
+#: templates/web/default/admin/council_contacts.html:119
+msgid "Configure Open311"
+msgstr ""
+
+#: templates/web/default/admin/council_contacts.html:96
+msgid "Configure Open311 integration"
+msgstr ""
+
+#: templates/web/default/admin/council_contacts.html:33
msgid "Confirm"
msgstr ""
@@ -389,19 +425,19 @@ msgstr ""
msgid "Confirmation"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:21 templates/web/default/admin/council_contacts.html:66 templates/web/default/admin/council_edit.html:28 templates/web/default/admin/council_edit.html:43 templates/web/default/admin/stats.html:5
+#: templates/web/default/admin/council_contacts.html:28 templates/web/default/admin/council_contacts.html:73 templates/web/default/admin/council_edit.html:28 templates/web/default/admin/council_edit.html:43 templates/web/default/admin/stats.html:5
msgid "Confirmed"
msgstr ""
-#: templates/web/default/admin/problem_row.html:23 templates/web/default/admin/report_edit.html:31
+#: templates/web/default/admin/problem_row.html:23 templates/web/default/admin/report_edit.html:34
msgid "Confirmed:"
msgstr ""
-#: templates/web/fiksgatami/footer.html:9
+#: templates/web/fiksgatami/footer.html:10
msgid "Contact"
msgstr ""
-#: templates/web/default/footer.html:17
+#: templates/web/default/footer.html:17 templates/web/reading/footer.html:15
msgid "Contact FixMyStreet"
msgstr ""
@@ -413,15 +449,15 @@ msgstr ""
msgid "Contact the team"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:965 perllib/FixMyStreet/App/Controller/Admin.pm:993
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1105 perllib/FixMyStreet/App/Controller/Admin.pm:1133
msgid "Could not find user"
msgstr ""
-#: templates/web/default/admin/list_flagged.html:13 templates/web/default/admin/search_reports.html:16
+#: templates/web/default/admin/list_flagged.html:13 templates/web/default/admin/list_updates.html:12 templates/web/default/admin/search_reports.html:16 templates/web/default/admin/search_users.html:14
msgid "Council"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:839 templates/web/default/admin/council_list.html:1
+#: perllib/FixMyStreet/App/Controller/Admin.pm:977 templates/web/default/admin/council_list.html:1
msgid "Council contacts"
msgstr ""
@@ -429,11 +465,15 @@ msgstr ""
msgid "Council contacts for %s"
msgstr ""
+#: templates/web/default/admin/stats.html:84 templates/web/default/admin/user_edit.html:12
+msgid "Council:"
+msgstr ""
+
#: templates/web/default/admin/council_list.html:36
msgid "Councils"
msgstr ""
-#: templates/web/default/admin/stats.html:10
+#: templates/web/default/admin/stats.html:12 templates/web/default/admin/stats.html:32
msgid "Count"
msgstr ""
@@ -441,7 +481,7 @@ msgstr ""
msgid "Create a report"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:80
+#: templates/web/default/admin/council_contacts.html:87
msgid "Create category"
msgstr ""
@@ -449,11 +489,11 @@ msgstr ""
msgid "Created"
msgstr ""
-#: templates/web/default/admin/report_edit.html:30 templates/web/default/admin/update_edit.html:27
+#: templates/web/default/admin/report_edit.html:33 templates/web/default/admin/update_edit.html:42
msgid "Created:"
msgstr ""
-#: templates/web/default/admin/stats.html:9
+#: templates/web/default/admin/stats.html:31
msgid "Current state"
msgstr ""
@@ -461,7 +501,7 @@ msgstr ""
msgid "Currently has 1+ deleted"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:22 templates/web/default/admin/council_contacts.html:69 templates/web/default/admin/council_edit.html:29 templates/web/default/admin/council_edit.html:44
+#: templates/web/default/admin/council_contacts.html:29 templates/web/default/admin/council_contacts.html:76 templates/web/default/admin/council_edit.html:29 templates/web/default/admin/council_edit.html:44
msgid "Deleted"
msgstr ""
@@ -481,7 +521,7 @@ msgstr ""
msgid "Don&rsquo;t know"
msgstr ""
-#: templates/web/default/admin/list_updates.html:31 templates/web/default/admin/problem_row.html:28
+#: templates/web/default/admin/list_updates.html:35 templates/web/default/admin/problem_row.html:29 templates/web/default/admin/search_users.html:24
msgid "Edit"
msgstr ""
@@ -493,19 +533,23 @@ msgstr ""
msgid "Editing update %d"
msgstr ""
+#: templates/web/default/admin/user_edit.html:1
+msgid "Editing user %d"
+msgstr ""
+
#: templates/web/default/admin/council_edit.html:45
msgid "Editor"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:20 templates/web/default/admin/council_edit.html:42 templates/web/default/admin/list_flagged.html:12 templates/web/default/admin/list_flagged.html:35 templates/web/default/admin/list_updates.html:8 templates/web/default/admin/search_abuse.html:11 templates/web/default/admin/search_reports.html:15
+#: templates/web/default/admin/council_contacts.html:27 templates/web/default/admin/council_edit.html:42 templates/web/default/admin/list_flagged.html:12 templates/web/default/admin/list_flagged.html:35 templates/web/default/admin/list_updates.html:8 templates/web/default/admin/search_abuse.html:11 templates/web/default/admin/search_reports.html:15 templates/web/default/admin/search_users.html:13
msgid "Email"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:941
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1081
msgid "Email added to abuse list"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:938
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1078
msgid "Email already in abuse list"
msgstr ""
@@ -513,23 +557,23 @@ msgstr ""
msgid "Email me new local problems"
msgstr ""
-#: templates/web/default/report/display.html:42
+#: templates/web/default/report/display.html:35
msgid "Email me updates"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:61 templates/web/default/admin/council_edit.html:26 templates/web/default/admin/report_edit.html:28 templates/web/default/admin/update_edit.html:24 templates/web/default/alert/updates.html:13 templates/web/default/report/display.html:46
+#: templates/web/default/admin/council_contacts.html:68 templates/web/default/admin/council_edit.html:26 templates/web/default/admin/report_edit.html:31 templates/web/default/admin/update_edit.html:24 templates/web/default/admin/user_edit.html:11 templates/web/default/alert/updates.html:13 templates/web/default/report/display.html:39
msgid "Email:"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:492
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:522
msgid "Empty flat or maisonette"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:491
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:521
msgid "Empty house or bungalow"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:494
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:524
msgid "Empty office or other commercial"
msgstr ""
@@ -537,23 +581,23 @@ msgstr ""
msgid "Empty property details form"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:495
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:525
msgid "Empty pub or bar"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:496
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:526
msgid "Empty public building - school, hospital, etc."
msgstr ""
-#: templates/web/default/admin/stats.html:47
+#: templates/web/default/admin/stats.html:70
msgid "End Year:"
msgstr ""
-#: templates/web/default/admin/stats.html:49
+#: templates/web/default/admin/stats.html:72
msgid "End day:"
msgstr ""
-#: templates/web/default/admin/stats.html:48
+#: templates/web/default/admin/stats.html:71
msgid "End month:"
msgstr ""
@@ -565,7 +609,7 @@ msgstr ""
msgid "Enter a nearby postcode, or street name and area"
msgstr ""
-#: templates/web/default/auth/general.html:64 templates/web/default/report/display.html:167 templates/web/default/report/new/fill_in_details_form.html:161
+#: templates/web/default/auth/general.html:64 templates/web/default/report/display.html:177 templates/web/default/report/new/fill_in_details_form.html:169
msgid "Enter a new password:"
msgstr ""
@@ -597,7 +641,7 @@ msgstr ""
msgid "First time"
msgstr ""
-#: templates/web/default/header.html:22 templates/web/fiksgatami/header.html:13
+#: templates/web/default/header.html:29 templates/web/fiksgatami/header.html:16 templates/web/reading/header.html:31
msgid "Fix<span id=\"my\">My</span>Street"
msgstr ""
@@ -626,12 +670,16 @@ msgid ""
"for the county council."
msgstr ""
-#: templates/web/default/front/stats.html:7
-msgid "FixMyStreet updates"
+#: templates/web/default/admin/index.html:36 templates/web/default/admin/report_edit.html:22 templates/web/default/admin/report_edit.html:24 templates/web/default/report/display.html:85 templates/web/default/report/display.html:87
+msgid "Fixed"
msgstr ""
-#: templates/web/default/admin/index.html:36 templates/web/default/admin/report_edit.html:22
-msgid "Fixed"
+#: templates/web/default/admin/report_edit.html:22 templates/web/default/admin/report_edit.html:25
+msgid "Fixed - Council"
+msgstr ""
+
+#: templates/web/default/admin/report_edit.html:22 templates/web/default/admin/report_edit.html:25
+msgid "Fixed - User"
msgstr ""
#: templates/web/default/my/my.html:27
@@ -646,7 +694,11 @@ msgstr ""
msgid "Flag user"
msgstr ""
-#: templates/web/default/admin/report_edit.html:38
+#: templates/web/default/admin/search_users.html:15
+msgid "Flagged"
+msgstr ""
+
+#: templates/web/default/admin/report_edit.html:41 templates/web/default/admin/user_edit.html:18
msgid "Flagged:"
msgstr ""
@@ -678,7 +730,7 @@ msgstr ""
msgid "Go"
msgstr ""
-#: templates/web/default/admin/report_edit.html:37
+#: templates/web/default/admin/report_edit.html:40
msgid "Going to send questionnaire?"
msgstr ""
@@ -698,7 +750,7 @@ msgstr ""
msgid "Have you ever reported a problem to a council before, or is this your first time?"
msgstr ""
-#: templates/web/default/footer.html:10 templates/web/emptyhomes/header.html:31 templates/web/fiksgatami/footer.html:8
+#: templates/web/default/footer.html:10 templates/web/emptyhomes/header.html:30 templates/web/fiksgatami/footer.html:9 templates/web/reading/footer.html:10
msgid "Help"
msgstr ""
@@ -706,7 +758,7 @@ msgstr ""
msgid "Here are the types of local problem alerts for &lsquo;%s&rsquo;."
msgstr ""
-#: templates/web/default/admin/report_edit.html:22 templates/web/default/admin/update_edit.html:19
+#: templates/web/default/admin/report_edit.html:22 templates/web/default/admin/report_edit.html:25 templates/web/default/admin/update_edit.html:19
msgid "Hidden"
msgstr ""
@@ -726,7 +778,7 @@ msgstr ""
msgid "How to report a problem"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:546
+#: perllib/FixMyStreet/App/Controller/Admin.pm:587
msgid "I am afraid you cannot confirm unconfirmed reports."
msgstr ""
@@ -738,7 +790,7 @@ msgstr ""
msgid "I'm afraid we couldn't validate that token, as the report was made too long ago."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Tokens.pm:232
+#: perllib/FixMyStreet/App/Controller/Tokens.pm:233
msgid "I'm afraid we couldn't validate that token. If you've copied the URL from an email, please check that you copied it exactly.\n"
msgstr ""
@@ -746,7 +798,7 @@ msgstr ""
msgid "ID"
msgstr ""
-#: templates/web/default/report/new/councils_text_none.html:11 templates/web/default/report/new/councils_text_none.html:3
+#: templates/web/default/report/new/councils_text_none.html:11 templates/web/default/report/new/councils_text_none.html:12
msgid "If you submit a problem here the subject and details of the problem will be public, but the problem will <strong>not</strong> be reported to the council."
msgstr ""
@@ -773,6 +825,10 @@ msgstr ""
msgid "Illegal feed selection"
msgstr ""
+#: templates/web/default/admin/report_edit.html:22 templates/web/default/admin/report_edit.html:24 templates/web/default/report/display.html:85 templates/web/default/report/display.html:87
+msgid "In Progress"
+msgstr ""
+
#: templates/web/default/open311/index.html:21
msgid "In addition, the following attributes that are not part of the Open311 v2 specification are returned: agency_sent_datetime, title (also returned as part of description), interface_used, comment_count, requestor_name (only present if requestor allowed the name to be shown on this site)."
msgstr ""
@@ -781,51 +837,55 @@ msgstr ""
msgid "Include stale reports"
msgstr ""
-#: templates/web/default/admin/stats.html:53
+#: templates/web/default/admin/stats.html:76
msgid "Include unconfirmed reports"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Open311.pm:355
+#: perllib/FixMyStreet/App/Controller/Open311.pm:358
msgid "Incorrect has_photo value \"%s\""
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Open311.pm:340
+#: perllib/FixMyStreet/App/Controller/Open311.pm:343
msgid "Invalid agency_responsible value %s"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:785
+#: perllib/FixMyStreet/App/Controller/Admin.pm:897
msgid "Invalid end date"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Open311.pm:423
+#: perllib/FixMyStreet/App/Controller/Open311.pm:426
msgid "Invalid format %s specified."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:775
+#: perllib/FixMyStreet/App/Controller/Admin.pm:887
msgid "Invalid start date"
msgstr ""
+#: templates/web/default/admin/report_edit.html:22 templates/web/default/admin/report_edit.html:23 templates/web/default/report/display.html:85 templates/web/default/report/display.html:86
+msgid "Investigating"
+msgstr ""
+
#: templates/web/emptyhomes/tokens/confirm_problem.html:12 templates/web/emptyhomes/tokens/confirm_problem.html:14
msgid "It is worth noting however that the process can sometimes be slow, especially if the property is in very poor repair or the owner is unwilling to act. In most cases it can take six months or more before you can expect to see anything change and sometimes there may be considerable barries to a property being brought back into use. This doesn&rsquo;t mean the council isn&rsquo;t doing anything. We encourage councils to update the website so you can see what is happening. It may be a long process, but you reporting your concerns about this property to the council is a valuable first step."
msgstr ""
-#: templates/web/default/auth/general.html:44 templates/web/default/report/display.html:149 templates/web/default/report/new/fill_in_details_form.html:143
+#: templates/web/default/auth/general.html:44 templates/web/default/report/display.html:157 templates/web/default/report/new/fill_in_details_form.html:149
msgid "Keep me signed in on this computer"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:23
+#: templates/web/default/admin/council_contacts.html:30
msgid "Last editor"
msgstr ""
-#: templates/web/default/admin/report_edit.html:33
+#: templates/web/default/admin/report_edit.html:36
msgid "Last update:"
msgstr ""
-#: templates/web/default/admin/problem_row.html:25
+#: templates/web/default/admin/problem_row.html:26
msgid "Last&nbsp;update:"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:844
+#: perllib/FixMyStreet/App/Controller/Admin.pm:983
msgid "List Flagged"
msgstr ""
@@ -845,7 +905,7 @@ msgstr ""
msgid "Local RSS feeds and email alerts for ‘%s’"
msgstr ""
-#: templates/web/default/footer.html:9 templates/web/emptyhomes/header.html:30 templates/web/fiksgatami/footer.html:7
+#: templates/web/default/footer.html:9 templates/web/emptyhomes/header.html:29 templates/web/fiksgatami/footer.html:8 templates/web/reading/footer.html:9
msgid "Local alerts"
msgstr ""
@@ -857,35 +917,31 @@ msgstr ""
msgid "Map &copy; <a id=\"osm_link\" href=\"http://www.openstreetmap.org/\">OpenStreetMap</a> and contributors, <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">CC-BY-SA</a>"
msgstr ""
-#: perllib/FixMyStreet/Map/OSM/StreetView.pm:27
-msgid "Map contains Ordnance Survey data &copy; Crown copyright and database right 2010."
-msgstr ""
-
-#: perllib/FixMyStreet/Map/FMS.pm:24
-msgid "Map contains Ordnance Survey data &copy; Crown copyright and database right 2010.<br>&copy; 2011 <a href=\"http://www.bing.com/maps/\">Microsoft</a>. &copy; AND, Navteq, Ordnance Survey."
-msgstr ""
-
#: templates/web/default/contact/index.html:90
msgid "Message:"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Open311.pm:431
+#: perllib/FixMyStreet/App/Controller/Open311.pm:434
msgid "Missing jurisdiction_id"
msgstr ""
-#: templates/web/default/report/display.html:38
+#: templates/web/default/admin/stats.html:11
+msgid "Month"
+msgstr ""
+
+#: templates/web/default/report/display.html:31
msgid "More problems nearby"
msgstr ""
-#: templates/web/default/admin/list_flagged.html:11 templates/web/default/admin/list_flagged.html:34 templates/web/default/admin/list_updates.html:7 templates/web/default/admin/search_reports.html:14 templates/web/default/reports/index.html:10 templates/web/emptyhomes/reports/index.html:10 templates/web/fiksgatami/reports/index.html:9
+#: templates/web/default/admin/list_flagged.html:11 templates/web/default/admin/list_flagged.html:34 templates/web/default/admin/list_updates.html:7 templates/web/default/admin/search_reports.html:14 templates/web/default/admin/search_users.html:12 templates/web/default/reports/index.html:10 templates/web/emptyhomes/reports/index.html:10 templates/web/fiksgatami/reports/index.html:9
msgid "Name"
msgstr ""
-#: templates/web/default/admin/report_edit.html:27 templates/web/default/admin/update_edit.html:23
+#: templates/web/default/admin/report_edit.html:30 templates/web/default/admin/update_edit.html:23 templates/web/default/admin/user_edit.html:10
msgid "Name:"
msgstr ""
-#: templates/web/default/footer.html:4 templates/web/fiksgatami/footer.html:3
+#: templates/web/default/footer.html:4 templates/web/fiksgatami/footer.html:3 templates/web/reading/footer.html:4
msgid "Navigation"
msgstr ""
@@ -893,11 +949,11 @@ msgstr ""
msgid "Nearest named road to the pin placed on the map (automatically generated using OpenStreetMap): %s%s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Default.pm:570
+#: perllib/FixMyStreet/Cobrand/Default.pm:564
msgid "Nearest postcode to the pin placed on the map (automatically generated): %s (%sm away)"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Default.pm:558
+#: perllib/FixMyStreet/Cobrand/Default.pm:553 perllib/FixMyStreet/Cobrand/Default.pm:588
msgid "Nearest road to the pin placed on the map (automatically generated by Bing Maps): %s"
msgstr ""
@@ -905,7 +961,7 @@ msgstr ""
msgid "Nearly Done! Now check your email..."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:300
+#: perllib/FixMyStreet/App/Controller/Admin.pm:309
msgid "New category contact added"
msgstr ""
@@ -969,11 +1025,15 @@ msgstr ""
msgid "New!"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:32 templates/web/default/admin/council_contacts.html:33 templates/web/default/admin/council_edit.html:4 templates/web/default/admin/list_updates.html:28 templates/web/default/admin/problem_row.html:19 templates/web/default/admin/report_edit.html:19 templates/web/default/admin/report_edit.html:37 templates/web/default/admin/update_edit.html:16 templates/web/default/questionnaire/creator_fixed.html:16 templates/web/default/questionnaire/index.html:109 templates/web/default/questionnaire/index.html:70
+#: templates/web/default/admin/council_contacts.html:39 templates/web/default/admin/council_contacts.html:40 templates/web/default/admin/council_edit.html:4 templates/web/default/admin/list_updates.html:30 templates/web/default/admin/list_updates.html:31 templates/web/default/admin/list_updates.html:32 templates/web/default/admin/problem_row.html:19 templates/web/default/admin/report_edit.html:19 templates/web/default/admin/report_edit.html:40 templates/web/default/admin/update_edit.html:16 templates/web/default/questionnaire/creator_fixed.html:16 templates/web/default/questionnaire/index.html:109 templates/web/default/questionnaire/index.html:70
msgid "No"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:189
+#: templates/web/default/admin/stats.html:85 templates/web/default/admin/user_edit.html:13
+msgid "No council"
+msgstr ""
+
+#: perllib/FixMyStreet/DB/Result/Problem.pm:297
msgid "No council selected"
msgstr ""
@@ -1013,15 +1073,15 @@ msgstr ""
msgid "Not reported to council"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:24 templates/web/default/admin/council_edit.html:46
+#: templates/web/default/admin/council_contacts.html:31 templates/web/default/admin/council_edit.html:46
msgid "Note"
msgstr ""
-#: templates/web/default/admin/stats.html:28
+#: templates/web/default/admin/stats.html:51
msgid "Note that when including unconfirmed reports we use the date the report was created which may not be in the same month the report was confirmed so the numbers may jump about a little"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:73 templates/web/default/admin/council_edit.html:31
+#: templates/web/default/admin/council_contacts.html:80 templates/web/default/admin/council_edit.html:31
msgid "Note:"
msgstr ""
@@ -1029,15 +1089,15 @@ msgstr ""
msgid "Note: <strong>%s</strong>"
msgstr ""
-#: templates/web/default/report/new/fill_in_details_form.html:127
+#: templates/web/default/report/new/fill_in_details_form.html:131
msgid "Now to submit your report&hellip; do you have a FixMyStreet password?"
msgstr ""
-#: templates/web/default/report/display.html:133
+#: templates/web/default/report/display.html:139
msgid "Now to submit your update&hellip; do you have a FixMyStreet password?"
msgstr ""
-#: templates/web/default/report/display.html:33 templates/web/default/report/updates.html:19
+#: templates/web/default/report/display.html:26 templates/web/default/report/updates.html:23
msgid "Offensive? Unsuitable? Tell us"
msgstr ""
@@ -1065,7 +1125,7 @@ msgstr ""
msgid "Older problems"
msgstr ""
-#: templates/web/default/admin/report_edit.html:22 templates/web/default/admin/update_edit.html:19
+#: templates/web/default/admin/report_edit.html:22 templates/web/default/admin/update_edit.html:19 templates/web/default/report/display.html:85
msgid "Open"
msgstr ""
@@ -1093,7 +1153,7 @@ msgstr ""
msgid "Or you can subscribe to an alert based upon what ward or council you&rsquo;re in:"
msgstr ""
-#: bin/send-reports:171 bin/send-reports:180 perllib/FixMyStreet/App/Controller/Report/New.pm:523 perllib/FixMyStreet/App/Controller/Report/New.pm:532 perllib/FixMyStreet/App/Controller/Report/New.pm:903 perllib/FixMyStreet/DB/Result/Problem.pm:318 perllib/FixMyStreet/DB/Result/Problem.pm:328 perllib/FixMyStreet/DB/Result/Problem.pm:338 perllib/FixMyStreet/DB/Result/Problem.pm:350
+#: bin/send-reports:175 bin/send-reports:184 perllib/FixMyStreet/App/Controller/Report/New.pm:553 perllib/FixMyStreet/App/Controller/Report/New.pm:566 perllib/FixMyStreet/App/Controller/Report/New.pm:969 perllib/FixMyStreet/DB/Result/Problem.pm:475 perllib/FixMyStreet/DB/Result/Problem.pm:485 perllib/FixMyStreet/DB/Result/Problem.pm:495 perllib/FixMyStreet/DB/Result/Problem.pm:507
msgid "Other"
msgstr ""
@@ -1101,23 +1161,27 @@ msgstr ""
msgid "Our code is open source and <a href=\"http://github.com/mysociety/fixmystreet\">available on GitHub</a>."
msgstr ""
+#: templates/web/default/admin/list_updates.html:11
+msgid "Owner"
+msgstr ""
+
#: templates/web/default/errors/page_error_404_not_found.html:1 templates/web/default/errors/page_error_404_not_found.html:3
msgid "Page Not Found"
msgstr ""
-#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/report_edit.html:22 templates/web/default/admin/report_edit.html:25
msgid "Partial"
msgstr ""
-#: templates/web/default/auth/change_password.html:27
+#: templates/web/default/auth/change_password.html:25
msgid "Password:"
msgstr ""
-#: bin/send-reports:68 templates/web/default/admin/report_edit.html:29 templates/web/default/report/new/fill_in_details_form.html:206
+#: bin/send-reports:69 templates/web/default/admin/report_edit.html:32 templates/web/default/report/new/fill_in_details_form.html:215
msgid "Phone:"
msgstr ""
-#: templates/web/default/questionnaire/index.html:97 templates/web/default/report/display.html:109 templates/web/default/report/new/fill_in_details_form.html:98
+#: templates/web/default/questionnaire/index.html:97 templates/web/default/report/display.html:115 templates/web/default/report/new/fill_in_details_form.html:102
msgid "Photo:"
msgstr ""
@@ -1125,15 +1189,15 @@ msgstr ""
msgid "Photos of recent nearby reports"
msgstr ""
-#: templates/web/default/index.html:63
-msgid "Photos of recent reports"
+#: templates/web/default/admin/report_edit.html:22 templates/web/default/admin/report_edit.html:23 templates/web/default/report/display.html:85 templates/web/default/report/display.html:86
+msgid "Planned"
msgstr ""
#: templates/web/default/report/new/notes.html:6
msgid "Please be polite, concise and to the point."
msgstr ""
-#: templates/web/default/auth/change_password.html:14 templates/web/default/auth/change_password.html:19
+#: templates/web/default/auth/change_password.html:12 templates/web/default/auth/change_password.html:17
msgid "Please check the passwords and try again"
msgstr ""
@@ -1145,11 +1209,11 @@ msgstr ""
msgid "Please check your email address is correct"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:686 perllib/FixMyStreet/App/Controller/Report/New.pm:705 perllib/FixMyStreet/App/Controller/Report/New.pm:722 perllib/FixMyStreet/DB/Result/Problem.pm:208
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:722 perllib/FixMyStreet/App/Controller/Report/New.pm:741 perllib/FixMyStreet/App/Controller/Report/New.pm:778 perllib/FixMyStreet/DB/Result/Problem.pm:316
msgid "Please choose a category"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:214
+#: perllib/FixMyStreet/DB/Result/Problem.pm:322
msgid "Please choose a property type"
msgstr ""
@@ -1164,19 +1228,19 @@ msgstr ""
msgid "Please do not be abusive &mdash; abusing your council devalues the service for all users."
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Comment.pm:111
+#: perllib/FixMyStreet/DB/Result/Comment.pm:113
msgid "Please enter a message"
msgstr ""
-#: templates/web/default/auth/change_password.html:14 templates/web/default/auth/change_password.html:17
+#: templates/web/default/auth/change_password.html:12 templates/web/default/auth/change_password.html:15
msgid "Please enter a password"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Contact.pm:97 perllib/FixMyStreet/DB/Result/Problem.pm:183
+#: perllib/FixMyStreet/App/Controller/Contact.pm:97 perllib/FixMyStreet/DB/Result/Problem.pm:291
msgid "Please enter a subject"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/User.pm:94
+#: perllib/FixMyStreet/DB/Result/User.pm:96
msgid "Please enter a valid email"
msgstr ""
@@ -1184,19 +1248,19 @@ msgstr ""
msgid "Please enter a valid email address"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:186
+#: perllib/FixMyStreet/DB/Result/Problem.pm:294
msgid "Please enter some details"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Contact.pm:96 perllib/FixMyStreet/DB/Result/User.pm:91 templates/web/default/auth/general.html:13 templates/web/default/auth/general.html:8
+#: perllib/FixMyStreet/App/Controller/Contact.pm:96 perllib/FixMyStreet/DB/Result/User.pm:93 templates/web/default/auth/general.html:13 templates/web/default/auth/general.html:8
msgid "Please enter your email"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:201
+#: perllib/FixMyStreet/DB/Result/Problem.pm:309
msgid "Please enter your full name, councils need this information - if you do not wish your name to be shown on the site, untick the box"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Contact.pm:95 perllib/FixMyStreet/DB/Result/Comment.pm:108 perllib/FixMyStreet/DB/Result/Problem.pm:194 perllib/FixMyStreet/DB/Result/User.pm:87
+#: perllib/FixMyStreet/App/Controller/Contact.pm:95 perllib/FixMyStreet/DB/Result/Comment.pm:110 perllib/FixMyStreet/DB/Result/Problem.pm:302 perllib/FixMyStreet/DB/Result/User.pm:89
msgid "Please enter your name"
msgstr ""
@@ -1210,7 +1274,7 @@ msgid ""
"to read, as does a lack of punctuation."
msgstr ""
-#: templates/web/default/report/new/fill_in_details_text.html:1 templates/web/default/report/new/fill_in_details_text.html:8
+#: templates/web/default/report/new/fill_in_details_text.html:1 templates/web/default/report/new/fill_in_details_text.html:11
msgid "Please fill in details of the problem below."
msgstr ""
@@ -1226,11 +1290,11 @@ msgstr ""
msgid "Please fill in the form below with details of the problem, and describe the location as precisely as possible in the details box."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:235
+#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:244
msgid "Please indicate whether you'd like to receive another questionnaire"
msgstr ""
-#: templates/web/default/report/display.html:69
+#: templates/web/default/report/display.html:62
msgid "Please note that updates are not sent to the council. If you leave your name it will be public. Your information will only be used in accordance with our <a href=\"/faq#privacy\">privacy policy</a>"
msgstr ""
@@ -1242,15 +1306,15 @@ msgstr ""
msgid "Please note:"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:238
+#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:247
msgid "Please provide some explanation as to why you're reopening this report"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:245
+#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:254
msgid "Please provide some text as well as a photo"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:115 perllib/FixMyStreet/App/Controller/Questionnaire.pm:231
+#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:115 perllib/FixMyStreet/App/Controller/Questionnaire.pm:240
msgid "Please say whether you've ever reported a problem to your council before"
msgstr ""
@@ -1262,7 +1326,7 @@ msgstr ""
msgid "Please select the type of alert you want"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:227
+#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:236
msgid "Please state whether or not the problem has been fixed"
msgstr ""
@@ -1270,7 +1334,7 @@ msgstr ""
msgid "Please take a look at the updates that have been left."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:774
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:830
msgid "Please upload a JPEG image only"
msgstr ""
@@ -1278,7 +1342,7 @@ msgstr ""
msgid "Please write a message"
msgstr ""
-#: templates/web/default/contact/index.html:93 templates/web/default/report/display.html:119 templates/web/default/report/display.html:154 templates/web/default/report/display.html:175
+#: templates/web/default/contact/index.html:93 templates/web/default/report/display.html:125 templates/web/default/report/display.html:162 templates/web/default/report/display.html:184
msgid "Post"
msgstr ""
@@ -1286,7 +1350,11 @@ msgstr ""
msgid "Posted anonymously at %s"
msgstr ""
-#: templates/web/default/report/updates.html:10
+#: templates/web/default/report/updates.html:11
+msgid "Posted by %s (<strong>%s</strong>) at %s"
+msgstr ""
+
+#: templates/web/default/report/updates.html:13
msgid "Posted by %s at %s"
msgstr ""
@@ -1310,7 +1378,7 @@ msgstr ""
msgid "Problem breakdown by state"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:703
+#: perllib/FixMyStreet/App/Controller/Admin.pm:774
msgid "Problem marked as open."
msgstr ""
@@ -1334,11 +1402,11 @@ msgstr ""
msgid "Problems within %.1fkm of this location"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Default.pm:782 perllib/FixMyStreet/Cobrand/EmptyHomes.pm:162 perllib/FixMyStreet/Cobrand/FiksGataMi.pm:177
+#: perllib/FixMyStreet/Cobrand/Default.pm:800 perllib/FixMyStreet/Cobrand/EmptyHomes.pm:162 perllib/FixMyStreet/Cobrand/FiksGataMi.pm:177
msgid "Problems within %s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Default.pm:791 perllib/FixMyStreet/Cobrand/EmptyHomes.pm:170
+#: perllib/FixMyStreet/Cobrand/Default.pm:809 perllib/FixMyStreet/Cobrand/EmptyHomes.pm:170
msgid "Problems within %s ward"
msgstr ""
@@ -1354,15 +1422,15 @@ msgstr ""
msgid "Properties recently reported as put back to use on reportemptyhomes.com"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:498
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:528
msgid "Property type:"
msgstr ""
-#: templates/web/default/report/display.html:64
+#: templates/web/default/report/display.html:57
msgid "Provide an update"
msgstr ""
-#: templates/web/default/report/display.html:172 templates/web/default/report/new/fill_in_details_form.html:166
+#: templates/web/default/report/display.html:181 templates/web/default/report/new/fill_in_details_form.html:173
msgid "Providing a password is optional, but doing so will allow you to more easily report problems, leave updates and manage your reports."
msgstr ""
@@ -1378,27 +1446,27 @@ msgstr ""
msgid "Questionnaire %d sent for problem %d"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:181
+#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:190
msgid "Questionnaire filled in by problem reporter"
msgstr ""
-#: templates/web/default/alert/list.html:54 templates/web/default/around/display_location.html:1 templates/web/default/around/display_location.html:3 templates/web/default/report/display.html:55 templates/web/default/reports/council.html:61
+#: templates/web/default/alert/list.html:54 templates/web/default/around/display_location.html:1 templates/web/default/around/display_location.html:3 templates/web/default/report/display.html:48 templates/web/default/reports/council.html:61
msgid "RSS feed"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Default.pm:820 perllib/FixMyStreet/Cobrand/Default.pm:834
+#: perllib/FixMyStreet/Cobrand/Default.pm:838 perllib/FixMyStreet/Cobrand/Default.pm:852
msgid "RSS feed for %s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Default.pm:827 perllib/FixMyStreet/Cobrand/Default.pm:841
+#: perllib/FixMyStreet/Cobrand/Default.pm:845 perllib/FixMyStreet/Cobrand/Default.pm:859
msgid "RSS feed for %s ward, %s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Default.pm:850 perllib/FixMyStreet/Cobrand/Default.pm:864 perllib/FixMyStreet/Cobrand/FiksGataMi.pm:193 perllib/FixMyStreet/Cobrand/FiksGataMi.pm:201 perllib/FixMyStreet/Cobrand/FiksGataMi.pm:211 perllib/FixMyStreet/Cobrand/FiksGataMi.pm:219
+#: perllib/FixMyStreet/Cobrand/Default.pm:868 perllib/FixMyStreet/Cobrand/Default.pm:882 perllib/FixMyStreet/Cobrand/FiksGataMi.pm:193 perllib/FixMyStreet/Cobrand/FiksGataMi.pm:201 perllib/FixMyStreet/Cobrand/FiksGataMi.pm:211 perllib/FixMyStreet/Cobrand/FiksGataMi.pm:219
msgid "RSS feed of %s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Default.pm:856 perllib/FixMyStreet/Cobrand/Default.pm:870
+#: perllib/FixMyStreet/Cobrand/Default.pm:874 perllib/FixMyStreet/Cobrand/Default.pm:888
msgid "RSS feed of %s, within %s ward"
msgstr ""
@@ -1410,11 +1478,11 @@ msgstr ""
msgid "RSS feed of problems in this %s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Default.pm:783 perllib/FixMyStreet/Cobrand/EmptyHomes.pm:163 perllib/FixMyStreet/Cobrand/FiksGataMi.pm:176
+#: perllib/FixMyStreet/Cobrand/Default.pm:801 perllib/FixMyStreet/Cobrand/EmptyHomes.pm:163 perllib/FixMyStreet/Cobrand/FiksGataMi.pm:176
msgid "RSS feed of problems within %s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Default.pm:790 perllib/FixMyStreet/Cobrand/EmptyHomes.pm:169
+#: perllib/FixMyStreet/Cobrand/Default.pm:808 perllib/FixMyStreet/Cobrand/EmptyHomes.pm:169
msgid "RSS feed of problems within %s ward"
msgstr ""
@@ -1422,11 +1490,11 @@ msgstr ""
msgid "RSS feed of recent local problems"
msgstr ""
-#: templates/web/default/report/display.html:55
+#: templates/web/default/report/display.html:48
msgid "RSS feed of updates to this problem"
msgstr ""
-#: templates/web/default/alert/updates.html:9 templates/web/default/report/display.html:45
+#: templates/web/default/alert/updates.html:9 templates/web/default/report/display.html:38
msgid "Receive email when updates are left on this problem."
msgstr ""
@@ -1438,7 +1506,7 @@ msgstr ""
msgid "Recently fixed"
msgstr ""
-#: templates/web/default/index.html:72
+#: templates/web/default/index.html:62
msgid "Recently reported problems"
msgstr ""
@@ -1450,7 +1518,7 @@ msgstr ""
msgid "Remove flag"
msgstr ""
-#: templates/web/default/admin/report_edit.html:44 templates/web/default/admin/update_edit.html:33
+#: templates/web/default/admin/report_edit.html:47 templates/web/default/admin/update_edit.html:48
msgid "Remove photo (can't be undone!)"
msgstr ""
@@ -1458,11 +1526,11 @@ msgstr ""
msgid "Report Empty Homes"
msgstr ""
-#: templates/web/default/footer.html:6 templates/web/emptyhomes/header.html:28 templates/web/fiksgatami/footer.html:5
+#: templates/web/default/footer.html:6 templates/web/emptyhomes/header.html:27 templates/web/fiksgatami/footer.html:5 templates/web/reading/footer.html:6
msgid "Report a problem"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Rss.pm:268
+#: perllib/FixMyStreet/App/Controller/Rss.pm:274
msgid "Report on %s"
msgstr ""
@@ -1470,15 +1538,15 @@ msgstr ""
msgid "Report, view, or discuss local problems"
msgstr ""
-#: templates/web/default/my/my.html:69
+#: templates/web/default/my/my.html:74
msgid "Reported %s"
msgstr ""
-#: templates/web/default/my/my.html:67
+#: templates/web/default/my/my.html:72
msgid "Reported %s, to %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:333 templates/web/default/contact/index.html:45
+#: perllib/FixMyStreet/DB/Result/Problem.pm:490 templates/web/default/contact/index.html:45
msgid "Reported anonymously at %s"
msgstr ""
@@ -1486,31 +1554,31 @@ msgstr ""
msgid "Reported before"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:325
+#: perllib/FixMyStreet/DB/Result/Problem.pm:482
msgid "Reported by %s anonymously at %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:356 templates/web/default/contact/index.html:47
+#: perllib/FixMyStreet/DB/Result/Problem.pm:513 templates/web/default/contact/index.html:47
msgid "Reported by %s at %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:347
+#: perllib/FixMyStreet/DB/Result/Problem.pm:504
msgid "Reported by %s by %s at %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:321
+#: perllib/FixMyStreet/DB/Result/Problem.pm:478
msgid "Reported by %s in the %s category anonymously at %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:341
+#: perllib/FixMyStreet/DB/Result/Problem.pm:498
msgid "Reported by %s in the %s category by %s at %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:329
+#: perllib/FixMyStreet/DB/Result/Problem.pm:486
msgid "Reported in the %s category anonymously at %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:351
+#: perllib/FixMyStreet/DB/Result/Problem.pm:508
msgid "Reported in the %s category by %s at %s"
msgstr ""
@@ -1522,7 +1590,7 @@ msgstr ""
msgid "Reports on and around the map"
msgstr ""
-#: templates/web/default/admin/report_edit.html:32
+#: templates/web/default/admin/report_edit.html:35
msgid "Resend report"
msgstr ""
@@ -1538,7 +1606,7 @@ msgstr ""
msgid "Save changes"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:843
+#: perllib/FixMyStreet/App/Controller/Admin.pm:982
msgid "Search Abuse"
msgstr ""
@@ -1546,11 +1614,15 @@ msgstr ""
msgid "Search Abuse Table"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:840 templates/web/default/admin/list_flagged.html:1 templates/web/default/admin/search_reports.html:1
+#: perllib/FixMyStreet/App/Controller/Admin.pm:978 templates/web/default/admin/list_flagged.html:1 templates/web/default/admin/search_reports.html:1
msgid "Search Reports"
msgstr ""
-#: templates/web/default/admin/search_abuse.html:4 templates/web/default/admin/search_reports.html:5
+#: perllib/FixMyStreet/App/Controller/Admin.pm:981 templates/web/default/admin/search_users.html:1
+msgid "Search Users"
+msgstr ""
+
+#: templates/web/default/admin/search_abuse.html:4 templates/web/default/admin/search_reports.html:5 templates/web/default/admin/search_users.html:5
msgid "Search:"
msgstr ""
@@ -1558,15 +1630,15 @@ msgstr ""
msgid "Select which type of alert you'd like and click the button for an RSS feed, or enter your email address to subscribe to an email alert."
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:398
+#: perllib/FixMyStreet/DB/Result/Problem.pm:555
msgid "Sent to %s %s later"
msgstr ""
-#: templates/web/default/admin/report_edit.html:32
+#: templates/web/default/admin/report_edit.html:35
msgid "Sent:"
msgstr ""
-#: templates/web/default/admin/report_edit.html:34
+#: templates/web/default/admin/report_edit.html:37
msgid "Service:"
msgstr ""
@@ -1587,7 +1659,7 @@ msgid ""
" significant contribution to the supply of affordable homes in Wales."
msgstr ""
-#: templates/web/default/report/display.html:205 templates/web/default/report/new/fill_in_details_form.html:201
+#: templates/web/default/report/display.html:216 templates/web/default/report/new/fill_in_details_form.html:210
msgid "Show my name publicly"
msgstr ""
@@ -1607,14 +1679,18 @@ msgstr ""
msgid "Sign in or create an account"
msgstr ""
-#: templates/web/default/auth/sign_out.html:1 templates/web/default/header.html:28 templates/web/emptyhomes/header.html:44 templates/web/lichfielddc/header.html:174
+#: templates/web/default/auth/sign_out.html:1 templates/web/default/header.html:35 templates/web/emptyhomes/header.html:43 templates/web/fiksgatami/header.html:22 templates/web/lichfielddc/header.html:177 templates/web/reading/header.html:37
msgid "Sign out"
msgstr ""
-#: templates/web/default/header.html:27 templates/web/emptyhomes/header.html:43 templates/web/lichfielddc/header.html:174
+#: templates/web/default/header.html:34 templates/web/emptyhomes/header.html:42 templates/web/fiksgatami/header.html:21 templates/web/lichfielddc/header.html:177 templates/web/reading/header.html:36
msgid "Signed in as %s"
msgstr ""
+#: templates/web/default/report/new/fill_in_details_text.html:1
+msgid "Some categories may require additional information."
+msgstr ""
+
#: templates/web/default/alert/index.html:31
msgid "Some photos of recent reports"
msgstr ""
@@ -1627,7 +1703,7 @@ msgstr ""
msgid "Some unconfirmeds"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Default.pm:516
+#: perllib/FixMyStreet/Cobrand/Default.pm:517
msgid "Sorry, that appears to be a Crown dependency postcode, which we don't cover."
msgstr ""
@@ -1635,27 +1711,27 @@ msgstr ""
msgid "Sorry, there has been an error confirming your problem."
msgstr ""
-#: perllib/FixMyStreet/Geocode.pm:27 perllib/FixMyStreet/Geocode/Bing.pm:51 perllib/FixMyStreet/Geocode/Google.pm:68
+#: perllib/FixMyStreet/Geocode.pm:27 perllib/FixMyStreet/Geocode/Bing.pm:52 perllib/FixMyStreet/Geocode/Google.pm:68
msgid "Sorry, we could not find that location."
msgstr ""
-#: perllib/FixMyStreet/Geocode/Bing.pm:44 perllib/FixMyStreet/Geocode/Google.pm:60
+#: perllib/FixMyStreet/Geocode/Bing.pm:45 perllib/FixMyStreet/Geocode/Google.pm:60
msgid "Sorry, we could not parse that location. Please try again."
msgstr ""
-#: templates/web/fiksgatami/footer.html:15
+#: templates/web/fiksgatami/footer.html:16
msgid "Source code"
msgstr ""
-#: templates/web/default/admin/stats.html:41
+#: templates/web/default/admin/stats.html:64
msgid "Start Year:"
msgstr ""
-#: templates/web/default/admin/stats.html:43
+#: templates/web/default/admin/stats.html:66
msgid "Start day:"
msgstr ""
-#: templates/web/default/admin/stats.html:42
+#: templates/web/default/admin/stats.html:65
msgid "Start month:"
msgstr ""
@@ -1663,11 +1739,11 @@ msgstr ""
msgid "State"
msgstr ""
-#: templates/web/default/admin/report_edit.html:21 templates/web/default/admin/update_edit.html:18
+#: templates/web/default/admin/report_edit.html:21 templates/web/default/admin/update_edit.html:18 templates/web/default/report/display.html:83
msgid "State:"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:845 templates/web/default/admin/stats.html:1
+#: perllib/FixMyStreet/App/Controller/Admin.pm:984 templates/web/default/admin/stats.html:1
msgid "Stats"
msgstr ""
@@ -1675,11 +1751,11 @@ msgstr ""
msgid "Subject:"
msgstr ""
-#: templates/web/default/questionnaire/creator_fixed.html:19 templates/web/default/report/new/fill_in_details_form.html:110 templates/web/default/report/new/fill_in_details_form.html:148 templates/web/default/report/new/fill_in_details_form.html:169
+#: templates/web/default/questionnaire/creator_fixed.html:19 templates/web/default/report/new/fill_in_details_form.html:114 templates/web/default/report/new/fill_in_details_form.html:154 templates/web/default/report/new/fill_in_details_form.html:176
msgid "Submit"
msgstr ""
-#: templates/web/default/admin/report_edit.html:47 templates/web/default/admin/update_edit.html:36
+#: templates/web/default/admin/report_edit.html:50 templates/web/default/admin/update_edit.html:51 templates/web/default/admin/user_edit.html:20
msgid "Submit changes"
msgstr ""
@@ -1687,7 +1763,7 @@ msgstr ""
msgid "Submit questionnaire"
msgstr ""
-#: templates/web/default/alert/updates.html:17 templates/web/default/report/display.html:50
+#: templates/web/default/alert/updates.html:17 templates/web/default/report/display.html:43
msgid "Subscribe"
msgstr ""
@@ -1695,7 +1771,7 @@ msgstr ""
msgid "Subscribe me to an email alert"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:838 templates/web/default/admin/index.html:1
+#: perllib/FixMyStreet/App/Controller/Admin.pm:976 templates/web/default/admin/index.html:1
msgid "Summary"
msgstr ""
@@ -1703,11 +1779,11 @@ msgstr ""
msgid "Summary reports"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:842 templates/web/default/admin/questionnaire.html:1
+#: perllib/FixMyStreet/App/Controller/Admin.pm:980 templates/web/default/admin/questionnaire.html:1
msgid "Survey Results"
msgstr ""
-#: templates/web/default/admin/list_updates.html:12
+#: templates/web/default/admin/list_updates.html:14
msgid "Text"
msgstr ""
@@ -1755,7 +1831,7 @@ msgstr ""
msgid "Thanks, glad to hear it's been fixed! Could we just ask if you have ever reported a problem to a council before?"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:783
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:839
msgid "That image doesn't appear to have uploaded correctly (%s), please try again."
msgstr ""
@@ -1767,11 +1843,11 @@ msgstr ""
msgid "That location does not appear to be in Britain; please try again."
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Default.pm:509 perllib/FixMyStreet/Cobrand/FiksGataMi.pm:78
+#: perllib/FixMyStreet/Cobrand/Default.pm:510 perllib/FixMyStreet/Cobrand/FiksGataMi.pm:78
msgid "That postcode was not recognised, sorry."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:517
+#: perllib/FixMyStreet/App/Controller/Admin.pm:558
msgid "That problem will now be resent."
msgstr ""
@@ -1866,7 +1942,7 @@ msgstr ""
msgid "The latest reports within {{NAME}}'s boundary reported by users"
msgstr ""
-#: templates/web/default/auth/change_password.html:14 templates/web/default/auth/change_password.html:18
+#: templates/web/default/auth/change_password.html:12 templates/web/default/auth/change_password.html:16
msgid "The passwords do not match"
msgstr ""
@@ -1874,7 +1950,7 @@ msgstr ""
msgid "The requested URL '%s' was not found on this server"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1039 perllib/FixMyStreet/App/Controller/Admin.pm:497 perllib/FixMyStreet/App/Controller/Admin.pm:630 perllib/FixMyStreet/App/Controller/Admin.pm:894
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1034 perllib/FixMyStreet/App/Controller/Admin.pm:1179 perllib/FixMyStreet/App/Controller/Admin.pm:538 perllib/FixMyStreet/App/Controller/Admin.pm:701
msgid "The requested URL was not found on this server."
msgstr ""
@@ -1886,7 +1962,7 @@ msgstr ""
msgid "The subject and details of the problem will be public, plus your name if you give us permission."
msgstr ""
-#: bin/send-reports:77
+#: bin/send-reports:78
msgid "The user could not locate the problem on a map, but to see the area around the location they entered"
msgstr ""
@@ -1894,7 +1970,7 @@ msgstr ""
msgid "There was a problem showing the All Reports page. Please try again later."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:605 perllib/FixMyStreet/App/Controller/Report/Update.pm:117 templates/web/default/auth/general.html:23
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:641 perllib/FixMyStreet/App/Controller/Report/Update.pm:125 templates/web/default/auth/general.html:23
msgid "There was a problem with your email/password combination. Passwords and user accounts are a brand <strong>new</strong> service, so you probably do not have one yet &ndash; please fill in the right hand side of this form to get one."
msgstr ""
@@ -1902,11 +1978,15 @@ msgstr ""
msgid "There was a problem with your email/password combination. Please try again."
msgstr ""
+#: perllib/FixMyStreet/App/Controller/Report/Update.pm:214
+msgid "There was a problem with your update. Please try again."
+msgstr ""
+
#: perllib/FixMyStreet/App/Controller/Contact.pm:117
msgid "There were problems with your report. Please see below."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/Update.pm:211
+#: perllib/FixMyStreet/App/Controller/Report/Update.pm:241
msgid "There were problems with your update. Please see below."
msgstr ""
@@ -1914,14 +1994,18 @@ msgstr ""
msgid "This API implementation is work in progress and not yet stabilized. It will change without warnings in the future."
msgstr ""
-#: bin/send-reports:181
+#: bin/send-reports:185
msgid "This email has been sent to both councils covering the location of the problem, as the user did not categorise it; please ignore it if you're not the correct council to deal with the issue, or let us know what category of problem this is so we can add it to our system."
msgstr ""
-#: bin/send-reports:184
+#: bin/send-reports:188
msgid "This email has been sent to several councils covering the location of the problem, as the category selected is provided for all of them; please ignore it if you're not the correct council to deal with the issue."
msgstr ""
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:761
+msgid "This information is required"
+msgstr ""
+
#: templates/web/default/debug_header.html:3
msgid "This is a developer site; things might break at any time, and the database will be periodically deleted."
msgstr ""
@@ -1938,31 +2022,43 @@ msgstr ""
msgid "This is a summary of all reports on this site; select a particular council to see the reports sent there."
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Default.pm:903 perllib/FixMyStreet/Cobrand/EmptyHomes.pm:117 templates/web/default/report/display.html:96
+#: perllib/FixMyStreet/Cobrand/Default.pm:926
+msgid "This problem has been closed"
+msgstr ""
+
+#: perllib/FixMyStreet/Cobrand/Default.pm:922 perllib/FixMyStreet/Cobrand/EmptyHomes.pm:117 templates/web/default/report/display.html:101
msgid "This problem has been fixed"
msgstr ""
-#: templates/web/default/report/display.html:91
+#: templates/web/default/report/display.html:96
msgid "This problem has not been fixed"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Default.pm:899
+#: perllib/FixMyStreet/Cobrand/Default.pm:931
+msgid "This problem is in progress"
+msgstr ""
+
+#: perllib/FixMyStreet/Cobrand/Default.pm:918
msgid "This problem is old and of unknown status."
msgstr ""
#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:79
+msgid "This report is currently marked as closed."
+msgstr ""
+
+#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:77
msgid "This report is currently marked as fixed."
msgstr ""
-#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:80
+#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:81
msgid "This report is currently marked as open."
msgstr ""
-#: bin/send-reports:70
+#: bin/send-reports:71
msgid "This web page also contains a photo of the problem, provided by the user."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:841 templates/web/default/admin/timeline.html:1
+#: perllib/FixMyStreet/App/Controller/Admin.pm:979 templates/web/default/admin/timeline.html:1
msgid "Timeline"
msgstr ""
@@ -1980,11 +2076,11 @@ msgid ""
"postcode or street name and area:"
msgstr ""
-#: bin/send-reports:76
+#: bin/send-reports:77
msgid "To view a map of the precise location of this issue"
msgstr ""
-#: templates/web/default/admin/index.html:36 templates/web/default/admin/questionnaire.html:24 templates/web/default/admin/stats.html:21
+#: templates/web/default/admin/index.html:36 templates/web/default/admin/questionnaire.html:24 templates/web/default/admin/stats.html:24 templates/web/default/admin/stats.html:43
msgid "Total"
msgstr ""
@@ -1992,7 +2088,7 @@ msgstr ""
msgid "Unable to look up areas in MaPit. Please try again later."
msgstr ""
-#: templates/web/default/admin/report_edit.html:22 templates/web/default/admin/update_edit.html:19
+#: templates/web/default/admin/report_edit.html:22 templates/web/default/admin/report_edit.html:25 templates/web/default/admin/update_edit.html:19
msgid "Unconfirmed"
msgstr ""
@@ -2024,15 +2120,27 @@ msgstr ""
msgid "Update by {{name}}"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:46
+#: templates/web/default/admin/update_edit.html:33
+msgid "Update changed problem state to %s"
+msgstr ""
+
+#: templates/web/default/admin/update_edit.html:35
+msgid "Update marked problem as fixed"
+msgstr ""
+
+#: templates/web/default/admin/update_edit.html:37
+msgid "Update reopened problem"
+msgstr ""
+
+#: templates/web/default/admin/council_contacts.html:53
msgid "Update statuses"
msgstr ""
-#: templates/web/default/report/display.html:84
+#: templates/web/default/report/display.html:77
msgid "Update:"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:606 perllib/FixMyStreet/App/Controller/Admin.pm:693
+#: perllib/FixMyStreet/App/Controller/Admin.pm:647 perllib/FixMyStreet/App/Controller/Admin.pm:764 perllib/FixMyStreet/App/Controller/Admin.pm:844
msgid "Updated!"
msgstr ""
@@ -2048,11 +2156,11 @@ msgstr ""
msgid "Updates to this problem, FixMyStreet"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:997
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1137
msgid "User flag removed"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:969
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1109
msgid "User flagged"
msgstr ""
@@ -2060,7 +2168,7 @@ msgstr ""
msgid "Users"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:295 perllib/FixMyStreet/App/Controller/Admin.pm:325
+#: perllib/FixMyStreet/App/Controller/Admin.pm:304 perllib/FixMyStreet/App/Controller/Admin.pm:334
msgid "Values updated"
msgstr ""
@@ -2084,11 +2192,7 @@ msgstr ""
msgid "Wards of this council"
msgstr ""
-#: perllib/FixMyStreet/Geocode/Bing.pm:46
-msgid "We do not cover Northern Ireland, I'm afraid, as our licence doesn't include any maps for the region."
-msgstr ""
-
-#: perllib/FixMyStreet/Cobrand/Default.pm:520 perllib/FixMyStreet/Geocode/Google.pm:63
+#: perllib/FixMyStreet/Cobrand/Default.pm:521 perllib/FixMyStreet/Geocode/Bing.pm:47 perllib/FixMyStreet/Geocode/Google.pm:63
msgid "We do not currently cover Northern Ireland, I'm afraid."
msgstr ""
@@ -2104,7 +2208,7 @@ msgstr ""
msgid "We may contact you periodically to ask if anything has changed with the property you reported."
msgstr ""
-#: bin/send-reports:191
+#: bin/send-reports:195
msgid "We realise this problem might be the responsibility of %s; however, we don't currently have any contact details for them. If you know of an appropriate contact address, please do get in touch."
msgstr ""
@@ -2124,7 +2228,7 @@ msgstr ""
msgid "We'd love to hear what you think about this site. Just fill in the form, or send an email to <a href='mailto:%s'>%s</a>:"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:25 templates/web/default/admin/council_edit.html:41
+#: templates/web/default/admin/council_contacts.html:32 templates/web/default/admin/council_edit.html:41
msgid "When edited"
msgstr ""
@@ -2132,7 +2236,7 @@ msgstr ""
msgid "When sent"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:493
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:523
msgid "Whole block of empty flats"
msgstr ""
@@ -2148,7 +2252,11 @@ msgstr ""
msgid "Writing your message entirely in block capitals makes it hard to read, as does a lack of punctuation."
msgstr ""
-#: templates/web/default/admin/council_contacts.html:32 templates/web/default/admin/council_contacts.html:33 templates/web/default/admin/council_edit.html:5 templates/web/default/admin/list_updates.html:28 templates/web/default/admin/problem_row.html:19 templates/web/default/admin/report_edit.html:18 templates/web/default/admin/report_edit.html:37 templates/web/default/admin/update_edit.html:15 templates/web/default/questionnaire/creator_fixed.html:14 templates/web/default/questionnaire/index.html:107 templates/web/default/questionnaire/index.html:68
+#: templates/web/default/admin/stats.html:10
+msgid "Year"
+msgstr ""
+
+#: templates/web/default/admin/council_contacts.html:39 templates/web/default/admin/council_contacts.html:40 templates/web/default/admin/council_edit.html:5 templates/web/default/admin/list_updates.html:30 templates/web/default/admin/list_updates.html:31 templates/web/default/admin/list_updates.html:32 templates/web/default/admin/problem_row.html:19 templates/web/default/admin/report_edit.html:18 templates/web/default/admin/report_edit.html:40 templates/web/default/admin/search_users.html:23 templates/web/default/admin/update_edit.html:15 templates/web/default/questionnaire/creator_fixed.html:14 templates/web/default/questionnaire/index.html:107 templates/web/default/questionnaire/index.html:68
msgid "Yes"
msgstr ""
@@ -2168,7 +2276,7 @@ msgstr ""
msgid "You can <a href=\"/reports\">show all councils</a>."
msgstr ""
-#: templates/web/default/report/new/councils_text_none.html:14 templates/web/default/report/new/councils_text_none.html:3 templates/web/default/report/new/councils_text_some.html:20 templates/web/default/report/new/councils_text_some.html:22
+#: templates/web/default/report/new/councils_text_none.html:14 templates/web/default/report/new/councils_text_none.html:16 templates/web/default/report/new/councils_text_some.html:20 templates/web/default/report/new/councils_text_some.html:22
msgid "You can help us by finding a contact email address for local problems for %s and emailing it to us at <a href='mailto:%s'>%s</a>."
msgstr ""
@@ -2176,11 +2284,11 @@ msgstr ""
msgid "You have already answered this questionnaire. If you have a question, please <a href='%s'>get in touch</a>, or <a href='%s'>view your problem</a>.\n"
msgstr ""
-#: templates/web/default/questionnaire/index.html:94 templates/web/default/report/new/fill_in_details_form.html:89
+#: templates/web/default/questionnaire/index.html:94 templates/web/default/report/new/fill_in_details_form.html:93
msgid "You have already attached a photo to this report, attaching another one will replace it."
msgstr ""
-#: templates/web/default/report/display.html:106
+#: templates/web/default/report/display.html:112
msgid "You have already attached a photo to this update, attaching another one will replace it."
msgstr ""
@@ -2212,7 +2320,7 @@ msgstr ""
msgid "You have successfully deleted your alert."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:611 perllib/FixMyStreet/App/Controller/Report/Update.pm:123
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:647 perllib/FixMyStreet/App/Controller/Report/Update.pm:131
msgid "You have successfully signed in; please check and confirm your details are accurate:"
msgstr ""
@@ -2220,7 +2328,7 @@ msgstr ""
msgid "You must now click the link in the email we've just sent you &mdash; if you do not, %s."
msgstr ""
-#: templates/web/default/admin/report_edit.html:32
+#: templates/web/default/admin/report_edit.html:35
msgid "You really want to resend?"
msgstr ""
@@ -2232,11 +2340,11 @@ msgstr ""
msgid "Your email address:"
msgstr ""
-#: templates/web/default/alert/list.html:122 templates/web/default/report/display.html:128 templates/web/default/report/new/fill_in_details_form.html:120
+#: templates/web/default/alert/list.html:122 templates/web/default/report/display.html:134 templates/web/default/report/new/fill_in_details_form.html:124
msgid "Your email:"
msgstr ""
-#: templates/web/default/auth/general.html:59 templates/web/default/contact/index.html:68 templates/web/default/report/display.html:199 templates/web/default/report/new/fill_in_details_form.html:194
+#: templates/web/default/auth/general.html:59 templates/web/default/contact/index.html:68 templates/web/default/report/display.html:210 templates/web/default/report/new/fill_in_details_form.html:203
msgid "Your name:"
msgstr ""
@@ -2244,11 +2352,11 @@ msgstr ""
msgid "Your password has been changed"
msgstr ""
-#: templates/web/default/footer.html:7
+#: templates/web/default/footer.html:7 templates/web/fiksgatami/footer.html:6 templates/web/reading/footer.html:7
msgid "Your reports"
msgstr ""
-#: templates/web/default/my/my.html:40
+#: templates/web/default/my/my.html:45
msgid "Your updates"
msgstr ""
@@ -2272,15 +2380,19 @@ msgstr ""
msgid "from %d different users"
msgstr ""
-#: perllib/Utils.pm:247
+#: perllib/Utils.pm:248
msgid "less than a minute"
msgstr ""
-#: templates/web/default/report/updates.html:13
+#: templates/web/default/report/updates.html:18
+msgid "marked as %s"
+msgstr ""
+
+#: templates/web/default/report/updates.html:16
msgid "marked as fixed"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:107 templates/web/default/admin/questionnaire.html:15 templates/web/default/admin/questionnaire.html:16
+#: perllib/FixMyStreet/App/Controller/Admin.pm:109 templates/web/default/admin/questionnaire.html:15 templates/web/default/admin/questionnaire.html:16
msgid "n/a"
msgstr ""
@@ -2296,7 +2408,7 @@ msgstr ""
msgid "other areas:"
msgstr ""
-#: templates/web/default/report/updates.html:14
+#: templates/web/default/report/updates.html:17
msgid "reopened"
msgstr ""
@@ -2304,15 +2416,15 @@ msgstr ""
msgid "the local council"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:363
+#: perllib/FixMyStreet/DB/Result/Problem.pm:520
msgid "the map was not used so pin location may be inaccurate"
msgstr ""
-#: bin/send-reports:172
+#: bin/send-reports:176
msgid "this type of local problem"
msgstr ""
-#: perllib/Utils.pm:221
+#: perllib/Utils.pm:222
msgid "today"
msgstr ""
@@ -2320,6 +2432,14 @@ msgstr ""
msgid "used map"
msgstr ""
+#: templates/web/default/admin/update_edit.html:26
+msgid "user is from same council as problem - %d"
+msgstr ""
+
+#: templates/web/default/admin/update_edit.html:29
+msgid "user is problem owner"
+msgstr ""
+
#: templates/web/default/reports/council.html:0 templates/web/default/reports/council.html:3
msgid "ward"
msgstr ""
@@ -2348,7 +2468,7 @@ msgstr ""
msgid "your update will not be posted"
msgstr ""
-#: templates/web/default/front/stats.html:19
+#: templates/web/default/front/stats.html:17
#, perl-format
msgid "<big>%s</big> report recently"
msgid_plural "<big>%s</big> reports recently"
@@ -2362,21 +2482,21 @@ msgid_plural "We do not yet have details for the councils that cover this locati
msgstr[0] ""
msgstr[1] ""
-#: templates/web/default/front/stats.html:14
+#: templates/web/default/front/stats.html:12
#, perl-format
msgid "<big>%s</big> report in past week"
msgid_plural "<big>%s</big> reports in past week"
msgstr[0] ""
msgstr[1] ""
-#: templates/web/default/front/stats.html:25
+#: templates/web/default/front/stats.html:23
#, perl-format
msgid "<big>%s</big> fixed in past month"
msgid_plural "<big>%s</big> fixed in past month"
msgstr[0] ""
msgstr[1] ""
-#: templates/web/default/front/stats.html:31
+#: templates/web/default/front/stats.html:29
#, perl-format
msgid "<big>%s</big> update on reports"
msgid_plural "<big>%s</big> updates on reports"
diff --git a/locale/cy_GB.UTF-8/LC_MESSAGES/EmptyHomes.po b/locale/cy_GB.UTF-8/LC_MESSAGES/EmptyHomes.po
index be5260a1b..0e6f7ecac 100644
--- a/locale/cy_GB.UTF-8/LC_MESSAGES/EmptyHomes.po
+++ b/locale/cy_GB.UTF-8/LC_MESSAGES/EmptyHomes.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 1.0\n"
"Report-Msgid-Bugs-To: matthew@mysociety.org\n"
-"POT-Creation-Date: 2011-08-18 11:07+0100\n"
+"POT-Creation-Date: 2011-10-21 15:56+0100\n"
"PO-Revision-Date: 2009-07-10 14:20-0000\n"
"Last-Translator: Mark Smith <Mark.Smith@trosol.co.uk>\n"
"Language-Team: mySociety\n"
@@ -19,7 +19,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-#: bin/send-reports:179 perllib/FixMyStreet/DB/Result/Problem.pm:378
+#: bin/send-reports:183 perllib/FixMyStreet/DB/Result/Problem.pm:535
msgid " and "
msgstr ""
@@ -30,8 +30,8 @@ msgstr " a <strong>byddwn nawr yn ei anfon at y cyngor</strong>"
#: templates/web/default/report/new/councils_text_all.html:10
#: templates/web/default/report/new/councils_text_all.html:3
-#: templates/web/default/report/new/councils_text_none.html:15
-#: templates/web/default/report/new/councils_text_none.html:3
+#: templates/web/default/report/new/councils_text_none.html:14
+#: templates/web/default/report/new/councils_text_none.html:17
#: templates/web/default/report/new/councils_text_some.html:20
#: templates/web/default/report/new/councils_text_some.html:23
#: templates/web/default/report/new/councils_text_some.html:5
@@ -53,12 +53,12 @@ msgstr ""
msgid "%d council contacts &ndash; %d confirmed, %d unconfirmed"
msgstr ""
-#: perllib/Utils.pm:251
+#: perllib/Utils.pm:252
#, fuzzy
msgid "%d day"
msgstr "diwrnod"
-#: perllib/Utils.pm:251
+#: perllib/Utils.pm:252
#, fuzzy
msgid "%d days"
msgstr "diwrnod"
@@ -67,12 +67,12 @@ msgstr "diwrnod"
msgid "%d edits by %s"
msgstr ""
-#: perllib/Utils.pm:252
+#: perllib/Utils.pm:253
#, fuzzy
msgid "%d hour"
msgstr "awr"
-#: perllib/Utils.pm:252
+#: perllib/Utils.pm:253
#, fuzzy
msgid "%d hours"
msgstr "awr"
@@ -82,12 +82,12 @@ msgstr "awr"
msgid "%d live updates"
msgstr "Anfonwch ddiweddariadau ataf i drwy'r e-bost"
-#: perllib/Utils.pm:253
+#: perllib/Utils.pm:254
#, fuzzy
msgid "%d minute"
msgstr "munud"
-#: perllib/Utils.pm:253
+#: perllib/Utils.pm:254
#, fuzzy
msgid "%d minutes"
msgstr "munud"
@@ -96,12 +96,12 @@ msgstr "munud"
msgid "%d questionnaires sent &ndash; %d answered (%s%%)"
msgstr ""
-#: perllib/Utils.pm:250
+#: perllib/Utils.pm:251
#, fuzzy
msgid "%d week"
msgstr "wythnos"
-#: perllib/Utils.pm:250
+#: perllib/Utils.pm:251
#, fuzzy
msgid "%d weeks"
msgstr "wythnos"
@@ -111,21 +111,21 @@ msgstr "wythnos"
msgid "%s - Summary reports"
msgstr "%s - Adroddiadau cryno"
-#: perllib/FixMyStreet/Cobrand/Default.pm:826
-#: perllib/FixMyStreet/Cobrand/Default.pm:840
+#: perllib/FixMyStreet/Cobrand/Default.pm:844
+#: perllib/FixMyStreet/Cobrand/Default.pm:858
msgid "%s ward, %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:309
+#: perllib/FixMyStreet/DB/Result/Problem.pm:466
msgid "%s, reported anonymously at %s"
msgstr "Rhoddodd %s wybod yn ddi-enw am %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:311
+#: perllib/FixMyStreet/DB/Result/Problem.pm:468
msgid "%s, reported by %s at %s"
msgstr "Adroddwyd am %s gan %s am %s"
-#: perllib/FixMyStreet/Cobrand/Default.pm:857
-#: perllib/FixMyStreet/Cobrand/Default.pm:871
+#: perllib/FixMyStreet/Cobrand/Default.pm:875
+#: perllib/FixMyStreet/Cobrand/Default.pm:889
#, fuzzy
msgid "%s, within %s ward"
msgstr "Eiddo gwag yn ward %s"
@@ -165,7 +165,7 @@ msgstr " "
msgid "(not sent to council)"
msgstr "Ni roddwyd gwybod i'r cyngor am hyn"
-#: templates/web/default/report/new/fill_in_details_form.html:208
+#: templates/web/default/report/new/fill_in_details_form.html:217
msgid "(optional)"
msgstr "(dewisol)"
@@ -174,28 +174,28 @@ msgstr "(dewisol)"
msgid "(sent to both)"
msgstr "Ni roddwyd gwybod i'r cyngor am hyn"
-#: templates/web/default/report/new/fill_in_details_form.html:202
+#: templates/web/default/report/new/fill_in_details_form.html:211
msgid "(we never show your email address or phone number)"
msgstr "(nid ydym byth yn dangos eich cyfeiriad e-bost na'ch rhif ffĂ´n)"
-#: templates/web/default/report/display.html:206
+#: templates/web/default/report/display.html:217
#, fuzzy
msgid "(we never show your email)"
msgstr "(nid ydym byth yn dangos eich cyfeiriad e-bost na'ch rhif ffĂ´n)"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:270
+#: perllib/FixMyStreet/App/Controller/Admin.pm:279
msgid "*unknown*"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:504
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:532
-#: perllib/FixMyStreet/DB/Result/Problem.pm:206
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:534
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:566
+#: perllib/FixMyStreet/DB/Result/Problem.pm:314
#, fuzzy
msgid "-- Pick a category --"
msgstr "-- Dewiswch fath o eiddo --"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:490
-#: perllib/FixMyStreet/DB/Result/Problem.pm:212
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:520
+#: perllib/FixMyStreet/DB/Result/Problem.pm:320
msgid "-- Pick a property type --"
msgstr "-- Dewiswch fath o eiddo --"
@@ -204,7 +204,7 @@ msgstr "-- Dewiswch fath o eiddo --"
msgid ". You can <a href=\"%s\">view the empty property on this site</a>."
msgstr ". Gallwch <a href=\"%s\">weld yr eiddo gwag ar y safle hwn</a>."
-#: templates/web/default/footer.html:13
+#: templates/web/default/footer.html:13 templates/web/reading/footer.html:16
msgid ""
"<a href=\"http://www.mysociety.org/\"><img id=\"logo\" width=\"133\" height="
"\"26\" src=\"/i/mysociety-dark.png\" alt=\"View mySociety.org\"><span id="
@@ -342,40 +342,40 @@ msgstr "Adrodd am eiddo gwag a gweld y rhain"
msgid "<strong>No</strong>, I do not, let me sign in by email:"
msgstr ""
-#: templates/web/default/report/new/fill_in_details_form.html:154
+#: templates/web/default/report/new/fill_in_details_form.html:162
#, fuzzy
msgid "<strong>No</strong>, let me confirm my report by email:"
msgstr "Adrodd am eiddo gwag a gweld y rhain"
-#: templates/web/default/report/display.html:160
+#: templates/web/default/report/display.html:170
#, fuzzy
msgid "<strong>No</strong>, let me confirm my update by email:"
msgstr "Adrodd am eiddo gwag a gweld y rhain"
#: templates/web/default/auth/general.html:37
-#: templates/web/default/report/display.html:142
-#: templates/web/default/report/new/fill_in_details_form.html:136
+#: templates/web/default/report/display.html:148
+#: templates/web/default/report/new/fill_in_details_form.html:140
#, fuzzy
msgid "<strong>Yes</strong>, I have a password:"
msgstr "Adrodd am eiddo gwag a gweld y rhain"
#: templates/web/default/static/about.html:1
#: templates/web/default/static/about.html:3
-#: templates/web/emptyhomes/header.html:32
+#: templates/web/emptyhomes/header.html:31
#: templates/web/emptyhomes/static/about.html:1
#: templates/web/emptyhomes/static/about.html:3
msgid "About us"
msgstr "Amdanom ni"
-#: templates/web/default/admin/council_contacts.html:50
+#: templates/web/default/admin/council_contacts.html:57
msgid "Add new category"
msgstr ""
-#: templates/web/default/my/my.html:51
+#: templates/web/default/my/my.html:56
msgid "Added %s"
msgstr ""
-#: templates/web/default/auth/change_password.html:31
+#: templates/web/default/auth/change_password.html:29
msgid "Again:"
msgstr ""
@@ -387,7 +387,7 @@ msgstr ""
msgid "Alert %d disabled (created %s)"
msgstr ""
-#: templates/web/default/report/display.html:211
+#: templates/web/default/report/display.html:222
msgid "Alert me to future updates"
msgstr "Rhowch wybod i mi am ddiweddariadau yn y dyfodol"
@@ -399,8 +399,8 @@ msgstr ""
msgid "All confirmed"
msgstr ""
-#: templates/web/default/footer.html:8 templates/web/emptyhomes/header.html:29
-#: templates/web/fiksgatami/footer.html:6
+#: templates/web/default/footer.html:8 templates/web/emptyhomes/header.html:28
+#: templates/web/fiksgatami/footer.html:7 templates/web/reading/footer.html:8
msgid "Reports"
msgstr "Adroddiadau"
@@ -487,17 +487,21 @@ msgstr ""
msgid "Ban email address"
msgstr "Eich cyfeiriad e-bost:"
-#: templates/web/default/footer.html:16
+#: templates/web/default/footer.html:16 templates/web/reading/footer.html:14
msgid "Built by <a href=\"http://www.mysociety.org/\">mySociety</a>"
msgstr ""
-#: templates/web/fiksgatami/footer.html:15
+#: templates/web/fiksgatami/footer.html:16
msgid ""
"Built by <a href=\"http://www.mysociety.org/\">mySociety</a> and maintained "
"by <a href=\"http://www.nuug.no/\">NUUG</a>"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:19
+#: templates/web/default/admin/stats.html:80
+msgid "By Date"
+msgstr ""
+
+#: templates/web/default/admin/council_contacts.html:26
#: templates/web/default/admin/index.html:36
#: templates/web/default/admin/list_flagged.html:14
#: templates/web/default/admin/search_reports.html:17
@@ -509,26 +513,47 @@ msgstr "Categori:"
msgid "Category fix rate for empty properties > 4 weeks old"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:507
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:533
-#: templates/web/default/admin/council_contacts.html:56
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:537
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:567
+#: templates/web/default/admin/council_contacts.html:63
#: templates/web/default/admin/council_edit.html:23
-#: templates/web/default/admin/report_edit.html:26
+#: templates/web/default/admin/report_edit.html:29
#: templates/web/default/report/new/fill_in_details_form.html:67
msgid "Category:"
msgstr "Categori:"
-#: bin/send-reports:176
+#: bin/send-reports:180
#, fuzzy
msgid "Category: %s"
msgstr "Categori:"
#: templates/web/default/auth/change_password.html:1
#: templates/web/default/auth/change_password.html:3
-#: templates/web/default/auth/change_password.html:35
+#: templates/web/default/auth/change_password.html:33
msgid "Change Password"
msgstr ""
+#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/report_edit.html:24
+#: templates/web/default/report/display.html:85
+#: templates/web/default/report/display.html:87
+msgid "Closed"
+msgstr ""
+
+#: perllib/FixMyStreet/DB/Result/Problem.pm:627
+#, fuzzy
+msgid "Closed by council"
+msgstr "Ni roddwyd gwybod i'r cyngor am hyn"
+
+#: templates/web/default/my/my.html:32
+#, fuzzy
+msgid "Closed reports"
+msgstr "Cuddio hen adroddiadau "
+
+#: templates/web/default/admin/problem_row.html:25
+msgid "Closed:"
+msgstr ""
+
#: templates/web/default/around/display_location.html:102
#: templates/web/default/around/display_location.html:104
msgid "Closest nearby empty properties <small>(within&nbsp;%skm)</small>"
@@ -539,22 +564,39 @@ msgid "Co-ordinates:"
msgstr ""
#: templates/web/default/admin/list_flagged.html:16
-#: templates/web/default/admin/list_updates.html:11
+#: templates/web/default/admin/list_updates.html:13
#: templates/web/default/admin/search_reports.html:19
msgid "Cobrand"
msgstr ""
-#: templates/web/default/admin/report_edit.html:36
-#: templates/web/default/admin/update_edit.html:26
+#: templates/web/default/admin/report_edit.html:39
+#: templates/web/default/admin/update_edit.html:41
msgid "Cobrand data:"
msgstr ""
-#: templates/web/default/admin/report_edit.html:35
-#: templates/web/default/admin/update_edit.html:25
+#: templates/web/default/admin/report_edit.html:38
+#: templates/web/default/admin/update_edit.html:40
msgid "Cobrand:"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:26
+#: perllib/FixMyStreet/App/Controller/Admin.pm:349
+#, fuzzy
+msgid "Configuration updated"
+msgstr "Cadarnhau"
+
+#: perllib/FixMyStreet/App/Controller/Admin.pm:359
+msgid "Configuration updated - contacts will be generated automatically later"
+msgstr ""
+
+#: templates/web/default/admin/council_contacts.html:119
+msgid "Configure Open311"
+msgstr ""
+
+#: templates/web/default/admin/council_contacts.html:96
+msgid "Configure Open311 integration"
+msgstr ""
+
+#: templates/web/default/admin/council_contacts.html:33
#, fuzzy
msgid "Confirm"
msgstr "Cadarnhau"
@@ -574,8 +616,8 @@ msgstr "Cadarnhau"
msgid "Confirmation"
msgstr "Cadarnhau"
-#: templates/web/default/admin/council_contacts.html:21
-#: templates/web/default/admin/council_contacts.html:66
+#: templates/web/default/admin/council_contacts.html:28
+#: templates/web/default/admin/council_contacts.html:73
#: templates/web/default/admin/council_edit.html:28
#: templates/web/default/admin/council_edit.html:43
#: templates/web/default/admin/stats.html:5
@@ -584,16 +626,16 @@ msgid "Confirmed"
msgstr "Cadarnhau"
#: templates/web/default/admin/problem_row.html:23
-#: templates/web/default/admin/report_edit.html:31
+#: templates/web/default/admin/report_edit.html:34
#, fuzzy
msgid "Confirmed:"
msgstr "Cadarnhau"
-#: templates/web/fiksgatami/footer.html:9
+#: templates/web/fiksgatami/footer.html:10
msgid "Contact"
msgstr "Cysylltu"
-#: templates/web/default/footer.html:17
+#: templates/web/default/footer.html:17 templates/web/reading/footer.html:15
#, fuzzy
msgid "Contact reportemptyhomes.com"
msgstr "Adroddiadau newydd ar reportemptyhomes.com"
@@ -609,18 +651,20 @@ msgstr "Cysylltwch Ă¢ Ni"
msgid "Contact the team"
msgstr "Cysylltu Ă¢'r tĂ®m"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:965
-#: perllib/FixMyStreet/App/Controller/Admin.pm:993
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1105
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1133
msgid "Could not find user"
msgstr ""
#: templates/web/default/admin/list_flagged.html:13
+#: templates/web/default/admin/list_updates.html:12
#: templates/web/default/admin/search_reports.html:16
+#: templates/web/default/admin/search_users.html:14
#, fuzzy
msgid "Council"
msgstr "cyngor"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:839
+#: perllib/FixMyStreet/App/Controller/Admin.pm:977
#: templates/web/default/admin/council_list.html:1
#, fuzzy
msgid "Council contacts"
@@ -631,12 +675,19 @@ msgstr "Cysylltwch Ă¢ Ni"
msgid "Council contacts for %s"
msgstr ""
+#: templates/web/default/admin/stats.html:84
+#: templates/web/default/admin/user_edit.html:12
+#, fuzzy
+msgid "Council:"
+msgstr "cyngor"
+
#: templates/web/default/admin/council_list.html:36
#, fuzzy
msgid "Councils"
msgstr "cyngor"
-#: templates/web/default/admin/stats.html:10
+#: templates/web/default/admin/stats.html:12
+#: templates/web/default/admin/stats.html:32
#, fuzzy
msgid "Count"
msgstr "Cysylltu"
@@ -646,7 +697,7 @@ msgstr "Cysylltu"
msgid "Create a report"
msgstr "Categori:"
-#: templates/web/default/admin/council_contacts.html:80
+#: templates/web/default/admin/council_contacts.html:87
#, fuzzy
msgid "Create category"
msgstr "Categori:"
@@ -657,12 +708,12 @@ msgstr "Categori:"
msgid "Created"
msgstr ""
-#: templates/web/default/admin/report_edit.html:30
-#: templates/web/default/admin/update_edit.html:27
+#: templates/web/default/admin/report_edit.html:33
+#: templates/web/default/admin/update_edit.html:42
msgid "Created:"
msgstr ""
-#: templates/web/default/admin/stats.html:9
+#: templates/web/default/admin/stats.html:31
msgid "Current state"
msgstr ""
@@ -670,8 +721,8 @@ msgstr ""
msgid "Currently has 1+ deleted"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:22
-#: templates/web/default/admin/council_contacts.html:69
+#: templates/web/default/admin/council_contacts.html:29
+#: templates/web/default/admin/council_contacts.html:76
#: templates/web/default/admin/council_edit.html:29
#: templates/web/default/admin/council_edit.html:44
msgid "Deleted"
@@ -695,8 +746,9 @@ msgstr "Diweddariadau i reportemptyhomes.com"
msgid "Don&rsquo;t know"
msgstr "Ddim yn gwybod"
-#: templates/web/default/admin/list_updates.html:31
-#: templates/web/default/admin/problem_row.html:28
+#: templates/web/default/admin/list_updates.html:35
+#: templates/web/default/admin/problem_row.html:29
+#: templates/web/default/admin/search_users.html:24
msgid "Edit"
msgstr ""
@@ -710,26 +762,32 @@ msgstr "Gweld eiddo gwag"
msgid "Editing update %d"
msgstr "Cyflwyno'ch diweddariad"
+#: templates/web/default/admin/user_edit.html:1
+#, fuzzy
+msgid "Editing user %d"
+msgstr "Cyflwyno'ch diweddariad"
+
#: templates/web/default/admin/council_edit.html:45
msgid "Editor"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:20
+#: templates/web/default/admin/council_contacts.html:27
#: templates/web/default/admin/council_edit.html:42
#: templates/web/default/admin/list_flagged.html:12
#: templates/web/default/admin/list_flagged.html:35
#: templates/web/default/admin/list_updates.html:8
#: templates/web/default/admin/search_abuse.html:11
#: templates/web/default/admin/search_reports.html:15
+#: templates/web/default/admin/search_users.html:13
#, fuzzy
msgid "Email"
msgstr "E-bost:"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:941
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1081
msgid "Email added to abuse list"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:938
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1078
msgid "Email already in abuse list"
msgstr ""
@@ -737,28 +795,29 @@ msgstr ""
msgid "Email me new local empty properties"
msgstr "Anfonwch fanylion eiddo gwag lleol newydd ataf i drwy'r e-bost"
-#: templates/web/default/report/display.html:42
+#: templates/web/default/report/display.html:35
msgid "Email me updates"
msgstr "Anfonwch ddiweddariadau ataf i drwy'r e-bost"
-#: templates/web/default/admin/council_contacts.html:61
+#: templates/web/default/admin/council_contacts.html:68
#: templates/web/default/admin/council_edit.html:26
-#: templates/web/default/admin/report_edit.html:28
+#: templates/web/default/admin/report_edit.html:31
#: templates/web/default/admin/update_edit.html:24
+#: templates/web/default/admin/user_edit.html:11
#: templates/web/default/alert/updates.html:13
-#: templates/web/default/report/display.html:46
+#: templates/web/default/report/display.html:39
msgid "Email:"
msgstr "E-bost:"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:492
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:522
msgid "Empty flat or maisonette"
msgstr "Fflat neu fflat deulawr gwag"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:491
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:521
msgid "Empty house or bungalow"
msgstr "TÅ· neu fyngalo gwag"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:494
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:524
msgid "Empty office or other commercial"
msgstr "Swyddfa wag neu fan masnachol gwag arall"
@@ -766,24 +825,24 @@ msgstr "Swyddfa wag neu fan masnachol gwag arall"
msgid "Empty property details form"
msgstr "Ffurflen manylion eiddo gwag"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:495
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:525
msgid "Empty pub or bar"
msgstr "Tafarn neu far gwag"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:496
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:526
msgid "Empty public building - school, hospital, etc."
msgstr "Adeilad cyhoeddus gwag - ysgol, ysbyty, ac ati."
-#: templates/web/default/admin/stats.html:47
+#: templates/web/default/admin/stats.html:70
msgid "End Year:"
msgstr ""
-#: templates/web/default/admin/stats.html:49
+#: templates/web/default/admin/stats.html:72
#, fuzzy
msgid "End day:"
msgstr "diwrnod"
-#: templates/web/default/admin/stats.html:48
+#: templates/web/default/admin/stats.html:71
msgid "End month:"
msgstr ""
@@ -799,8 +858,8 @@ msgid "Enter a nearby postcode, or street name and area"
msgstr "Cofnodwch god post Prydeinig, neu enw stryd ac ardal gerllaw:"
#: templates/web/default/auth/general.html:64
-#: templates/web/default/report/display.html:167
-#: templates/web/default/report/new/fill_in_details_form.html:161
+#: templates/web/default/report/display.html:177
+#: templates/web/default/report/new/fill_in_details_form.html:169
#, fuzzy
msgid "Enter a new password:"
msgstr "Ychwanegwch neges"
@@ -846,8 +905,9 @@ msgstr "Adroddiadau newydd ar reportemptyhomes.com"
msgid "First time"
msgstr "Y tro cyntaf"
-#: templates/web/default/header.html:22
-#: templates/web/fiksgatami/header.html:13
+#: templates/web/default/header.html:29
+#: templates/web/fiksgatami/header.html:16
+#: templates/web/reading/header.html:31
msgid "Fix<span id=\"my\">My</span>Street"
msgstr "Trwsio<span id=\"my\">Fy</span>Stryd"
@@ -898,15 +958,26 @@ msgstr ""
"rhanbarth a'r cyngor, ond dim ond yn yr hysbysiad \"O fewn y ffin\" \n"
"y bydd yn ymddangos yn achos y cyngor sir."
-#: templates/web/default/front/stats.html:7
-msgid "reportemptyhomes.com updates"
-msgstr "Diweddariadau i reportemptyhomes.com"
-
#: templates/web/default/admin/index.html:36
#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/report_edit.html:24
+#: templates/web/default/report/display.html:85
+#: templates/web/default/report/display.html:87
msgid "Fixed"
msgstr ""
+#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/report_edit.html:25
+#, fuzzy
+msgid "Fixed - Council"
+msgstr "cyngor"
+
+#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/report_edit.html:25
+#, fuzzy
+msgid "Fixed - User"
+msgstr "Cuddio hen adroddiadau "
+
#: templates/web/default/my/my.html:27
#, fuzzy
msgid "Fixed reports"
@@ -920,7 +991,12 @@ msgstr ""
msgid "Flag user"
msgstr ""
-#: templates/web/default/admin/report_edit.html:38
+#: templates/web/default/admin/search_users.html:15
+msgid "Flagged"
+msgstr ""
+
+#: templates/web/default/admin/report_edit.html:41
+#: templates/web/default/admin/user_edit.html:18
msgid "Flagged:"
msgstr ""
@@ -958,7 +1034,7 @@ msgstr "Rhowch borthiant RSS i mi"
msgid "Go"
msgstr "Ewch"
-#: templates/web/default/admin/report_edit.html:37
+#: templates/web/default/admin/report_edit.html:40
#, fuzzy
msgid "Going to send questionnaire?"
msgstr "Anfon yr holiadur"
@@ -985,8 +1061,8 @@ msgstr ""
"dyma'ch tro cyntaf?"
#: templates/web/default/footer.html:10
-#: templates/web/emptyhomes/header.html:31
-#: templates/web/fiksgatami/footer.html:8
+#: templates/web/emptyhomes/header.html:30
+#: templates/web/fiksgatami/footer.html:9 templates/web/reading/footer.html:10
msgid "FAQs"
msgstr "Cwestiynau Cyffredin"
@@ -996,6 +1072,7 @@ msgstr ""
"Dyma'r mathau o hysbysiadau am eiddo gwag lleol ar gyfer &lsquo;%s&rsquo;."
#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/report_edit.html:25
#: templates/web/default/admin/update_edit.html:19
#, fuzzy
msgid "Hidden"
@@ -1017,7 +1094,7 @@ msgstr ""
msgid "How to report an empty property"
msgstr "Sut i roi gwybod am eiddo gwag"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:546
+#: perllib/FixMyStreet/App/Controller/Admin.pm:587
msgid "I am afraid you cannot confirm unconfirmed reports."
msgstr ""
@@ -1035,7 +1112,7 @@ msgstr ""
"Yn anffodus, ni fu modd i ni ddilysu'r dynodiad hwnnw. Os ydych wedi copĂ¯o'r "
"URL o neges e-bost, gwnewch yn siwr eich bod wedi'i gopĂ¯o'n union.\n"
-#: perllib/FixMyStreet/App/Controller/Tokens.pm:232
+#: perllib/FixMyStreet/App/Controller/Tokens.pm:233
msgid ""
"I'm afraid we couldn't validate that token. If you've copied the URL from an "
"email, please check that you copied it exactly.\n"
@@ -1050,7 +1127,7 @@ msgid "ID"
msgstr ""
#: templates/web/default/report/new/councils_text_none.html:11
-#: templates/web/default/report/new/councils_text_none.html:3
+#: templates/web/default/report/new/councils_text_none.html:12
msgid ""
"If you submit an empty property here the subject and details of the empty "
"property will be public, but the empty property will <strong>not</strong> be "
@@ -1100,6 +1177,13 @@ msgstr "ID Anghyfreithlon"
msgid "Illegal feed selection"
msgstr "Dewis porthiant annilys"
+#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/report_edit.html:24
+#: templates/web/default/report/display.html:85
+#: templates/web/default/report/display.html:87
+msgid "In Progress"
+msgstr ""
+
#: templates/web/default/open311/index.html:21
msgid ""
"In addition, the following attributes that are not part of the Open311 v2 "
@@ -1112,32 +1196,40 @@ msgstr ""
msgid "Include stale reports"
msgstr "Cynnwys hen adroddiadau"
-#: templates/web/default/admin/stats.html:53
+#: templates/web/default/admin/stats.html:76
#, fuzzy
msgid "Include unconfirmed reports"
msgstr "Cynnwys hen adroddiadau"
-#: perllib/FixMyStreet/App/Controller/Open311.pm:355
+#: perllib/FixMyStreet/App/Controller/Open311.pm:358
msgid "Incorrect has_photo value \"%s\""
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Open311.pm:340
+#: perllib/FixMyStreet/App/Controller/Open311.pm:343
msgid "Invalid agency_responsible value %s"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:785
+#: perllib/FixMyStreet/App/Controller/Admin.pm:897
#, fuzzy
msgid "Invalid end date"
msgstr "Rhowch ddiweddariad"
-#: perllib/FixMyStreet/App/Controller/Open311.pm:423
+#: perllib/FixMyStreet/App/Controller/Open311.pm:426
msgid "Invalid format %s specified."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:775
+#: perllib/FixMyStreet/App/Controller/Admin.pm:887
msgid "Invalid start date"
msgstr ""
+#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/report_edit.html:23
+#: templates/web/default/report/display.html:85
+#: templates/web/default/report/display.html:86
+#, fuzzy
+msgid "Investigating"
+msgstr "Mordwyo "
+
#: templates/web/emptyhomes/tokens/confirm_problem.html:12
#: templates/web/emptyhomes/tokens/confirm_problem.html:14
#, fuzzy
@@ -1163,25 +1255,25 @@ msgstr ""
"fel y gallwch weld beth sy'n digwydd."
#: templates/web/default/auth/general.html:44
-#: templates/web/default/report/display.html:149
-#: templates/web/default/report/new/fill_in_details_form.html:143
+#: templates/web/default/report/display.html:157
+#: templates/web/default/report/new/fill_in_details_form.html:149
msgid "Keep me signed in on this computer"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:23
+#: templates/web/default/admin/council_contacts.html:30
msgid "Last editor"
msgstr ""
-#: templates/web/default/admin/report_edit.html:33
+#: templates/web/default/admin/report_edit.html:36
#, fuzzy
msgid "Last update:"
msgstr "Anfonwch ddiweddariadau ataf i drwy'r e-bost"
-#: templates/web/default/admin/problem_row.html:25
+#: templates/web/default/admin/problem_row.html:26
msgid "Last&nbsp;update:"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:844
+#: perllib/FixMyStreet/App/Controller/Admin.pm:983
msgid "List Flagged"
msgstr ""
@@ -1214,8 +1306,8 @@ msgstr "Porthiannau RSS a hysbysiadau e-bost lleol"
msgid "Local RSS feeds and email alerts for ‘%s’"
msgstr "Porthiannau RSS a hysbysiadau e-bost lleol"
-#: templates/web/default/footer.html:9 templates/web/emptyhomes/header.html:30
-#: templates/web/fiksgatami/footer.html:7
+#: templates/web/default/footer.html:9 templates/web/emptyhomes/header.html:29
+#: templates/web/fiksgatami/footer.html:8 templates/web/reading/footer.html:9
msgid "Get local reports"
msgstr "Gweld adroddiadau lleol"
@@ -1230,28 +1322,20 @@ msgid ""
"licenses/by-sa/2.0/\">CC-BY-SA</a>"
msgstr ""
-#: perllib/FixMyStreet/Map/OSM/StreetView.pm:27
-msgid ""
-"Map contains Ordnance Survey data &copy; Crown copyright and database right "
-"2010."
-msgstr ""
-
-#: perllib/FixMyStreet/Map/FMS.pm:24
-msgid ""
-"Map contains Ordnance Survey data &copy; Crown copyright and database right "
-"2010.<br>&copy; 2011 <a href=\"http://www.bing.com/maps/\">Microsoft</a>. "
-"&copy; AND, Navteq, Ordnance Survey."
-msgstr ""
-
#: templates/web/default/contact/index.html:90
msgid "Message:"
msgstr "Neges:"
-#: perllib/FixMyStreet/App/Controller/Open311.pm:431
+#: perllib/FixMyStreet/App/Controller/Open311.pm:434
msgid "Missing jurisdiction_id"
msgstr ""
-#: templates/web/default/report/display.html:38
+#: templates/web/default/admin/stats.html:11
+#, fuzzy
+msgid "Month"
+msgstr "Cysylltu"
+
+#: templates/web/default/report/display.html:31
msgid "More empty properties nearby"
msgstr "Mwy o eiddo gwag cyfagos"
@@ -1259,18 +1343,21 @@ msgstr "Mwy o eiddo gwag cyfagos"
#: templates/web/default/admin/list_flagged.html:34
#: templates/web/default/admin/list_updates.html:7
#: templates/web/default/admin/search_reports.html:14
+#: templates/web/default/admin/search_users.html:12
#: templates/web/default/reports/index.html:10
#: templates/web/emptyhomes/reports/index.html:10
#: templates/web/fiksgatami/reports/index.html:9
msgid "Name"
msgstr "Enw"
-#: templates/web/default/admin/report_edit.html:27
+#: templates/web/default/admin/report_edit.html:30
#: templates/web/default/admin/update_edit.html:23
+#: templates/web/default/admin/user_edit.html:10
msgid "Name:"
msgstr "Enw:"
#: templates/web/default/footer.html:4 templates/web/fiksgatami/footer.html:3
+#: templates/web/reading/footer.html:4
msgid "Navigation"
msgstr "Mordwyo "
@@ -1280,13 +1367,14 @@ msgid ""
"using OpenStreetMap): %s%s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Default.pm:570
+#: perllib/FixMyStreet/Cobrand/Default.pm:564
msgid ""
"Nearest postcode to the pin placed on the map (automatically generated): %s "
"(%sm away)"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Default.pm:558
+#: perllib/FixMyStreet/Cobrand/Default.pm:553
+#: perllib/FixMyStreet/Cobrand/Default.pm:588
msgid ""
"Nearest road to the pin placed on the map (automatically generated by Bing "
"Maps): %s"
@@ -1296,7 +1384,7 @@ msgstr ""
msgid "Nearly Done! Now check your email..."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:300
+#: perllib/FixMyStreet/App/Controller/Admin.pm:309
msgid "New category contact added"
msgstr ""
@@ -1380,13 +1468,15 @@ msgstr ""
msgid "New!"
msgstr "Newydd!"
-#: templates/web/default/admin/council_contacts.html:32
-#: templates/web/default/admin/council_contacts.html:33
+#: templates/web/default/admin/council_contacts.html:39
+#: templates/web/default/admin/council_contacts.html:40
#: templates/web/default/admin/council_edit.html:4
-#: templates/web/default/admin/list_updates.html:28
+#: templates/web/default/admin/list_updates.html:30
+#: templates/web/default/admin/list_updates.html:31
+#: templates/web/default/admin/list_updates.html:32
#: templates/web/default/admin/problem_row.html:19
#: templates/web/default/admin/report_edit.html:19
-#: templates/web/default/admin/report_edit.html:37
+#: templates/web/default/admin/report_edit.html:40
#: templates/web/default/admin/update_edit.html:16
#: templates/web/default/questionnaire/creator_fixed.html:16
#: templates/web/default/questionnaire/index.html:109
@@ -1394,7 +1484,13 @@ msgstr "Newydd!"
msgid "No"
msgstr "Nac ydw"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:189
+#: templates/web/default/admin/stats.html:85
+#: templates/web/default/admin/user_edit.html:13
+#, fuzzy
+msgid "No council"
+msgstr "cyngor"
+
+#: perllib/FixMyStreet/DB/Result/Problem.pm:297
msgid "No council selected"
msgstr "Ni ddewiswyd cyngor"
@@ -1438,20 +1534,20 @@ msgstr "Wedi adrodd o'r blaen"
msgid "Not reported to council"
msgstr "Ni roddwyd gwybod i'r cyngor am hyn"
-#: templates/web/default/admin/council_contacts.html:24
+#: templates/web/default/admin/council_contacts.html:31
#: templates/web/default/admin/council_edit.html:46
#, fuzzy
msgid "Note"
msgstr "Nac ydw"
-#: templates/web/default/admin/stats.html:28
+#: templates/web/default/admin/stats.html:51
msgid ""
"Note that when including unconfirmed reports we use the date the report was "
"created which may not be in the same month the report was confirmed so the "
"numbers may jump about a little"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:73
+#: templates/web/default/admin/council_contacts.html:80
#: templates/web/default/admin/council_edit.html:31
#, fuzzy
msgid "Note:"
@@ -1461,20 +1557,20 @@ msgstr "Nac ydw"
msgid "Note: <strong>%s</strong>"
msgstr ""
-#: templates/web/default/report/new/fill_in_details_form.html:127
+#: templates/web/default/report/new/fill_in_details_form.html:131
msgid ""
"Now to submit your report&hellip; do you have a reportemptyhomes.com "
"password?"
msgstr ""
-#: templates/web/default/report/display.html:133
+#: templates/web/default/report/display.html:139
msgid ""
"Now to submit your update&hellip; do you have a reportemptyhomes.com "
"password?"
msgstr ""
-#: templates/web/default/report/display.html:33
-#: templates/web/default/report/updates.html:19
+#: templates/web/default/report/display.html:26
+#: templates/web/default/report/updates.html:23
msgid "Offensive? Unsuitable? Tell us"
msgstr "Sarhaus? Anaddas? Rhowch wybod i ni"
@@ -1515,6 +1611,7 @@ msgstr "Adroddiadau hÅ·n o eiddo gwag"
#: templates/web/default/admin/report_edit.html:22
#: templates/web/default/admin/update_edit.html:19
+#: templates/web/default/report/display.html:85
msgid "Open"
msgstr ""
@@ -1548,14 +1645,14 @@ msgstr ""
"Neu, gallwch danysgrifio am hysbysiad yn Ă´l pa ward neu gyngor yr ydych yn "
"byw ynddo:"
-#: bin/send-reports:171 bin/send-reports:180
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:523
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:532
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:903
-#: perllib/FixMyStreet/DB/Result/Problem.pm:318
-#: perllib/FixMyStreet/DB/Result/Problem.pm:328
-#: perllib/FixMyStreet/DB/Result/Problem.pm:338
-#: perllib/FixMyStreet/DB/Result/Problem.pm:350
+#: bin/send-reports:175 bin/send-reports:184
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:553
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:566
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:969
+#: perllib/FixMyStreet/DB/Result/Problem.pm:475
+#: perllib/FixMyStreet/DB/Result/Problem.pm:485
+#: perllib/FixMyStreet/DB/Result/Problem.pm:495
+#: perllib/FixMyStreet/DB/Result/Problem.pm:507
msgid "Other"
msgstr "Arall"
@@ -1565,27 +1662,33 @@ msgid ""
"\">available on GitHub</a>."
msgstr ""
+#: templates/web/default/admin/list_updates.html:11
+#, fuzzy
+msgid "Owner"
+msgstr "Arall"
+
#: templates/web/default/errors/page_error_404_not_found.html:1
#: templates/web/default/errors/page_error_404_not_found.html:3
msgid "Page Not Found"
msgstr ""
#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/report_edit.html:25
msgid "Partial"
msgstr ""
-#: templates/web/default/auth/change_password.html:27
+#: templates/web/default/auth/change_password.html:25
msgid "Password:"
msgstr ""
-#: bin/send-reports:68 templates/web/default/admin/report_edit.html:29
-#: templates/web/default/report/new/fill_in_details_form.html:206
+#: bin/send-reports:69 templates/web/default/admin/report_edit.html:32
+#: templates/web/default/report/new/fill_in_details_form.html:215
msgid "Phone:"
msgstr "Rhif ffĂ´n:"
#: templates/web/default/questionnaire/index.html:97
-#: templates/web/default/report/display.html:109
-#: templates/web/default/report/new/fill_in_details_form.html:98
+#: templates/web/default/report/display.html:115
+#: templates/web/default/report/new/fill_in_details_form.html:102
msgid "Photo:"
msgstr "Ffotograff:"
@@ -1593,16 +1696,19 @@ msgstr "Ffotograff:"
msgid "Photos of recent nearby reports"
msgstr "Ffotograffau o adroddiadau cyfagos diweddar"
-#: templates/web/default/index.html:63
-msgid "Photos of recent reports"
-msgstr "Ffotograffau o adroddiadau diweddar"
+#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/report_edit.html:23
+#: templates/web/default/report/display.html:85
+#: templates/web/default/report/display.html:86
+msgid "Planned"
+msgstr ""
#: templates/web/default/report/new/notes.html:6
msgid "Please be polite, concise and to the point."
msgstr ""
-#: templates/web/default/auth/change_password.html:14
-#: templates/web/default/auth/change_password.html:19
+#: templates/web/default/auth/change_password.html:12
+#: templates/web/default/auth/change_password.html:17
msgid "Please check the passwords and try again"
msgstr ""
@@ -1617,14 +1723,14 @@ msgstr "Rhowch eich cyfeiriad e-bost"
msgid "Please check your email address is correct"
msgstr "Rhowch gyfeiriad e-bost dilys"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:686
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:705
#: perllib/FixMyStreet/App/Controller/Report/New.pm:722
-#: perllib/FixMyStreet/DB/Result/Problem.pm:208
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:741
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:778
+#: perllib/FixMyStreet/DB/Result/Problem.pm:316
msgid "Please choose a category"
msgstr "Dewiswch gategori"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:214
+#: perllib/FixMyStreet/DB/Result/Problem.pm:322
msgid "Please choose a property type"
msgstr "Dewiswch fath o eiddo"
@@ -1649,22 +1755,22 @@ msgid ""
"for all users."
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Comment.pm:111
+#: perllib/FixMyStreet/DB/Result/Comment.pm:113
msgid "Please enter a message"
msgstr "Ychwanegwch neges"
-#: templates/web/default/auth/change_password.html:14
-#: templates/web/default/auth/change_password.html:17
+#: templates/web/default/auth/change_password.html:12
+#: templates/web/default/auth/change_password.html:15
#, fuzzy
msgid "Please enter a password"
msgstr "Ychwanegwch neges"
#: perllib/FixMyStreet/App/Controller/Contact.pm:97
-#: perllib/FixMyStreet/DB/Result/Problem.pm:183
+#: perllib/FixMyStreet/DB/Result/Problem.pm:291
msgid "Please enter a subject"
msgstr "Rhowch enw'r pwnc"
-#: perllib/FixMyStreet/DB/Result/User.pm:94
+#: perllib/FixMyStreet/DB/Result/User.pm:96
msgid "Please enter a valid email"
msgstr "Cofnodwch gyfeiriad e-bost dilys"
@@ -1673,18 +1779,18 @@ msgstr "Cofnodwch gyfeiriad e-bost dilys"
msgid "Please enter a valid email address"
msgstr "Cofnodwch gyfeiriad e-bost dilys"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:186
+#: perllib/FixMyStreet/DB/Result/Problem.pm:294
msgid "Please enter some details"
msgstr "Cofnodwch fanylion"
#: perllib/FixMyStreet/App/Controller/Contact.pm:96
-#: perllib/FixMyStreet/DB/Result/User.pm:91
+#: perllib/FixMyStreet/DB/Result/User.pm:93
#: templates/web/default/auth/general.html:13
#: templates/web/default/auth/general.html:8
msgid "Please enter your email"
msgstr "Cofnodwch eich cyfeiriad e-bost"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:201
+#: perllib/FixMyStreet/DB/Result/Problem.pm:309
msgid ""
"Please enter your full name - if you do not wish your name to be shown on "
"the site, untick the box"
@@ -1693,9 +1799,9 @@ msgstr ""
"ddangos ar y safle, cliciwch i ddileu'r tic o'r bocs"
#: perllib/FixMyStreet/App/Controller/Contact.pm:95
-#: perllib/FixMyStreet/DB/Result/Comment.pm:108
-#: perllib/FixMyStreet/DB/Result/Problem.pm:194
-#: perllib/FixMyStreet/DB/Result/User.pm:87
+#: perllib/FixMyStreet/DB/Result/Comment.pm:110
+#: perllib/FixMyStreet/DB/Result/Problem.pm:302
+#: perllib/FixMyStreet/DB/Result/User.pm:89
msgid "Please enter your name"
msgstr "Cofnodwch eich enw"
@@ -1720,7 +1826,7 @@ msgstr ""
"yn ei gwneud hi'n anodd ei darllen, fel y mae diffyg atalnodi.\n"
#: templates/web/default/report/new/fill_in_details_text.html:1
-#: templates/web/default/report/new/fill_in_details_text.html:8
+#: templates/web/default/report/new/fill_in_details_text.html:11
msgid "Please fill in details of the empty property below."
msgstr "Llenwch fanylion yr eiddo gwag isod."
@@ -1745,11 +1851,11 @@ msgstr ""
"Llenwch y ffurflen isod gyda manylion yr eiddo gwag,\n"
"a disgrifiwch y lleoliad mor fanwl ag y bo modd yn y blwch manylion."
-#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:235
+#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:244
msgid "Please indicate whether you'd like to receive another questionnaire"
msgstr "Nodwch a fyddech chi'n hoffi derbyn holiadur arall"
-#: templates/web/default/report/display.html:69
+#: templates/web/default/report/display.html:62
msgid ""
"Please note that updates are not sent to the council. If you leave your name "
"it will be public. Your information will only be used in accordance with our "
@@ -1766,16 +1872,16 @@ msgstr ""
msgid "Please note:"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:238
+#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:247
msgid "Please provide some explanation as to why you're reopening this report"
msgstr "Rhowch ychydig o esboniad pam rydych yn ailagor yr adroddiad hwn"
-#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:245
+#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:254
msgid "Please provide some text as well as a photo"
msgstr "Rhowch rywfaint o destun yn ogystal Ă¢ ffotograff"
#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:115
-#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:231
+#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:240
msgid ""
"Please say whether you've ever reported an empty property to your council "
"before"
@@ -1791,7 +1897,7 @@ msgstr "Dewiswch y porthiant rydych chi eisiau ei gael"
msgid "Please select the type of alert you want"
msgstr "Dewiswch y math o hysbysiad rydych chi eisiau ei gael"
-#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:227
+#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:236
msgid "Please state whether or not the empty property has been returned to use"
msgstr ""
"Cofnodwch a yw'r eiddo gwag wedi cael ei adfer i'w ddefnyddio, ai peidio"
@@ -1800,7 +1906,7 @@ msgstr ""
msgid "Please take a look at the updates that have been left."
msgstr "Ewch i fwrw golwg ar y diweddariadau sydd wedi cael eu gadael."
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:774
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:830
msgid "Please upload a JPEG image only"
msgstr "Dim ond llun JPEG y dylech lwytho i fyny."
@@ -1809,9 +1915,9 @@ msgid "Please write a message"
msgstr "Ysgrifennwch neges"
#: templates/web/default/contact/index.html:93
-#: templates/web/default/report/display.html:119
-#: templates/web/default/report/display.html:154
-#: templates/web/default/report/display.html:175
+#: templates/web/default/report/display.html:125
+#: templates/web/default/report/display.html:162
+#: templates/web/default/report/display.html:184
msgid "Post"
msgstr "Postio"
@@ -1819,7 +1925,12 @@ msgstr "Postio"
msgid "Posted anonymously at %s"
msgstr "Cofnodwyd yn ddi-enw am %s"
-#: templates/web/default/report/updates.html:10
+#: templates/web/default/report/updates.html:11
+#, fuzzy
+msgid "Posted by %s (<strong>%s</strong>) at %s"
+msgstr "Cofnodwyd gan %s am %s"
+
+#: templates/web/default/report/updates.html:13
msgid "Posted by %s at %s"
msgstr "Cofnodwyd gan %s am %s"
@@ -1847,7 +1958,7 @@ msgstr "Eiddo gwag yn %s"
msgid "Empty property breakdown by state"
msgstr "ni fydd eich eiddo gwag yn cael ei bostio"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:703
+#: perllib/FixMyStreet/App/Controller/Admin.pm:774
#, fuzzy
msgid "Empty property marked as open."
msgstr "Ffurflen manylion eiddo gwag"
@@ -1878,13 +1989,13 @@ msgstr ""
msgid "Empty properties within %.1fkm of this location"
msgstr "Eiddo gwag o fewn %skm o'r lleoliad hwn"
-#: perllib/FixMyStreet/Cobrand/Default.pm:782
+#: perllib/FixMyStreet/Cobrand/Default.pm:800
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:162
#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:177
msgid "Empty properties within %s"
msgstr "Eiddo gwag yn %s"
-#: perllib/FixMyStreet/Cobrand/Default.pm:791
+#: perllib/FixMyStreet/Cobrand/Default.pm:809
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:170
msgid "Empty properties within %s ward"
msgstr "Eiddo gwag yn ward %s"
@@ -1904,16 +2015,16 @@ msgstr ""
"Eiddo y cafwyd adroddiadau diweddar ar reportemptyhomes.com eu bod wedi cael "
"eu hadfer i'w defnyddio"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:498
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:528
msgid "Property type:"
msgstr "Math o eiddo:"
-#: templates/web/default/report/display.html:64
+#: templates/web/default/report/display.html:57
msgid "Provide an update"
msgstr "Rhowch ddiweddariad"
-#: templates/web/default/report/display.html:172
-#: templates/web/default/report/new/fill_in_details_form.html:166
+#: templates/web/default/report/display.html:181
+#: templates/web/default/report/new/fill_in_details_form.html:173
msgid ""
"Providing a password is optional, but doing so will allow you to more easily "
"report empty properties, leave updates and manage your reports."
@@ -1937,32 +2048,32 @@ msgstr "Llenwyd yr holiadur gan yr unigolyn a roddodd wybod am yr eiddo gwag"
msgid "Questionnaire %d sent for empty property %d"
msgstr "Llenwyd yr holiadur gan yr unigolyn a roddodd wybod am yr eiddo gwag"
-#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:181
+#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:190
msgid "Questionnaire filled in by empty property reporter"
msgstr "Llenwyd yr holiadur gan yr unigolyn a roddodd wybod am yr eiddo gwag"
#: templates/web/default/alert/list.html:54
#: templates/web/default/around/display_location.html:1
#: templates/web/default/around/display_location.html:3
-#: templates/web/default/report/display.html:55
+#: templates/web/default/report/display.html:48
#: templates/web/default/reports/council.html:61
msgid "RSS feed"
msgstr "Porthiant RSS"
-#: perllib/FixMyStreet/Cobrand/Default.pm:820
-#: perllib/FixMyStreet/Cobrand/Default.pm:834
+#: perllib/FixMyStreet/Cobrand/Default.pm:838
+#: perllib/FixMyStreet/Cobrand/Default.pm:852
#, fuzzy
msgid "RSS feed for %s"
msgstr "Porthiant RSS %s"
-#: perllib/FixMyStreet/Cobrand/Default.pm:827
-#: perllib/FixMyStreet/Cobrand/Default.pm:841
+#: perllib/FixMyStreet/Cobrand/Default.pm:845
+#: perllib/FixMyStreet/Cobrand/Default.pm:859
#, fuzzy
msgid "RSS feed for %s ward, %s"
msgstr "Porthiant RSS %s"
-#: perllib/FixMyStreet/Cobrand/Default.pm:850
-#: perllib/FixMyStreet/Cobrand/Default.pm:864
+#: perllib/FixMyStreet/Cobrand/Default.pm:868
+#: perllib/FixMyStreet/Cobrand/Default.pm:882
#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:193
#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:201
#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:211
@@ -1970,8 +2081,8 @@ msgstr "Porthiant RSS %s"
msgid "RSS feed of %s"
msgstr "Porthiant RSS %s"
-#: perllib/FixMyStreet/Cobrand/Default.pm:856
-#: perllib/FixMyStreet/Cobrand/Default.pm:870
+#: perllib/FixMyStreet/Cobrand/Default.pm:874
+#: perllib/FixMyStreet/Cobrand/Default.pm:888
#, fuzzy
msgid "RSS feed of %s, within %s ward"
msgstr "Porthiant RSS %s"
@@ -1984,14 +2095,14 @@ msgstr "Porthiant RSS o eiddo gwag sydd gerllaw"
msgid "RSS feed of empty properties in this %s"
msgstr "Porthiant RSS o eiddo gwag yn yr %s hwn"
-#: perllib/FixMyStreet/Cobrand/Default.pm:783
+#: perllib/FixMyStreet/Cobrand/Default.pm:801
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:163
#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:176
#, fuzzy
msgid "RSS feed of empty properties within %s"
msgstr "Porthiant RSS o eiddo gwag yn yr %s hwn"
-#: perllib/FixMyStreet/Cobrand/Default.pm:790
+#: perllib/FixMyStreet/Cobrand/Default.pm:808
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:169
#, fuzzy
msgid "RSS feed of empty properties within %s ward"
@@ -2002,12 +2113,12 @@ msgstr "Porthiant RSS o eiddo gwag yn yr %s hwn"
msgid "RSS feed of recent local empty properties"
msgstr "Porthiant RSS o eiddo gwag lleol diweddar"
-#: templates/web/default/report/display.html:55
+#: templates/web/default/report/display.html:48
msgid "RSS feed of updates to this empty property"
msgstr "Porthiant RSS o ddiweddariadau i'r eiddo gwag hwn"
#: templates/web/default/alert/updates.html:9
-#: templates/web/default/report/display.html:45
+#: templates/web/default/report/display.html:38
msgid "Receive email when updates are left on this empty property."
msgstr ""
"Derbyn neges e-bost pan fydd diweddariadau'n cael eu rhoi am yr eiddo gwag "
@@ -2026,7 +2137,7 @@ msgstr "Eiddo gwag lleol diweddar, reportemptyhomes.com"
msgid "Recently returned to use"
msgstr "Wedi'u hadfer i'w defnyddio'n ddiweddar"
-#: templates/web/default/index.html:72
+#: templates/web/default/index.html:62
msgid "Recently reported empty properties"
msgstr "Eiddo gwag yr adroddwyd amdanynt yn ddiweddar"
@@ -2042,8 +2153,8 @@ msgstr ""
msgid "Remove flag"
msgstr ""
-#: templates/web/default/admin/report_edit.html:44
-#: templates/web/default/admin/update_edit.html:33
+#: templates/web/default/admin/report_edit.html:47
+#: templates/web/default/admin/update_edit.html:48
msgid "Remove photo (can't be undone!)"
msgstr ""
@@ -2051,12 +2162,12 @@ msgstr ""
msgid "Report Empty Homes"
msgstr "Adrodd am Eiddo Gwag"
-#: templates/web/default/footer.html:6 templates/web/emptyhomes/header.html:28
-#: templates/web/fiksgatami/footer.html:5
+#: templates/web/default/footer.html:6 templates/web/emptyhomes/header.html:27
+#: templates/web/fiksgatami/footer.html:5 templates/web/reading/footer.html:6
msgid "Report a property"
msgstr "Rhoi gwybod am eiddo"
-#: perllib/FixMyStreet/App/Controller/Rss.pm:268
+#: perllib/FixMyStreet/App/Controller/Rss.pm:274
#, fuzzy
msgid "Report on %s"
msgstr "Adroddiadau"
@@ -2065,17 +2176,17 @@ msgstr "Adroddiadau"
msgid "Report and view empty properties"
msgstr "Adrodd am eiddo gwag a gweld y rhain"
-#: templates/web/default/my/my.html:69
+#: templates/web/default/my/my.html:74
#, fuzzy
msgid "Reported %s"
msgstr "Adroddiadau"
-#: templates/web/default/my/my.html:67
+#: templates/web/default/my/my.html:72
#, fuzzy
msgid "Reported %s, to %s"
msgstr "Adroddwyd gan %s am %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:333
+#: perllib/FixMyStreet/DB/Result/Problem.pm:490
#: templates/web/default/contact/index.html:45
msgid "Reported anonymously at %s"
msgstr "Adroddwyd yn ddi-enw am %s"
@@ -2085,32 +2196,32 @@ msgstr "Adroddwyd yn ddi-enw am %s"
msgid "Reported before"
msgstr "Wedi adrodd o'r blaen"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:325
+#: perllib/FixMyStreet/DB/Result/Problem.pm:482
msgid "Reported by %s anonymously at %s"
msgstr "Adroddwyd gan %s yn ddi-enw am %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:356
+#: perllib/FixMyStreet/DB/Result/Problem.pm:513
#: templates/web/default/contact/index.html:47
msgid "Reported by %s at %s"
msgstr "Adroddwyd gan %s am %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:347
+#: perllib/FixMyStreet/DB/Result/Problem.pm:504
msgid "Reported by %s by %s at %s"
msgstr "Adroddwyd gan %s trwy %s am %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:321
+#: perllib/FixMyStreet/DB/Result/Problem.pm:478
msgid "Reported by %s in the %s category anonymously at %s"
msgstr "Adroddwyd am hyn gan %s yn y categori %s yn ddi-enw, am %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:341
+#: perllib/FixMyStreet/DB/Result/Problem.pm:498
msgid "Reported by %s in the %s category by %s at %s"
msgstr "Adroddwyd gan %s yn y categori %s trwy %s am %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:329
+#: perllib/FixMyStreet/DB/Result/Problem.pm:486
msgid "Reported in the %s category anonymously at %s"
msgstr "Adroddiwyd yn y categori %s yn ddi-enw am %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:351
+#: perllib/FixMyStreet/DB/Result/Problem.pm:508
msgid "Reported in the %s category by %s at %s"
msgstr "Adroddwyd yn y categori %s gan %s am %s"
@@ -2125,7 +2236,7 @@ msgstr "Adrodd am eiddo gwag"
msgid "Reports on and around the map"
msgstr "Adroddiadau ar ac yng nghyffiniau'r map"
-#: templates/web/default/admin/report_edit.html:32
+#: templates/web/default/admin/report_edit.html:35
#, fuzzy
msgid "Resend report"
msgstr "Cuddio hen adroddiadau "
@@ -2144,7 +2255,7 @@ msgstr ""
msgid "Save changes"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:843
+#: perllib/FixMyStreet/App/Controller/Admin.pm:982
#, fuzzy
msgid "Search Abuse"
msgstr "Adroddiadau cryno"
@@ -2153,15 +2264,22 @@ msgstr "Adroddiadau cryno"
msgid "Search Abuse Table"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:840
+#: perllib/FixMyStreet/App/Controller/Admin.pm:978
#: templates/web/default/admin/list_flagged.html:1
#: templates/web/default/admin/search_reports.html:1
#, fuzzy
msgid "Search Reports"
msgstr "Adroddiadau cryno"
+#: perllib/FixMyStreet/App/Controller/Admin.pm:981
+#: templates/web/default/admin/search_users.html:1
+#, fuzzy
+msgid "Search Users"
+msgstr "Adroddiadau cryno"
+
#: templates/web/default/admin/search_abuse.html:4
#: templates/web/default/admin/search_reports.html:5
+#: templates/web/default/admin/search_users.html:5
msgid "Search:"
msgstr ""
@@ -2175,16 +2293,16 @@ msgstr ""
"porthiant RSS,\n"
"neu rhowch eich cyfeiriad e-bost i danysgrifio am hysbysiad e-bost."
-#: perllib/FixMyStreet/DB/Result/Problem.pm:398
+#: perllib/FixMyStreet/DB/Result/Problem.pm:555
msgid "Sent to %s %s later"
msgstr "Anfonwyd at %s %s yn ddiweddarach"
-#: templates/web/default/admin/report_edit.html:32
+#: templates/web/default/admin/report_edit.html:35
#, fuzzy
msgid "Sent:"
msgstr "Pwnc:"
-#: templates/web/default/admin/report_edit.html:34
+#: templates/web/default/admin/report_edit.html:37
msgid "Service:"
msgstr ""
@@ -2228,8 +2346,8 @@ msgstr ""
"cat=20'>Gwybodaeth\n"
"bellach am ein gwaith ar gartrefi gwag</a>.\n"
-#: templates/web/default/report/display.html:205
-#: templates/web/default/report/new/fill_in_details_form.html:201
+#: templates/web/default/report/display.html:216
+#: templates/web/default/report/new/fill_in_details_form.html:210
msgid "Show my name publicly"
msgstr ""
@@ -2251,18 +2369,26 @@ msgid "Sign in or create an account"
msgstr ""
#: templates/web/default/auth/sign_out.html:1
-#: templates/web/default/header.html:28
-#: templates/web/emptyhomes/header.html:44
-#: templates/web/lichfielddc/header.html:174
+#: templates/web/default/header.html:35
+#: templates/web/emptyhomes/header.html:43
+#: templates/web/fiksgatami/header.html:22
+#: templates/web/lichfielddc/header.html:177
+#: templates/web/reading/header.html:37
msgid "Sign out"
msgstr ""
-#: templates/web/default/header.html:27
-#: templates/web/emptyhomes/header.html:43
-#: templates/web/lichfielddc/header.html:174
+#: templates/web/default/header.html:34
+#: templates/web/emptyhomes/header.html:42
+#: templates/web/fiksgatami/header.html:21
+#: templates/web/lichfielddc/header.html:177
+#: templates/web/reading/header.html:36
msgid "Signed in as %s"
msgstr ""
+#: templates/web/default/report/new/fill_in_details_text.html:1
+msgid "Some categories may require additional information."
+msgstr ""
+
#: templates/web/default/alert/index.html:31
msgid "Some photos of recent reports"
msgstr "Rhai ffotograffau o adroddiadau diweddar"
@@ -2276,7 +2402,7 @@ msgstr ""
msgid "Some unconfirmeds"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Default.pm:516
+#: perllib/FixMyStreet/Cobrand/Default.pm:517
msgid ""
"Sorry, that appears to be a Crown dependency postcode, which we don't cover."
msgstr ""
@@ -2285,32 +2411,32 @@ msgstr ""
msgid "Sorry, there has been an error confirming your empty property."
msgstr "Sori, bu gwall wrth gadarnhau eich eiddo gwag."
-#: perllib/FixMyStreet/Geocode.pm:27 perllib/FixMyStreet/Geocode/Bing.pm:51
+#: perllib/FixMyStreet/Geocode.pm:27 perllib/FixMyStreet/Geocode/Bing.pm:52
#: perllib/FixMyStreet/Geocode/Google.pm:68
msgid "Sorry, we could not find that location."
msgstr "Sori, ni fu modd i ni ddod o hyd i'r lleoliad hwnnw."
-#: perllib/FixMyStreet/Geocode/Bing.pm:44
+#: perllib/FixMyStreet/Geocode/Bing.pm:45
#: perllib/FixMyStreet/Geocode/Google.pm:60
msgid "Sorry, we could not parse that location. Please try again."
msgstr ""
"Sori, ni fu modd i ni ddosrannu'r lleoliad hwnnw. Rhowch gynnig arall arni."
-#: templates/web/fiksgatami/footer.html:15
+#: templates/web/fiksgatami/footer.html:16
msgid "Source code"
msgstr ""
-#: templates/web/default/admin/stats.html:41
+#: templates/web/default/admin/stats.html:64
#, fuzzy
msgid "Start Year:"
msgstr "Diweddariad:"
-#: templates/web/default/admin/stats.html:43
+#: templates/web/default/admin/stats.html:66
#, fuzzy
msgid "Start day:"
msgstr "Diweddariad:"
-#: templates/web/default/admin/stats.html:42
+#: templates/web/default/admin/stats.html:65
msgid "Start month:"
msgstr ""
@@ -2323,11 +2449,12 @@ msgstr "Diweddariad:"
#: templates/web/default/admin/report_edit.html:21
#: templates/web/default/admin/update_edit.html:18
+#: templates/web/default/report/display.html:83
#, fuzzy
msgid "State:"
msgstr "Diweddariad:"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:845
+#: perllib/FixMyStreet/App/Controller/Admin.pm:984
#: templates/web/default/admin/stats.html:1
#, fuzzy
msgid "Stats"
@@ -2340,14 +2467,15 @@ msgid "Subject:"
msgstr "Pwnc:"
#: templates/web/default/questionnaire/creator_fixed.html:19
-#: templates/web/default/report/new/fill_in_details_form.html:110
-#: templates/web/default/report/new/fill_in_details_form.html:148
-#: templates/web/default/report/new/fill_in_details_form.html:169
+#: templates/web/default/report/new/fill_in_details_form.html:114
+#: templates/web/default/report/new/fill_in_details_form.html:154
+#: templates/web/default/report/new/fill_in_details_form.html:176
msgid "Submit"
msgstr "Anfon"
-#: templates/web/default/admin/report_edit.html:47
-#: templates/web/default/admin/update_edit.html:36
+#: templates/web/default/admin/report_edit.html:50
+#: templates/web/default/admin/update_edit.html:51
+#: templates/web/default/admin/user_edit.html:20
#, fuzzy
msgid "Submit changes"
msgstr "Anfon"
@@ -2357,7 +2485,7 @@ msgid "Submit questionnaire"
msgstr "Anfon yr holiadur"
#: templates/web/default/alert/updates.html:17
-#: templates/web/default/report/display.html:50
+#: templates/web/default/report/display.html:43
msgid "Subscribe"
msgstr "Tanysgrifio"
@@ -2365,7 +2493,7 @@ msgstr "Tanysgrifio"
msgid "Subscribe me to an email alert"
msgstr "Dymunaf danysgrifio i rybuddion drwy e-bost"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:838
+#: perllib/FixMyStreet/App/Controller/Admin.pm:976
#: templates/web/default/admin/index.html:1
#, fuzzy
msgid "Summary"
@@ -2377,12 +2505,12 @@ msgstr "Adroddiadau cryno"
msgid "Summary reports"
msgstr "Adroddiadau cryno"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:842
+#: perllib/FixMyStreet/App/Controller/Admin.pm:980
#: templates/web/default/admin/questionnaire.html:1
msgid "Survey Results"
msgstr ""
-#: templates/web/default/admin/list_updates.html:12
+#: templates/web/default/admin/list_updates.html:14
msgid "Text"
msgstr ""
@@ -2476,7 +2604,7 @@ msgstr ""
"i ni'ch holi chi, a ydych erioed wedi rhoi gwybod i'r cyngor am eiddo gwag "
"cyn hyn?"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:783
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:839
msgid ""
"That image doesn't appear to have uploaded correctly (%s), please try again."
msgstr ""
@@ -2497,12 +2625,12 @@ msgstr ""
"Nid yw'n ymddangos bod y lleoliad hwnnw ym Mhrydain; rhowch gynnig arall "
"arni."
-#: perllib/FixMyStreet/Cobrand/Default.pm:509
+#: perllib/FixMyStreet/Cobrand/Default.pm:510
#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:78
msgid "That postcode was not recognised, sorry."
msgstr "Ni chafodd y cod post hwnnw ei gydnabod, sori."
-#: perllib/FixMyStreet/App/Controller/Admin.pm:517
+#: perllib/FixMyStreet/App/Controller/Admin.pm:558
#, fuzzy
msgid "That empty property will now be resent."
msgstr "ni fydd eich eiddo gwag yn cael ei bostio"
@@ -2666,8 +2794,8 @@ msgstr ""
"Yr adroddiadau diweddaraf o fewn ffin {{NAME}} y mae defnyddwyr wedi rhoi "
"gwybod amdanynt"
-#: templates/web/default/auth/change_password.html:14
-#: templates/web/default/auth/change_password.html:18
+#: templates/web/default/auth/change_password.html:12
+#: templates/web/default/auth/change_password.html:16
msgid "The passwords do not match"
msgstr ""
@@ -2676,10 +2804,10 @@ msgstr ""
msgid "The requested URL '%s' was not found on this server"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1039
-#: perllib/FixMyStreet/App/Controller/Admin.pm:497
-#: perllib/FixMyStreet/App/Controller/Admin.pm:630
-#: perllib/FixMyStreet/App/Controller/Admin.pm:894
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1034
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1179
+#: perllib/FixMyStreet/App/Controller/Admin.pm:538
+#: perllib/FixMyStreet/App/Controller/Admin.pm:701
msgid "The requested URL was not found on this server."
msgstr ""
@@ -2696,7 +2824,7 @@ msgid ""
"if you give us permission."
msgstr ""
-#: bin/send-reports:77
+#: bin/send-reports:78
msgid ""
"The user could not locate the empty property on a map, but to see the area "
"around the location they entered"
@@ -2710,8 +2838,8 @@ msgid ""
"later."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:605
-#: perllib/FixMyStreet/App/Controller/Report/Update.pm:117
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:641
+#: perllib/FixMyStreet/App/Controller/Report/Update.pm:125
#: templates/web/default/auth/general.html:23
msgid ""
"There was an empty property with your email/password combination. Passwords "
@@ -2726,11 +2854,16 @@ msgid ""
"again."
msgstr ""
+#: perllib/FixMyStreet/App/Controller/Report/Update.pm:214
+#, fuzzy
+msgid "There was an empty property with your update. Please try again."
+msgstr "Cafwyd anhawsterau gyda'ch diweddariad. Gweler isod"
+
#: perllib/FixMyStreet/App/Controller/Contact.pm:117
msgid "There were problems with your report. Please see below."
msgstr "Cafwyd anhawsterau gyda'ch adroddiad. Gweler isod."
-#: perllib/FixMyStreet/App/Controller/Report/Update.pm:211
+#: perllib/FixMyStreet/App/Controller/Report/Update.pm:241
msgid "There were problems with your update. Please see below."
msgstr "Cafwyd anhawsterau gyda'ch diweddariad. Gweler isod"
@@ -2740,7 +2873,7 @@ msgid ""
"change without warnings in the future."
msgstr ""
-#: bin/send-reports:181
+#: bin/send-reports:185
msgid ""
"This email has been sent to both councils covering the location of the empty "
"property, as the user did not categorise it; please ignore it if you're not "
@@ -2748,13 +2881,17 @@ msgid ""
"empty property this is so we can add it to our system."
msgstr ""
-#: bin/send-reports:184
+#: bin/send-reports:188
msgid ""
"This email has been sent to several councils covering the location of the "
"empty property, as the category selected is provided for all of them; please "
"ignore it if you're not the correct council to deal with the issue."
msgstr ""
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:761
+msgid "This information is required"
+msgstr ""
+
#: templates/web/default/debug_header.html:3
#, fuzzy
msgid ""
@@ -2780,31 +2917,46 @@ msgstr ""
"Dyma grynodeb o'r holl adroddiadau ar y safle hwn; dewiswch gyngor penodol i "
"weld yr adroddiadau a anfonwyd ato."
-#: perllib/FixMyStreet/Cobrand/Default.pm:903
+#: perllib/FixMyStreet/Cobrand/Default.pm:926
+#, fuzzy
+msgid "This empty property has been closed"
+msgstr "Mae'r eiddo gwag hwn wedi cael ei adfer i'w ddefnyddio"
+
+#: perllib/FixMyStreet/Cobrand/Default.pm:922
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:117
-#: templates/web/default/report/display.html:96
+#: templates/web/default/report/display.html:101
msgid "This empty property has been returned to use"
msgstr "Mae'r eiddo gwag hwn wedi cael ei adfer i'w ddefnyddio"
-#: templates/web/default/report/display.html:91
+#: templates/web/default/report/display.html:96
#, fuzzy
msgid "This empty property has not been returned to use"
msgstr "Mae'r eiddo gwag hwn wedi cael ei adfer i'w ddefnyddio"
-#: perllib/FixMyStreet/Cobrand/Default.pm:899
+#: perllib/FixMyStreet/Cobrand/Default.pm:931
+#, fuzzy
+msgid "This empty property is in progress"
+msgstr "Mae'r eiddo gwag hwn wedi cael ei adfer i'w ddefnyddio"
+
+#: perllib/FixMyStreet/Cobrand/Default.pm:918
msgid "This empty property is old and of unknown status."
msgstr "Mae'r eiddo gwag hwn yn hen ac nid yw ei statws yn hysbys."
#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:79
#, fuzzy
+msgid "This report is currently marked as closed."
+msgstr "Mae'r eiddo gwag hwn wedi cael ei adfer i'w ddefnyddio"
+
+#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:77
+#, fuzzy
msgid "This report is currently marked as returned to use."
msgstr "Mae'r eiddo gwag hwn wedi cael ei adfer i'w ddefnyddio"
-#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:80
+#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:81
msgid "This report is currently marked as open."
msgstr ""
-#: bin/send-reports:70
+#: bin/send-reports:71
msgid ""
"This web page also contains a photo of the empty property, provided by the "
"user."
@@ -2812,7 +2964,7 @@ msgstr ""
"Mae'r dudalen we hon hefyd yn cynnwys ffotograff o'r eiddo gwag, wedi'i "
"ddarparu gan y defnyddiwr."
-#: perllib/FixMyStreet/App/Controller/Admin.pm:841
+#: perllib/FixMyStreet/App/Controller/Admin.pm:979
#: templates/web/default/admin/timeline.html:1
msgid "Timeline"
msgstr ""
@@ -2841,13 +2993,14 @@ msgstr ""
"ward chi,\n"
"cofnodwch eich cod post Prydeinig neu enw stryd ac ardal:"
-#: bin/send-reports:76
+#: bin/send-reports:77
msgid "To view a map of the precise location of this issue"
msgstr "Gweld map o union leoliad y broblem hon"
#: templates/web/default/admin/index.html:36
#: templates/web/default/admin/questionnaire.html:24
-#: templates/web/default/admin/stats.html:21
+#: templates/web/default/admin/stats.html:24
+#: templates/web/default/admin/stats.html:43
msgid "Total"
msgstr ""
@@ -2856,6 +3009,7 @@ msgid "Unable to look up areas in MaPit. Please try again later."
msgstr ""
#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/report_edit.html:25
#: templates/web/default/admin/update_edit.html:19
msgid "Unconfirmed"
msgstr ""
@@ -2891,17 +3045,37 @@ msgstr ""
msgid "Update by {{name}}"
msgstr "Diweddariadau yn Ă´l {{name}}"
-#: templates/web/default/admin/council_contacts.html:46
+#: templates/web/default/admin/update_edit.html:33
+#, fuzzy
+msgid "Update changed empty property state to %s"
+msgstr ""
+"Fe wnaeth diweddariad gofnodi bod yr eiddo hwn wedi cael ei adfer i'w "
+"ddefnyddio."
+
+#: templates/web/default/admin/update_edit.html:35
+#, fuzzy
+msgid "Update marked empty property as returned to use"
+msgstr ""
+"Fe wnaeth diweddariad gofnodi bod yr eiddo hwn wedi cael ei adfer i'w "
+"ddefnyddio."
+
+#: templates/web/default/admin/update_edit.html:37
+#, fuzzy
+msgid "Update reopened empty property"
+msgstr "Sut i roi gwybod am eiddo gwag"
+
+#: templates/web/default/admin/council_contacts.html:53
#, fuzzy
msgid "Update statuses"
msgstr "Diweddariadau"
-#: templates/web/default/report/display.html:84
+#: templates/web/default/report/display.html:77
msgid "Update:"
msgstr "Diweddariad:"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:606
-#: perllib/FixMyStreet/App/Controller/Admin.pm:693
+#: perllib/FixMyStreet/App/Controller/Admin.pm:647
+#: perllib/FixMyStreet/App/Controller/Admin.pm:764
+#: perllib/FixMyStreet/App/Controller/Admin.pm:844
#, fuzzy
msgid "Updated!"
msgstr "Diweddariadau"
@@ -2920,11 +3094,11 @@ msgstr "Diweddariadau am {{title}}"
msgid "Updates to this empty property, reportemptyhomes.com"
msgstr "Diweddariadau i'r eiddo gwag hwn, reportemptyhomes.com"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:997
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1137
msgid "User flag removed"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:969
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1109
msgid "User flagged"
msgstr ""
@@ -2932,8 +3106,8 @@ msgstr ""
msgid "Users"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:295
-#: perllib/FixMyStreet/App/Controller/Admin.pm:325
+#: perllib/FixMyStreet/App/Controller/Admin.pm:304
+#: perllib/FixMyStreet/App/Controller/Admin.pm:334
#, fuzzy
msgid "Values updated"
msgstr "Anfonwch ddiweddariadau ataf i drwy'r e-bost"
@@ -2961,15 +3135,8 @@ msgstr "Gweld eiddo gwag"
msgid "Wards of this council"
msgstr ""
-#: perllib/FixMyStreet/Geocode/Bing.pm:46
-msgid ""
-"We do not cover Northern Ireland, I'm afraid, as our licence doesn't include "
-"any maps for the region."
-msgstr ""
-"Nid ydym yn ymdrin Ă¢ Gogledd Iwerddon, yn anffodus, gan nad yw ein trwydded "
-"yn cynnwys unrhyw fapiau ar gyfer y rhanbarth."
-
-#: perllib/FixMyStreet/Cobrand/Default.pm:520
+#: perllib/FixMyStreet/Cobrand/Default.pm:521
+#: perllib/FixMyStreet/Geocode/Bing.pm:47
#: perllib/FixMyStreet/Geocode/Google.pm:63
msgid "We do not currently cover Northern Ireland, I'm afraid."
msgstr ""
@@ -2995,7 +3162,7 @@ msgid ""
"property you reported."
msgstr ""
-#: bin/send-reports:191
+#: bin/send-reports:195
msgid ""
"We realise this empty property might be the responsibility of %s; however, "
"we don't currently have any contact details for them. If you know of an "
@@ -3036,7 +3203,7 @@ msgstr ""
"Byddai'n dda gennym glywed eich barn am y wefan hon. Llenwch y ffurflen, neu "
"anfonwch neges e-bost at <a href='mailto:%s'>%s</a>:"
-#: templates/web/default/admin/council_contacts.html:25
+#: templates/web/default/admin/council_contacts.html:32
#: templates/web/default/admin/council_edit.html:41
msgid "When edited"
msgstr ""
@@ -3046,7 +3213,7 @@ msgstr ""
msgid "When sent"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:493
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:523
msgid "Whole block of empty flats"
msgstr "Bloc cyfan o fflatiau gwag"
@@ -3069,13 +3236,20 @@ msgid ""
"does a lack of punctuation."
msgstr ""
-#: templates/web/default/admin/council_contacts.html:32
-#: templates/web/default/admin/council_contacts.html:33
+#: templates/web/default/admin/stats.html:10
+msgid "Year"
+msgstr ""
+
+#: templates/web/default/admin/council_contacts.html:39
+#: templates/web/default/admin/council_contacts.html:40
#: templates/web/default/admin/council_edit.html:5
-#: templates/web/default/admin/list_updates.html:28
+#: templates/web/default/admin/list_updates.html:30
+#: templates/web/default/admin/list_updates.html:31
+#: templates/web/default/admin/list_updates.html:32
#: templates/web/default/admin/problem_row.html:19
#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:37
+#: templates/web/default/admin/report_edit.html:40
+#: templates/web/default/admin/search_users.html:23
#: templates/web/default/admin/update_edit.html:15
#: templates/web/default/questionnaire/creator_fixed.html:14
#: templates/web/default/questionnaire/index.html:107
@@ -3112,7 +3286,7 @@ msgid "You can <a href=\"/reports\">show all councils</a>."
msgstr "Gallwch <a href=\"%s\">weld mwy o fanylion</a>."
#: templates/web/default/report/new/councils_text_none.html:14
-#: templates/web/default/report/new/councils_text_none.html:3
+#: templates/web/default/report/new/councils_text_none.html:16
#: templates/web/default/report/new/councils_text_some.html:20
#: templates/web/default/report/new/councils_text_some.html:22
msgid ""
@@ -3130,13 +3304,13 @@ msgstr ""
"s'>cysylltwch Ă¢ ni</a>, neu ewch i <a href='%s'>weld eich eiddo gwag</a>.\n"
#: templates/web/default/questionnaire/index.html:94
-#: templates/web/default/report/new/fill_in_details_form.html:89
+#: templates/web/default/report/new/fill_in_details_form.html:93
msgid ""
"You have already attached a photo to this report, attaching another one will "
"replace it."
msgstr ""
-#: templates/web/default/report/display.html:106
+#: templates/web/default/report/display.html:112
msgid ""
"You have already attached a photo to this update, attaching another one will "
"replace it."
@@ -3183,8 +3357,8 @@ msgstr "Rydych wedi dileu'ch hysbysiad yn llwyddiannus."
msgid "You have successfully deleted your alert."
msgstr "Rydych wedi dileu'ch hysbysiad yn llwyddiannus."
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:611
-#: perllib/FixMyStreet/App/Controller/Report/Update.pm:123
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:647
+#: perllib/FixMyStreet/App/Controller/Report/Update.pm:131
#, fuzzy
msgid ""
"You have successfully signed in; please check and confirm your details are "
@@ -3197,7 +3371,7 @@ msgid ""
"do not, %s."
msgstr ""
-#: templates/web/default/admin/report_edit.html:32
+#: templates/web/default/admin/report_edit.html:35
msgid "You really want to resend?"
msgstr ""
@@ -3213,15 +3387,15 @@ msgid "Your email address:"
msgstr "Eich cyfeiriad e-bost:"
#: templates/web/default/alert/list.html:122
-#: templates/web/default/report/display.html:128
-#: templates/web/default/report/new/fill_in_details_form.html:120
+#: templates/web/default/report/display.html:134
+#: templates/web/default/report/new/fill_in_details_form.html:124
msgid "Your email:"
msgstr "Eich cyfeiriad e-bost:"
#: templates/web/default/auth/general.html:59
#: templates/web/default/contact/index.html:68
-#: templates/web/default/report/display.html:199
-#: templates/web/default/report/new/fill_in_details_form.html:194
+#: templates/web/default/report/display.html:210
+#: templates/web/default/report/new/fill_in_details_form.html:203
msgid "Your name:"
msgstr "Eich enw:"
@@ -3229,12 +3403,13 @@ msgstr "Eich enw:"
msgid "Your password has been changed"
msgstr ""
-#: templates/web/default/footer.html:7
+#: templates/web/default/footer.html:7 templates/web/fiksgatami/footer.html:6
+#: templates/web/reading/footer.html:7
#, fuzzy
msgid "Your reports"
msgstr "Adroddiadau"
-#: templates/web/default/my/my.html:40
+#: templates/web/default/my/my.html:45
#, fuzzy
msgid "Your updates"
msgstr "Adroddiadau"
@@ -3260,15 +3435,19 @@ msgstr ""
msgid "from %d different users"
msgstr ""
-#: perllib/Utils.pm:247
+#: perllib/Utils.pm:248
msgid "less than a minute"
msgstr "llai na munud"
-#: templates/web/default/report/updates.html:13
+#: templates/web/default/report/updates.html:18
+msgid "marked as %s"
+msgstr ""
+
+#: templates/web/default/report/updates.html:16
msgid "marked as returned to use"
msgstr "cofnodwyd bod hyn wedi'i adfer i'w ddefnyddio"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:107
+#: perllib/FixMyStreet/App/Controller/Admin.pm:109
#: templates/web/default/admin/questionnaire.html:15
#: templates/web/default/admin/questionnaire.html:16
msgid "n/a"
@@ -3286,7 +3465,7 @@ msgstr ""
msgid "other areas:"
msgstr ""
-#: templates/web/default/report/updates.html:14
+#: templates/web/default/report/updates.html:17
msgid "reopened"
msgstr "wedi'i ailagor"
@@ -3296,17 +3475,17 @@ msgstr "wedi'i ailagor"
msgid "the local council"
msgstr "Ni roddwyd gwybod i'r cyngor am hyn"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:363
+#: perllib/FixMyStreet/DB/Result/Problem.pm:520
msgid "the map was not used so pin location may be inaccurate"
msgstr ""
"ni ddefnyddiwyd y map felly mae'n bosibl na fydd lleoliad y pin yn gywir"
-#: bin/send-reports:172
+#: bin/send-reports:176
#, fuzzy
msgid "this type of local empty property"
msgstr "Anfonwch fanylion eiddo gwag lleol newydd ataf i drwy'r e-bost"
-#: perllib/Utils.pm:221
+#: perllib/Utils.pm:222
msgid "today"
msgstr "heddiw"
@@ -3314,6 +3493,15 @@ msgstr "heddiw"
msgid "used map"
msgstr ""
+#: templates/web/default/admin/update_edit.html:26
+msgid "user is from same council as empty property - %d"
+msgstr ""
+
+#: templates/web/default/admin/update_edit.html:29
+#, fuzzy
+msgid "user is empty property owner"
+msgstr "Adroddiadau hÅ·n o eiddo gwag"
+
#: templates/web/default/reports/council.html:0
#: templates/web/default/reports/council.html:3
msgid "ward"
@@ -3352,7 +3540,7 @@ msgstr "ni fydd eich eiddo gwag yn cael ei bostio"
msgid "your update will not be posted"
msgstr "ni fydd eich diweddariad yn cael ei bostio"
-#: templates/web/default/front/stats.html:19
+#: templates/web/default/front/stats.html:17
#, perl-format
msgid "<big>%s</big> report recently"
msgid_plural "<big>%s</big> reports recently"
@@ -3367,21 +3555,21 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: templates/web/default/front/stats.html:14
+#: templates/web/default/front/stats.html:12
#, perl-format
msgid "<big>%s</big> report in past week"
msgid_plural "<big>%s</big> reports in past week"
msgstr[0] "<big>%s</big> adroddiad o fewn yr wythnos ddiwethaf"
msgstr[1] "<big>%s</big> o adroddiadau o fewn yr wythnos ddiwethaf"
-#: templates/web/default/front/stats.html:25
+#: templates/web/default/front/stats.html:23
#, perl-format
msgid "<big>%s</big> returned to use in past month"
msgid_plural "<big>%s</big> returned to use in past month"
msgstr[0] "Dychwelwyd <big>%s</big> i'w ddefnyddio yn y mis diwethaf"
msgstr[1] "Dychwelwyd <big>%s</big> i'w defnyddio yn y mis diwethaf"
-#: templates/web/default/front/stats.html:31
+#: templates/web/default/front/stats.html:29
#, perl-format
msgid "<big>%s</big> update on reports"
msgid_plural "<big>%s</big> updates on reports"
@@ -3399,6 +3587,19 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
+#~ msgid "reportemptyhomes.com updates"
+#~ msgstr "Diweddariadau i reportemptyhomes.com"
+
+#~ msgid "Photos of recent reports"
+#~ msgstr "Ffotograffau o adroddiadau diweddar"
+
+#~ msgid ""
+#~ "We do not cover Northern Ireland, I'm afraid, as our licence doesn't "
+#~ "include any maps for the region."
+#~ msgstr ""
+#~ "Nid ydym yn ymdrin Ă¢ Gogledd Iwerddon, yn anffodus, gan nad yw ein "
+#~ "trwydded yn cynnwys unrhyw fapiau ar gyfer y rhanbarth."
+
#, fuzzy
#~ msgid ""
#~ "&copy; Crown copyright. All rights reserved. Ministry of Justice "
diff --git a/locale/nb_NO.UTF-8/LC_MESSAGES/FixMyStreet.po b/locale/nb_NO.UTF-8/LC_MESSAGES/FixMyStreet.po
index dd4aa6cc4..946f052aa 100644
--- a/locale/nb_NO.UTF-8/LC_MESSAGES/FixMyStreet.po
+++ b/locale/nb_NO.UTF-8/LC_MESSAGES/FixMyStreet.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: FixMyStreet\n"
"Report-Msgid-Bugs-To: matthew@mysociety.org\n"
-"POT-Creation-Date: 2011-08-18 11:07+0100\n"
+"POT-Creation-Date: 2011-10-21 15:56+0100\n"
"PO-Revision-Date: 2011-08-29 10:26MET\n"
"Last-Translator: Petter Reinholdtsen <pere@hungry.com>\n"
"Language-Team: Norwegian BokmĂ¥l <i18n-nb@lister.ping.uio.no>\n"
@@ -19,7 +19,7 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: KBabel 1.11.4\n"
-#: bin/send-reports:179 perllib/FixMyStreet/DB/Result/Problem.pm:378
+#: bin/send-reports:183 perllib/FixMyStreet/DB/Result/Problem.pm:535
msgid " and "
msgstr " og "
@@ -30,8 +30,8 @@ msgstr " og <strong>vi sender det nĂ¥ til administrasjonen</strong>"
#: templates/web/default/report/new/councils_text_all.html:10
#: templates/web/default/report/new/councils_text_all.html:3
-#: templates/web/default/report/new/councils_text_none.html:15
-#: templates/web/default/report/new/councils_text_none.html:3
+#: templates/web/default/report/new/councils_text_none.html:14
+#: templates/web/default/report/new/councils_text_none.html:17
#: templates/web/default/report/new/councils_text_some.html:20
#: templates/web/default/report/new/councils_text_some.html:23
#: templates/web/default/report/new/councils_text_some.html:5
@@ -51,11 +51,11 @@ msgstr "%d bekreftede varsler, %d ubekreftede"
msgid "%d council contacts &ndash; %d confirmed, %d unconfirmed"
msgstr "%d administrasjonskontakter &ndash; %d bekreftet, %d ubekreftet"
-#: perllib/Utils.pm:251
+#: perllib/Utils.pm:252
msgid "%d day"
msgstr "%d dag"
-#: perllib/Utils.pm:251
+#: perllib/Utils.pm:252
msgid "%d days"
msgstr "%d dager"
@@ -63,11 +63,11 @@ msgstr "%d dager"
msgid "%d edits by %s"
msgstr "%d redigeringer av %s"
-#: perllib/Utils.pm:252
+#: perllib/Utils.pm:253
msgid "%d hour"
msgstr "%d time"
-#: perllib/Utils.pm:252
+#: perllib/Utils.pm:253
msgid "%d hours"
msgstr "%d timer"
@@ -75,11 +75,11 @@ msgstr "%d timer"
msgid "%d live updates"
msgstr "%d aktive oppdateringer"
-#: perllib/Utils.pm:253
+#: perllib/Utils.pm:254
msgid "%d minute"
msgstr "%d minutt"
-#: perllib/Utils.pm:253
+#: perllib/Utils.pm:254
msgid "%d minutes"
msgstr "%d minutter"
@@ -87,11 +87,11 @@ msgstr "%d minutter"
msgid "%d questionnaires sent &ndash; %d answered (%s%%)"
msgstr "%d spørreskjema sendt &ndash; %d besvart (%s%%)"
-#: perllib/Utils.pm:250
+#: perllib/Utils.pm:251
msgid "%d week"
msgstr "%d uke"
-#: perllib/Utils.pm:250
+#: perllib/Utils.pm:251
msgid "%d weeks"
msgstr "%d uker"
@@ -100,21 +100,21 @@ msgstr "%d uker"
msgid "%s - Summary reports"
msgstr "%s - oppsummeringsrapporter"
-#: perllib/FixMyStreet/Cobrand/Default.pm:826
-#: perllib/FixMyStreet/Cobrand/Default.pm:840
+#: perllib/FixMyStreet/Cobrand/Default.pm:844
+#: perllib/FixMyStreet/Cobrand/Default.pm:858
msgid "%s ward, %s"
msgstr "%s bydel, %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:309
+#: perllib/FixMyStreet/DB/Result/Problem.pm:466
msgid "%s, reported anonymously at %s"
msgstr "%s, rapportert anonymt %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:311
+#: perllib/FixMyStreet/DB/Result/Problem.pm:468
msgid "%s, reported by %s at %s"
msgstr "%s, rapportert av %s %s"
-#: perllib/FixMyStreet/Cobrand/Default.pm:857
-#: perllib/FixMyStreet/Cobrand/Default.pm:871
+#: perllib/FixMyStreet/Cobrand/Default.pm:875
+#: perllib/FixMyStreet/Cobrand/Default.pm:889
msgid "%s, within %s ward"
msgstr "%s, innefor bydel %s"
@@ -151,7 +151,7 @@ msgstr "(som tagging, søppel, hull i veien, eller ødelagte gatelys)"
msgid "(not sent to council)"
msgstr "(ikke rapportert til administrasjonen)"
-#: templates/web/default/report/new/fill_in_details_form.html:208
+#: templates/web/default/report/new/fill_in_details_form.html:217
msgid "(optional)"
msgstr "(valgfritt)"
@@ -160,26 +160,26 @@ msgstr "(valgfritt)"
msgid "(sent to both)"
msgstr "(sendt til begge)"
-#: templates/web/default/report/new/fill_in_details_form.html:202
+#: templates/web/default/report/new/fill_in_details_form.html:211
msgid "(we never show your email address or phone number)"
msgstr "(vi viser aldri din e-postadresse eller telefonnummer)"
-#: templates/web/default/report/display.html:206
+#: templates/web/default/report/display.html:217
msgid "(we never show your email)"
msgstr "(vi viser aldri din e-postadresse)"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:270
+#: perllib/FixMyStreet/App/Controller/Admin.pm:279
msgid "*unknown*"
msgstr "*ukjent*"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:504
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:532
-#: perllib/FixMyStreet/DB/Result/Problem.pm:206
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:534
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:566
+#: perllib/FixMyStreet/DB/Result/Problem.pm:314
msgid "-- Pick a category --"
msgstr "-- Velg en kategori --"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:490
-#: perllib/FixMyStreet/DB/Result/Problem.pm:212
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:520
+#: perllib/FixMyStreet/DB/Result/Problem.pm:320
msgid "-- Pick a property type --"
msgstr "-- Velg en eiendomsstype --"
@@ -189,7 +189,7 @@ msgstr "-- Velg en eiendomsstype --"
msgid ". You can <a href=\"%s\">view the problem on this site</a>."
msgstr ". Du kan <a href=\"%s\">lese om problemet pĂ¥ portalen </a>."
-#: templates/web/default/footer.html:13
+#: templates/web/default/footer.html:13 templates/web/reading/footer.html:16
msgid ""
"<a href=\"http://www.mysociety.org/\"><img id=\"logo\" width=\"133\" height="
"\"26\" src=\"/i/mysociety-dark.png\" alt=\"View mySociety.org\"><span id="
@@ -217,9 +217,12 @@ msgid ""
"pledge</a>?\n"
"</p>"
msgstr ""
-"<p style=\"font-size:150%%\">Det var trist Ă¥ høre dette. Vi har to forslag: hva med Ă¥ forsøke\n"
-"<a href=\"%s\">Ă¥ skrive direkte til dine representanter</a>, eller hvis det er et problem som kan fikses\n"
-"av folk i nabolaget som jobber sammen, hva med Ă¥ <a href=\"http://www.pledgebank.com/new\">publisere en utfordring om Ă¥ bidra</a>?</p>"
+"<p style=\"font-size:150%%\">Det var trist Ă¥ høre dette. Vi har to forslag: "
+"hva med Ă¥ forsøke\n"
+"<a href=\"%s\">Ă¥ skrive direkte til dine representanter</a>, eller hvis det "
+"er et problem som kan fikses\n"
+"av folk i nabolaget som jobber sammen, hva med Ă¥ <a href=\"http://www."
+"pledgebank.com/new\">publisere en utfordring om Ă¥ bidra</a>?</p>"
#: templates/web/default/questionnaire/index.html:37
msgid ""
@@ -285,37 +288,37 @@ msgstr "<strong>%d</strong> aktive problemer"
msgid "<strong>No</strong>, I do not, let me sign in by email:"
msgstr "<strong>Nei</strong>, det gjør jeg ikke. La meg logge inn med e-post:"
-#: templates/web/default/report/new/fill_in_details_form.html:154
+#: templates/web/default/report/new/fill_in_details_form.html:162
msgid "<strong>No</strong>, let me confirm my report by email:"
msgstr "<strong>Nei</strong>, la meg bekrefte min rapport med e-post:"
-#: templates/web/default/report/display.html:160
+#: templates/web/default/report/display.html:170
msgid "<strong>No</strong>, let me confirm my update by email:"
msgstr "<strong>Nei</strong>, la meg bekrefte min oppdatering med e-post:"
#: templates/web/default/auth/general.html:37
-#: templates/web/default/report/display.html:142
-#: templates/web/default/report/new/fill_in_details_form.html:136
+#: templates/web/default/report/display.html:148
+#: templates/web/default/report/new/fill_in_details_form.html:140
msgid "<strong>Yes</strong>, I have a password:"
msgstr "<strong>Ja</strong>, jeg har et passord:"
#: templates/web/default/static/about.html:1
#: templates/web/default/static/about.html:3
-#: templates/web/emptyhomes/header.html:32
+#: templates/web/emptyhomes/header.html:31
#: templates/web/emptyhomes/static/about.html:1
#: templates/web/emptyhomes/static/about.html:3
msgid "About us"
msgstr "Om oss"
-#: templates/web/default/admin/council_contacts.html:50
+#: templates/web/default/admin/council_contacts.html:57
msgid "Add new category"
msgstr "Legg til ny kategori"
-#: templates/web/default/my/my.html:51
+#: templates/web/default/my/my.html:56
msgid "Added %s"
msgstr "La til %s"
-#: templates/web/default/auth/change_password.html:31
+#: templates/web/default/auth/change_password.html:29
msgid "Again:"
msgstr "Gjenta:"
@@ -327,7 +330,7 @@ msgstr "Varsel %d opprettet for %s, type %s, parameter %s / %s"
msgid "Alert %d disabled (created %s)"
msgstr "Varsel %d koblet ut (opprettet %s)"
-#: templates/web/default/report/display.html:211
+#: templates/web/default/report/display.html:222
msgid "Alert me to future updates"
msgstr "Send meg varsel ved fremtidige oppdateringer"
@@ -339,8 +342,8 @@ msgstr "Alle"
msgid "All confirmed"
msgstr "Alle bekreftet"
-#: templates/web/default/footer.html:8 templates/web/emptyhomes/header.html:29
-#: templates/web/fiksgatami/footer.html:6
+#: templates/web/default/footer.html:8 templates/web/emptyhomes/header.html:28
+#: templates/web/fiksgatami/footer.html:7 templates/web/reading/footer.html:8
msgid "All reports"
msgstr "Alle rapporter"
@@ -363,8 +366,10 @@ msgstr ""
#: templates/web/default/report/new/councils_text_all.html:12
#: templates/web/default/report/new/fill_in_details_form.html:11
#: templates/web/default/report/new/fill_in_details_form.html:13
-msgid "All the information you provide here will be sent to <strong>%s</strong>."
-msgstr "All informasjonen du har lagt inn her vil bli sendt til <strong>%s</strong>."
+msgid ""
+"All the information you provide here will be sent to <strong>%s</strong>."
+msgstr ""
+"All informasjonen du har lagt inn her vil bli sendt til <strong>%s</strong>."
#: templates/web/emptyhomes/report/new/all_councils_text.html:2
#: templates/web/emptyhomes/report/new/all_councils_text.html:4
@@ -398,15 +403,21 @@ msgid "Are you a developer? Would you like to contribute to FixMyStreet?"
msgstr "Er du en utvikler? Kunne du tenke deg Ă¥ bidra til FiksGataMi?"
#: templates/web/default/footer.html:26
-msgid "Are you from a council? Would you like better integration with FixMyStreet?"
-msgstr "Er du fra det offentlige? Kunne du tenke deg bedre integrasjon med FiksGataMi?"
+msgid ""
+"Are you from a council? Would you like better integration with FixMyStreet?"
+msgstr ""
+"Er du fra det offentlige? Kunne du tenke deg bedre integrasjon med "
+"FiksGataMi?"
#: templates/web/default/open311/index.html:17
msgid ""
"At most %d requests are returned in each query. The returned requests are "
"ordered by requested_datetime, so to get all requests, do several searches "
"with rolling start_date and end_date."
-msgstr "PĂ¥ det meste blir %d forespørsler returnert i hver spørring. De returnerte forespørslene blir sortert pĂ¥ requested_datetime, sĂ¥ en mĂ¥ gjøre flere søk med rullerende start_date og end_date for Ă¥ fĂ¥ tak i alle forespørslene."
+msgstr ""
+"PĂ¥ det meste blir %d forespørsler returnert i hver spørring. De returnerte "
+"forespørslene blir sortert pĂ¥ requested_datetime, sĂ¥ en mĂ¥ gjøre flere søk "
+"med rullerende start_date og end_date for Ă¥ fĂ¥ tak i alle forespørslene."
#: templates/web/default/open311/index.html:9
msgid "At the moment only searching for and looking at reports work."
@@ -416,11 +427,11 @@ msgstr "For øyeblikket er det kun søk etter og Ă¥ se pĂ¥ rapporter som fungere
msgid "Ban email address"
msgstr "Bannlys epostadresse"
-#: templates/web/default/footer.html:16
+#: templates/web/default/footer.html:16 templates/web/reading/footer.html:14
msgid "Built by <a href=\"http://www.mysociety.org/\">mySociety</a>"
msgstr "Bygget av <a href=\"http://www.mysociety.org/\">mySociety</a>"
-#: templates/web/fiksgatami/footer.html:15
+#: templates/web/fiksgatami/footer.html:16
msgid ""
"Built by <a href=\"http://www.mysociety.org/\">mySociety</a> and maintained "
"by <a href=\"http://www.nuug.no/\">NUUG</a>"
@@ -428,7 +439,11 @@ msgstr ""
"Bygget av <a href=\"http://www.mysociety.org/\">mySociety</a> og "
"vedlikeholdt av <a href=\"http://www.nuug.no/\">NUUG</a>"
-#: templates/web/default/admin/council_contacts.html:19
+#: templates/web/default/admin/stats.html:80
+msgid "By Date"
+msgstr ""
+
+#: templates/web/default/admin/council_contacts.html:26
#: templates/web/default/admin/index.html:36
#: templates/web/default/admin/list_flagged.html:14
#: templates/web/default/admin/search_reports.html:17
@@ -439,25 +454,46 @@ msgstr "Kategori"
msgid "Category fix rate for problems > 4 weeks old"
msgstr "Løsningsrate fordelt pĂ¥ kategori for problemer > 4 uker gamle"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:507
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:533
-#: templates/web/default/admin/council_contacts.html:56
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:537
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:567
+#: templates/web/default/admin/council_contacts.html:63
#: templates/web/default/admin/council_edit.html:23
-#: templates/web/default/admin/report_edit.html:26
+#: templates/web/default/admin/report_edit.html:29
#: templates/web/default/report/new/fill_in_details_form.html:67
msgid "Category:"
msgstr "Kategori:"
-#: bin/send-reports:176
+#: bin/send-reports:180
msgid "Category: %s"
msgstr "Kategori: %s"
#: templates/web/default/auth/change_password.html:1
#: templates/web/default/auth/change_password.html:3
-#: templates/web/default/auth/change_password.html:35
+#: templates/web/default/auth/change_password.html:33
msgid "Change Password"
msgstr "Bytt passord"
+#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/report_edit.html:24
+#: templates/web/default/report/display.html:85
+#: templates/web/default/report/display.html:87
+msgid "Closed"
+msgstr ""
+
+#: perllib/FixMyStreet/DB/Result/Problem.pm:627
+#, fuzzy
+msgid "Closed by council"
+msgstr "(ikke rapportert til administrasjonen)"
+
+#: templates/web/default/my/my.html:32
+#, fuzzy
+msgid "Closed reports"
+msgstr "Fiksede rapporter"
+
+#: templates/web/default/admin/problem_row.html:25
+msgid "Closed:"
+msgstr ""
+
#: templates/web/default/around/display_location.html:102
#: templates/web/default/around/display_location.html:104
msgid "Closest nearby problems <small>(within&nbsp;%skm)</small>"
@@ -468,22 +504,39 @@ msgid "Co-ordinates:"
msgstr "Koordinater:"
#: templates/web/default/admin/list_flagged.html:16
-#: templates/web/default/admin/list_updates.html:11
+#: templates/web/default/admin/list_updates.html:13
#: templates/web/default/admin/search_reports.html:19
msgid "Cobrand"
msgstr ""
-#: templates/web/default/admin/report_edit.html:36
-#: templates/web/default/admin/update_edit.html:26
+#: templates/web/default/admin/report_edit.html:39
+#: templates/web/default/admin/update_edit.html:41
msgid "Cobrand data:"
msgstr ""
-#: templates/web/default/admin/report_edit.html:35
-#: templates/web/default/admin/update_edit.html:25
+#: templates/web/default/admin/report_edit.html:38
+#: templates/web/default/admin/update_edit.html:40
msgid "Cobrand:"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:26
+#: perllib/FixMyStreet/App/Controller/Admin.pm:349
+#, fuzzy
+msgid "Configuration updated"
+msgstr "Bekreftelse"
+
+#: perllib/FixMyStreet/App/Controller/Admin.pm:359
+msgid "Configuration updated - contacts will be generated automatically later"
+msgstr ""
+
+#: templates/web/default/admin/council_contacts.html:119
+msgid "Configure Open311"
+msgstr ""
+
+#: templates/web/default/admin/council_contacts.html:96
+msgid "Configure Open311 integration"
+msgstr ""
+
+#: templates/web/default/admin/council_contacts.html:33
msgid "Confirm"
msgstr "Bekreft"
@@ -501,8 +554,8 @@ msgstr "Bekreft konto"
msgid "Confirmation"
msgstr "Bekreftelse"
-#: templates/web/default/admin/council_contacts.html:21
-#: templates/web/default/admin/council_contacts.html:66
+#: templates/web/default/admin/council_contacts.html:28
+#: templates/web/default/admin/council_contacts.html:73
#: templates/web/default/admin/council_edit.html:28
#: templates/web/default/admin/council_edit.html:43
#: templates/web/default/admin/stats.html:5
@@ -510,15 +563,15 @@ msgid "Confirmed"
msgstr "Bekreftet"
#: templates/web/default/admin/problem_row.html:23
-#: templates/web/default/admin/report_edit.html:31
+#: templates/web/default/admin/report_edit.html:34
msgid "Confirmed:"
msgstr "Bekreftet:"
-#: templates/web/fiksgatami/footer.html:9
+#: templates/web/fiksgatami/footer.html:10
msgid "Contact"
msgstr "Kontakt"
-#: templates/web/default/footer.html:17
+#: templates/web/default/footer.html:17 templates/web/reading/footer.html:15
msgid "Contact FixMyStreet"
msgstr "Kontakt FiksGataMi"
@@ -533,17 +586,19 @@ msgstr "Kontakt oss"
msgid "Contact the team"
msgstr "Kontakt prosjektgruppen"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:965
-#: perllib/FixMyStreet/App/Controller/Admin.pm:993
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1105
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1133
msgid "Could not find user"
msgstr "Kunne ikke finne bruker"
#: templates/web/default/admin/list_flagged.html:13
+#: templates/web/default/admin/list_updates.html:12
#: templates/web/default/admin/search_reports.html:16
+#: templates/web/default/admin/search_users.html:14
msgid "Council"
msgstr "Administrasjon"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:839
+#: perllib/FixMyStreet/App/Controller/Admin.pm:977
#: templates/web/default/admin/council_list.html:1
msgid "Council contacts"
msgstr "Administrasjonskontakter"
@@ -553,11 +608,18 @@ msgstr "Administrasjonskontakter"
msgid "Council contacts for %s"
msgstr "Administrasjonskontakter for %s"
+#: templates/web/default/admin/stats.html:84
+#: templates/web/default/admin/user_edit.html:12
+#, fuzzy
+msgid "Council:"
+msgstr "Administrasjon"
+
#: templates/web/default/admin/council_list.html:36
msgid "Councils"
msgstr "Administrasjoner"
-#: templates/web/default/admin/stats.html:10
+#: templates/web/default/admin/stats.html:12
+#: templates/web/default/admin/stats.html:32
msgid "Count"
msgstr "Antall"
@@ -565,7 +627,7 @@ msgstr "Antall"
msgid "Create a report"
msgstr "Lag en rapport"
-#: templates/web/default/admin/council_contacts.html:80
+#: templates/web/default/admin/council_contacts.html:87
msgid "Create category"
msgstr "Lag kategori"
@@ -575,12 +637,12 @@ msgstr "Lag kategori"
msgid "Created"
msgstr "Opprettet"
-#: templates/web/default/admin/report_edit.html:30
-#: templates/web/default/admin/update_edit.html:27
+#: templates/web/default/admin/report_edit.html:33
+#: templates/web/default/admin/update_edit.html:42
msgid "Created:"
msgstr "Opprettet:"
-#: templates/web/default/admin/stats.html:9
+#: templates/web/default/admin/stats.html:31
msgid "Current state"
msgstr "Gjeldende tilstand"
@@ -588,8 +650,8 @@ msgstr "Gjeldende tilstand"
msgid "Currently has 1+ deleted"
msgstr "For tiden har 1+ slettet"
-#: templates/web/default/admin/council_contacts.html:22
-#: templates/web/default/admin/council_contacts.html:69
+#: templates/web/default/admin/council_contacts.html:29
+#: templates/web/default/admin/council_contacts.html:76
#: templates/web/default/admin/council_edit.html:29
#: templates/web/default/admin/council_edit.html:44
msgid "Deleted"
@@ -613,8 +675,9 @@ msgstr "Har du et FiksGataMi-passord?"
msgid "Don&rsquo;t know"
msgstr "Vet ikke"
-#: templates/web/default/admin/list_updates.html:31
-#: templates/web/default/admin/problem_row.html:28
+#: templates/web/default/admin/list_updates.html:35
+#: templates/web/default/admin/problem_row.html:29
+#: templates/web/default/admin/search_users.html:24
msgid "Edit"
msgstr "Rediger"
@@ -626,25 +689,31 @@ msgstr "Rediger problem %d"
msgid "Editing update %d"
msgstr "Redigerer oppdatering %d"
+#: templates/web/default/admin/user_edit.html:1
+#, fuzzy
+msgid "Editing user %d"
+msgstr "Redigerer oppdatering %d"
+
#: templates/web/default/admin/council_edit.html:45
msgid "Editor"
msgstr "Oppdatert av"
-#: templates/web/default/admin/council_contacts.html:20
+#: templates/web/default/admin/council_contacts.html:27
#: templates/web/default/admin/council_edit.html:42
#: templates/web/default/admin/list_flagged.html:12
#: templates/web/default/admin/list_flagged.html:35
#: templates/web/default/admin/list_updates.html:8
#: templates/web/default/admin/search_abuse.html:11
#: templates/web/default/admin/search_reports.html:15
+#: templates/web/default/admin/search_users.html:13
msgid "Email"
msgstr "E-post"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:941
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1081
msgid "Email added to abuse list"
msgstr "Epost lagt til misbruksliste"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:938
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1078
msgid "Email already in abuse list"
msgstr "Epost allerede i misbrukslisten"
@@ -652,28 +721,29 @@ msgstr "Epost allerede i misbrukslisten"
msgid "Email me new local problems"
msgstr "Send meg e-post om lokale problemer"
-#: templates/web/default/report/display.html:42
+#: templates/web/default/report/display.html:35
msgid "Email me updates"
msgstr "Send meg oppdateringer"
-#: templates/web/default/admin/council_contacts.html:61
+#: templates/web/default/admin/council_contacts.html:68
#: templates/web/default/admin/council_edit.html:26
-#: templates/web/default/admin/report_edit.html:28
+#: templates/web/default/admin/report_edit.html:31
#: templates/web/default/admin/update_edit.html:24
+#: templates/web/default/admin/user_edit.html:11
#: templates/web/default/alert/updates.html:13
-#: templates/web/default/report/display.html:46
+#: templates/web/default/report/display.html:39
msgid "Email:"
msgstr "E-post:"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:492
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:522
msgid "Empty flat or maisonette"
msgstr "Tom leilighet"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:491
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:521
msgid "Empty house or bungalow"
msgstr "Tomt hus eller bungalow"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:494
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:524
msgid "Empty office or other commercial"
msgstr "Tomt kontor eller forretningsbygg"
@@ -681,23 +751,23 @@ msgstr "Tomt kontor eller forretningsbygg"
msgid "Empty property details form"
msgstr "Tom eiendom detaljskjema"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:495
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:525
msgid "Empty pub or bar"
msgstr "Tom pub eller bar"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:496
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:526
msgid "Empty public building - school, hospital, etc."
msgstr "Tom offentlig bygning - skole, sykehos, etc."
-#: templates/web/default/admin/stats.html:47
+#: templates/web/default/admin/stats.html:70
msgid "End Year:"
msgstr "SluttĂ¥r:"
-#: templates/web/default/admin/stats.html:49
+#: templates/web/default/admin/stats.html:72
msgid "End day:"
msgstr "Slutt-dag:"
-#: templates/web/default/admin/stats.html:48
+#: templates/web/default/admin/stats.html:71
msgid "End month:"
msgstr "SluttmĂ¥ned:"
@@ -712,8 +782,8 @@ msgid "Enter a nearby postcode, or street name and area"
msgstr "Skriv inn postnummer i nærheten, eller veinavn og sted"
#: templates/web/default/auth/general.html:64
-#: templates/web/default/report/display.html:167
-#: templates/web/default/report/new/fill_in_details_form.html:161
+#: templates/web/default/report/display.html:177
+#: templates/web/default/report/new/fill_in_details_form.html:169
msgid "Enter a new password:"
msgstr "Skriv inn et nytt passord:"
@@ -756,8 +826,9 @@ msgstr "Finn ut om FiksGataMi for det offentlige"
msgid "First time"
msgstr "Første gang"
-#: templates/web/default/header.html:22
-#: templates/web/fiksgatami/header.html:13
+#: templates/web/default/header.html:29
+#: templates/web/fiksgatami/header.html:16
+#: templates/web/reading/header.html:31
msgid "Fix<span id=\"my\">My</span>Street"
msgstr "Fiks<span id=\"my\">Gata</span>Mi"
@@ -799,15 +870,26 @@ msgstr ""
"administrasjoner, problemer som gjelder flere administrasjoner blir sendt "
"til alle de det gjelder."
-#: templates/web/default/front/stats.html:7
-msgid "FixMyStreet updates"
-msgstr "Fiksgatami-oppdateringer"
-
#: templates/web/default/admin/index.html:36
#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/report_edit.html:24
+#: templates/web/default/report/display.html:85
+#: templates/web/default/report/display.html:87
msgid "Fixed"
msgstr "Løst"
+#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/report_edit.html:25
+#, fuzzy
+msgid "Fixed - Council"
+msgstr "Administrasjon"
+
+#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/report_edit.html:25
+#, fuzzy
+msgid "Fixed - User"
+msgstr "Fiksede rapporter"
+
#: templates/web/default/my/my.html:27
msgid "Fixed reports"
msgstr "Fiksede rapporter"
@@ -820,7 +902,13 @@ msgstr "Løst:"
msgid "Flag user"
msgstr "Flag bruker"
-#: templates/web/default/admin/report_edit.html:38
+#: templates/web/default/admin/search_users.html:15
+#, fuzzy
+msgid "Flagged"
+msgstr "Flagget:"
+
+#: templates/web/default/admin/report_edit.html:41
+#: templates/web/default/admin/user_edit.html:18
msgid "Flagged:"
msgstr "Flagget:"
@@ -857,7 +945,7 @@ msgstr "Gi meg en RSS-strøm"
msgid "Go"
msgstr "Fortsett"
-#: templates/web/default/admin/report_edit.html:37
+#: templates/web/default/admin/report_edit.html:40
msgid "Going to send questionnaire?"
msgstr "Skal det sendes spørreskjema?"
@@ -868,7 +956,8 @@ msgstr "Graf over problemoppretting fordelt pĂ¥ status over tid"
#: templates/web/default/reports/index.html:5
#: templates/web/emptyhomes/reports/index.html:5
msgid "Greyed-out lines are councils that no longer exist."
-msgstr "Linjer med grĂ¥ bakgrunn er administrasjoner som ikke lenger eksisterer."
+msgstr ""
+"Linjer med grĂ¥ bakgrunn er administrasjoner som ikke lenger eksisterer."
#: templates/web/default/questionnaire/index.html:63
msgid "Has this problem been fixed?"
@@ -883,16 +972,18 @@ msgstr ""
"første gangen?"
#: templates/web/default/footer.html:10
-#: templates/web/emptyhomes/header.html:31
-#: templates/web/fiksgatami/footer.html:8
+#: templates/web/emptyhomes/header.html:30
+#: templates/web/fiksgatami/footer.html:9 templates/web/reading/footer.html:10
msgid "Help"
msgstr "Hjelp"
#: templates/web/default/alert/list.html:39
msgid "Here are the types of local problem alerts for &lsquo;%s&rsquo;."
-msgstr "Her er de forskjellige typene lokale problemvarsler for &lsquo;%s&rsquo;."
+msgstr ""
+"Her er de forskjellige typene lokale problemvarsler for &lsquo;%s&rsquo;."
#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/report_edit.html:25
#: templates/web/default/admin/update_edit.html:19
msgid "Hidden"
msgstr "Skjul"
@@ -913,7 +1004,7 @@ msgstr "Historie"
msgid "How to report a problem"
msgstr "Hvordan rapportere et problem"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:546
+#: perllib/FixMyStreet/App/Controller/Admin.pm:587
msgid "I am afraid you cannot confirm unconfirmed reports."
msgstr "Jeg er redd du ikke kan bekrefte ubekreftede rapporter."
@@ -925,9 +1016,11 @@ msgstr "Jeg er redd vi ikke klarte Ă¥ finne ditt problem i databasen.\n"
msgid ""
"I'm afraid we couldn't validate that token, as the report was made too long "
"ago."
-msgstr "Jeg er redd vi ikke kunne verifisere den referansen, da det er for lenge siden rapporten ble laget."
+msgstr ""
+"Jeg er redd vi ikke kunne verifisere den referansen, da det er for lenge "
+"siden rapporten ble laget."
-#: perllib/FixMyStreet/App/Controller/Tokens.pm:232
+#: perllib/FixMyStreet/App/Controller/Tokens.pm:233
msgid ""
"I'm afraid we couldn't validate that token. If you've copied the URL from an "
"email, please check that you copied it exactly.\n"
@@ -942,7 +1035,7 @@ msgid "ID"
msgstr "ID"
#: templates/web/default/report/new/councils_text_none.html:11
-#: templates/web/default/report/new/councils_text_none.html:3
+#: templates/web/default/report/new/councils_text_none.html:12
msgid ""
"If you submit a problem here the subject and details of the problem will be "
"public, but the problem will <strong>not</strong> be reported to the council."
@@ -991,42 +1084,61 @@ msgstr "Ugyldig ID"
msgid "Illegal feed selection"
msgstr "Ugyldig valg av feed"
+#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/report_edit.html:24
+#: templates/web/default/report/display.html:85
+#: templates/web/default/report/display.html:87
+msgid "In Progress"
+msgstr ""
+
#: templates/web/default/open311/index.html:21
msgid ""
"In addition, the following attributes that are not part of the Open311 v2 "
"specification are returned: agency_sent_datetime, title (also returned as "
"part of description), interface_used, comment_count, requestor_name (only "
"present if requestor allowed the name to be shown on this site)."
-msgstr "I tillegg er følgende attributter som ikke er del av Open311 v2-spesifikasjonen returnert: agency_sent_datetime, title (ogsĂ¥ returnert som del av description), interface_used, comment_count, requestor_name (kun tilstede hvis innsender tillot at navnet kunne vises pĂ¥ dette nettstedet)."
+msgstr ""
+"I tillegg er følgende attributter som ikke er del av Open311 v2-"
+"spesifikasjonen returnert: agency_sent_datetime, title (ogsĂ¥ returnert som "
+"del av description), interface_used, comment_count, requestor_name (kun "
+"tilstede hvis innsender tillot at navnet kunne vises pĂ¥ dette nettstedet)."
#: templates/web/default/around/display_location.html:61
msgid "Include stale reports"
-msgstr "Inkludert utdaterte problemer"
+msgstr "Inkluder utdaterte problemer"
-#: templates/web/default/admin/stats.html:53
+#: templates/web/default/admin/stats.html:76
msgid "Include unconfirmed reports"
msgstr "Inkluder ubekreftede problemer"
-#: perllib/FixMyStreet/App/Controller/Open311.pm:355
+#: perllib/FixMyStreet/App/Controller/Open311.pm:358
msgid "Incorrect has_photo value \"%s\""
msgstr "Feil has_photo-verdi \"%s\""
-#: perllib/FixMyStreet/App/Controller/Open311.pm:340
+#: perllib/FixMyStreet/App/Controller/Open311.pm:343
msgid "Invalid agency_responsible value %s"
msgstr "Ugyldig agency_responsible-verdi %s"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:785
+#: perllib/FixMyStreet/App/Controller/Admin.pm:897
msgid "Invalid end date"
msgstr "Ugyldig slutt-dato"
-#: perllib/FixMyStreet/App/Controller/Open311.pm:423
+#: perllib/FixMyStreet/App/Controller/Open311.pm:426
msgid "Invalid format %s specified."
msgstr "Ugyldig format %s oppgitt."
-#: perllib/FixMyStreet/App/Controller/Admin.pm:775
+#: perllib/FixMyStreet/App/Controller/Admin.pm:887
msgid "Invalid start date"
msgstr "Ugyldig startdato"
+#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/report_edit.html:23
+#: templates/web/default/report/display.html:85
+#: templates/web/default/report/display.html:86
+#, fuzzy
+msgid "Investigating"
+msgstr "Navigasjon"
+
#: templates/web/emptyhomes/tokens/confirm_problem.html:12
#: templates/web/emptyhomes/tokens/confirm_problem.html:14
msgid ""
@@ -1041,24 +1153,24 @@ msgid ""
msgstr ""
#: templates/web/default/auth/general.html:44
-#: templates/web/default/report/display.html:149
-#: templates/web/default/report/new/fill_in_details_form.html:143
+#: templates/web/default/report/display.html:157
+#: templates/web/default/report/new/fill_in_details_form.html:149
msgid "Keep me signed in on this computer"
msgstr "Husk min innlogging pĂ¥ denne datamaskinen"
-#: templates/web/default/admin/council_contacts.html:23
+#: templates/web/default/admin/council_contacts.html:30
msgid "Last editor"
msgstr "Sist redigert av"
-#: templates/web/default/admin/report_edit.html:33
+#: templates/web/default/admin/report_edit.html:36
msgid "Last update:"
msgstr "Siste oppdatering:"
-#: templates/web/default/admin/problem_row.html:25
+#: templates/web/default/admin/problem_row.html:26
msgid "Last&nbsp;update:"
msgstr "Siste&nbsp;oppdatering:"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:844
+#: perllib/FixMyStreet/App/Controller/Admin.pm:983
msgid "List Flagged"
msgstr "List flagget"
@@ -1089,8 +1201,8 @@ msgstr "Lokal RSS-strøm og e-postvarsel"
msgid "Local RSS feeds and email alerts for ‘%s’"
msgstr "Lokal RSS-strøm og e-postvarsel for ‘%s’"
-#: templates/web/default/footer.html:9 templates/web/emptyhomes/header.html:30
-#: templates/web/fiksgatami/footer.html:7
+#: templates/web/default/footer.html:9 templates/web/emptyhomes/header.html:29
+#: templates/web/fiksgatami/footer.html:8 templates/web/reading/footer.html:9
msgid "Local alerts"
msgstr "Lokale varsler"
@@ -1108,33 +1220,20 @@ msgstr ""
"\">OpenStreetMap</a> og bidragsytere, <a href=\"http://creativecommons.org/"
"licenses/by-sa/2.0/\">CC-BY-SA</a>"
-#: perllib/FixMyStreet/Map/OSM/StreetView.pm:27
-msgid ""
-"Map contains Ordnance Survey data &copy; Crown copyright and database right "
-"2010."
-msgstr ""
-"Kartet inneholder data fra Ordnance Survey &copy; Crown copyright og "
-"databaserettigheter 2010."
-
-#: perllib/FixMyStreet/Map/FMS.pm:24
-msgid ""
-"Map contains Ordnance Survey data &copy; Crown copyright and database right "
-"2010.<br>&copy; 2011 <a href=\"http://www.bing.com/maps/\">Microsoft</a>. "
-"&copy; AND, Navteq, Ordnance Survey."
-msgstr ""
-"Kartet inneholder data fra Ordnance Survey &copy; Crown copyright og "
-"databaserettigheter 2010. <a href=\"http://www.bing.com/maps/\">Microsoft</"
-"a>. &copy; AND, Navteq, Ordnance Survey."
-
#: templates/web/default/contact/index.html:90
msgid "Message:"
msgstr "Melding:"
-#: perllib/FixMyStreet/App/Controller/Open311.pm:431
+#: perllib/FixMyStreet/App/Controller/Open311.pm:434
msgid "Missing jurisdiction_id"
msgstr "Mangler jurisdiction_id"
-#: templates/web/default/report/display.html:38
+#: templates/web/default/admin/stats.html:11
+#, fuzzy
+msgid "Month"
+msgstr "Antall"
+
+#: templates/web/default/report/display.html:31
msgid "More problems nearby"
msgstr "Flere problemer i nærheten"
@@ -1142,18 +1241,21 @@ msgstr "Flere problemer i nærheten"
#: templates/web/default/admin/list_flagged.html:34
#: templates/web/default/admin/list_updates.html:7
#: templates/web/default/admin/search_reports.html:14
+#: templates/web/default/admin/search_users.html:12
#: templates/web/default/reports/index.html:10
#: templates/web/emptyhomes/reports/index.html:10
#: templates/web/fiksgatami/reports/index.html:9
msgid "Name"
msgstr "Navn"
-#: templates/web/default/admin/report_edit.html:27
+#: templates/web/default/admin/report_edit.html:30
#: templates/web/default/admin/update_edit.html:23
+#: templates/web/default/admin/user_edit.html:10
msgid "Name:"
msgstr "Navn:"
#: templates/web/default/footer.html:4 templates/web/fiksgatami/footer.html:3
+#: templates/web/reading/footer.html:4
msgid "Navigation"
msgstr "Navigasjon"
@@ -1165,7 +1267,7 @@ msgstr ""
"Nærmeste navngitte vei til nĂ¥len plassert pĂ¥ kartet (automatisk generert ved "
"hjelp av OpenStreetMap): %s%s"
-#: perllib/FixMyStreet/Cobrand/Default.pm:570
+#: perllib/FixMyStreet/Cobrand/Default.pm:564
msgid ""
"Nearest postcode to the pin placed on the map (automatically generated): %s "
"(%sm away)"
@@ -1173,7 +1275,8 @@ msgstr ""
"Nærmeste postnummer til nĂ¥len plassert pĂ¥ kartet (automatisk generert): %s (%"
"sm unna)"
-#: perllib/FixMyStreet/Cobrand/Default.pm:558
+#: perllib/FixMyStreet/Cobrand/Default.pm:553
+#: perllib/FixMyStreet/Cobrand/Default.pm:588
msgid ""
"Nearest road to the pin placed on the map (automatically generated by Bing "
"Maps): %s"
@@ -1185,7 +1288,7 @@ msgstr ""
msgid "Nearly Done! Now check your email..."
msgstr "Nesten ferdig! NĂ¥ mĂ¥ du sjekke e-posten din..."
-#: perllib/FixMyStreet/App/Controller/Admin.pm:300
+#: perllib/FixMyStreet/App/Controller/Admin.pm:309
msgid "New category contact added"
msgstr "Ny kategorikontakt lagt til"
@@ -1226,8 +1329,10 @@ msgid "New problems within {{NAME}}'s boundary on FixMyStreet"
msgstr "Nye rapporter innenfor grensen til {{NAME}} pĂ¥ FiksGataMi"
#: db/alert_types_eha.pl:23
-msgid "New reports for {{COUNCIL}} within {{WARD}} ward on reportemptyhomes.com"
-msgstr "Nye rapporter for {{COUNCIL}} innenfor {{WARD}} bydel pĂ¥ reportemptyhomes.com"
+msgid ""
+"New reports for {{COUNCIL}} within {{WARD}} ward on reportemptyhomes.com"
+msgstr ""
+"Nye rapporter for {{COUNCIL}} innenfor {{WARD}} bydel pĂ¥ reportemptyhomes.com"
#: db/alert_types_eha.pl:5
msgid "New reports on reportemptyhomes.com"
@@ -1254,13 +1359,15 @@ msgstr "Ny tilstand"
msgid "New!"
msgstr "Ny!"
-#: templates/web/default/admin/council_contacts.html:32
-#: templates/web/default/admin/council_contacts.html:33
+#: templates/web/default/admin/council_contacts.html:39
+#: templates/web/default/admin/council_contacts.html:40
#: templates/web/default/admin/council_edit.html:4
-#: templates/web/default/admin/list_updates.html:28
+#: templates/web/default/admin/list_updates.html:30
+#: templates/web/default/admin/list_updates.html:31
+#: templates/web/default/admin/list_updates.html:32
#: templates/web/default/admin/problem_row.html:19
#: templates/web/default/admin/report_edit.html:19
-#: templates/web/default/admin/report_edit.html:37
+#: templates/web/default/admin/report_edit.html:40
#: templates/web/default/admin/update_edit.html:16
#: templates/web/default/questionnaire/creator_fixed.html:16
#: templates/web/default/questionnaire/index.html:109
@@ -1268,7 +1375,13 @@ msgstr "Ny!"
msgid "No"
msgstr "Nei"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:189
+#: templates/web/default/admin/stats.html:85
+#: templates/web/default/admin/user_edit.html:13
+#, fuzzy
+msgid "No council"
+msgstr "administrasjon"
+
+#: perllib/FixMyStreet/DB/Result/Problem.pm:297
msgid "No council selected"
msgstr "Ingen administrasjon er valgt"
@@ -1309,19 +1422,22 @@ msgstr "Ikke rapportert tidligere"
msgid "Not reported to council"
msgstr "Ikke rapportert til administrasjonen"
-#: templates/web/default/admin/council_contacts.html:24
+#: templates/web/default/admin/council_contacts.html:31
#: templates/web/default/admin/council_edit.html:46
msgid "Note"
msgstr "Merk"
-#: templates/web/default/admin/stats.html:28
+#: templates/web/default/admin/stats.html:51
msgid ""
"Note that when including unconfirmed reports we use the date the report was "
"created which may not be in the same month the report was confirmed so the "
"numbers may jump about a little"
-msgstr "Merk at nĂ¥r vi tar med ubekreftede rapporter sĂ¥ brukes datoen rapporten var opprettet, hvilket ikke trenger være den samme mĂ¥neden som rapporten var bekreftet, sĂ¥ tallene kan hoppe litt opp og ned."
+msgstr ""
+"Merk at nĂ¥r vi tar med ubekreftede rapporter sĂ¥ brukes datoen rapporten var "
+"opprettet, hvilket ikke trenger være den samme mĂ¥neden som rapporten var "
+"bekreftet, sĂ¥ tallene kan hoppe litt opp og ned."
-#: templates/web/default/admin/council_contacts.html:73
+#: templates/web/default/admin/council_contacts.html:80
#: templates/web/default/admin/council_edit.html:31
msgid "Note:"
msgstr "Merk:"
@@ -1330,16 +1446,17 @@ msgstr "Merk:"
msgid "Note: <strong>%s</strong>"
msgstr "Note: <strong>%d</strong>"
-#: templates/web/default/report/new/fill_in_details_form.html:127
+#: templates/web/default/report/new/fill_in_details_form.html:131
msgid "Now to submit your report&hellip; do you have a FixMyStreet password?"
msgstr "PĂ¥ tide Ă¥ sende din rapport&hellip; har du et FiksGataMi-passord?"
-#: templates/web/default/report/display.html:133
+#: templates/web/default/report/display.html:139
msgid "Now to submit your update&hellip; do you have a FixMyStreet password?"
-msgstr "PĂ¥ tide Ă¥ registrere din oppdatering&hellip; har du et FiksGataMi-passord?"
+msgstr ""
+"PĂ¥ tide Ă¥ registrere din oppdatering&hellip; har du et FiksGataMi-passord?"
-#: templates/web/default/report/display.html:33
-#: templates/web/default/report/updates.html:19
+#: templates/web/default/report/display.html:26
+#: templates/web/default/report/updates.html:23
msgid "Offensive? Unsuitable? Tell us"
msgstr "Støtende? Upassende? Gi oss beskjed"
@@ -1380,6 +1497,7 @@ msgstr "Eldre problemer"
#: templates/web/default/admin/report_edit.html:22
#: templates/web/default/admin/update_edit.html:19
+#: templates/web/default/report/display.html:85
msgid "Open"
msgstr "Ă…pen"
@@ -1411,14 +1529,14 @@ msgstr ""
"Eller du kan abonnere pĂ¥ varsel basert pĂ¥ bydel eller administrasjon du "
"hører inn under:"
-#: bin/send-reports:171 bin/send-reports:180
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:523
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:532
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:903
-#: perllib/FixMyStreet/DB/Result/Problem.pm:318
-#: perllib/FixMyStreet/DB/Result/Problem.pm:328
-#: perllib/FixMyStreet/DB/Result/Problem.pm:338
-#: perllib/FixMyStreet/DB/Result/Problem.pm:350
+#: bin/send-reports:175 bin/send-reports:184
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:553
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:566
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:969
+#: perllib/FixMyStreet/DB/Result/Problem.pm:475
+#: perllib/FixMyStreet/DB/Result/Problem.pm:485
+#: perllib/FixMyStreet/DB/Result/Problem.pm:495
+#: perllib/FixMyStreet/DB/Result/Problem.pm:507
msgid "Other"
msgstr "Annet"
@@ -1426,7 +1544,14 @@ msgstr "Annet"
msgid ""
"Our code is open source and <a href=\"http://github.com/mysociety/fixmystreet"
"\">available on GitHub</a>."
-msgstr "VĂ¥r kildekode er fri programvare og <a href=\"http://github.com/mysociety/fixmystreet\">tilgjengelig pĂ¥ GitHub</a>."
+msgstr ""
+"VĂ¥r kildekode er fri programvare og <a href=\"http://github.com/mysociety/"
+"fixmystreet\">tilgjengelig pĂ¥ GitHub</a>."
+
+#: templates/web/default/admin/list_updates.html:11
+#, fuzzy
+msgid "Owner"
+msgstr "Annet"
#: templates/web/default/errors/page_error_404_not_found.html:1
#: templates/web/default/errors/page_error_404_not_found.html:3
@@ -1434,21 +1559,22 @@ msgid "Page Not Found"
msgstr "Fant ikke siden"
#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/report_edit.html:25
msgid "Partial"
msgstr "Delvis"
-#: templates/web/default/auth/change_password.html:27
+#: templates/web/default/auth/change_password.html:25
msgid "Password:"
msgstr "Passord:"
-#: bin/send-reports:68 templates/web/default/admin/report_edit.html:29
-#: templates/web/default/report/new/fill_in_details_form.html:206
+#: bin/send-reports:69 templates/web/default/admin/report_edit.html:32
+#: templates/web/default/report/new/fill_in_details_form.html:215
msgid "Phone:"
msgstr "Telefon:"
#: templates/web/default/questionnaire/index.html:97
-#: templates/web/default/report/display.html:109
-#: templates/web/default/report/new/fill_in_details_form.html:98
+#: templates/web/default/report/display.html:115
+#: templates/web/default/report/new/fill_in_details_form.html:102
msgid "Photo:"
msgstr "Bilde:"
@@ -1456,16 +1582,19 @@ msgstr "Bilde:"
msgid "Photos of recent nearby reports"
msgstr "Bilder av nye problemer i nærheten"
-#: templates/web/default/index.html:63
-msgid "Photos of recent reports"
-msgstr "Bilder av nylig meldte problemer"
+#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/report_edit.html:23
+#: templates/web/default/report/display.html:85
+#: templates/web/default/report/display.html:86
+msgid "Planned"
+msgstr ""
#: templates/web/default/report/new/notes.html:6
msgid "Please be polite, concise and to the point."
msgstr "Vær høflig, poengtert og kortfattet."
-#: templates/web/default/auth/change_password.html:14
-#: templates/web/default/auth/change_password.html:19
+#: templates/web/default/auth/change_password.html:12
+#: templates/web/default/auth/change_password.html:17
msgid "Please check the passwords and try again"
msgstr "Vennligst sjekk passordene og prøv igjen"
@@ -1478,14 +1607,14 @@ msgstr "Vennligst sjekk e-posten du oppgav"
msgid "Please check your email address is correct"
msgstr "Vennligst sjekk at du har skrevet en gyldig e-postadresse"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:686
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:705
#: perllib/FixMyStreet/App/Controller/Report/New.pm:722
-#: perllib/FixMyStreet/DB/Result/Problem.pm:208
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:741
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:778
+#: perllib/FixMyStreet/DB/Result/Problem.pm:316
msgid "Please choose a category"
msgstr "Velg en kategori"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:214
+#: perllib/FixMyStreet/DB/Result/Problem.pm:322
msgid "Please choose a property type"
msgstr "Velg en type egenskap"
@@ -1510,21 +1639,21 @@ msgstr ""
"Ikke vær ufin &mdash; Ă¥ kjefte pĂ¥ din administrasjon skader verdien av "
"tjenesten for alle brukerne."
-#: perllib/FixMyStreet/DB/Result/Comment.pm:111
+#: perllib/FixMyStreet/DB/Result/Comment.pm:113
msgid "Please enter a message"
msgstr "Vennligst legg til en melding"
-#: templates/web/default/auth/change_password.html:14
-#: templates/web/default/auth/change_password.html:17
+#: templates/web/default/auth/change_password.html:12
+#: templates/web/default/auth/change_password.html:15
msgid "Please enter a password"
msgstr "Skriv inn et passord"
#: perllib/FixMyStreet/App/Controller/Contact.pm:97
-#: perllib/FixMyStreet/DB/Result/Problem.pm:183
+#: perllib/FixMyStreet/DB/Result/Problem.pm:291
msgid "Please enter a subject"
msgstr "Vennligst legg inn et emne"
-#: perllib/FixMyStreet/DB/Result/User.pm:94
+#: perllib/FixMyStreet/DB/Result/User.pm:96
msgid "Please enter a valid email"
msgstr "Legg til en gyldig e-post"
@@ -1533,18 +1662,18 @@ msgstr "Legg til en gyldig e-post"
msgid "Please enter a valid email address"
msgstr "Legg inn din e-post"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:186
+#: perllib/FixMyStreet/DB/Result/Problem.pm:294
msgid "Please enter some details"
msgstr "Legg inn opplysninger om problemet"
#: perllib/FixMyStreet/App/Controller/Contact.pm:96
-#: perllib/FixMyStreet/DB/Result/User.pm:91
+#: perllib/FixMyStreet/DB/Result/User.pm:93
#: templates/web/default/auth/general.html:13
#: templates/web/default/auth/general.html:8
msgid "Please enter your email"
msgstr "Legg inn din e-post"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:201
+#: perllib/FixMyStreet/DB/Result/Problem.pm:309
msgid ""
"Please enter your full name, councils need this information - if you do not "
"wish your name to be shown on the site, untick the box"
@@ -1553,9 +1682,9 @@ msgstr ""
"dette - hvis du ikke ønsker at ditt navn skal vises, fjern haken under"
#: perllib/FixMyStreet/App/Controller/Contact.pm:95
-#: perllib/FixMyStreet/DB/Result/Comment.pm:108
-#: perllib/FixMyStreet/DB/Result/Problem.pm:194
-#: perllib/FixMyStreet/DB/Result/User.pm:87
+#: perllib/FixMyStreet/DB/Result/Comment.pm:110
+#: perllib/FixMyStreet/DB/Result/Problem.pm:302
+#: perllib/FixMyStreet/DB/Result/User.pm:89
msgid "Please enter your name"
msgstr "Legg inn ditt navn"
@@ -1573,7 +1702,7 @@ msgid ""
msgstr ""
#: templates/web/default/report/new/fill_in_details_text.html:1
-#: templates/web/default/report/new/fill_in_details_text.html:8
+#: templates/web/default/report/new/fill_in_details_text.html:11
msgid "Please fill in details of the problem below."
msgstr "Vennligst fyll ut detaljer om problemet under"
@@ -1602,11 +1731,11 @@ msgstr ""
"Vennligst fyll inn skjemaet under med detaljene om problemet,\n"
"og beskriv plasseringen sĂ¥ nøyaktig som mulig i boksen for detaljer."
-#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:235
+#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:244
msgid "Please indicate whether you'd like to receive another questionnaire"
msgstr "Vennligst indiker om du ønsker Ă¥ motta et nytt spørreskjema"
-#: templates/web/default/report/display.html:69
+#: templates/web/default/report/display.html:62
msgid ""
"Please note that updates are not sent to the council. If you leave your name "
"it will be public. Your information will only be used in accordance with our "
@@ -1629,18 +1758,23 @@ msgstr ""
msgid "Please note:"
msgstr "Vennligst merk deg:"
-#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:238
+#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:247
msgid "Please provide some explanation as to why you're reopening this report"
-msgstr "Vennligst bidra med en forklaring for hvorfor du gjenĂ¥pner denne problemrapporten"
+msgstr ""
+"Vennligst bidra med en forklaring for hvorfor du gjenĂ¥pner denne "
+"problemrapporten"
-#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:245
+#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:254
msgid "Please provide some text as well as a photo"
msgstr "Vennligst bidra med litt tekst i tilegg til et bilde"
#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:115
-#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:231
-msgid "Please say whether you've ever reported a problem to your council before"
-msgstr "Vennligst opplys om du har rapportert et problem til din administrasjon tidligere"
+#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:240
+msgid ""
+"Please say whether you've ever reported a problem to your council before"
+msgstr ""
+"Vennligst opplys om du har rapportert et problem til din administrasjon "
+"tidligere"
#: perllib/FixMyStreet/App/Controller/Alert.pm:82
msgid "Please select the feed you want"
@@ -1650,7 +1784,7 @@ msgstr "Velg den kilden du ønsker"
msgid "Please select the type of alert you want"
msgstr "Vennligst velg hvilken type varsel du ønsker"
-#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:227
+#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:236
msgid "Please state whether or not the problem has been fixed"
msgstr "Vennligs oppgi om dette problemet er blitt fikset eller ikke"
@@ -1658,7 +1792,7 @@ msgstr "Vennligs oppgi om dette problemet er blitt fikset eller ikke"
msgid "Please take a look at the updates that have been left."
msgstr "Vennligst se over oppdateringene som har blitt lagt inn."
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:774
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:830
msgid "Please upload a JPEG image only"
msgstr "Vennligst last opp kun JPEG-bilder"
@@ -1667,9 +1801,9 @@ msgid "Please write a message"
msgstr "Skriv inn en melding"
#: templates/web/default/contact/index.html:93
-#: templates/web/default/report/display.html:119
-#: templates/web/default/report/display.html:154
-#: templates/web/default/report/display.html:175
+#: templates/web/default/report/display.html:125
+#: templates/web/default/report/display.html:162
+#: templates/web/default/report/display.html:184
msgid "Post"
msgstr "Send inn"
@@ -1677,7 +1811,12 @@ msgstr "Send inn"
msgid "Posted anonymously at %s"
msgstr "Publisert anonymt %s"
-#: templates/web/default/report/updates.html:10
+#: templates/web/default/report/updates.html:11
+#, fuzzy
+msgid "Posted by %s (<strong>%s</strong>) at %s"
+msgstr "Note: <strong>%d</strong>"
+
+#: templates/web/default/report/updates.html:13
msgid "Posted by %s at %s"
msgstr "Sendt inn av %s %s"
@@ -1701,7 +1840,7 @@ msgstr "Problem %s sendt til administrasjon %s"
msgid "Problem breakdown by state"
msgstr "Tilstandsfordeling av problemer"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:703
+#: perllib/FixMyStreet/App/Controller/Admin.pm:774
msgid "Problem marked as open."
msgstr "Problem markert som Ă¥pent."
@@ -1725,13 +1864,13 @@ msgstr "Problemer nylig rapportert fikset pĂ¥ FiksGataMi"
msgid "Problems within %.1fkm of this location"
msgstr "Problemer innenfor %.1fkm av denne posisjonen"
-#: perllib/FixMyStreet/Cobrand/Default.pm:782
+#: perllib/FixMyStreet/Cobrand/Default.pm:800
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:162
#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:177
msgid "Problems within %s"
msgstr "Problemer innenfor %s"
-#: perllib/FixMyStreet/Cobrand/Default.pm:791
+#: perllib/FixMyStreet/Cobrand/Default.pm:809
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:170
msgid "Problems within %s ward"
msgstr "Problemer innenfor %s bydel"
@@ -1747,18 +1886,19 @@ msgstr "Problemer innenfor grensene av:"
#: db/alert_types_eha.pl:8
msgid "Properties recently reported as put back to use on reportemptyhomes.com"
-msgstr "Eiendommer nylig rapportert som gĂ¥tt tilbake i bruk pĂ¥ reportemptyhomes.com"
+msgstr ""
+"Eiendommer nylig rapportert som gĂ¥tt tilbake i bruk pĂ¥ reportemptyhomes.com"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:498
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:528
msgid "Property type:"
msgstr "Type egenskap:"
-#: templates/web/default/report/display.html:64
+#: templates/web/default/report/display.html:57
msgid "Provide an update"
msgstr "Bidra med en oppdatering"
-#: templates/web/default/report/display.html:172
-#: templates/web/default/report/new/fill_in_details_form.html:166
+#: templates/web/default/report/display.html:181
+#: templates/web/default/report/new/fill_in_details_form.html:173
msgid ""
"Providing a password is optional, but doing so will allow you to more easily "
"report problems, leave updates and manage your reports."
@@ -1783,30 +1923,30 @@ msgstr "Spørreskjema %d fylt inn for problem %d, %s til %s"
msgid "Questionnaire %d sent for problem %d"
msgstr "Spørreskjema %d sendt for problem %d"
-#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:181
+#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:190
msgid "Questionnaire filled in by problem reporter"
msgstr "Spørreskjema fylt inn av feilrapportøren"
#: templates/web/default/alert/list.html:54
#: templates/web/default/around/display_location.html:1
#: templates/web/default/around/display_location.html:3
-#: templates/web/default/report/display.html:55
+#: templates/web/default/report/display.html:48
#: templates/web/default/reports/council.html:61
msgid "RSS feed"
msgstr "RSS-strøm"
-#: perllib/FixMyStreet/Cobrand/Default.pm:820
-#: perllib/FixMyStreet/Cobrand/Default.pm:834
+#: perllib/FixMyStreet/Cobrand/Default.pm:838
+#: perllib/FixMyStreet/Cobrand/Default.pm:852
msgid "RSS feed for %s"
msgstr "RSS-strøm for %s"
-#: perllib/FixMyStreet/Cobrand/Default.pm:827
-#: perllib/FixMyStreet/Cobrand/Default.pm:841
+#: perllib/FixMyStreet/Cobrand/Default.pm:845
+#: perllib/FixMyStreet/Cobrand/Default.pm:859
msgid "RSS feed for %s ward, %s"
msgstr "RSS-strøm for %s bydel, %s"
-#: perllib/FixMyStreet/Cobrand/Default.pm:850
-#: perllib/FixMyStreet/Cobrand/Default.pm:864
+#: perllib/FixMyStreet/Cobrand/Default.pm:868
+#: perllib/FixMyStreet/Cobrand/Default.pm:882
#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:193
#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:201
#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:211
@@ -1814,8 +1954,8 @@ msgstr "RSS-strøm for %s bydel, %s"
msgid "RSS feed of %s"
msgstr "RSS-strøm fra %s"
-#: perllib/FixMyStreet/Cobrand/Default.pm:856
-#: perllib/FixMyStreet/Cobrand/Default.pm:870
+#: perllib/FixMyStreet/Cobrand/Default.pm:874
+#: perllib/FixMyStreet/Cobrand/Default.pm:888
msgid "RSS feed of %s, within %s ward"
msgstr "RSS-strøm av %s, innenfor %s bydel"
@@ -1827,13 +1967,13 @@ msgstr "RSS-strøm med problemer i nærheten"
msgid "RSS feed of problems in this %s"
msgstr "RSS-strøm for problemer i denne %s"
-#: perllib/FixMyStreet/Cobrand/Default.pm:783
+#: perllib/FixMyStreet/Cobrand/Default.pm:801
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:163
#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:176
msgid "RSS feed of problems within %s"
msgstr "RSS-strøm for problemer innenfor %s"
-#: perllib/FixMyStreet/Cobrand/Default.pm:790
+#: perllib/FixMyStreet/Cobrand/Default.pm:808
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:169
msgid "RSS feed of problems within %s ward"
msgstr "RSS-strøm for problemer innenfor %s bydel"
@@ -1843,12 +1983,12 @@ msgstr "RSS-strøm for problemer innenfor %s bydel"
msgid "RSS feed of recent local problems"
msgstr "RSS-strøm med nylige lokale problemer"
-#: templates/web/default/report/display.html:55
+#: templates/web/default/report/display.html:48
msgid "RSS feed of updates to this problem"
msgstr "RSS-strøm med oppdateringer for dette problemet"
#: templates/web/default/alert/updates.html:9
-#: templates/web/default/report/display.html:45
+#: templates/web/default/report/display.html:38
msgid "Receive email when updates are left on this problem."
msgstr "Motta e-post nĂ¥r det er oppdateringer pĂ¥ dette problemet"
@@ -1865,7 +2005,7 @@ msgstr "Nylige lokale problemer, FiksGataMi."
msgid "Recently fixed"
msgstr "Nylig løste problemer"
-#: templates/web/default/index.html:72
+#: templates/web/default/index.html:62
msgid "Recently reported problems"
msgstr "Nylig meldte problemer"
@@ -1885,8 +2025,8 @@ msgstr ""
msgid "Remove flag"
msgstr "Fjern flagg"
-#: templates/web/default/admin/report_edit.html:44
-#: templates/web/default/admin/update_edit.html:33
+#: templates/web/default/admin/report_edit.html:47
+#: templates/web/default/admin/update_edit.html:48
msgid "Remove photo (can't be undone!)"
msgstr "Fjern bilde (kan ikke gjøres om!)"
@@ -1894,12 +2034,12 @@ msgstr "Fjern bilde (kan ikke gjøres om!)"
msgid "Report Empty Homes"
msgstr "Rapporter tomme hjem"
-#: templates/web/default/footer.html:6 templates/web/emptyhomes/header.html:28
-#: templates/web/fiksgatami/footer.html:5
+#: templates/web/default/footer.html:6 templates/web/emptyhomes/header.html:27
+#: templates/web/fiksgatami/footer.html:5 templates/web/reading/footer.html:6
msgid "Report a problem"
msgstr "Rapporter et problem"
-#: perllib/FixMyStreet/App/Controller/Rss.pm:268
+#: perllib/FixMyStreet/App/Controller/Rss.pm:274
msgid "Report on %s"
msgstr "Rapport pĂ¥ %s"
@@ -1907,15 +2047,15 @@ msgstr "Rapport pĂ¥ %s"
msgid "Report, view, or discuss local problems"
msgstr "Rapporter, finn eller diskuter lokale problemer"
-#: templates/web/default/my/my.html:69
+#: templates/web/default/my/my.html:74
msgid "Reported %s"
msgstr "Rapportert %s"
-#: templates/web/default/my/my.html:67
+#: templates/web/default/my/my.html:72
msgid "Reported %s, to %s"
msgstr "Rapportert %s, til %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:333
+#: perllib/FixMyStreet/DB/Result/Problem.pm:490
#: templates/web/default/contact/index.html:45
msgid "Reported anonymously at %s"
msgstr "Rapportert anonymt %s"
@@ -1925,32 +2065,32 @@ msgstr "Rapportert anonymt %s"
msgid "Reported before"
msgstr "Rapportert tidligere"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:325
+#: perllib/FixMyStreet/DB/Result/Problem.pm:482
msgid "Reported by %s anonymously at %s"
msgstr "Publisert av %s anonymt %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:356
+#: perllib/FixMyStreet/DB/Result/Problem.pm:513
#: templates/web/default/contact/index.html:47
msgid "Reported by %s at %s"
msgstr "Publisert av %s %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:347
+#: perllib/FixMyStreet/DB/Result/Problem.pm:504
msgid "Reported by %s by %s at %s"
msgstr "Rapporter av %s av %s %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:321
+#: perllib/FixMyStreet/DB/Result/Problem.pm:478
msgid "Reported by %s in the %s category anonymously at %s"
msgstr "Rapportert av %s i kategorien %s anonymt %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:341
+#: perllib/FixMyStreet/DB/Result/Problem.pm:498
msgid "Reported by %s in the %s category by %s at %s"
msgstr "Rapportert av %s i kategorien %s av %s %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:329
+#: perllib/FixMyStreet/DB/Result/Problem.pm:486
msgid "Reported in the %s category anonymously at %s"
msgstr "Rapportert i kategorien %s anonymt %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:351
+#: perllib/FixMyStreet/DB/Result/Problem.pm:508
msgid "Reported in the %s category by %s at %s"
msgstr "Rapportert i kategorien %s av %s %s"
@@ -1965,7 +2105,7 @@ msgstr "Legger til et problem"
msgid "Reports on and around the map"
msgstr "Problemer i og rundt kartet"
-#: templates/web/default/admin/report_edit.html:32
+#: templates/web/default/admin/report_edit.html:35
msgid "Resend report"
msgstr "Send rapport pĂ¥ nytt"
@@ -1985,7 +2125,7 @@ msgstr "Veioperatør for denne navngitte veien (fra OpenStreetMap): %s"
msgid "Save changes"
msgstr "Lagre endringer"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:843
+#: perllib/FixMyStreet/App/Controller/Admin.pm:982
msgid "Search Abuse"
msgstr "Søk etter misbruk"
@@ -1993,14 +2133,21 @@ msgstr "Søk etter misbruk"
msgid "Search Abuse Table"
msgstr "Søk i misbrukstabell"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:840
+#: perllib/FixMyStreet/App/Controller/Admin.pm:978
#: templates/web/default/admin/list_flagged.html:1
#: templates/web/default/admin/search_reports.html:1
msgid "Search Reports"
msgstr "Søk i rapporter"
+#: perllib/FixMyStreet/App/Controller/Admin.pm:981
+#: templates/web/default/admin/search_users.html:1
+#, fuzzy
+msgid "Search Users"
+msgstr "Søk i rapporter"
+
#: templates/web/default/admin/search_abuse.html:4
#: templates/web/default/admin/search_reports.html:5
+#: templates/web/default/admin/search_users.html:5
msgid "Search:"
msgstr "Søk:"
@@ -2012,15 +2159,15 @@ msgstr ""
"Velg hvilken type varsel du ønsker og klikk pĂ¥ knappen for en RSS-kilde, "
"eller skriv inn din e-postadresse for Ă¥ abonnere pĂ¥ et e-postvarsel."
-#: perllib/FixMyStreet/DB/Result/Problem.pm:398
+#: perllib/FixMyStreet/DB/Result/Problem.pm:555
msgid "Sent to %s %s later"
msgstr "Sendt til %s %s senere"
-#: templates/web/default/admin/report_edit.html:32
+#: templates/web/default/admin/report_edit.html:35
msgid "Sent:"
msgstr "Sendt:"
-#: templates/web/default/admin/report_edit.html:34
+#: templates/web/default/admin/report_edit.html:37
msgid "Service:"
msgstr "Tjeneste:"
@@ -2045,8 +2192,8 @@ msgid ""
" significant contribution to the supply of affordable homes in Wales."
msgstr ""
-#: templates/web/default/report/display.html:205
-#: templates/web/default/report/new/fill_in_details_form.html:201
+#: templates/web/default/report/display.html:216
+#: templates/web/default/report/new/fill_in_details_form.html:210
msgid "Show my name publicly"
msgstr "Vis mitt navn offentlig"
@@ -2068,18 +2215,26 @@ msgid "Sign in or create an account"
msgstr "Logg inn eller opprett en konto"
#: templates/web/default/auth/sign_out.html:1
-#: templates/web/default/header.html:28
-#: templates/web/emptyhomes/header.html:44
-#: templates/web/lichfielddc/header.html:174
+#: templates/web/default/header.html:35
+#: templates/web/emptyhomes/header.html:43
+#: templates/web/fiksgatami/header.html:22
+#: templates/web/lichfielddc/header.html:177
+#: templates/web/reading/header.html:37
msgid "Sign out"
msgstr "Logg ut"
-#: templates/web/default/header.html:27
-#: templates/web/emptyhomes/header.html:43
-#: templates/web/lichfielddc/header.html:174
+#: templates/web/default/header.html:34
+#: templates/web/emptyhomes/header.html:42
+#: templates/web/fiksgatami/header.html:21
+#: templates/web/lichfielddc/header.html:177
+#: templates/web/reading/header.html:36
msgid "Signed in as %s"
msgstr "Logget inn som %s"
+#: templates/web/default/report/new/fill_in_details_text.html:1
+msgid "Some categories may require additional information."
+msgstr ""
+
#: templates/web/default/alert/index.html:31
msgid "Some photos of recent reports"
msgstr "Noen bilder av nylig meldte problemer"
@@ -2093,8 +2248,9 @@ msgstr "Noe tekst Ă¥ oversette"
msgid "Some unconfirmeds"
msgstr "Noen ubekreftede"
-#: perllib/FixMyStreet/Cobrand/Default.pm:516
-msgid "Sorry, that appears to be a Crown dependency postcode, which we don't cover."
+#: perllib/FixMyStreet/Cobrand/Default.pm:517
+msgid ""
+"Sorry, that appears to be a Crown dependency postcode, which we don't cover."
msgstr ""
"Beklager det ser ut til Ă¥ være et \"Crown dependency\"-postnummer, som vi "
"ikke dekker."
@@ -2105,29 +2261,29 @@ msgstr ""
"Beklager, men det oppsto et problem nĂ¥r vi forsøkte Ă¥ bekrefte "
"problemrapporten din"
-#: perllib/FixMyStreet/Geocode.pm:27 perllib/FixMyStreet/Geocode/Bing.pm:51
+#: perllib/FixMyStreet/Geocode.pm:27 perllib/FixMyStreet/Geocode/Bing.pm:52
#: perllib/FixMyStreet/Geocode/Google.pm:68
msgid "Sorry, we could not find that location."
msgstr "Beklager, vi kunne ikke finne det stedet."
-#: perllib/FixMyStreet/Geocode/Bing.pm:44
+#: perllib/FixMyStreet/Geocode/Bing.pm:45
#: perllib/FixMyStreet/Geocode/Google.pm:60
msgid "Sorry, we could not parse that location. Please try again."
msgstr "Beklager, vi kunne ikke tolke den posisjonen. Vennligst prøv pĂ¥ nytt."
-#: templates/web/fiksgatami/footer.html:15
+#: templates/web/fiksgatami/footer.html:16
msgid "Source code"
msgstr "Kildekode"
-#: templates/web/default/admin/stats.html:41
+#: templates/web/default/admin/stats.html:64
msgid "Start Year:"
msgstr "StartĂ¥r:"
-#: templates/web/default/admin/stats.html:43
+#: templates/web/default/admin/stats.html:66
msgid "Start day:"
msgstr "Startdag:"
-#: templates/web/default/admin/stats.html:42
+#: templates/web/default/admin/stats.html:65
msgid "Start month:"
msgstr "StartmĂ¥ned:"
@@ -2139,10 +2295,11 @@ msgstr "Tilstand"
#: templates/web/default/admin/report_edit.html:21
#: templates/web/default/admin/update_edit.html:18
+#: templates/web/default/report/display.html:83
msgid "State:"
msgstr "Tilstand:"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:845
+#: perllib/FixMyStreet/App/Controller/Admin.pm:984
#: templates/web/default/admin/stats.html:1
msgid "Stats"
msgstr "Statistikk"
@@ -2154,14 +2311,15 @@ msgid "Subject:"
msgstr "Emne:"
#: templates/web/default/questionnaire/creator_fixed.html:19
-#: templates/web/default/report/new/fill_in_details_form.html:110
-#: templates/web/default/report/new/fill_in_details_form.html:148
-#: templates/web/default/report/new/fill_in_details_form.html:169
+#: templates/web/default/report/new/fill_in_details_form.html:114
+#: templates/web/default/report/new/fill_in_details_form.html:154
+#: templates/web/default/report/new/fill_in_details_form.html:176
msgid "Submit"
msgstr "Send inn"
-#: templates/web/default/admin/report_edit.html:47
-#: templates/web/default/admin/update_edit.html:36
+#: templates/web/default/admin/report_edit.html:50
+#: templates/web/default/admin/update_edit.html:51
+#: templates/web/default/admin/user_edit.html:20
msgid "Submit changes"
msgstr "Send inn endringer"
@@ -2170,7 +2328,7 @@ msgid "Submit questionnaire"
msgstr "Send inn spørreskjema"
#: templates/web/default/alert/updates.html:17
-#: templates/web/default/report/display.html:50
+#: templates/web/default/report/display.html:43
msgid "Subscribe"
msgstr "Abonner"
@@ -2178,7 +2336,7 @@ msgstr "Abonner"
msgid "Subscribe me to an email alert"
msgstr "Jeg ønsker Ă¥ abonnere pĂ¥ e-postvarsel"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:838
+#: perllib/FixMyStreet/App/Controller/Admin.pm:976
#: templates/web/default/admin/index.html:1
msgid "Summary"
msgstr "Oppsummering"
@@ -2189,12 +2347,12 @@ msgstr "Oppsummering"
msgid "Summary reports"
msgstr "Oppsummeringsrapporter"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:842
+#: perllib/FixMyStreet/App/Controller/Admin.pm:980
#: templates/web/default/admin/questionnaire.html:1
msgid "Survey Results"
msgstr "Resultater fra spørreundersøkelsen"
-#: templates/web/default/admin/list_updates.html:12
+#: templates/web/default/admin/list_updates.html:14
msgid "Text"
msgstr "Tekst"
@@ -2250,7 +2408,9 @@ msgstr ""
msgid ""
"Thank you for using ReportEmptyHomes.com. Your action is already helping to "
"resolve the UK&rsquo;s empty homes crisis."
-msgstr "Takk for at du bruker ReportEmptyHomes.com. Ditt bidrag bidrar allerede for Ă¥ løse UKs tomme hjem-krise."
+msgstr ""
+"Takk for at du bruker ReportEmptyHomes.com. Ditt bidrag bidrar allerede for "
+"Ă¥ løse UKs tomme hjem-krise."
#: templates/web/default/around/around_index.html:44
msgid ""
@@ -2270,11 +2430,12 @@ msgid ""
"Thanks, glad to hear it's been fixed! Could we just ask if you have ever "
"reported a problem to a council before?"
msgstr ""
-"Takk, glad for Ă¥ høre at problemet er fikset! Vi vil gjerne spørre deg om "
-"du har rapportert et problem til en administrasjon tidligere?"
+"Takk, glad for Ă¥ høre at problemet er fikset! Vi vil gjerne spørre deg om du "
+"har rapportert et problem til en administrasjon tidligere?"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:783
-msgid "That image doesn't appear to have uploaded correctly (%s), please try again."
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:839
+msgid ""
+"That image doesn't appear to have uploaded correctly (%s), please try again."
msgstr "Bildet ser ikke ut til Ă¥ blitt lastet opp riktig (%s), prøv pĂ¥ nytt."
#: templates/web/default/alert/index.html:12
@@ -2290,12 +2451,12 @@ msgstr ""
msgid "That location does not appear to be in Britain; please try again."
msgstr "Det stedet virker ikke Ă¥ være i Storbritannia. Vennligst prøv igjen."
-#: perllib/FixMyStreet/Cobrand/Default.pm:509
+#: perllib/FixMyStreet/Cobrand/Default.pm:510
#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:78
msgid "That postcode was not recognised, sorry."
msgstr "Det postnummeret ble ikke gjenkjent, beklager."
-#: perllib/FixMyStreet/App/Controller/Admin.pm:517
+#: perllib/FixMyStreet/App/Controller/Admin.pm:558
msgid "That problem will now be resent."
msgstr "Det problemet vil nĂ¥ bli sendt pĂ¥ nytt."
@@ -2356,7 +2517,8 @@ msgstr ""
msgid ""
"The details of your problem are available on the right hand side of this "
"page."
-msgstr "Detaljene om ditt problem er tilgjengelig pĂ¥ høyre kant av denne siden."
+msgstr ""
+"Detaljene om ditt problem er tilgjengelig pĂ¥ høyre kant av denne siden."
#: perllib/FixMyStreet/App/Controller/Reports.pm:46
#: perllib/FixMyStreet/App/Controller/Reports.pm:73
@@ -2397,7 +2559,8 @@ msgid "The latest problems for {{COUNCIL}} reported by users"
msgstr "De siste problemer for {{COUNCIL}} rapportert av brukere"
#: db/alert_types.pl:39
-msgid "The latest problems for {{COUNCIL}} within {{WARD}} ward reported by users"
+msgid ""
+"The latest problems for {{COUNCIL}} within {{WARD}} ward reported by users"
msgstr ""
"De siste problemene for {{COUNCIL}} innenfor {{WARD}} bydel rapportert av "
"brukere"
@@ -2423,7 +2586,8 @@ msgid "The latest reports for {{COUNCIL}} reported by users"
msgstr "De siste rapporter for {{COUNCIL}} rapportert av brukere"
#: db/alert_types_eha.pl:24
-msgid "The latest reports for {{COUNCIL}} within {{WARD}} ward reported by users"
+msgid ""
+"The latest reports for {{COUNCIL}} within {{WARD}} ward reported by users"
msgstr ""
"De siste rapporter for {{COUNCIL}} innenfor {{WARD}} bydel rapporter av "
"brukere"
@@ -2432,8 +2596,8 @@ msgstr ""
msgid "The latest reports within {{NAME}}'s boundary reported by users"
msgstr "De siste rapporter innenfor grensen til {{NAME}} rapportert av brukere"
-#: templates/web/default/auth/change_password.html:14
-#: templates/web/default/auth/change_password.html:18
+#: templates/web/default/auth/change_password.html:12
+#: templates/web/default/auth/change_password.html:16
msgid "The passwords do not match"
msgstr "Passordene er ikke like"
@@ -2442,10 +2606,10 @@ msgstr "Passordene er ikke like"
msgid "The requested URL '%s' was not found on this server"
msgstr "Den forespurte URL '%s' ble ikke funnet pĂ¥ denne tjeneren"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1039
-#: perllib/FixMyStreet/App/Controller/Admin.pm:497
-#: perllib/FixMyStreet/App/Controller/Admin.pm:630
-#: perllib/FixMyStreet/App/Controller/Admin.pm:894
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1034
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1179
+#: perllib/FixMyStreet/App/Controller/Admin.pm:538
+#: perllib/FixMyStreet/App/Controller/Admin.pm:701
msgid "The requested URL was not found on this server."
msgstr "Den forespurte URL-en ble ikke funnet pĂ¥ denne tjeneren"
@@ -2464,7 +2628,7 @@ msgstr ""
"Tittelen og detaljene for problemet vil bli offentlig, pluss navnet ditt\n"
"hvis du gir oss tillatelse til det."
-#: bin/send-reports:77
+#: bin/send-reports:78
msgid ""
"The user could not locate the problem on a map, but to see the area around "
"the location they entered"
@@ -2473,13 +2637,14 @@ msgstr ""
"stedet de skrev inn"
#: perllib/FixMyStreet/App/Controller/Reports.pm:72
-msgid "There was a problem showing the All Reports page. Please try again later."
+msgid ""
+"There was a problem showing the All Reports page. Please try again later."
msgstr ""
"Det var problemer med Ă¥ vise 'Alle rapporter'-siden. Vennligst prøv igjen "
"senere."
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:605
-#: perllib/FixMyStreet/App/Controller/Report/Update.pm:117
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:641
+#: perllib/FixMyStreet/App/Controller/Report/Update.pm:125
#: templates/web/default/auth/general.html:23
msgid ""
"There was a problem with your email/password combination. Passwords and user "
@@ -2493,7 +2658,15 @@ msgstr ""
"skjemaet for Ă¥ skaffe deg en."
#: perllib/FixMyStreet/App/Controller/Alert.pm:354
-msgid "There was a problem with your email/password combination. Please try again."
+msgid ""
+"There was a problem with your email/password combination. Please try again."
+msgstr ""
+"Det var problemer med din epost/passord-kombinasjon. Vær sĂ¥ snill Ă¥ forsøk "
+"igjen."
+
+#: perllib/FixMyStreet/App/Controller/Report/Update.pm:214
+#, fuzzy
+msgid "There was a problem with your update. Please try again."
msgstr ""
"Det var problemer med din epost/passord-kombinasjon. Vær sĂ¥ snill Ă¥ forsøk "
"igjen."
@@ -2502,7 +2675,7 @@ msgstr ""
msgid "There were problems with your report. Please see below."
msgstr "Det var problemer med din rapport. Vennligst se under."
-#: perllib/FixMyStreet/App/Controller/Report/Update.pm:211
+#: perllib/FixMyStreet/App/Controller/Report/Update.pm:241
msgid "There were problems with your update. Please see below."
msgstr "Det var problemer med din oppdatering. Vennligst se under."
@@ -2510,9 +2683,11 @@ msgstr "Det var problemer med din oppdatering. Vennligst se under."
msgid ""
"This API implementation is work in progress and not yet stabilized. It will "
"change without warnings in the future."
-msgstr "Denne API-implementasjonen er under arbeid og ennĂ¥ ikke stabil. Den vil endre seg uten advarsel i fremtiden."
+msgstr ""
+"Denne API-implementasjonen er under arbeid og ennĂ¥ ikke stabil. Den vil "
+"endre seg uten advarsel i fremtiden."
-#: bin/send-reports:181
+#: bin/send-reports:185
msgid ""
"This email has been sent to both councils covering the location of the "
"problem, as the user did not categorise it; please ignore it if you're not "
@@ -2525,7 +2700,7 @@ msgstr ""
"eller gi oss beskjed om hvilken kategori av problemer dette er sĂ¥ vi kan "
"legge det til i vĂ¥rt system."
-#: bin/send-reports:184
+#: bin/send-reports:188
msgid ""
"This email has been sent to several councils covering the location of the "
"problem, as the category selected is provided for all of them; please ignore "
@@ -2536,6 +2711,10 @@ msgstr ""
"snill Ă¥ ignorere e-posten hvis dere ikke er korrekt administrasjon for Ă¥ "
"hĂ¥ndtere denne saken."
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:761
+msgid "This information is required"
+msgstr ""
+
#: templates/web/default/debug_header.html:3
msgid ""
"This is a developer site; things might break at any time, and the database "
@@ -2562,33 +2741,50 @@ msgstr ""
"Dette er en opplisting av alle problemene i denne tjenesten; velg en bestemt "
"administrasjon for Ă¥ se problemer som er sendt dit."
-#: perllib/FixMyStreet/Cobrand/Default.pm:903
+#: perllib/FixMyStreet/Cobrand/Default.pm:926
+#, fuzzy
+msgid "This problem has been closed"
+msgstr "Dette problemet er løst"
+
+#: perllib/FixMyStreet/Cobrand/Default.pm:922
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:117
-#: templates/web/default/report/display.html:96
+#: templates/web/default/report/display.html:101
msgid "This problem has been fixed"
msgstr "Dette problemet er løst"
-#: templates/web/default/report/display.html:91
+#: templates/web/default/report/display.html:96
msgid "This problem has not been fixed"
msgstr "Dette problemet har ikke blitt løst"
-#: perllib/FixMyStreet/Cobrand/Default.pm:899
+#: perllib/FixMyStreet/Cobrand/Default.pm:931
+#, fuzzy
+msgid "This problem is in progress"
+msgstr "Dette problemet er løst"
+
+#: perllib/FixMyStreet/Cobrand/Default.pm:918
msgid "This problem is old and of unknown status."
msgstr "Dette problemet er gammel og med ukjent status."
#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:79
+#, fuzzy
+msgid "This report is currently marked as closed."
+msgstr "Denne rapporten er for tiden markert som Ă¥pen."
+
+#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:77
msgid "This report is currently marked as fixed."
msgstr "Denne rapporten er for tiden markert som fikset."
-#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:80
+#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:81
msgid "This report is currently marked as open."
msgstr "Denne rapporten er for tiden markert som Ă¥pen."
-#: bin/send-reports:70
-msgid "This web page also contains a photo of the problem, provided by the user."
-msgstr "Denne nettsiden inneholder ogsĂ¥ et bilde av problemet, sendt inn av brukeren."
+#: bin/send-reports:71
+msgid ""
+"This web page also contains a photo of the problem, provided by the user."
+msgstr ""
+"Denne nettsiden inneholder ogsĂ¥ et bilde av problemet, sendt inn av brukeren."
-#: perllib/FixMyStreet/App/Controller/Admin.pm:841
+#: perllib/FixMyStreet/App/Controller/Admin.pm:979
#: templates/web/default/admin/timeline.html:1
msgid "Timeline"
msgstr "Tidslinje"
@@ -2602,21 +2798,24 @@ msgstr "Tittel"
msgid ""
"To <strong>report a problem</strong>, simply click on the map at the correct "
"location."
-msgstr "For Ă¥ <strong>rapportere et problem</strong>, klikk pĂ¥ kartet pĂ¥ riktig sted."
+msgstr ""
+"For Ă¥ <strong>rapportere et problem</strong>, klikk pĂ¥ kartet pĂ¥ riktig sted."
#: templates/web/default/alert/index.html:21
msgid ""
"To find out what local alerts we have for you, please enter your GB\n"
"postcode or street name and area:"
-msgstr "Du finner lokale problemer ved Ă¥ søke pĂ¥ ditt postnummer, veinavn eller sted:"
+msgstr ""
+"Du finner lokale problemer ved Ă¥ søke pĂ¥ ditt postnummer, veinavn eller sted:"
-#: bin/send-reports:76
+#: bin/send-reports:77
msgid "To view a map of the precise location of this issue"
msgstr "For Ă¥ se en kart med en mer presis plassering for dette problemet."
#: templates/web/default/admin/index.html:36
#: templates/web/default/admin/questionnaire.html:24
-#: templates/web/default/admin/stats.html:21
+#: templates/web/default/admin/stats.html:24
+#: templates/web/default/admin/stats.html:43
msgid "Total"
msgstr "Totalt"
@@ -2625,6 +2824,7 @@ msgid "Unable to look up areas in MaPit. Please try again later."
msgstr "Klarte ikke slĂ¥ opp omrĂ¥der i MaPit. Vennligst forsøk igjen senere."
#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/report_edit.html:25
#: templates/web/default/admin/update_edit.html:19
msgid "Unconfirmed"
msgstr "Ubekreftet"
@@ -2657,16 +2857,32 @@ msgstr "Tilstandsfordeling for oppdateringer"
msgid "Update by {{name}}"
msgstr "Oppdatert av {{name}}"
-#: templates/web/default/admin/council_contacts.html:46
+#: templates/web/default/admin/update_edit.html:33
+#, fuzzy
+msgid "Update changed problem state to %s"
+msgstr "Oppdatering %s opprettet for problem %d, av %s"
+
+#: templates/web/default/admin/update_edit.html:35
+#, fuzzy
+msgid "Update marked problem as fixed"
+msgstr "En oppdatering markerte dette problemet som fikset."
+
+#: templates/web/default/admin/update_edit.html:37
+#, fuzzy
+msgid "Update reopened problem"
+msgstr "Oppdatering %s opprettet for problem %d, av %s"
+
+#: templates/web/default/admin/council_contacts.html:53
msgid "Update statuses"
msgstr "Oppdater tilstanden"
-#: templates/web/default/report/display.html:84
+#: templates/web/default/report/display.html:77
msgid "Update:"
msgstr "Oppdatering:"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:606
-#: perllib/FixMyStreet/App/Controller/Admin.pm:693
+#: perllib/FixMyStreet/App/Controller/Admin.pm:647
+#: perllib/FixMyStreet/App/Controller/Admin.pm:764
+#: perllib/FixMyStreet/App/Controller/Admin.pm:844
msgid "Updated!"
msgstr "Oppdatert!"
@@ -2684,11 +2900,11 @@ msgstr "Oppdateringer av {{title}}"
msgid "Updates to this problem, FixMyStreet"
msgstr "Oppdateringer til dette problemet, FiksGataMi"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:997
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1137
msgid "User flag removed"
msgstr "Brukerflagg fjernet"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:969
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1109
msgid "User flagged"
msgstr "Bruker flagget"
@@ -2696,8 +2912,8 @@ msgstr "Bruker flagget"
msgid "Users"
msgstr "Brukere"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:295
-#: perllib/FixMyStreet/App/Controller/Admin.pm:325
+#: perllib/FixMyStreet/App/Controller/Admin.pm:304
+#: perllib/FixMyStreet/App/Controller/Admin.pm:334
msgid "Values updated"
msgstr "Verdier oppdatert"
@@ -2723,15 +2939,8 @@ msgstr "Ser pĂ¥ et problem"
msgid "Wards of this council"
msgstr "Bydeler innenfor denne administrasjonen"
-#: perllib/FixMyStreet/Geocode/Bing.pm:46
-msgid ""
-"We do not cover Northern Ireland, I'm afraid, as our licence doesn't include "
-"any maps for the region."
-msgstr ""
-"Vi dekker ikke nordlige Irland, er jeg redd, da vĂ¥r lisens ikke inkluderer "
-"noen kart for den regionen."
-
-#: perllib/FixMyStreet/Cobrand/Default.pm:520
+#: perllib/FixMyStreet/Cobrand/Default.pm:521
+#: perllib/FixMyStreet/Geocode/Bing.pm:47
#: perllib/FixMyStreet/Geocode/Google.pm:63
msgid "We do not currently cover Northern Ireland, I'm afraid."
msgstr "Vi dekker desverre ikke Nord-Irland."
@@ -2747,7 +2956,8 @@ msgstr ""
#: templates/web/default/auth/token.html:19
msgid "We have sent you an email containing a link to confirm your account."
-msgstr "Vi har sendt deg en epost som inneholder link for Ă¥ bekrefte din konto."
+msgstr ""
+"Vi har sendt deg en epost som inneholder link for Ă¥ bekrefte din konto."
#: templates/web/emptyhomes/tokens/confirm_problem.html:18
#: templates/web/emptyhomes/tokens/confirm_problem.html:20
@@ -2758,7 +2968,7 @@ msgstr ""
"Det kan hende vi periodisk tar kontakt med deg for Ă¥ spørre om noe har "
"endret seg med eiedommen du rapporterte."
-#: bin/send-reports:191
+#: bin/send-reports:195
msgid ""
"We realise this problem might be the responsibility of %s; however, we don't "
"currently have any contact details for them. If you know of an appropriate "
@@ -2788,7 +2998,8 @@ msgid ""
msgstr ""
"Vi vil gjerne høre hva du tenker om dette nettstedet. Det er bare Ă¥ fylle "
"inn skjemaet. Vær sĂ¥ snill Ă¥ ikke kontakte oss om individuelle tomme hjem. "
-"For det bør du i stedet bruke boksen tilgjengelig fra <a href=\"/\">forsiden</a>."
+"For det bør du i stedet bruke boksen tilgjengelig fra <a href=\"/"
+"\">forsiden</a>."
#: templates/web/default/contact/blurb.html:8
msgid ""
@@ -2798,7 +3009,7 @@ msgstr ""
"Vi ønsker Ă¥ fĂ¥ din tilbakemelding om hva du mener om denne tjenesten. Bare "
"fyll ut skjemaet, eller send en e-post <a href='mailto:%s'>%s</a>:"
-#: templates/web/default/admin/council_contacts.html:25
+#: templates/web/default/admin/council_contacts.html:32
#: templates/web/default/admin/council_edit.html:41
msgid "When edited"
msgstr "NĂ¥r redigert"
@@ -2808,7 +3019,7 @@ msgstr "NĂ¥r redigert"
msgid "When sent"
msgstr "NĂ¥r sendt"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:493
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:523
msgid "Whole block of empty flats"
msgstr "Hel blokk med tomme leiligheter"
@@ -2817,7 +3028,11 @@ msgid ""
"With request searches, it is also possible to search for agency_responsible "
"to limit the requests to those sent to a single administration. The search "
"term is the administration ID provided by <a href=\"%s\">MaPit</a>."
-msgstr "NĂ¥r du søker etter forespørsler, sĂ¥ er det ogsĂ¥ mulig Ă¥ søke etter agency_responsible for Ă¥ begrense det til forespørsler som er sendt til en enkelt adminstrasjon. Søktetermen er administrasjons-IDen som oppgitt av <a href=\"%s\">MaPit</a>."
+msgstr ""
+"NĂ¥r du søker etter forespørsler, sĂ¥ er det ogsĂ¥ mulig Ă¥ søke etter "
+"agency_responsible for Ă¥ begrense det til forespørsler som er sendt til en "
+"enkelt adminstrasjon. Søktetermen er administrasjons-IDen som oppgitt av <a "
+"href=\"%s\">MaPit</a>."
#: templates/web/default/questionnaire/index.html:104
msgid ""
@@ -2835,13 +3050,21 @@ msgstr ""
"NĂ¥r du skriver meldingen din med kun store bokstaver blir den vanskelig Ă¥ "
"lese. Det samme gjelder manglende tegnsetting."
-#: templates/web/default/admin/council_contacts.html:32
-#: templates/web/default/admin/council_contacts.html:33
+#: templates/web/default/admin/stats.html:10
+#, fuzzy
+msgid "Year"
+msgstr "SluttĂ¥r:"
+
+#: templates/web/default/admin/council_contacts.html:39
+#: templates/web/default/admin/council_contacts.html:40
#: templates/web/default/admin/council_edit.html:5
-#: templates/web/default/admin/list_updates.html:28
+#: templates/web/default/admin/list_updates.html:30
+#: templates/web/default/admin/list_updates.html:31
+#: templates/web/default/admin/list_updates.html:32
#: templates/web/default/admin/problem_row.html:19
#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:37
+#: templates/web/default/admin/report_edit.html:40
+#: templates/web/default/admin/search_users.html:23
#: templates/web/default/admin/update_edit.html:15
#: templates/web/default/questionnaire/creator_fixed.html:14
#: templates/web/default/questionnaire/index.html:107
@@ -2869,14 +3092,16 @@ msgstr ""
msgid ""
"You can <a href=\"%s\">view all reports for the council</a> or <a href=\"/"
"reports\">show all councils</a>."
-msgstr "Du kan <a href=\"%s\">se alle rapporter for administrasjonen</a> eller <a href=\"/reports\">se alle administrasjonene</a>."
+msgstr ""
+"Du kan <a href=\"%s\">se alle rapporter for administrasjonen</a> eller <a "
+"href=\"/reports\">se alle administrasjonene</a>."
#: templates/web/default/reports/council.html:73
msgid "You can <a href=\"/reports\">show all councils</a>."
msgstr "Du kan <a href=\"/reports/\">se alle administrasjoner</a>."
#: templates/web/default/report/new/councils_text_none.html:14
-#: templates/web/default/report/new/councils_text_none.html:3
+#: templates/web/default/report/new/councils_text_none.html:16
#: templates/web/default/report/new/councils_text_some.html:20
#: templates/web/default/report/new/councils_text_some.html:22
msgid ""
@@ -2896,7 +3121,7 @@ msgstr ""
"problem</a>.\n"
#: templates/web/default/questionnaire/index.html:94
-#: templates/web/default/report/new/fill_in_details_form.html:89
+#: templates/web/default/report/new/fill_in_details_form.html:93
msgid ""
"You have already attached a photo to this report, attaching another one will "
"replace it."
@@ -2904,7 +3129,7 @@ msgstr ""
"Du har allerede lagt ved et bilde til dette problemet. Ă… legge ved et annet "
"vil bytte ut dette."
-#: templates/web/default/report/display.html:106
+#: templates/web/default/report/display.html:112
msgid ""
"You have already attached a photo to this update, attaching another one will "
"replace it."
@@ -2939,7 +3164,9 @@ msgstr "Du har nĂ¥ lykkes med Ă¥ bekrefte ditt problem"
msgid ""
"You have successfully confirmed your update and you can now <a href=\"%s"
"\">view it on the site</a>."
-msgstr "Du har nĂ¥ bekreftet din oppdatering <a href=\"%s\">og kan se den pĂ¥ dette nettstedet</a>."
+msgstr ""
+"Du har nĂ¥ bekreftet din oppdatering <a href=\"%s\">og kan se den pĂ¥ dette "
+"nettstedet</a>."
#: templates/web/default/tokens/confirm_alert.html:11
msgid "You have successfully created your alert."
@@ -2949,12 +3176,14 @@ msgstr "Du har lykkes med Ă¥ opprette ditt varsel."
msgid "You have successfully deleted your alert."
msgstr "Sletting av ditt varsel var vellykket."
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:611
-#: perllib/FixMyStreet/App/Controller/Report/Update.pm:123
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:647
+#: perllib/FixMyStreet/App/Controller/Report/Update.pm:131
msgid ""
"You have successfully signed in; please check and confirm your details are "
"accurate:"
-msgstr "Du har lykkes med Ă¥ logge inn. Vennligst sjekk og bekreft at dine detaljer er korrekte:"
+msgstr ""
+"Du har lykkes med Ă¥ logge inn. Vennligst sjekk og bekreft at dine detaljer "
+"er korrekte:"
#: templates/web/default/email_sent.html:26
msgid ""
@@ -2964,7 +3193,7 @@ msgstr ""
"Du mĂ¥ nĂ¥ Ă¥pne lenken i e-posten vi akkurat sendte deg &mdash; dersom du ikke "
"gjør det, %s"
-#: templates/web/default/admin/report_edit.html:32
+#: templates/web/default/admin/report_edit.html:35
msgid "You really want to resend?"
msgstr "Ă˜nsker du virkelig Ă¥ sende pĂ¥ nytt?"
@@ -2978,15 +3207,15 @@ msgid "Your email address:"
msgstr "Din e-postadresse:"
#: templates/web/default/alert/list.html:122
-#: templates/web/default/report/display.html:128
-#: templates/web/default/report/new/fill_in_details_form.html:120
+#: templates/web/default/report/display.html:134
+#: templates/web/default/report/new/fill_in_details_form.html:124
msgid "Your email:"
msgstr "Din e-post"
#: templates/web/default/auth/general.html:59
#: templates/web/default/contact/index.html:68
-#: templates/web/default/report/display.html:199
-#: templates/web/default/report/new/fill_in_details_form.html:194
+#: templates/web/default/report/display.html:210
+#: templates/web/default/report/new/fill_in_details_form.html:203
msgid "Your name:"
msgstr "Ditt navn:"
@@ -2994,11 +3223,12 @@ msgstr "Ditt navn:"
msgid "Your password has been changed"
msgstr "Ditt passord har blitt endret"
-#: templates/web/default/footer.html:7
+#: templates/web/default/footer.html:7 templates/web/fiksgatami/footer.html:6
+#: templates/web/reading/footer.html:7
msgid "Your reports"
msgstr "Dine oppdateringer"
-#: templates/web/default/my/my.html:40
+#: templates/web/default/my/my.html:45
msgid "Your updates"
msgstr "Dine oppdateringer"
@@ -3023,15 +3253,20 @@ msgstr "brukte ikke kart"
msgid "from %d different users"
msgstr "fra %d forskjellige brukere"
-#: perllib/Utils.pm:247
+#: perllib/Utils.pm:248
msgid "less than a minute"
msgstr "mindre enn et minutt"
-#: templates/web/default/report/updates.html:13
+#: templates/web/default/report/updates.html:18
+#, fuzzy
+msgid "marked as %s"
+msgstr "markert som fikset"
+
+#: templates/web/default/report/updates.html:16
msgid "marked as fixed"
msgstr "markert som fikset"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:107
+#: perllib/FixMyStreet/App/Controller/Admin.pm:109
#: templates/web/default/admin/questionnaire.html:15
#: templates/web/default/admin/questionnaire.html:16
msgid "n/a"
@@ -3049,7 +3284,7 @@ msgstr "søkte etter"
msgid "other areas:"
msgstr "andre omrĂ¥der:"
-#: templates/web/default/report/updates.html:14
+#: templates/web/default/report/updates.html:17
msgid "reopened"
msgstr "Ă¥pnet pĂ¥ nytt"
@@ -3058,15 +3293,15 @@ msgstr "Ă¥pnet pĂ¥ nytt"
msgid "the local council"
msgstr "den lokale administrasjonen"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:363
+#: perllib/FixMyStreet/DB/Result/Problem.pm:520
msgid "the map was not used so pin location may be inaccurate"
msgstr "kartet ble ikke brukt, sĂ¥ nĂ¥leposisjon kan være unøyaktig"
-#: bin/send-reports:172
+#: bin/send-reports:176
msgid "this type of local problem"
msgstr "denne type lokalt problem"
-#: perllib/Utils.pm:221
+#: perllib/Utils.pm:222
msgid "today"
msgstr "idag"
@@ -3074,6 +3309,15 @@ msgstr "idag"
msgid "used map"
msgstr "brukte kart"
+#: templates/web/default/admin/update_edit.html:26
+msgid "user is from same council as problem - %d"
+msgstr ""
+
+#: templates/web/default/admin/update_edit.html:29
+#, fuzzy
+msgid "user is problem owner"
+msgstr "Flere problemer i nærheten"
+
#: templates/web/default/reports/council.html:0
#: templates/web/default/reports/council.html:3
msgid "ward"
@@ -3109,7 +3353,7 @@ msgstr "vil ditt problem ikke bli publisert"
msgid "your update will not be posted"
msgstr "din oppdatering vil ikke bli publisert"
-#: templates/web/default/front/stats.html:19
+#: templates/web/default/front/stats.html:17
#, perl-format
msgid "<big>%s</big> report recently"
msgid_plural "<big>%s</big> reports recently"
@@ -3119,25 +3363,28 @@ msgstr[1] "<big>%s</big> rapportert<br>nylig"
#: templates/web/default/report/new/councils_text_none.html:5
#, perl-format
msgid "We do not yet have details for the council that covers this location."
-msgid_plural "We do not yet have details for the councils that cover this location."
-msgstr[0] "Vi har ennĂ¥ ikke detaljer for administrasjonen som dekker dette stedet."
-msgstr[1] "Vi har ennĂ¥ ikke detaljer for administrasjonene som dekker dette stedet."
+msgid_plural ""
+"We do not yet have details for the councils that cover this location."
+msgstr[0] ""
+"Vi har ennĂ¥ ikke detaljer for administrasjonen som dekker dette stedet."
+msgstr[1] ""
+"Vi har ennĂ¥ ikke detaljer for administrasjonene som dekker dette stedet."
-#: templates/web/default/front/stats.html:14
+#: templates/web/default/front/stats.html:12
#, perl-format
msgid "<big>%s</big> report in past week"
msgid_plural "<big>%s</big> reports in past week"
msgstr[0] "<big>%s</big> rapport siste uke"
msgstr[1] "<big>%s</big> rapporter siste uke"
-#: templates/web/default/front/stats.html:25
+#: templates/web/default/front/stats.html:23
#, perl-format
msgid "<big>%s</big> fixed in past month"
msgid_plural "<big>%s</big> fixed in past month"
msgstr[0] "<big>%s</big> fikset siste mĂ¥ned"
msgstr[1] "<big>%s</big> fikset siste mĂ¥ned"
-#: templates/web/default/front/stats.html:31
+#: templates/web/default/front/stats.html:29
#, perl-format
msgid "<big>%s</big> update on reports"
msgid_plural "<big>%s</big> updates on reports"
@@ -3159,3 +3406,31 @@ msgstr[1] ""
"Vi har ennĂ¥ <strong>ikke</strong> detaljene for de andre administrasjonene "
"som dekker dette stedet."
+#~ msgid "FixMyStreet updates"
+#~ msgstr "Fiksgatami-oppdateringer"
+
+#~ msgid ""
+#~ "Map contains Ordnance Survey data &copy; Crown copyright and database "
+#~ "right 2010."
+#~ msgstr ""
+#~ "Kartet inneholder data fra Ordnance Survey &copy; Crown copyright og "
+#~ "databaserettigheter 2010."
+
+#~ msgid ""
+#~ "Map contains Ordnance Survey data &copy; Crown copyright and database "
+#~ "right 2010.<br>&copy; 2011 <a href=\"http://www.bing.com/maps/"
+#~ "\">Microsoft</a>. &copy; AND, Navteq, Ordnance Survey."
+#~ msgstr ""
+#~ "Kartet inneholder data fra Ordnance Survey &copy; Crown copyright og "
+#~ "databaserettigheter 2010. <a href=\"http://www.bing.com/maps/"
+#~ "\">Microsoft</a>. &copy; AND, Navteq, Ordnance Survey."
+
+#~ msgid "Photos of recent reports"
+#~ msgstr "Bilder av nylig meldte problemer"
+
+#~ msgid ""
+#~ "We do not cover Northern Ireland, I'm afraid, as our licence doesn't "
+#~ "include any maps for the region."
+#~ msgstr ""
+#~ "Vi dekker ikke nordlige Irland, er jeg redd, da vĂ¥r lisens ikke "
+#~ "inkluderer noen kart for den regionen."
diff --git a/notes/cobranding.txt b/notes/cobranding.txt
new file mode 100644
index 000000000..1db3b8188
--- /dev/null
+++ b/notes/cobranding.txt
@@ -0,0 +1,44 @@
+Notes on adding a co brand
+--------------------------
+
+Basic steps
+
+Assumes cobrand is for ExampleCom
+
+NB: this is moderately specific to producing cobrands for UK councils
+
+1: copy an exiting perllib/FixMyStreet/Cobrand/ file to perllib/FixMyStreet/Cobrand/ExampleCom.pm
+ * Change package name at top of file
+ * Change following functions accordingly:
+ site_title
+ site_restriction
+ problems_clause
+ enter_postcode_text
+ council_check
+ base_url
+ all_councils_report should return 0
+ disambiguate_location - see below for details on this
+
+2: create a web/cobrands/examplecom folder and put custom css/images/js in here
+
+3: create templates/web/examplecom/ and put a header.html and footer.html with relevant html
+
+4: edit conf/general and add examplecom to allowed cobrands
+
+5: restart server
+
+6: on dev server you can append ?_override_cobrand_moniker=examplecom
+to display the cobrand. ?_override_clear_all=1 will remove this
+
+disambiguate_location
+
+The results of this are used to provide a bounding box for reverse
+geolocation.
+
+There's a script in bin - generate_council_location that takes the
+mapit area code for the council as a argument and generates the
+contents of the disambiguate_location hash.
+
+You can also add a town key to the hashref which will be appended
+on to the end of geolocation queries in order to narrow down results
+for popular road names, e.g High St
diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm
index 2aaa488d6..a34737844 100644
--- a/perllib/FixMyStreet/App/Controller/Admin.pm
+++ b/perllib/FixMyStreet/App/Controller/Admin.pm
@@ -217,7 +217,10 @@ sub council_list : Path('council_list') : Args(0) {
$c->stash->{edit_activity} = $edit_activity;
- my @area_types = $c->cobrand->area_types;
+ # Not London, as treated separately
+ my @area_types = $c->cobrand->moniker eq 'emptyhomes'
+ ? $c->cobrand->area_types
+ : grep { $_ ne 'LBO' } $c->cobrand->area_types;
my $areas = mySociety::MaPit::call('areas', \@area_types);
my @councils_ids = sort { strcoll($areas->{$a}->{name}, $areas->{$b}->{name}) } keys %$areas;
@@ -331,6 +334,32 @@ sub update_contacts : Private {
);
$c->stash->{updated} = _('Values updated');
+ } elsif ( $posted eq 'open311' ) {
+ $c->forward('check_token');
+
+ my %params = map { $_ => $c->req->param($_) } qw/open311_id endpoint jurisdiction api_key area_id/;
+
+ if ( $params{open311_id} ) {
+ my $conf = $c->model('DB::Open311Conf')->find( { id => $params{open311_id} } );
+
+ $conf->endpoint( $params{endpoint} );
+ $conf->jurisdiction( $params{jurisdiction} );
+ $conf->api_key( $params{api_key} );
+
+ $conf->update();
+
+ $c->stash->{updated} = _('Configuration updated');
+ } else {
+ my $conf = $c->model('DB::Open311Conf')->find_or_new( { area_id => $params{area_id} } );
+
+ $conf->endpoint( $params{endpoint} );
+ $conf->jurisdiction( $params{jurisdiction} );
+ $conf->api_key( $params{api_key} );
+
+ $conf->insert();
+
+ $c->stash->{updated} = _('Configuration updated - contacts will be generated automatically later');
+ }
}
}
@@ -348,6 +377,12 @@ sub display_contacts : Private {
$c->stash->{contacts} = $contacts;
+ my $open311 = $c->model('DB::Open311Conf')->search(
+ { area_id => $area_id }
+ );
+
+ $c->stash->{open311} = $open311;
+
if ( $c->req->param('text') && $c->req->param('text') == 1 ) {
$c->stash->{template} = 'admin/council_contacts.txt';
$c->res->content_type('text/plain; charset=utf-8');
diff --git a/perllib/FixMyStreet/App/Controller/Around.pm b/perllib/FixMyStreet/App/Controller/Around.pm
index 72d6ac62b..148a22368 100644
--- a/perllib/FixMyStreet/App/Controller/Around.pm
+++ b/perllib/FixMyStreet/App/Controller/Around.pm
@@ -182,7 +182,7 @@ sub display_location : Private {
# create a list of all the pins
my @pins;
- unless ($c->req->param('no_pins')) {
+ unless ($c->req->param('no_pins') || $c->cobrand->moniker eq 'emptyhomes') {
@pins = map {
# Here we might have a DB::Problem or a DB::Nearby, we always want the problem.
my $p = (ref $_ eq 'FixMyStreet::App::Model::DB::Nearby') ? $_->problem : $_;
diff --git a/perllib/FixMyStreet/App/Controller/Report/New.pm b/perllib/FixMyStreet/App/Controller/Report/New.pm
index f16bd5393..e982d6a4c 100644
--- a/perllib/FixMyStreet/App/Controller/Report/New.pm
+++ b/perllib/FixMyStreet/App/Controller/Report/New.pm
@@ -15,6 +15,7 @@ use Path::Class;
use Utils;
use mySociety::EmailUtil;
use mySociety::TempFiles;
+use JSON;
=head1 NAME
@@ -113,11 +114,48 @@ sub report_form_ajax : Path('ajax') : Args(0) {
# render templates to get the html
my $category = $c->view('Web')->render( $c, 'report/new/category.html');
my $councils_text = $c->view('Web')->render( $c, 'report/new/councils_text.html');
+ my $has_open311 = keys %{ $c->stash->{category_extras} };
my $body = JSON->new->utf8(1)->encode(
{
- councils_text => $councils_text,
- category => $category,
+ councils_text => $councils_text,
+ category => $category,
+ has_open311 => $has_open311,
+ }
+ );
+
+ $c->res->content_type('application/json; charset=utf-8');
+ $c->res->body($body);
+}
+
+sub category_extras_ajax : Path('category_extras') : Args(0) {
+ my ( $self, $c ) = @_;
+
+ $c->forward('initialize_report');
+ if ( ! $c->forward('determine_location') ) {
+ my $body = JSON->new->utf8(1)->encode(
+ {
+ error => _("Sorry, we could not find that location."),
+ }
+ );
+ $c->res->content_type('application/json; charset=utf-8');
+ $c->res->body($body);
+ return 1;
+ }
+ $c->forward('setup_categories_and_councils');
+
+ my $category_extra = '';
+ if ( $c->stash->{category_extras}->{ $c->req->param('category') } ) {
+ $c->stash->{report_meta} = {};
+ $c->stash->{report} = { category => $c->req->param('category') };
+ $c->stash->{category_extras} = { $c->req->param('category' ) => $c->stash->{category_extras}->{ $c->req->param('category') } };
+
+ $category_extra= $c->view('Web')->render( $c, 'report/new/category_extras.html');
+ }
+
+ my $body = JSON->new->utf8(1)->encode(
+ {
+ category_extra => $category_extra,
}
);
@@ -476,6 +514,7 @@ sub setup_categories_and_councils : Private {
my %area_ids_to_list = (); # Areas with categories assigned
my @category_options = (); # categories to show
my $category_label = undef; # what to call them
+ my %category_extras = (); # extra fields to fill in for open311
# FIXME - implement in cobrand
if ( $c->cobrand->moniker eq 'emptyhomes' ) {
@@ -522,8 +561,12 @@ sub setup_categories_and_councils : Private {
next if $contact->category eq _('Other');
- push @category_options, $contact->category
- unless $seen{$contact->category};
+ unless ( $seen{$contact->category} ) {
+ push @category_options, $contact->category;
+
+ $category_extras{ $contact->category } = $contact->extra
+ if $contact->extra;
+ }
$seen{$contact->category} = 1;
}
@@ -538,6 +581,8 @@ sub setup_categories_and_councils : Private {
$c->stash->{area_ids_to_list} = [ keys %area_ids_to_list ];
$c->stash->{category_label} = $category_label;
$c->stash->{category_options} = \@category_options;
+ $c->stash->{category_extras} = \%category_extras;
+ $c->stash->{category_extras_json} = encode_json \%category_extras;
my @missing_details_councils =
grep { !$area_ids_to_list{$_} } #
@@ -716,6 +761,26 @@ sub process_report : Private {
if $council_string && @{ $c->stash->{missing_details_councils} };
$report->council($council_string);
+ my @extra = ();
+ my $metas = $contacts[0]->extra;
+
+ foreach my $field ( @$metas ) {
+ if ( lc( $field->{required} ) eq 'true' ) {
+ unless ( $c->request->param( $field->{code} ) ) {
+ $c->stash->{field_errors}->{ $field->{code} } = _('This information is required');
+ }
+ }
+ push @extra, {
+ name => $field->{code},
+ description => $field->{description},
+ value => $c->request->param( $field->{code} ) || '',
+ };
+ }
+
+ if ( @extra ) {
+ $c->stash->{report_meta} = \@extra;
+ $report->extra( \@extra );
+ }
} elsif ( @{ $c->stash->{area_ids_to_list} } ) {
# There was an area with categories, but we've not been given one. Bail.
@@ -881,6 +946,16 @@ sub save_user_and_report : Private {
# Save or update the user if appropriate
if ( !$report->user->in_storage ) {
+ # User does not exist.
+ # Store changes in token for when token is validated.
+ $c->stash->{token_data} = {
+ name => $report->user->name,
+ phone => $report->user->phone,
+ password => $report->user->password,
+ };
+ $report->user->name( undef );
+ $report->user->phone( undef );
+ $report->user->password( '', 1 );
$report->user->insert();
}
elsif ( $c->user && $report->user->id == $c->user->id ) {
diff --git a/perllib/FixMyStreet/App/Controller/Report/Update.pm b/perllib/FixMyStreet/App/Controller/Report/Update.pm
index add9d1371..c67ca4d1f 100644
--- a/perllib/FixMyStreet/App/Controller/Report/Update.pm
+++ b/perllib/FixMyStreet/App/Controller/Report/Update.pm
@@ -255,6 +255,14 @@ sub save_update : Private {
my $update = $c->stash->{update};
if ( !$update->user->in_storage ) {
+ # User does not exist.
+ # Store changes in token for when token is validated.
+ $c->stash->{token_data} = {
+ name => $update->user->name,
+ password => $update->user->password,
+ };
+ $update->user->name( undef );
+ $update->user->password( '', 1 );
$update->user->insert;
}
elsif ( $c->user && $c->user->id == $update->user->id ) {
diff --git a/perllib/FixMyStreet/App/Controller/Reports.pm b/perllib/FixMyStreet/App/Controller/Reports.pm
index 93af3393c..0587a627a 100644
--- a/perllib/FixMyStreet/App/Controller/Reports.pm
+++ b/perllib/FixMyStreet/App/Controller/Reports.pm
@@ -110,6 +110,8 @@ sub ward : Path : Args(2) {
$c->stash->{council_url} = '/reports/' . $council_short;
+ $c->stash->{stats} = $c->cobrand->get_report_stats();
+
my $pins = $c->stash->{pins};
$c->stash->{page} = 'reports'; # So the map knows to make clickable pins
@@ -338,7 +340,7 @@ sub load_and_group_problems : Private {
$where,
{
columns => [
- 'id', 'council', 'state', 'areas', 'latitude', 'longitude', 'title',
+ 'id', 'council', 'state', 'areas', 'latitude', 'longitude', 'title', 'cobrand',
{ duration => { extract => "epoch from current_timestamp-lastupdate" } },
{ age => { extract => "epoch from current_timestamp-confirmed" } },
],
@@ -351,9 +353,10 @@ sub load_and_group_problems : Private {
my ( %fixed, %open, @pins );
my $re_councils = join('|', keys %{$c->stash->{areas_info}});
- my @cols = ( 'id', 'council', 'state', 'areas', 'latitude', 'longitude', 'title', 'duration', 'age' );
+ my @cols = ( 'id', 'council', 'state', 'areas', 'latitude', 'longitude', 'title', 'cobrand', 'duration', 'age' );
while ( my @problem = $problems->next ) {
my %problem = zip @cols, @problem;
+ $c->log->debug( $problem{'cobrand'} . ', cobrand is ' . $c->cobrand->moniker );
if ( !$problem{council} ) {
# Problem was not sent to any council, add to possible councils
$problem{councils} = 0;
@@ -372,10 +375,10 @@ sub load_and_group_problems : Private {
}
}
- $c->stash(
- fixed => \%fixed,
- open => \%open,
- pins => \@pins,
+ $c->stash(
+ fixed => \%fixed,
+ open => \%open,
+ pins => \@pins,
);
return 1;
diff --git a/perllib/FixMyStreet/App/Controller/Rss.pm b/perllib/FixMyStreet/App/Controller/Rss.pm
index 23345df65..7fddbed97 100755
--- a/perllib/FixMyStreet/App/Controller/Rss.pm
+++ b/perllib/FixMyStreet/App/Controller/Rss.pm
@@ -151,6 +151,7 @@ sub local_problems_ll : Private {
sub output : Private {
my ( $self, $c ) = @_;
+ $c->detach( '/page_error_404_not_found', [ 'Feed not found' ] ) if $c->cobrand->moniker eq 'emptyhomes';
$c->forward( 'lookup_type' );
$c->forward( 'query_main' );
$c->forward( 'generate' );
diff --git a/perllib/FixMyStreet/App/Controller/Tokens.pm b/perllib/FixMyStreet/App/Controller/Tokens.pm
index 10f994d9f..b974f94e6 100644
--- a/perllib/FixMyStreet/App/Controller/Tokens.pm
+++ b/perllib/FixMyStreet/App/Controller/Tokens.pm
@@ -69,6 +69,7 @@ sub confirm_problem : Path('/P') {
# log the problem creation user in to the site
if ( ref($data) && ( $data->{name} || $data->{password} ) ) {
$problem->user->name( $data->{name} ) if $data->{name};
+ $problem->user->phone( $data->{phone} ) if $data->{phone};
$problem->user->password( $data->{password}, 1 ) if $data->{password};
$problem->user->update;
}
diff --git a/perllib/FixMyStreet/Cobrand/Default.pm b/perllib/FixMyStreet/Cobrand/Default.pm
index 1e87468ac..2900497c4 100644
--- a/perllib/FixMyStreet/Cobrand/Default.pm
+++ b/perllib/FixMyStreet/Cobrand/Default.pm
@@ -960,5 +960,13 @@ to be resized then return 0;
sub default_photo_resize { return 0; }
+=head2 get_report_stats
+
+Get stats to display on the council reports page
+
+=cut
+
+sub get_report_stats { return 0; }
+
1;
diff --git a/perllib/FixMyStreet/Cobrand/Reading.pm b/perllib/FixMyStreet/Cobrand/Reading.pm
new file mode 100644
index 000000000..8e98931fd
--- /dev/null
+++ b/perllib/FixMyStreet/Cobrand/Reading.pm
@@ -0,0 +1,108 @@
+package FixMyStreet::Cobrand::Reading;
+use base 'FixMyStreet::Cobrand::Default';
+
+use strict;
+use warnings;
+
+use Carp;
+use URI::Escape;
+use mySociety::VotingArea;
+
+sub site_restriction {
+ return ( "and council='2596'", 'reading', { council => '2596' } );
+}
+
+sub problems_clause {
+ return { council => '2596' };
+}
+
+sub problems {
+ my $self = shift;
+ return $self->{c}->model('DB::Problem')->search( $self->problems_clause );
+}
+
+sub base_url {
+ my $base_url = mySociety::Config::get('BASE_URL');
+ if ($base_url !~ /reading/) {
+ $base_url =~ s{http://(?!www\.)}{http://reading.}g;
+ $base_url =~ s{http://www\.}{http://reading.}g;
+ }
+ return $base_url;
+}
+
+sub site_title {
+ my ( $self ) = @_;
+ return 'Reading City Council FixMyStreet';
+}
+
+sub enter_postcode_text {
+ my ( $self ) = @_;
+ return 'Enter a Reading postcode, or street name and area';
+}
+
+sub council_check {
+ my ( $self, $params, $context ) = @_;
+
+ my $councils = $params->{all_councils};
+ my $council_match = defined $councils->{2596};
+ if ($council_match) {
+ return 1;
+ }
+ my $url = 'http://www.fixmystreet.com/';
+ $url .= 'alert' if $context eq 'alert';
+ $url .= '?pc=' . URI::Escape::uri_escape_utf8($self->{c}->req->param('pc'))
+ if $self->{c}->req->param('pc');
+ my $error_msg = "That location is not covered by Reading.
+Please visit <a href=\"$url\">the main FixMyStreet site</a>.";
+ return ( 0, $error_msg );
+}
+
+# All reports page only has the one council.
+sub all_councils_report {
+ return 0;
+}
+
+sub disambiguate_location {
+ return {
+ town => 'Reading',
+ centre => '51.452983169803964,-0.98382678731985973',
+ span => '0.0833543573028663,0.124500468843446',
+ bounds => [ '51.409779668156361,-1.0529948144525243', '51.493134025459227,-0.92849434560907829' ],
+ };
+}
+
+sub recent_photos {
+ my ($self, $num, $lat, $lon, $dist) = @_;
+ $num = 2 if $num == 3;
+ return $self->problems->recent_photos( $num, $lat, $lon, $dist );
+}
+
+sub get_report_stats {
+ my $self = shift;
+
+ my ( $cobrand, $main_site ) = ( 0, 0 );
+
+ $self->{c}->log->debug( 'X' x 60 );
+ my $stats = $self->{c}->model('DB::Problem')->search(
+ { confirmed => { '>=', '2011-11-01' } },
+ {
+ select => [ { count => 'id', -as => 'cobrand_count' }, 'cobrand' ],
+ group_by => [qw/cobrand/]
+ }
+ );
+
+ while ( my $stat = $stats->next ) {
+ if ( $stat->cobrand eq $self->moniker ) {
+ $cobrand += $stat->get_column( 'cobrand_count' );
+ } else {
+ $main_site += $stat->get_column( 'cobrand_count' );
+ }
+ }
+
+ return {
+ cobrand => $cobrand,
+ main_site => $main_site,
+ };
+}
+
+1;
diff --git a/perllib/FixMyStreet/DB/Result/Contact.pm b/perllib/FixMyStreet/DB/Result/Contact.pm
index 001fb4ac6..941e4e1bb 100644
--- a/perllib/FixMyStreet/DB/Result/Contact.pm
+++ b/perllib/FixMyStreet/DB/Result/Contact.pm
@@ -34,12 +34,33 @@ __PACKAGE__->add_columns(
{ data_type => "timestamp", is_nullable => 0 },
"note",
{ data_type => "text", is_nullable => 0 },
+ "extra",
+ { data_type => "text", is_nullable => 1 },
);
__PACKAGE__->set_primary_key("id");
__PACKAGE__->add_unique_constraint("contacts_area_id_category_idx", ["area_id", "category"]);
+# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-08-01 10:07:59
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:4y6yRz4rMN66pBpkzfJJhg
-# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-23 15:49:48
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:BXGd4uk1ybC5RTKlInTr0w
+__PACKAGE__->filter_column(
+ extra => {
+ filter_from_storage => sub {
+ my $self = shift;
+ my $ser = shift;
+ return undef unless defined $ser;
+ my $h = new IO::String($ser);
+ return RABX::wire_rd($h);
+ },
+ filter_to_storage => sub {
+ my $self = shift;
+ my $data = shift;
+ my $ser = '';
+ my $h = new IO::String($ser);
+ RABX::wire_wr( $data, $h );
+ return $ser;
+ },
+ }
+);
1;
diff --git a/perllib/FixMyStreet/DB/Result/Open311conf.pm b/perllib/FixMyStreet/DB/Result/Open311conf.pm
new file mode 100644
index 000000000..0a5784560
--- /dev/null
+++ b/perllib/FixMyStreet/DB/Result/Open311conf.pm
@@ -0,0 +1,39 @@
+package FixMyStreet::DB::Result::Open311conf;
+
+# Created by DBIx::Class::Schema::Loader
+# DO NOT MODIFY THE FIRST PART OF THIS FILE
+
+use strict;
+use warnings;
+
+use base 'DBIx::Class::Core';
+
+__PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn");
+__PACKAGE__->table("open311conf");
+__PACKAGE__->add_columns(
+ "id",
+ {
+ data_type => "integer",
+ is_auto_increment => 1,
+ is_nullable => 0,
+ sequence => "open311conf_id_seq",
+ },
+ "area_id",
+ { data_type => "integer", is_nullable => 0 },
+ "endpoint",
+ { data_type => "text", is_nullable => 0 },
+ "jurisdiction",
+ { data_type => "text", is_nullable => 1 },
+ "api_key",
+ { data_type => "text", is_nullable => 1 },
+);
+__PACKAGE__->set_primary_key("id");
+__PACKAGE__->add_unique_constraint("open311conf_area_id_key", ["area_id"]);
+
+
+# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-07-29 18:09:25
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ryqCpvwjNtQrZm4I3s0hxg
+
+
+# You can replace this text with custom code or comments, and it will be preserved on regeneration
+1;
diff --git a/perllib/FixMyStreet/DB/Result/Problem.pm b/perllib/FixMyStreet/DB/Result/Problem.pm
index 987c92c64..9ff19efb6 100644
--- a/perllib/FixMyStreet/DB/Result/Problem.pm
+++ b/perllib/FixMyStreet/DB/Result/Problem.pm
@@ -78,6 +78,8 @@ __PACKAGE__->add_columns(
{ data_type => "timestamp", is_nullable => 1 },
"send_questionnaire",
{ data_type => "boolean", default_value => \"true", is_nullable => 0 },
+ "extra",
+ { data_type => "text", is_nullable => 1 },
"flagged",
{ data_type => "boolean", default_value => \"false", is_nullable => 0 },
);
@@ -102,8 +104,8 @@ __PACKAGE__->has_many(
);
-# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-23 15:49:48
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:3sw/1dqxlTvcWEI/eJTm4w
+# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-07-29 16:26:23
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ifvx9FOlbui66hPyzNIAPA
# Add fake relationship to stored procedure table
__PACKAGE__->has_one(
@@ -113,11 +115,31 @@ __PACKAGE__->has_one(
{ cascade_copy => 0, cascade_delete => 0 },
);
+__PACKAGE__->filter_column(
+ extra => {
+ filter_from_storage => sub {
+ my $self = shift;
+ my $ser = shift;
+ return undef unless defined $ser;
+ my $h = new IO::String($ser);
+ return RABX::wire_rd($h);
+ },
+ filter_to_storage => sub {
+ my $self = shift;
+ my $data = shift;
+ my $ser = '';
+ my $h = new IO::String($ser);
+ RABX::wire_wr( $data, $h );
+ return $ser;
+ },
+ }
+);
use DateTime::TimeZone;
use Image::Size;
use Moose;
use namespace::clean -except => [ 'meta' ];
use Utils;
+use RABX;
with 'FixMyStreet::Roles::Abuser';
@@ -535,6 +557,88 @@ sub duration_string {
);
}
+=head2 update_from_open311_service_request
+
+ $p->update_from_open311_service_request( $request, $council_details, $system_user );
+
+Updates the problem based on information in the passed in open311 request. If the request
+has an older update time than the problem's lastupdate time then nothing happens.
+
+Otherwise a comment will be created if there is status update text in the open311 request.
+If the open311 request has a state of closed then the problem will be marked as fixed.
+
+NB: a comment will always be created if the problem is being marked as fixed.
+
+Fixed problems will not be re-opened by this method.
+
+=cut
+
+sub update_from_open311_service_request {
+ my ( $self, $request, $council_details, $system_user ) = @_;
+
+ my ( $updated, $status_notes );
+
+ if ( ! ref $request->{updated_datetime} ) {
+ $updated = $request->{updated_datetime};
+ }
+
+ if ( ! ref $request->{status_notes} ) {
+ $status_notes = $request->{status_notes};
+ }
+
+ my $update = FixMyStreet::App->model('DB::Comment')->new(
+ {
+ problem_id => $self->id,
+ state => 'confirmed',
+ created => $updated || \'ms_current_timestamp()',
+ confirmed => \'ms_current_timestamp()',
+ text => $status_notes,
+ mark_open => 0,
+ mark_fixed => 0,
+ user => $system_user,
+ anonymous => 0,
+ name => $council_details->{name},
+ }
+ );
+
+
+ my $w3c = DateTime::Format::W3CDTF->new;
+ my $req_time = $w3c->parse_datetime( $request->{updated_datetime} );
+
+ # set a timezone here as the $req_time will have one and if we don't
+ # use a timezone then the date comparisons are invalid.
+ # of course if local timezone is not the one that went into the data
+ # base then we're also in trouble
+ my $lastupdate = $self->lastupdate;
+ $lastupdate->set_time_zone( DateTime::TimeZone->new( name => 'local' ) );
+
+ # update from open311 is older so skip
+ if ( $req_time < $lastupdate ) {
+ return 0;
+ }
+
+ if ( $request->{status} eq 'closed' ) {
+ if ( $self->state ne 'fixed' ) {
+ $self->state('fixed');
+ $update->mark_fixed(1);
+
+ if ( !$status_notes ) {
+ # FIXME - better text here
+ $status_notes = _('Closed by council');
+ }
+ }
+ }
+
+ if ( $status_notes ) {
+ $update->text( $status_notes );
+ $self->lastupdate( $req_time );
+ $self->update;
+ $update->insert;
+ }
+
+ return 1;
+}
+
# we need the inline_constructor bit as we don't inherit from Moose
__PACKAGE__->meta->make_immutable( inline_constructor => 0 );
diff --git a/perllib/FixMyStreet/Geocode/Bing.pm b/perllib/FixMyStreet/Geocode/Bing.pm
index 4e12a7a7f..856d7061e 100644
--- a/perllib/FixMyStreet/Geocode/Bing.pm
+++ b/perllib/FixMyStreet/Geocode/Bing.pm
@@ -22,6 +22,7 @@ use Digest::MD5 qw(md5_hex);
# may be used to disambiguate the location in cobranded versions of the site.
sub string {
my ( $s, $c, $params ) = @_;
+ $s .= '+' . $params->{town} if $params->{town} and $s !~ /$params->{town}/i;
my $url = "http://dev.virtualearth.net/REST/v1/Locations?q=$s&c=en-GB"; # FIXME nb-NO for Norway
$url .= '&mapView=' . $params->{bounds}[0] . ',' . $params->{bounds}[1]
if $params->{bounds};
@@ -43,7 +44,7 @@ sub string {
if (!$js) {
return { error => _('Sorry, we could not parse that location. Please try again.') };
} elsif ($js =~ /BT\d/) {
- return { error => _("We do not cover Northern Ireland, I'm afraid, as our licence doesn't include any maps for the region.") };
+ return { error => _("We do not currently cover Northern Ireland, I'm afraid.") };
}
$js = JSON->new->utf8->allow_nonref->decode($js);
diff --git a/perllib/FixMyStreet/Map/FMS.pm b/perllib/FixMyStreet/Map/FMS.pm
index d5edac763..24842c861 100644
--- a/perllib/FixMyStreet/Map/FMS.pm
+++ b/perllib/FixMyStreet/Map/FMS.pm
@@ -47,11 +47,13 @@ sub map_tiles {
"http://tilma.mysociety.org/sv/$z/$x/$y.png",
];
} else {
+ my $url = "g=701";
+ $url .= "&productSet=mmOS" if $z > 10;
return [
- "http://ecn.t0.tiles.virtualearth.net/tiles/r" . get_quadkey($x-1, $y-1, $z) . ".png?g=701&productSet=mmOS",
- "http://ecn.t1.tiles.virtualearth.net/tiles/r" . get_quadkey($x, $y-1, $z) . ".png?g=701&productSet=mmOS",
- "http://ecn.t2.tiles.virtualearth.net/tiles/r" . get_quadkey($x-1, $y, $z) . ".png?g=701&productSet=mmOS",
- "http://ecn.t3.tiles.virtualearth.net/tiles/r" . get_quadkey($x, $y, $z) . ".png?g=701&productSet=mmOS",
+ "http://ecn.t0.tiles.virtualearth.net/tiles/r" . get_quadkey($x-1, $y-1, $z) . ".png?$url",
+ "http://ecn.t1.tiles.virtualearth.net/tiles/r" . get_quadkey($x, $y-1, $z) . ".png?$url",
+ "http://ecn.t2.tiles.virtualearth.net/tiles/r" . get_quadkey($x-1, $y, $z) . ".png?$url",
+ "http://ecn.t3.tiles.virtualearth.net/tiles/r" . get_quadkey($x, $y, $z) . ".png?$url",
];
}
}
diff --git a/perllib/Open311.pm b/perllib/Open311.pm
new file mode 100644
index 000000000..f3f642895
--- /dev/null
+++ b/perllib/Open311.pm
@@ -0,0 +1,204 @@
+package Open311;
+
+use URI;
+use Moose;
+use XML::Simple;
+use LWP::Simple;
+use LWP::UserAgent;
+use HTTP::Request::Common qw(POST);
+
+has jurisdiction => ( is => 'ro', isa => 'Str' );;
+has api_key => ( is => 'ro', isa => 'Str' );
+has endpoint => ( is => 'ro', isa => 'Str' );
+has test_mode => ( is => 'ro', isa => 'Bool' );
+has test_uri_used => ( is => 'rw', 'isa' => 'Str' );
+has test_get_returns => ( is => 'rw' );
+has endpoints => ( is => 'rw', default => sub { { services => 'services.xml', requests => 'requests.xml' } } );
+
+sub get_service_list {
+ my $self = shift;
+
+ my $service_list_xml = $self->_get( $self->endpoints->{services} );
+
+ return $self->_get_xml_object( $service_list_xml );
+}
+
+sub get_service_meta_info {
+ my $self = shift;
+ my $service_id = shift;
+
+ my $service_meta_xml = $self->_get( "services/$service_id.xml" );
+ return $self->_get_xml_object( $service_meta_xml );
+}
+
+sub send_service_request {
+ my $self = shift;
+ my $problem = shift;
+ my $extra = shift;
+ my $service_code = shift;
+
+ my $description = <<EOT;
+title: @{[$problem->title()]}
+
+detail: @{[$problem->detail()]}
+
+url: $extra->{url}
+
+Submitted via FixMyStreet
+EOT
+;
+
+ my $params = {
+ lat => $problem->latitude,
+ long => $problem->longitude,
+ email => $problem->user->email,
+ description => $description,
+ service_code => $service_code,
+ };
+
+ if ( $problem->user->phone ) {
+ $params->{ phone } = $problem->user->phone;
+ }
+
+ if ( $extra->{image_url} ) {
+ $params->{media_url} = $extra->{image_url};
+ }
+
+ if ( $problem->extra ) {
+ my $extras = $problem->extra;
+
+ for my $attr ( @$extras ) {
+ my $name = sprintf( 'attribute[%s]', $attr->{name} );
+ $params->{ $name } = $attr->{value};
+ }
+ }
+
+ my $response = $self->_post( $self->endpoints->{requests}, $params );
+
+ if ( $response ) {
+ my $obj = $self->_get_xml_object( $response );
+
+ if ( $obj ) {
+ if ( $obj->{ request }->{ service_request_id } ) {
+ return $obj->{ request }->{ service_request_id };
+ } else {
+ my $token = $obj->{ request }->{ token };
+ if ( $token ) {
+ return $self->get_service_request_id_from_token( $token );
+ }
+ }
+ }
+
+ warn sprintf( "Failed to submit problem %s over Open311, response\n: %s", $problem->id, $response );
+ return 0;
+ }
+}
+
+sub get_service_requests {
+ my $self = shift;
+ my $report_ids = shift;
+
+ my $params = {};
+
+ if ( $report_ids ) {
+ $params->{service_request_id} = join ',', @$report_ids;
+ }
+
+ my $service_request_xml = $self->_get( $self->endpoints->{requests}, $params || undef );
+ return $self->_get_xml_object( $service_request_xml );
+}
+
+sub get_service_request_id_from_token {
+ my $self = shift;
+ my $token = shift;
+
+ my $service_token_xml = $self->_get( "tokens/$token.xml" );
+
+ my $obj = $self->_get_xml_object( $service_token_xml );
+
+ if ( $obj && $obj->{ request }->{ service_request_id } ) {
+ return $obj->{ request }->{ service_request_id };
+ } else {
+ return 0;
+ }
+}
+
+sub _get {
+ my $self = shift;
+ my $path = shift;
+ my $params = shift || {};
+
+ my $uri = URI->new( $self->endpoint );
+
+ $params->{ jurisdiction_id } = $self->jurisdiction;
+ $uri->path( $uri->path . $path );
+ $uri->query_form( $params );
+
+ my $content;
+ if ( $self->test_mode ) {
+ $content = $self->test_get_returns->{ $path };
+ $self->test_uri_used( $uri->as_string );
+ } else {
+ $content = get( $uri->as_string );
+ }
+
+ return $content;
+}
+
+sub _post {
+ my $self = shift;
+ my $path = shift;
+ my $params = shift;
+
+ my $uri = URI->new( $self->endpoint );
+ $uri->path( $uri->path . $path );
+
+ my $req = POST $uri->as_string,
+ [
+ jurisdiction_id => $self->jurisdiction,
+ api_key => $self->api_key,
+ %{ $params }
+ ];
+
+ my $ua = LWP::UserAgent->new();
+ my $res = $ua->request( $req );
+
+ if ( $res->is_success ) {
+ return $res->decoded_content;
+ } else {
+ warn "request failed: " . $res->status_line;
+ warn $self->_process_error( $res->decoded_content );
+ return 0;
+ }
+}
+
+sub _process_error {
+ my $self = shift;
+ my $error = shift;
+
+ my $obj = $self->_get_xml_object( $error );
+
+ my $msg = '';
+ if ( ref $obj && exists $obj->{error} ) {
+ my $errors = $obj->{error};
+ $errors = [ $errors ] if ref $errors ne 'ARRAY';
+ $msg .= sprintf( "%s: %s\n", $_->{code}, $_->{description} ) for @{ $errors };
+ }
+
+ return $msg || 'unknown error';
+}
+
+sub _get_xml_object {
+ my $self = shift;
+ my $xml= shift;
+
+ my $simple = XML::Simple->new();
+ my $obj;
+
+ eval {
+ $obj = $simple ->XMLin( $xml );
+ };
+
+ return $obj;
+}
+1;
diff --git a/perllib/Open311/GetUpdates.pm b/perllib/Open311/GetUpdates.pm
new file mode 100644
index 000000000..5d5291d47
--- /dev/null
+++ b/perllib/Open311/GetUpdates.pm
@@ -0,0 +1,82 @@
+package Open311::GetUpdates;
+
+use Moose;
+use Open311;
+use FixMyStreet::App;
+
+has council_list => ( is => 'ro' );
+has system_user => ( is => 'ro' );
+
+sub get_updates {
+ my $self = shift;
+
+ while ( my $council = $self->council_list->next ) {
+ my $open311 = Open311->new(
+ endpoint => $council->endpoint,
+ jurisdiction => $council->jurisdiction,
+ api_key => $council->api_key
+ );
+
+ my $area_id = $council->area_id;
+
+ my $council_details = mySociety::MaPit::call( 'area', $area_id );
+
+ my $reports = FixMyStreet::App->model('DB::Problem')->search(
+ {
+ council => { like => "\%$area_id\%" },
+ state => { 'IN', [qw/confirmed fixed/] },
+ -and => [
+ external_id => { '!=', undef },
+ external_id => { '!=', '' },
+ ],
+ }
+ );
+
+ my @report_ids = ();
+ while ( my $report = $reports->next ) {
+ push @report_ids, $report->external_id;
+ }
+
+ next unless @report_ids;
+
+ $self->update_reports( \@report_ids, $open311, $council_details );
+ }
+}
+
+sub update_reports {
+ my ( $self, $report_ids, $open311, $council_details ) = @_;
+
+ my $service_requests = $open311->get_service_requests( $report_ids );
+
+ my $requests;
+
+ # XML::Simple is a bit inconsistent in how it structures
+ # things depending on the number of children an element has :(
+ if ( ref $service_requests->{request} eq 'ARRAY' ) {
+ $requests = $service_requests->{request};
+ }
+ else {
+ $requests = [ $service_requests->{request} ];
+ }
+
+ for my $request (@$requests) {
+ # if it's a ref that means it's an empty element
+ # however, if there's no updated date then we can't
+ # tell if it's newer that what we have so we should skip it
+ next if ref $request->{updated_datetime} || ! exists $request->{updated_datetime};
+
+ my $request_id = $request->{service_request_id};
+
+ my $problem =
+ FixMyStreet::App->model('DB::Problem')
+ ->search( { external_id => $request_id, } );
+
+ if (my $p = $problem->first) {
+ $p->update_from_open311_service_request( $request, $council_details, $self->system_user );
+ }
+ }
+
+ return 1;
+}
+
+1;
diff --git a/perllib/Open311/PopulateServiceList.pm b/perllib/Open311/PopulateServiceList.pm
new file mode 100644
index 000000000..cfec9005d
--- /dev/null
+++ b/perllib/Open311/PopulateServiceList.pm
@@ -0,0 +1,240 @@
+package Open311::PopulateServiceList;
+
+use Moose;
+use LWP::Simple;
+use XML::Simple;
+use FixMyStreet::App;
+use Open311;
+
+has council_list => ( is => 'ro' );
+has found_contacts => ( is => 'rw', default => sub { [] } );
+
+has _current_council => ( is => 'rw' );
+has _current_open311 => ( is => 'rw' );
+has _current_service => ( is => 'rw' );
+
+my $council_list = FixMyStreet::App->model('DB::Open311conf');
+
+sub process_councils {
+ my $self = shift;
+
+ while ( my $council = $self->council_list->next ) {
+ next unless $council->endpoint;
+ $self->_current_council( $council );
+ $self->process_council;
+ }
+}
+
+sub process_council {
+ my $self = shift;
+
+ my $open311 = Open311->new(
+ endpoint => $self->_current_council->endpoint,
+ jurisdiction => $self->_current_council->jurisdiction,
+ api_key => $self->_current_council->api_key
+ );
+
+ $self->_current_open311( $open311 );
+ $self->_check_endpoints;
+
+ my $list = $open311->get_service_list;
+ unless ( $list ) {
+ warn "ERROR: no service list found for " . $self->_current_council->area_id . "\n";
+ return;
+ }
+ $self->process_services( $list );
+}
+
+
+
+sub _check_endpoints {
+ my $self = shift;
+
+ # west berks end point not standard
+ if ( $self->_current_council->area_id == 2619 ) {
+ $self->_current_open311->endpoints(
+ {
+ services => 'Services',
+ requests => 'Requests'
+ }
+ );
+ }
+}
+
+
+sub process_services {
+ my $self = shift;
+ my $list = shift;
+
+ $self->found_contacts( [] );
+ foreach my $service ( @{ $list->{service} } ) {
+ $self->_current_service( $service );
+ $self->process_service;
+ }
+ $self->_delete_contacts_not_in_service_list;
+}
+
+sub process_service {
+ my $self = shift;
+
+ my $category = $self->_current_council->area_id == 2218 ?
+ $self->_current_service->{description} :
+ $self->_current_service->{service_name};
+
+ print $self->_current_service->{service_code} . ': ' . $category . "\n";
+ my $contacts = FixMyStreet::App->model( 'DB::Contact')->search(
+ {
+ area_id => $self->_current_council->area_id,
+ -OR => [
+ email => $self->_current_service->{service_code},
+ category => $category,
+ ]
+ }
+ );
+
+ if ( $contacts->count() > 1 ) {
+ printf(
+ "Multiple contacts for service code %s, category %s - Skipping\n",
+ $self->_current_service->{service_code},
+ $category,
+ );
+
+ # best to not mark them as deleted as we don't know what we're doing
+ while ( my $contact = $contacts->next ) {
+ push @{ $self->found_contacts }, $contact->email;
+ }
+
+ return;
+ }
+
+ my $contact = $contacts->first;
+
+ if ( $contact ) {
+ $self->_handle_existing_contact( $contact );
+ } else {
+ $self->_create_contact;
+ }
+}
+
+sub _handle_existing_contact {
+ my ( $self, $contact ) = @_;
+
+ my $service_name = $self->_normalize_service_name;
+
+ print $self->_current_council->area_id . " already has a contact for service code " . $self->_current_service->{service_code} . "\n";
+
+ if ( $contact->deleted || $service_name ne $contact->category || $self->_current_service->{service_code} ne $contact->email ) {
+ eval {
+ $contact->update(
+ {
+ category => $service_name,
+ email => $self->_current_service->{service_code},
+ confirmed => 1,
+ deleted => 0,
+ editor => $0,
+ whenedited => \'ms_current_timestamp()',
+ note => 'automatically undeleted by script',
+ }
+ );
+ };
+
+ if ( $@ ) {
+ warn "Failed to update contact for service code " . $self->_current_service->{service_code} . " for council @{[$self->_current_council->area_id]}: $@\n";
+ return;
+ }
+ }
+
+ push @{ $self->found_contacts }, $self->_current_service->{service_code};
+}
+
+sub _create_contact {
+ my $self = shift;
+
+ my $service_name = $self->_normalize_service_name;
+
+ my $contact;
+ eval {
+ $contact = FixMyStreet::App->model( 'DB::Contact')->create(
+ {
+ email => $self->_current_service->{service_code},
+ area_id => $self->_current_council->area_id,
+ category => $service_name,
+ confirmed => 1,
+ deleted => 0,
+ editor => $0,
+ whenedited => \'ms_current_timestamp()',
+ note => 'created automatically by script',
+ }
+ );
+ };
+
+ if ( $@ ) {
+ warn "Failed to create contact for service code " . $self->_current_service->{service_code} . " for council @{[$self->_current_council->area_id]}: $@\n";
+ return;
+ }
+
+ if ( $contact and lc( $self->_current_service->{metadata} ) eq 'true' ) {
+ $self->_add_meta_to_contact( $contact );
+ }
+
+ if ( $contact ) {
+ push @{ $self->found_contacts }, $self->_current_service->{service_code};
+ print "created contact for service code " . $self->_current_service->{service_code} . " for council @{[$self->_current_council->area_id]}\n";
+ }
+}
+
+sub _add_contact_to_meta {
+ my ( $self, $contact ) = @_;
+
+ print "Fetching meta data for $self->_current_service->{service_code}\n";
+ my $meta_data = $self->_current_open311->get_service_meta_info( $self->_current_service->{service_code} );
+
+ # turn the data into something a bit more friendly to use
+ my @meta =
+ # remove trailing colon as we add this when we display so we don't want 2
+ map { $_->{description} =~ s/:\s*//; $_ }
+ # there is a display order and we only want to sort once
+ sort { $a->{order} <=> $b->{order} }
+ @{ $meta_data->{attributes}->{attribute} };
+
+ $contact->extra( \@meta );
+ $contact->update;
+}
+
+sub _normalize_service_name {
+ my $self = shift;
+
+ # FIXME - at the moment it makes more sense to use the description
+ # for cambridgeshire but need a more flexible way to set this
+ my $service_name = $self->_current_council->area_id == 2218 ?
+ $self->_current_service->{description} :
+ $self->_current_service->{service_name};
+ # remove trailing whitespace as it upsets db queries
+ # to look up contact details when creating problem
+ $service_name =~ s/\s+$//;
+
+ return $service_name;
+}
+
+sub _delete_contacts_not_in_service_list {
+ my $self = shift;
+
+ my $found_contacts = FixMyStreet::App->model( 'DB::Contact')->search(
+ {
+ email => { -not_in => $self->found_contacts },
+ area_id => $self->_current_council->area_id,
+ deleted => 0,
+ }
+ );
+
+ $found_contacts->update(
+ {
+ deleted => 1,
+ editor => $0,
+ whenedited => \'ms_current_timestamp()',
+ note => 'automatically marked as deleted by script'
+ }
+ );
+}
+
+1;
diff --git a/t/app/controller/admin.t b/t/app/controller/admin.t
index 25e921a4f..beeb6c9c1 100644
--- a/t/app/controller/admin.t
+++ b/t/app/controller/admin.t
@@ -205,6 +205,59 @@ subtest 'check contact updating' => sub {
$mech->content_like(qr{test2\@example.com[^<]*</td>[^<]*<td><strong>Yes}s);
};
+my $open311 =
+ FixMyStreet::App->model('DB::Open311Conf')->search( { area_id => 2650 } );
+$open311->delete if $open311;
+
+subtest 'check open311 configuring' => sub {
+ $mech->get_ok('/admin/council_contacts/2650/');
+ $mech->content_lacks('Council contacts configured via Open311');
+
+ $mech->form_number(3);
+ $mech->submit_form_ok(
+ {
+ with_fields => {
+ api_key => 'api key',
+ endpoint => 'http://example.com/open311',
+ jurisdiction => 'mySociety',
+ }
+ }
+ );
+ $mech->content_contains('Council contacts configured via Open311');
+ $mech->content_contains('Configuration updated - contacts will be generated automatically later');
+
+ $open311 =
+ FixMyStreet::App->model('DB::Open311Conf')->search( { area_id => 2650 } );
+
+ is $open311->count, 1, 'only one configuration';
+ my $conf = $open311->first;
+ is $conf->endpoint, 'http://example.com/open311', 'endpoint configured';
+ is $conf->api_key, 'api key', 'api key configured';
+ is $conf->jurisdiction, 'mySociety', 'jurisdiction configures';
+
+ $mech->form_number(3);
+ $mech->submit_form_ok(
+ {
+ with_fields => {
+ api_key => 'new api key',
+ endpoint => 'http://example.org/open311',
+ jurisdiction => 'open311',
+ }
+ }
+ );
+
+ $mech->content_contains('Configuration updated');
+
+ $open311 =
+ FixMyStreet::App->model('DB::Open311Conf')->search( { area_id => 2650 } );
+
+ is $open311->count, 1, 'only one configuration';
+ $conf = $open311->first;
+ is $conf->endpoint, 'http://example.org/open311', 'endpoint updated';
+ is $conf->api_key, 'new api key', 'api key updated';
+ is $conf->jurisdiction, 'open311', 'jurisdiction configures';
+};
+
subtest 'check text output' => sub {
$mech->get_ok('/admin/council_contacts/2650?text=1');
is $mech->content_type, 'text/plain';
diff --git a/t/app/controller/report_new.t b/t/app/controller/report_new.t
index ff4f4294f..15237e041 100644
--- a/t/app/controller/report_new.t
+++ b/t/app/controller/report_new.t
@@ -2,6 +2,7 @@ use strict;
use utf8; # sign in error message has &ndash; in it
use warnings;
use Test::More;
+use utf8;
use FixMyStreet::TestMech;
use Web::Scraper;
@@ -375,9 +376,11 @@ foreach my $test (
FixMyStreet::App->model('DB::User')->find( { email => $test_email } );
ok $user, "user found";
if ($test->{user}) {
+ is $user->name, 'Old Name', 'name unchanged';
ok $user->check_password('old_password'), 'password unchanged';
} else {
- ok $user->check_password('secret'), 'password set correctly';
+ is $user->name, undef, 'name not yet set';
+ is $user->password, '', 'password not yet set for new user';
}
# find the report
@@ -406,10 +409,8 @@ foreach my $test (
$mech->get_ok( '/report/' . $report->id );
- if ($test->{user}) {
- is $report->name, 'Joe Bloggs', 'name updated correctly';
- ok $report->user->check_password('secret'), 'password updated correctly';
- }
+ is $report->name, 'Joe Bloggs', 'name updated correctly';
+ ok $report->user->check_password('secret'), 'password updated correctly';
# check that the reporter has an alert
my $alert = FixMyStreet::App->model('DB::Alert')->find( {
@@ -615,7 +616,7 @@ foreach my $test (
$mech->submit_form_ok(
{
with_fields => {
- title => "Test Report at caf\xc3\xa9",
+ title => "Test Report at café",
detail => 'Test report details.',
photo => '',
name => 'Joe Bloggs',
@@ -670,7 +671,7 @@ foreach my $test (
}
-$contact2->category( "Pothol\xe9s" );
+$contact2->category( "Pothol\xc3\xa9s" );
$contact2->update;
$mech->get_ok( '/report/new/ajax?latitude=' . $saved_lat . '&longitude=' . $saved_lon );
$mech->content_contains( "Pothol\xc3\xa9s" );
diff --git a/t/app/controller/report_new_open311.t b/t/app/controller/report_new_open311.t
new file mode 100644
index 000000000..dc3583e6b
--- /dev/null
+++ b/t/app/controller/report_new_open311.t
@@ -0,0 +1,167 @@
+use strict;
+use warnings;
+use Test::More;
+
+use FixMyStreet::TestMech;
+use Web::Scraper;
+
+my $mech = FixMyStreet::TestMech->new;
+
+my $open311Conf = FixMyStreet::App->model('DB::Open311Conf')->find_or_create( {
+ area_id => 2651,
+ endpoint => 'http://example.com/open311',
+ jurisdiction => 'mySociety',
+ api_key => 'apikey',
+} );
+
+my %contact_params = (
+ confirmed => 1,
+ deleted => 0,
+ editor => 'Test',
+ whenedited => \'current_timestamp',
+ note => 'Created for test',
+);
+# Let's make some contacts to send things to!
+my $contact1 = FixMyStreet::App->model('DB::Contact')->find_or_create( {
+ %contact_params,
+ area_id => 2651, # Edinburgh
+ category => 'Street lighting',
+ email => '100',
+ extra => [ { description => 'Lamppost number', code => 'number', required => 'True' },
+ { description => 'Lamppost type', code => 'type', required => 'False', values =>
+ { value => { Yellow => { key => 'modern' }, 'Gas' => { key => 'old' } } }
+ }
+ ],
+} );
+my $contact2 = FixMyStreet::App->model('DB::Contact')->find_or_create( {
+ %contact_params,
+ area_id => 2651, # Edinburgh
+ category => 'Graffiti Removal',
+ email => '101',
+} );
+ok $contact1, "created test contact 1";
+ok $contact2, "created test contact 2";
+
+# test that the various bit of form get filled in and errors correctly
+# generated.
+foreach my $test (
+ {
+ msg => 'all fields empty',
+ pc => 'EH99 1SP',
+ fields => {
+ title => '',
+ detail => '',
+ photo => '',
+ name => '',
+ may_show_name => '1',
+ email => '',
+ phone => '',
+ category => 'Street lighting',
+ password_sign_in => '',
+ password_register => '',
+ remember_me => undef,
+ },
+ changes => {
+ number => '',
+ type => 'old',
+ },
+ errors => [
+ 'Please enter a subject',
+ 'Please enter some details',
+ 'This information is required',
+ 'Please enter your email',
+ 'Please enter your name',
+ ],
+ submit_with => {
+ title => 'test',
+ detail => 'test detail',
+ name => 'Test User',
+ email => 'testopen311@example.com',
+ category => 'Street lighting',
+ number => 27,
+ },
+ extra => [
+ {
+ name => 'number',
+ value => 27,
+ description => 'Lamppost number',
+ },
+ {
+ name => 'type',
+ value => 'old',
+ description => 'Lamppost type',
+ }
+ ]
+ },
+ )
+{
+ subtest "check form errors where $test->{msg}" => sub {
+ $mech->log_out_ok;
+ $mech->clear_emails_ok;
+
+ # check that the user does not exist
+ my $test_email = $test->{submit_with}->{email};
+ my $user = FixMyStreet::App->model('DB::User')->find( { email => $test_email } );
+ if ( $user ) {
+ $user->problems->delete;
+ $user->comments->delete;
+ $user->delete;
+ }
+
+ $mech->get_ok('/around');
+
+ # submit initial pc form
+ $mech->submit_form_ok( { with_fields => { pc => $test->{pc} } },
+ "submit location" );
+ is_deeply $mech->form_errors, [], "no errors for pc '$test->{pc}'";
+
+ # click through to the report page
+ $mech->follow_link_ok( { text => 'skip this step', },
+ "follow 'skip this step' link" );
+
+ # submit the main form
+ $mech->submit_form_ok( { with_fields => $test->{fields} },
+ "submit form" );
+
+ # check that we got the errors expected
+ is_deeply $mech->form_errors, $test->{errors}, "check errors";
+
+ # check that fields have changed as expected
+ my $new_values = {
+ %{ $test->{fields} }, # values added to form
+ %{ $test->{changes} }, # changes we expect
+ };
+ is_deeply $mech->visible_form_values, $new_values,
+ "values correctly changed";
+
+ if ( $test->{fields}->{category} eq 'Street lighting' ) {
+ my $result = scraper {
+ process 'div#category_meta div select#form_type option', 'option[]' => '@value';
+ }
+ ->scrape( $mech->response );
+
+ is_deeply $result->{option}, [ qw/old modern/], 'displayed streetlight type select';
+ }
+
+ $new_values = {
+ %{ $test->{fields} },
+ %{ $test->{submit_with} },
+ };
+ $mech->submit_form_ok( { with_fields => $new_values } );
+
+ $user = FixMyStreet::App->model('DB::User')->find( { email => $test_email } );
+ ok $user, 'created user';
+ my $prob = $user->problems->first;
+ ok $prob, 'problem created';
+
+ is_deeply $prob->extra, $test->{extra}, 'extra open311 data added to problem';
+
+ $user->problems->delete;
+ $user->delete;
+ };
+}
+
+$contact1->delete;
+$contact2->delete;
+
+done_testing();
diff --git a/t/app/model/problem.t b/t/app/model/problem.t
index 4c6be6a8d..ad42c5fdf 100644
--- a/t/app/model/problem.t
+++ b/t/app/model/problem.t
@@ -152,6 +152,111 @@ for my $test (
};
}
+my $user = FixMyStreet::App->model('DB::User')->find_or_create(
+ {
+ email => 'system_user@example.com'
+ }
+);
+
+$problem->user( $user );
+$problem->created( DateTime->now()->subtract( days => 1 ) );
+$problem->lastupdate( DateTime->now()->subtract( days => 1 ) );
+$problem->anonymous(1);
+$problem->insert;
+
+my $tz_local = DateTime::TimeZone->new( name => 'local' );
+
+for my $test (
+ {
+ desc => 'request older than problem ignored',
+ lastupdate => '',
+ request => {
+ updated_datetime => DateTime::Format::W3CDTF->new()->format_datetime( DateTime->now()->set_time_zone( $tz_local )->subtract( days => 2 ) ),
+ },
+ council => {
+ name => 'Edinburgh City Council',
+ },
+ created => 0,
+ },
+ {
+ desc => 'request newer than problem created',
+ lastupdate => '',
+ request => {
+ updated_datetime => DateTime::Format::W3CDTF->new()->format_datetime( DateTime->now()->set_time_zone( $tz_local ) ),
+ status => 'open',
+ status_notes => 'this is an update from the council',
+ },
+ council => {
+ name => 'Edinburgh City Council',
+ },
+ created => 1,
+ state => 'confirmed',
+ mark_fixed => 0,
+ mark_open => 0,
+ },
+ {
+ desc => 'update with state of closed fixes problem',
+ lastupdate => '',
+ request => {
+ updated_datetime => DateTime::Format::W3CDTF->new()->format_datetime( DateTime->now()->set_time_zone( $tz_local ) ),
+ status => 'closed',
+ status_notes => 'the council have fixed this',
+ },
+ council => {
+ name => 'Edinburgh City Council',
+ },
+ created => 1,
+ state => 'fixed',
+ mark_fixed => 1,
+ mark_open => 0,
+ },
+ {
+ desc => 'update with state of open leaves problem as fixed',
+ lastupdate => '',
+ request => {
+ updated_datetime => DateTime::Format::W3CDTF->new()->format_datetime( DateTime->now()->set_time_zone( $tz_local ) ),
+ status => 'open',
+ status_notes => 'the council do not think this is fixed',
+ },
+ council => {
+ name => 'Edinburgh City Council',
+ },
+ created => 1,
+ start_state => 'fixed',
+ state => 'fixed',
+ mark_fixed => 0,
+ mark_open => 0,
+ },
+) {
+ subtest $test->{desc} => sub {
+ # makes testing easier;
+ $problem->comments->delete;
+ $problem->created( DateTime->now()->subtract( days => 1 ) );
+ $problem->lastupdate( DateTime->now()->subtract( days => 1 ) );
+ $problem->state( $test->{start_state} || 'confirmed' );
+ $problem->update;
+ my $w3c = DateTime::Format::W3CDTF->new();
+
+ my $ret = $problem->update_from_open311_service_request( $test->{request}, $test->{council}, $user );
+ is $ret, $test->{created}, 'return value';
+
+ return unless $test->{created};
+
+ $problem->discard_changes;
+ is $problem->lastupdate, $w3c->parse_datetime($test->{request}->{updated_datetime}), 'lastupdate time';
+
+ my $update = $problem->comments->first;
+
+ ok $update, 'updated created';
+
+ is $problem->state, $test->{state}, 'problem state';
+
+ is $update->text, $test->{request}->{status_notes}, 'update text';
+ is $update->mark_open, $test->{mark_open}, 'update mark_open flag';
+ is $update->mark_fixed, $test->{mark_fixed}, 'update mark_fixed flag';
+ };
+}
+
for my $test (
{
state => 'partial',
@@ -240,4 +345,8 @@ for my $test (
};
}
+$problem->comments->delete;
+$problem->delete;
+$user->delete;
+
done_testing();
diff --git a/t/open311.t b/t/open311.t
new file mode 100644
index 000000000..f7a8cd815
--- /dev/null
+++ b/t/open311.t
@@ -0,0 +1,24 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use Test::More tests => 4;
+
+use FindBin;
+use lib "$FindBin::Bin/../perllib";
+use lib "$FindBin::Bin/../commonlib/perllib";
+
+use_ok( 'Open311' );
+
+my $o = Open311->new();
+ok $o, 'created object';
+
+my $err_text = <<EOT
+<?xml version="1.0" encoding="utf-8"?><errors><error><code>400</code><description>Service Code cannot be null -- can't proceed with the request.</description></error></errors>
+EOT
+;
+
+is $o->_process_error( $err_text ), "400: Service Code cannot be null -- can't proceed with the request.\n", 'error text parsing';
+is $o->_process_error( '503 - service unavailable' ), 'unknown error', 'error text parsing of bad error';
+
+
diff --git a/t/open311/getupdates.t b/t/open311/getupdates.t
new file mode 100644
index 000000000..500ac97d2
--- /dev/null
+++ b/t/open311/getupdates.t
@@ -0,0 +1,198 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use Test::More;
+
+use FindBin;
+use lib "$FindBin::Bin/../perllib";
+use lib "$FindBin::Bin/../commonlib/perllib";
+
+use_ok( 'Open311::GetUpdates' );
+use_ok( 'Open311' );
+
+my $user = FixMyStreet::App->model('DB::User')->find_or_create(
+ {
+ email => 'system_user@example.com'
+ }
+);
+
+
+my $updates = Open311::GetUpdates->new( system_user => $user );
+ok $updates, 'created object';
+
+my $requests_xml = qq{<?xml version="1.0" encoding="utf-8"?>
+<service_requests>
+<request>
+<service_request_id>638344</service_request_id>
+<status>open</status>
+<status_notes>This is a note.</status_notes>
+<service_name>Sidewalk and Curb Issues</service_name>
+<service_code>006</service_code>
+<description></description>
+<agency_responsible></agency_responsible>
+<service_notice></service_notice>
+<requested_datetime>2010-04-14T06:37:38-08:00</requested_datetime>
+UPDATED_DATETIME
+<expected_datetime>2010-04-15T06:37:38-08:00</expected_datetime>
+<lat>37.762221815</lat>
+<long>-122.4651145</long>
+</request>
+</service_requests>
+};
+
+my $problem_rs = FixMyStreet::App->model('DB::Problem');
+my $problem = $problem_rs->new(
+ {
+ postcode => 'EH99 1SP',
+ latitude => 1,
+ longitude => 1,
+ areas => 1,
+ title => '',
+ detail => '',
+ used_map => 1,
+ user_id => 1,
+ name => '',
+ state => 'confirmed',
+ service => '',
+ cobrand => 'default',
+ cobrand_data => '',
+ user => $user,
+ created => DateTime->now()->subtract( days => 1 ),
+ lastupdate => DateTime->now()->subtract( days => 1 ),
+ anonymous => 1,
+ external_id => 638344,
+ }
+);
+
+$problem->insert;
+
+for my $test (
+ {
+ desc => 'element missing',
+ updated_datetime => '',
+ comment_count => 0,
+ },
+ {
+ desc => 'empty element',
+ updated_datetime => '<updated_datetime />',
+ comment_count => 0,
+ },
+ {
+ desc => 'element with no content',
+ updated_datetime => '<updated_datetime></updated_datetime>',
+ comment_count => 0,
+ },
+ {
+ desc => 'element with old content',
+ updated_datetime => sprintf( '<updated_datetime>%s</updated_datetime>', DateTime->now->subtract( days => 3 ) ),
+ comment_count => 0,
+ },
+ {
+ desc => 'element with new content',
+ updated_datetime => sprintf( '<updated_datetime>%s</updated_datetime>', DateTime->now ),
+ comment_count => 1,
+ },
+) {
+ subtest $test->{desc} => sub {
+ $problem->comments->delete;
+ $problem->lastupdate(DateTime->now()->subtract( days => 1 ) ),
+ $problem->update;
+
+ my $local_requests_xml = $requests_xml;
+ $local_requests_xml =~ s/UPDATED_DATETIME/$test->{updated_datetime}/;
+
+ my $o = Open311->new( jurisdiction => 'mysociety', endpoint => 'http://example.com', test_mode => 1, test_get_returns => { 'requests.xml' => $local_requests_xml } );
+
+ ok $updates->update_reports( [ 638344 ], $o, { name => 'Test Council' } );
+ is $o->test_uri_used, 'http://example.com/requests.xml?jurisdiction_id=mysociety&service_request_id=638344', 'get url';
+
+ is $problem->comments->count, $test->{comment_count}, 'added a comment';
+ };
+}
+
+$requests_xml = qq{<?xml version="1.0" encoding="utf-8"?>
+<service_requests>
+<request>
+<service_request_id>638344</service_request_id>
+<status>open</status>
+<status_notes>This is a note.</status_notes>
+<service_name>Sidewalk and Curb Issues</service_name>
+<service_code>006</service_code>
+<description></description>
+<agency_responsible></agency_responsible>
+<service_notice></service_notice>
+<requested_datetime>2010-04-14T06:37:38-08:00</requested_datetime>
+<updated_datetime>UPDATED_DATETIME</updated_datetime>
+<expected_datetime>2010-04-15T06:37:38-08:00</expected_datetime>
+<lat>37.762221815</lat>
+<long>-122.4651145</long>
+</request>
+<request>
+<service_request_id>638345</service_request_id>
+<status>open</status>
+<status_notes>This is a for a different issue.</status_notes>
+<service_name>Sidewalk and Curb Issues</service_name>
+<service_code>006</service_code>
+<description></description>
+<agency_responsible></agency_responsible>
+<service_notice></service_notice>
+<requested_datetime>2010-04-14T06:37:38-08:00</requested_datetime>
+<updated_datetime>UPDATED_DATETIME2</updated_datetime>
+<expected_datetime>2010-04-15T06:37:38-08:00</expected_datetime>
+<lat>37.762221815</lat>
+<long>-122.4651145</long>
+</request>
+</service_requests>
+};
+
+my $problem2 = $problem_rs->create(
+ {
+ postcode => 'EH99 1SP',
+ latitude => 1,
+ longitude => 1,
+ areas => 1,
+ title => '',
+ detail => '',
+ used_map => 1,
+ user_id => 1,
+ name => '',
+ state => 'confirmed',
+ service => '',
+ cobrand => 'default',
+ cobrand_data => '',
+ user => $user,
+ created => DateTime->now()->subtract( days => 1 ),
+ lastupdate => DateTime->now()->subtract( days => 1 ),
+ anonymous => 1,
+ external_id => 638345,
+ }
+);
+
+$problem->comments->delete;
+subtest 'update with two requests' => sub {
+ $problem->comments->delete;
+ $problem->lastupdate(DateTime->now()->subtract( days => 1 ) ),
+
+ my $date1 = DateTime::Format::W3CDTF->new->format_datetime( DateTime->now() );
+ my $date2 = DateTime::Format::W3CDTF->new->format_datetime( DateTime->now->subtract( hours => 1) );
+ my $local_requests_xml = $requests_xml;
+ $local_requests_xml =~ s/UPDATED_DATETIME2/$date2/;
+ $local_requests_xml =~ s/UPDATED_DATETIME/$date1/;
+
+ my $o = Open311->new( jurisdiction => 'mysociety', endpoint => 'http://example.com', test_mode => 1, test_get_returns => { 'requests.xml' => $local_requests_xml } );
+
+ ok $updates->update_reports( [ 638344,638345 ], $o, { name => 'Test Council' } );
+ is $o->test_uri_used, 'http://example.com/requests.xml?jurisdiction_id=mysociety&service_request_id=638344%2C638345', 'get url';
+
+ is $problem->comments->count, 1, 'added a comment to first problem';
+ is $problem2->comments->count, 1, 'added a comment to second problem';
+};
+
+$problem->comments->delete;
+$problem->delete;
+$user->comments->delete;
+$user->problems->delete;
+$user->delete;
+
+done_testing();
diff --git a/t/open311/populate-service-list.t b/t/open311/populate-service-list.t
new file mode 100644
index 000000000..bdb7404f9
--- /dev/null
+++ b/t/open311/populate-service-list.t
@@ -0,0 +1,255 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use Test::More;
+
+use FixMyStreet::App;
+
+use FindBin;
+use lib "$FindBin::Bin/../perllib";
+use lib "$FindBin::Bin/../commonlib/perllib";
+
+use_ok( 'Open311::PopulateServiceList' );
+use_ok( 'Open311' );
+
+
+my $processor = Open311::PopulateServiceList->new( council_list => [] );
+ok $processor, 'created object';
+
+
+
+subtest 'check basic functionality' => sub {
+ FixMyStreet::App->model('DB::Contact')->search( { area_id => 1 } )->delete();
+
+ my $service_list = get_xml_simple_object( get_standard_xml() );
+
+ my $council = FixMyStreet::App->model('DB::Open311Conf')->new( {
+ area_id => 1
+ } );
+
+ my $processor = Open311::PopulateServiceList->new( council_list => [] );
+ $processor->_current_council( $council );
+ $processor->process_services( $service_list );
+
+ my $contact_count = FixMyStreet::App->model('DB::Contact')->search( { area_id => 1 } )->count();
+ is $contact_count, 3, 'correct number of contacts';
+};
+
+subtest 'check non open311 contacts marked as deleted' => sub {
+ FixMyStreet::App->model('DB::Contact')->search( { area_id => 1 } )->delete();
+
+ my $contact = FixMyStreet::App->model('DB::Contact')->create(
+ {
+ area_id => 1,
+ email => 'contact@example.com',
+ category => 'An old category',
+ confirmed => 1,
+ deleted => 0,
+ editor => $0,
+ whenedited => \'ms_current_timestamp()',
+ note => 'test contact',
+ }
+ );
+
+ my $service_list = get_xml_simple_object( get_standard_xml() );
+
+ my $council = FixMyStreet::App->model('DB::Open311Conf')->new( {
+ area_id => 1
+ } );
+
+ my $processor = Open311::PopulateServiceList->new( council_list => [] );
+ $processor->_current_council( $council );
+ $processor->process_services( $service_list );
+
+ my $contact_count = FixMyStreet::App->model('DB::Contact')->search( { area_id => 1 } )->count();
+ is $contact_count, 4, 'correct number of contacts';
+
+ $contact_count = FixMyStreet::App->model('DB::Contact')->search( { area_id => 1, deleted => 1 } )->count();
+ is $contact_count, 1, 'correct number of deleted contacts';
+};
+
+subtest 'check email changed if matching category' => sub {
+ FixMyStreet::App->model('DB::Contact')->search( { area_id => 1 } )->delete();
+
+ my $contact = FixMyStreet::App->model('DB::Contact')->create(
+ {
+ area_id => 1,
+ email => '009',
+ category => 'Cans left out 24x7',
+ confirmed => 1,
+ deleted => 0,
+ editor => $0,
+ whenedited => \'ms_current_timestamp()',
+ note => 'test contact',
+ }
+ );
+
+ ok $contact, 'contact created';
+
+ my $service_list = get_xml_simple_object( get_standard_xml() );
+
+ my $council = FixMyStreet::App->model('DB::Open311Conf')->new( {
+ area_id => 1
+ } );
+
+ my $processor = Open311::PopulateServiceList->new( council_list => [] );
+ $processor->_current_council( $council );
+ $processor->process_services( $service_list );
+
+ $contact->discard_changes;
+ is $contact->email, '001', 'email unchanged';
+ is $contact->confirmed, 1, 'contact still confirmed';
+ is $contact->deleted, 0, 'contact still not deleted';
+
+ my $contact_count = FixMyStreet::App->model('DB::Contact')->search( { area_id => 1 } )->count();
+ is $contact_count, 3, 'correct number of contacts';
+};
+
+subtest 'check category name changed if updated' => sub {
+ FixMyStreet::App->model('DB::Contact')->search( { area_id => 1 } )->delete();
+
+ my $contact = FixMyStreet::App->model('DB::Contact')->create(
+ {
+ area_id => 1,
+ email => '001',
+ category => 'Bins left out 24x7',
+ confirmed => 1,
+ deleted => 0,
+ editor => $0,
+ whenedited => \'ms_current_timestamp()',
+ note => 'test contact',
+ }
+ );
+
+ ok $contact, 'contact created';
+
+ my $service_list = get_xml_simple_object( get_standard_xml() );
+
+ my $council = FixMyStreet::App->model('DB::Open311Conf')->new( {
+ area_id => 1
+ } );
+
+ my $processor = Open311::PopulateServiceList->new( council_list => [] );
+ $processor->_current_council( $council );
+ $processor->process_services( $service_list );
+
+ $contact->discard_changes;
+ is $contact->email, '001', 'email unchanged';
+ is $contact->category, 'Cans left out 24x7', 'category changed';
+ is $contact->confirmed, 1, 'contact still confirmed';
+ is $contact->deleted, 0, 'contact still not deleted';
+
+ my $contact_count = FixMyStreet::App->model('DB::Contact')->search( { area_id => 1 } )->count();
+ is $contact_count, 3, 'correct number of contacts';
+};
+
+subtest 'check conflicting contacts not changed' => sub {
+ FixMyStreet::App->model('DB::Contact')->search( { area_id => 1 } )->delete();
+
+ my $contact = FixMyStreet::App->model('DB::Contact')->create(
+ {
+ area_id => 1,
+ email => 'existing@example.com',
+ category => 'Cans left out 24x7',
+ confirmed => 1,
+ deleted => 0,
+ editor => $0,
+ whenedited => \'ms_current_timestamp()',
+ note => 'test contact',
+ }
+ );
+
+ ok $contact, 'contact created';
+
+ my $contact2 = FixMyStreet::App->model('DB::Contact')->create(
+ {
+ area_id => 1,
+ email => '001',
+ category => 'Bins left out 24x7',
+ confirmed => 1,
+ deleted => 0,
+ editor => $0,
+ whenedited => \'ms_current_timestamp()',
+ note => 'test contact',
+ }
+ );
+
+ ok $contact2, 'contact created';
+
+ my $service_list = get_xml_simple_object( get_standard_xml() );
+
+ my $council = FixMyStreet::App->model('DB::Open311Conf')->new( {
+ area_id => 1
+ } );
+
+ my $processor = Open311::PopulateServiceList->new( council_list => [] );
+ $processor->_current_council( $council );
+ $processor->process_services( $service_list );
+
+ $contact->discard_changes;
+ is $contact->email, 'existing@example.com', 'first contact email unchanged';
+ is $contact->category, 'Cans left out 24x7', 'first contact category unchanged';
+ is $contact->confirmed, 1, 'first contact contact still confirmed';
+ is $contact->deleted, 0, 'first contact contact still not deleted';
+
+ $contact2->discard_changes;
+ is $contact2->email, '001', 'second contact email unchanged';
+ is $contact2->category, 'Bins left out 24x7', 'second contact category unchanged';
+ is $contact2->confirmed, 1, 'second contact contact still confirmed';
+ is $contact2->deleted, 0, 'second contact contact still not deleted';
+
+ my $contact_count = FixMyStreet::App->model('DB::Contact')->search( { area_id => 1 } )->count();
+ is $contact_count, 4, 'correct number of contacts';
+};
+
+sub get_standard_xml {
+ return qq{<?xml version="1.0" encoding="utf-8"?>
+<services>
+ <service>
+ <service_code>001</service_code>
+ <service_name>Cans left out 24x7</service_name>
+ <description>Garbage or recycling cans that have been left out for more than 24 hours after collection. Violators will be cited.</description>
+ <metadata>false</metadata>
+ <type>realtime</type>
+ <keywords>lorem, ipsum, dolor</keywords>
+ <group>sanitation</group>
+ </service>
+ <service>
+ <service_code>002</service_code>
+ <metadata>false</metadata>
+ <type>realtime</type>
+ <keywords>lorem, ipsum, dolor</keywords>
+ <group>street</group>
+ <service_name>Construction plate shifted</service_name>
+ <description>Metal construction plate covering the street or sidewalk has been moved.</description>
+ </service>
+ <service>
+ <service_code>003</service_code>
+ <metadata>false</metadata>
+ <type>realtime</type>
+ <keywords>lorem, ipsum, dolor</keywords>
+ <group>street</group>
+ <service_name>Curb or curb ramp defect</service_name>
+ <description>Sidewalk curb or ramp has problems such as cracking, missing pieces, holes, and/or chipped curb.</description>
+ </service>
+</services>
+};
+}
+
+sub get_xml_simple_object {
+ my $xml = shift;
+
+ my $simple = XML::Simple->new();
+ my $obj;
+
+ eval {
+ $obj = $simple->XMLin( $xml );
+ };
+
+ die $@ if $@;
+
+ return $obj;
+}
+
+done_testing();
diff --git a/templates/email/default/submit-example.txt b/templates/email/default/submit-example.txt
new file mode 100644
index 000000000..61850cafa
--- /dev/null
+++ b/templates/email/default/submit-example.txt
@@ -0,0 +1,62 @@
+Subject: Problem Report: Dangerous pothole
+
+Dear Birmingham City Council,
+
+A user of FixMyStreet has submitted the following report of a
+local problem that they believe might require your attention.
+
+To view a map of the precise location of this issue, or to provide
+an update on the problem, please visit the following link:
+
+ http://www.fixmystreet.com/report/39092
+
+----------
+
+Name: Matthew Somerville
+
+Email: [...]
+
+Phone: [...]
+
+Category: Potholes
+
+Subject: Dangerous pothole
+
+Details: There is a large pothole almost on the give way line as
+you approach the junction along Bournville Lane from the east,
+which leads to vehicles rolling back as they fall in and out of it
+whilst waiting at the junction.
+
+Easting: 404517
+
+Northing: 280922
+
+Latitude: 52.4262642791826
+
+Longitude: -1.93500217285966
+
+Nearest road to the pin placed on the map (automatically
+generated by Bing Maps): Bournville Lane, Birmingham B30 1
+
+Nearest postcode to the pin placed on the map (automatically
+generated): B30 1LA (83m away)
+
+----------
+
+Replies to this email will go to the user who submitted the problem.
+
+Yours,
+The FixMyStreet team
+
+This message was sent via FixMyStreet, a project of UKCOD,
+registered charity number 1076346. If there is a more appropriate
+email address for messages about 'Potholes', please let us know by
+visiting <http://www.fixmystreet.com/contact>. This will help
+improve the service for local people. We also welcome any other
+feedback you may have.
+
+FixMyStreet is now available for full integration into council
+websites, making life easier for both you and your residents.
+Read more here:
+http://www.mysociety.org/fixmystreet-for-local-council-websites/
+
diff --git a/templates/web/default/admin/council_contacts.html b/templates/web/default/admin/council_contacts.html
index 669f137f9..75d915a29 100644
--- a/templates/web/default/admin/council_contacts.html
+++ b/templates/web/default/admin/council_contacts.html
@@ -12,6 +12,13 @@
<a href="[% c.uri_for( 'council_contacts', area_id, { text => 1 } ) %]">[% loc('Text only version') %]</a>
</p>
+[% IF open311.count > 0 %]
+ <h2>
+ Council contacts configured via Open311
+ </h2>
+
+[% END %]
+
<form method="post" action="[% c.uri_for('council_contacts', area_id ) %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
<table cellspacing="0" cellpadding="2" border="1">
@@ -86,4 +93,31 @@
</div>
</form>
+ <h2>[% loc('Configure Open311 integration') %]</h2>
+ <form method="post" action="[% c.uri_for('council_contacts', area_id ) %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
+ [% conf = open311.next %]
+ <p>
+ <label for="endpoint">Endpoint</label>:
+ <input type="text" name="endpoint" id="endpoint" value="[% conf.endpoint %]" size="50">
+ </p>
+
+ <p>
+ <label for="jurisdiction">Jurisdiction</label>:
+ <input type="text" name="jurisdiction" id="jurisdiction" value="[% conf.jurisdiction %]" size="50">
+ </p>
+
+ <p>
+ <label for="api_key">Api Key</label>:
+ <input type="text" name="api_key" id="api_key" value="[% conf.api_key %]" size="25">
+ </p>
+
+ <p>
+ <input type="hidden" name="open311_id" value="[% conf.id %]">
+ <input type="hidden" name="area_id" value="[% area_id %]">
+ <input type="hidden" name="posted" value="open311">
+ <input type="hidden" name="token" value="[% token %]">
+ <input type="submit" name="Configure Open311" value="[% loc('Configure Open311') %]">
+ </p>
+ </form>
+
[% INCLUDE 'admin/footer.html' %]
diff --git a/templates/web/default/around/display_location.html b/templates/web/default/around/display_location.html
index 8c9047bb2..3d9c82187 100755
--- a/templates/web/default/around/display_location.html
+++ b/templates/web/default/around/display_location.html
@@ -53,7 +53,7 @@
[% ELSE %]
<a id='hide_pins_link' rel='nofollow' href='[% c.uri_with( { no_pins => 1 } ) %]'>[% loc('Hide pins') %]</a>
[% END %]
- [% IF c.cobrand.country == 'GB' %]
+ [% IF c.cobrand.country == 'GB' || c.cobrand.country == 'NO' %]
|
[% IF c.req.params.all_pins %]
<a id='all_pins_link' rel='nofollow' href='[% c.uri_with( { no_pins => undef, all_pins => undef } ) %]'>[% loc('Hide stale reports') %]</a>
diff --git a/templates/web/default/common_header_tags.html b/templates/web/default/common_header_tags.html
index fb1d559b8..d24ee1a5f 100644
--- a/templates/web/default/common_header_tags.html
+++ b/templates/web/default/common_header_tags.html
@@ -8,6 +8,12 @@
[% map_js %]
+[% IF category_extras_json && category_extras_json != '{}' %]
+<script type="text/javascript">
+ category_extras = [% category_extras_json %];
+</script>
+[% END %]
+
[% IF robots %]
<meta name="robots" content="[% robots %]">
[% ELSIF c.config.STAGING_SITE %]
diff --git a/templates/web/default/footer.html b/templates/web/default/footer.html
index b1f22da2c..38e83c1c2 100644
--- a/templates/web/default/footer.html
+++ b/templates/web/default/footer.html
@@ -10,9 +10,25 @@
<li><a href="/faq">[% loc("Help") %]</a></li>
</ul>
-[% loc('<a href="http://www.mysociety.org/"><img id="logo" width="133" height="26" src="/i/mysociety-dark.png" alt="View mySociety.org"><span id="logoie"></span></a>') %]
+[% IF ! c.cobrand.moniker %]
+ <!-- winter 2011 promotion for unbranded site only -->
+ <div id="promo">
+ <a href="http://www.mysociety.org/2011/11/02/fix-before-the-freeze/"
+ title="Fix Before the Freeze - report those dangerous potholes and broken streetlights before winter hits"><img
+ src="/i/promo-fb4tf.gif"
+ alt="Fix Before the Freeze - report those dangerous potholes and broken streetlights before winter hits" ></a>
+ </div>
+ [% loc('<a href="http://www.mysociety.org/"><img id="logo" width="159" height="39" src="/i/mysociety-on-white.gif" alt="View mySociety.org"><span id="logoie"></span></a>') %]
+
+[% ELSE %]
+
+ [% loc('<a href="http://www.mysociety.org/"><img id="logo" width="133" height="26" src="/i/mysociety-dark.png" alt="View mySociety.org"><span id="logoie"></span></a>') %]
+
+[% END %]
+
+</div>
+<div id="footer">
-<div id="footer">
<p>[% loc('Built by <a href="http://www.mysociety.org/">mySociety</a>') %]
| <a href="/contact">[% loc("Contact FixMyStreet") | replace(' ', '&nbsp;') %]</a></p>
@@ -22,13 +38,15 @@
| <a href="https://market.android.com/details?id=com.android.fixmystreet">Android</a>
| <a href="http://store.ovi.com/content/107557">Nokia</a>
</p>
-
+
<p class="l">[% loc('Are you from a council? Would you like better integration with FixMyStreet?') %]
- <a href="http://www.mysociety.org/fixmystreet-for-local-council-websites/">[% loc('Find out about FixMyStreet for councils') %]</a>.
-
+ <a href="http://www.mysociety.org/fixmystreet-for-local-council-websites/">[% loc('Find out about FixMyStreet for councils') %]</a>.
+ </p>
+
<p class="r">[% loc('Are you a developer? Would you like to contribute to FixMyStreet?') %]
[% loc('Our code is open source and <a href="http://github.com/mysociety/fixmystreet">available on GitHub</a>.') %]
</p>
+
</div>
[% INCLUDE 'debug_footer.html' %]
diff --git a/templates/web/default/header.html b/templates/web/default/header.html
index 54aa3f342..1a3324952 100644
--- a/templates/web/default/header.html
+++ b/templates/web/default/header.html
@@ -32,6 +32,7 @@
[%- loc('Fix<span id="my">My</span>Street') %]
[%- IF NOT title AND NOT c.req.path %]</h1>[% ELSE %]</a></div>[% END %]
+ <div [% IF ! c.cobrand.moniker %]class="promo-background"[% END %] >
<ul id="meta">
[% IF c.user_exists %]
<li>[% tprintf(loc('Signed in as %s'), c.user.name || c.user.email) %]
@@ -40,7 +41,10 @@
<li>&nbsp;</li>
[% END %]
</ul>
-
<div id="wrapper"><div id="mysociety">
+
+ [% IF ! c.cobrand.moniker %]
+
+ [% END %]
[% INCLUDE 'debug_header.html' %]
diff --git a/templates/web/default/report/new/category_extras.html b/templates/web/default/report/new/category_extras.html
new file mode 100644
index 000000000..479b9f46c
--- /dev/null
+++ b/templates/web/default/report/new/category_extras.html
@@ -0,0 +1,26 @@
+<div id="category_meta">
+ [%- IF report_meta %]
+ [%- category = report.category %]
+ <h4>Additional Information</h4>
+ [%- FOR meta IN category_extras.$category %]
+ [%- meta_name = meta.code -%]
+
+[% IF field_errors.$meta_name %]
+ <div class='form-error'>[% field_errors.$meta_name %]</div>
+[% END -%]
+
+ <div class="form-field">
+ <label for="form_[% meta_name %]">[% meta.description _ ':' %]</label>
+ [% IF meta.exists('values') %]
+ <select name="[% meta_name %]" id="form_[% meta_name %]">
+ [% FOR option IN meta.values.value.keys %]
+ <option value="[% meta.values.value.$option.key %]">[% option %]</option>
+ [% END %]
+ </select>
+ [% ELSE %]
+ <input type="text" value="[% report_meta.$meta_name | html %]" name="[% meta_name %]" id="form_[% meta_name %]">
+ [% END %]
+ </div>
+ [%- END %]
+ [%- END %]
+</div>
diff --git a/templates/web/default/report/new/councils_text_none.html b/templates/web/default/report/new/councils_text_none.html
index f991e031f..06a4bbe49 100644
--- a/templates/web/default/report/new/councils_text_none.html
+++ b/templates/web/default/report/new/councils_text_none.html
@@ -7,9 +7,11 @@
"We do not yet have details for the councils that cover this location.",
all_councils.size
);
-
+%]
+[%
loc("If you submit a problem here the subject and details of the problem will be public, but the problem will <strong>not</strong> be reported to the council.");
-
+%]
+[%
tprintf(
loc("You can help us by finding a contact email address for local problems for %s and emailing it to us at <a href='mailto:%s'>%s</a>."),
all_council_names.join( loc(' or ') ),
diff --git a/templates/web/default/report/new/fill_in_details_form.html b/templates/web/default/report/new/fill_in_details_form.html
index c428df514..b6b77c75a 100644
--- a/templates/web/default/report/new/fill_in_details_form.html
+++ b/templates/web/default/report/new/fill_in_details_form.html
@@ -79,6 +79,10 @@
[% END %]
[% END %]
+[%- IF category_extras %]
+[% PROCESS "report/new/category_extras.html" %]
+[%- END %]
+
[% IF c.cobrand.allow_photo_upload %]
[% IF field_errors.photo %]
<div class='form-error'>[% field_errors.photo %]</div>
diff --git a/templates/web/default/report/new/fill_in_details_text.html b/templates/web/default/report/new/fill_in_details_text.html
index 9ebb8107b..5d9716915 100644
--- a/templates/web/default/report/new/fill_in_details_text.html
+++ b/templates/web/default/report/new/fill_in_details_text.html
@@ -4,6 +4,9 @@
to help unless you leave as much detail as you can, so please describe the exact location of
the problem (e.g. on a wall), what it is, how long it has been there, a description (and a
photo of the problem if you have one), etc.');
+ IF category_extras;
+ ' ' _ loc('Some categories may require additional information.');
+ END;
ELSE;
loc('Please fill in details of the problem below.');
END;
diff --git a/templates/web/default/reports/cobrand_stats.html b/templates/web/default/reports/cobrand_stats.html
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/templates/web/default/reports/cobrand_stats.html
diff --git a/templates/web/default/reports/council.html b/templates/web/default/reports/council.html
index 0739e84e8..44f0040cb 100755
--- a/templates/web/default/reports/council.html
+++ b/templates/web/default/reports/council.html
@@ -75,6 +75,8 @@ Its area is now covered by <a href="/reports/Bedford">Bedford Borough Council</a
<h2>[% name %]</h2>
+[% INCLUDE 'reports/cobrand_stats.html' %]
+
[% IF c.cobrand.moniker == '' %]
<p class="promo">
FixMyStreet is now available for local council websites.
diff --git a/templates/web/emptyhomes/alert/index.html b/templates/web/emptyhomes/alert/index.html
new file mode 100644
index 000000000..cbb2b45f9
--- /dev/null
+++ b/templates/web/emptyhomes/alert/index.html
@@ -0,0 +1,5 @@
+[% INCLUDE 'header.html', title => loc('Local RSS feeds and email alerts') %]
+
+<h1>[% loc('Local RSS feeds and email alerts') %]</h1>
+
+[% INCLUDE 'footer.html' %]
diff --git a/templates/web/emptyhomes/around/display_location.html b/templates/web/emptyhomes/around/display_location.html
new file mode 100755
index 000000000..2b2a8e9f0
--- /dev/null
+++ b/templates/web/emptyhomes/around/display_location.html
@@ -0,0 +1,57 @@
+[%
+
+ url_skip = c.uri_for(
+ '/report/new',
+ {
+ pc => pc
+ latitude => short_latitude,
+ longitude => short_longitude,
+ skipped => 1,
+ }
+ );
+
+ PROCESS "maps/${map.type}.html";
+
+ INCLUDE 'header.html',
+ title => loc('Viewing a location')
+ robots => 'noindex,nofollow';
+%]
+
+<form action="[% c.uri_for('/report/new') %]" method="post" name="mapForm" id="mapForm" enctype="multipart/form-data">
+[% IF c.req.params.map_override %]
+<input type="hidden" name="map_override" value="[% c.req.params.map_override | html %]">
+[% END %]
+<input type="hidden" name="pc" value="[% pc | html %]">
+[% c.cobrand.form_elements('mapForm') %]
+
+<input type="hidden" name="latitude" id="fixmystreet.latitude" value="[% short_latitude | html %]">
+<input type="hidden" name="longitude" id="fixmystreet.longitude" value="[% short_longitude | html %]">
+
+[% map_html %]
+
+</div>
+<div id="side">
+
+<p id="text_map" class="banner">
+ [% loc( 'To <strong>report a problem</strong>, simply click on the map at the correct location.' ) %]
+ [%
+ tprintf(
+ loc("<small>If you cannot see the map, <a href='%s' rel='nofollow'>skip this step</a>.</small>"),
+ url_skip
+ )
+ %]
+ <span id="text_map_arrow"></span>
+</p>
+
+</div>
+
+<div style="display:none" id="side-form">
+[% INCLUDE "report/new/fill_in_details_form.html"
+ js = 1,
+ report.used_map = 1
+%]
+</div>
+
+</form>
+
+[% INCLUDE 'footer.html' %]
diff --git a/templates/web/emptyhomes/front/stats.html b/templates/web/emptyhomes/front/stats.html
new file mode 100644
index 000000000..cbb26fee1
--- /dev/null
+++ b/templates/web/emptyhomes/front/stats.html
@@ -0,0 +1,27 @@
+[%
+ USE Comma;
+ # Note - if we want to i18n the commas we should try
+ # 'Template::Plugin::Number::Format'
+%]
+
+[%
+ stats = c.cobrand.front_stats_data();
+
+ new_text =
+ stats.recency == '1 week'
+ ? nget(
+ "<big>%s</big> report in past week",
+ "<big>%s</big> reports in past week",
+ stats.new
+ )
+ : nget(
+ "<big>%s</big> report recently",
+ "<big>%s</big> reports recently",
+ stats.new
+ );
+
+%]
+
+<div id="front_stats">
+ <div>[% tprintf( new_text, stats.new ) | comma %]</div>
+</div>
diff --git a/templates/web/emptyhomes/header.html b/templates/web/emptyhomes/header.html
index d1198eada..7f4106f85 100644
--- a/templates/web/emptyhomes/header.html
+++ b/templates/web/emptyhomes/header.html
@@ -26,7 +26,6 @@
<ul>
<li><a href="/">[% loc("Report a problem") %]</a></li>
<li><a href="/reports">[% loc("All reports") %]</a></li>
- <li><a href="/alert">[% loc("Local alerts") %]</a></li>
<li><a href="/faq">[% loc("Help") %]</a></li>
<li><a href="/about">[% loc('About us') %]</a></li>
[% IF lang_code == 'en-gb' %]
diff --git a/templates/web/emptyhomes/index.html b/templates/web/emptyhomes/index.html
new file mode 100644
index 000000000..34cb0a1c0
--- /dev/null
+++ b/templates/web/emptyhomes/index.html
@@ -0,0 +1,40 @@
+[% INCLUDE 'header.html', title => '' %]
+
+[% IF error %]
+ <p class="error">[% error %]</p>
+[% END %]
+
+<p id="expl">
+ <strong>[% loc('Report empty properties') %]</strong>
+</p>
+
+[%
+ question
+ = c.cobrand.enter_postcode_text()
+ || loc("Enter a nearby GB postcode, or street name and area");
+%]
+
+<form action="[% c.uri_for('/around') %]" method="get" name="postcodeForm" id="postcodeForm">
+ <label for="pc">[% question %]:</label>
+ <span><input type="text" name="pc" value="" id="pc" size="10" maxlength="200">
+ <input type="submit" value="[% loc('Go') %]" id="submit">
+ </span>
+ [% c.cobrand.form_elements('postcodeForm') %]
+</form>
+
+<div id="front_intro">
+
+ <h2>[% loc('How to report a problem') %]</h2>
+
+ <ol>
+ <li>[% question %]</li>
+ <li>[% loc('Locate the problem on a map of the area') %]</li>
+ <li>[% loc('Enter details of the problem') %]</li>
+ <li>[% loc('We send it to the council on your behalf') %]</li>
+ </ol>
+
+ [% INCLUDE "front/stats.html" %]
+
+</div>
+
+[% INCLUDE 'footer.html' %]
diff --git a/templates/web/emptyhomes/report/display.html b/templates/web/emptyhomes/report/display.html
new file mode 100644
index 000000000..933a05948
--- /dev/null
+++ b/templates/web/emptyhomes/report/display.html
@@ -0,0 +1,32 @@
+[%
+ problem_title = loc('Viewing a problem') | html;
+ INCLUDE 'header.html'
+ title = problem_title
+ robots = 'noindex, nofollow'
+%]
+
+<div id="side">
+
+[% IF banner.id %]
+<p class="banner" id="[% banner.id %]">
+ [% banner.text %]
+</p>
+[% END %]
+
+<h1>Empty property report</h1>
+
+<p><em>[% problem.meta_line(c) | html %]
+[% IF problem.council %]
+ [% IF problem.whensent %]
+ <small class="council_sent_info"><br>[% problem.duration_string(c) %]</small>
+ [% END %]
+[% ELSE %]
+<br><small>[% loc('Not reported to council') %]</small>
+[% END %]
+
+</em></p>
+
+</div>
+
+[% INCLUDE 'footer.html' %]
+
diff --git a/templates/web/emptyhomes/report/new/all_councils_text.html b/templates/web/emptyhomes/report/new/councils_text_all.html
index 8bdad1c1f..8bdad1c1f 100644
--- a/templates/web/emptyhomes/report/new/all_councils_text.html
+++ b/templates/web/emptyhomes/report/new/councils_text_all.html
diff --git a/templates/web/emptyhomes/report/new/no_councils_text.html b/templates/web/emptyhomes/report/new/councils_text_none.html
index dbe9cd510..dbe9cd510 100644
--- a/templates/web/emptyhomes/report/new/no_councils_text.html
+++ b/templates/web/emptyhomes/report/new/councils_text_none.html
diff --git a/templates/web/emptyhomes/reports/council.html b/templates/web/emptyhomes/reports/council.html
new file mode 100755
index 000000000..8ba9bf1ca
--- /dev/null
+++ b/templates/web/emptyhomes/reports/council.html
@@ -0,0 +1,73 @@
+[% IF ward %]
+ [% name = "$ward.name, $council.name"
+ thing = loc('ward')
+ %]
+[% ELSE %]
+ [% name = council.name
+ thing = loc('council')
+ %]
+[% END %]
+
+[%
+ INCLUDE 'header.html',
+ title = tprintf(loc('%s - Summary reports'), name)
+ context = 'reports'
+%]
+
+[% IF children.size %]
+<h2 style="clear:right">[% loc('Wards of this council') %]</h2>
+<p>[% loc('Follow a ward link to view only reports within that ward.') %]</p>
+<ul>
+[% FOR child IN children.values.sort('name') %]
+<li><a href="[% child.url %]">[% child.name %]</a></li>
+[% END %]
+</ul>
+[% END %]
+
+<div id="side">
+
+[% IF council.generation_high == 10 AND c.cobrand.country == 'GB' %]
+<p id="unknown">This council no longer exists.
+[% IF council.name.match('Penwith|Kerrier|Carrick|Restormel|Caradon|North Cornwall') %]
+Its area is now covered by <a href="/reports/Cornwall">Cornwall Council</a>.
+[% ELSIF council.name.match('Durham|Easington|Sedgefield|Teesdale|Wear Valley|Derwentside|Chester le Street') %]
+Its area is now covered by <a href="/reports/Durham+County">Durham County Council</a>.
+[% ELSIF council.name.match('Blyth Valley|Wansbeck|Castle Morpeth|Tynedale|Alnwick|Berwick upon Tweed') %]
+Its area is now covered by <a href="/reports/Northumberland">Northumberland County Council</a>.
+[% ELSIF council.name.match('North Shropshire|Oswestry|Shrewsbury and Atcham|South Shropshire|Bridgnorth') %]
+Its area is now covered by <a href="/reports/Shropshire">Shropshire Council</a>.
+[% ELSIF council.name.match('Salisbury|West Wiltshire|Kennet|North Wiltshire') %]
+Its area is now covered by <a href="/reports/Wiltshire">Wiltshire Council</a>.
+[% ELSIF council.name.match('Ellesmere Port and Neston|Vale Royal|Chester') %]
+Its area is now covered by <a href="/reports/Cheshire+West+and+Chester">Cheshire West and Chester Council</a>.
+[% ELSIF council.name.match('Macclesfield|Congleton|Crewe and Nantwich') %]
+Its area is now covered by <a href="/reports/Cheshire+East">Cheshire East Council</a>.
+[% ELSIF council.name.match('Mid Bedfordshire|South Bedfordshire') %]
+Its area is now covered by <a href="/reports/Central+Bedfordshire">Central Bedfordshire Council</a>.
+[% ELSIF council.name.match('Cheshire') %]
+Its area is now covered by <a href="/reports/Cheshire+West+and+Chester">Cheshire West and Chester Council</a> or
+<a href="/reports/Cheshire+East">Cheshire East Council</a>.
+[% ELSIF council.name.match('Bedfordshire') %]
+Its area is now covered by <a href="/reports/Bedford">Bedford Borough Council</a> or
+<a href="/reports/Central+Bedfordshire">Central Bedfordshire Council</a>.
+[% END %]
+</p>
+[% END %]
+
+[% IF c.cobrand.all_councils_report %]
+ [% tprintf( loc('This is a summary of all reports for one %s.'), thing ) %]
+[% ELSE %]
+ [% tprintf( loc('This is a summary of all reports for this %s.'), thing ) %]
+[% END %]
+
+[% IF ward %]
+[% tprintf( loc('You can <a href="%s">view all reports for the council</a> or <a href="/reports">show all councils</a>.'), council_url ) %]
+[% ELSE %]
+[% loc('You can <a href="/reports">show all councils</a>.') %]
+[% END %]
+
+<h2>[% name %]</h2>
+
+</div>
+[% INCLUDE 'footer.html' %]
+
diff --git a/templates/web/emptyhomes/reports/index.html b/templates/web/emptyhomes/reports/index.html
index f2cd99cdb..db506679e 100755
--- a/templates/web/emptyhomes/reports/index.html
+++ b/templates/web/emptyhomes/reports/index.html
@@ -20,7 +20,7 @@
[%- ELSIF loop.count % 2 %] class="a"
[%- END -%]
>
-<td align="left"><a href="[% area.url %]">[% area.name %]</a></td>
+<td align="left">[% area.name %]</td>
<td>[% open.${area.id}.new or 0 %]</td>
<td>[% (open.${area.id}.older or 0) + (open.${area.id}.unknown or 0) %]</td>
<td>[% fixed.${area.id}.new or 0 %]</td>
diff --git a/templates/web/reading/footer.html b/templates/web/reading/footer.html
new file mode 100644
index 000000000..ec523aa97
--- /dev/null
+++ b/templates/web/reading/footer.html
@@ -0,0 +1,47 @@
+</div>
+</div>
+
+<h2 class="v">[% loc('Navigation') %]</h2>
+<ul id="navigation">
+<li><a href="/">[% loc("Report a problem") %]</a></li>
+<li id="nav_new"><a href="/my">[% loc("Your reports") %]</a></li>
+<li><a href="/reports/Reading">[% loc("All reports") %]</a></li>
+<li><a href="/alert[% pc ? '/list?pc=' : '' %][% pc | uri %]">[% loc("Local alerts") %]</a></li>
+<li><a href="/faq">[% loc("Help") %]</a></li>
+</ul>
+
+ <div style="clear:both"></div>
+ </div>
+ <div class="footer">
+ <div class="contact">
+ <p class="title">Contact</p>
+ <address>
+ Reading Borough Council<br />
+ Civic Centre<br />
+ Reading<br />
+ RG1 7AE
+ </address>
+ <div class="phone">
+ <p>Phone: 0118 937 3737<br />Text: 81722</p>
+ </div>
+ </div>
+ <div class="clear"></div>
+ </div>
+ </div>
+
+<!-- START OF eVisitAnalyst CODE -->
+<script language="JavaScript" type="text/javascript">
+var ID_section_15243615 = "";//Place section here.
+var ID_tt_15243615 = "t";
+var ID_uid_15243615 = "23137";
+</script>
+<script src="http://extra.evisitanalyst.com/eva.js" type="text/javascript"></script>
+<script src="http://extra.evisitanalyst.com/tag/evatrackclick.js" type="text/javascript"></script>
+<noscript>
+ <img src="http://extra.evisitanalyst.com/eva51/collect/?userid=23137&tt=t"
+ border="0" alt="eVisit" width="1" height="1">
+</noscript>
+<!-- END OF eVisitAnalyst CODE -->
+
+</body>
+</html>
diff --git a/templates/web/reading/header.html b/templates/web/reading/header.html
new file mode 100644
index 000000000..39281ed01
--- /dev/null
+++ b/templates/web/reading/header.html
@@ -0,0 +1,39 @@
+<!doctype html>
+<!--[if lt IE 7]><html class="no-js ie6 oldie" lang="[% lang_code %]"><![endif]-->
+<!--[if IE 7]> <html class="no-js ie7 oldie" lang="[% lang_code %]"><![endif]-->
+<!--[if IE 8]> <html class="no-js ie8 oldie" lang="[% lang_code %]"><![endif]-->
+<!--[if gt IE 8]><!--><html class="no-js" lang="[% lang_code %]"><!--<![endif]-->
+
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+<head id="ctl00_pageHead">
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+ <title>Reading Borough Council | FixMyStreet</title>
+ <link rel="shortcut icon" href="[% version('/cobrands/reading/images/favicon.ico') %]">
+ <link rel="stylesheet" type="text/css" href="[% version('/css/core.css') %]">
+ <link rel="stylesheet" type="text/css" href="[% version('/cobrands/reading/css/reading.css') %]" />
+ <link rel="stylesheet" type="text/css" href="[% version('/cobrands/reading/css/print3rdParty.css') %]" media="print"/>
+ <link rel="stylesheet" type="text/css" href="[% version('/cobrands/reading/css/css.css') %]" />
+
+ [% INCLUDE 'common_header_tags.html' %]
+
+</head>
+<body>
+ <div class="wrapper">
+ <div class="header" id="header">
+ <p id="reading-logo" class="thirdParty"><img src="/cobrands/reading/images/reading-borough-council-logo.gif" width="176" height="38" alt="reading borough council logo" class="printMe" /><a href="http://www.reading.gov.uk/" title="Click to return to home page">Reading Borough Council</a></p>
+ </div>
+
+ <div id="content">
+ <div class="thirdParty">
+ <!-- end of header -->
+
+ <ul id="meta">
+ [% IF c.user_exists %]
+ <li>[% tprintf(loc('Signed in as %s'), c.user.name || c.user.email) %]
+ <li><a href="/auth/sign_out">[% loc('Sign out') %]</a></li>
+ [% ELSE %]
+ <li>&nbsp;</li>
+ [% END %]
+ </ul>
+
+ <div id="wrapper"><div id="mysociety">
diff --git a/templates/web/reading/reports/cobrand_stats.html b/templates/web/reading/reports/cobrand_stats.html
new file mode 100644
index 000000000..80976c3a6
--- /dev/null
+++ b/templates/web/reading/reports/cobrand_stats.html
@@ -0,0 +1,5 @@
+<ul>
+ <li>Reports submitted via <a href="[% uri_for('/') %]">reading.fixmystreet.com</a>: [% stats.cobrand %]</li>
+ <li>Reports submitted via <a href="http://www.fixmystreet.com/">www.fixmystreet.com</a>: [% stats.main_site %]<br /><br />
+ Statistics date from launch of Reading FixMyStreet.</li>
+</ul>
diff --git a/templates/web/southampton/report/new/category.html b/templates/web/southampton/report/new/category.html
new file mode 100644
index 000000000..7c7748c78
--- /dev/null
+++ b/templates/web/southampton/report/new/category.html
@@ -0,0 +1,11 @@
+[% FILTER collapse %]
+[% IF category_options.size %]
+ <label for='form_category'>[% category_label | html %]</label>
+ <select name='category' id='form_category'>
+ [% FOREACH cat_op IN category_options %]
+ [% NEXT IF cat_op == 'Abandoned vehicles' %]
+ <option value='[% cat_op | html %]'[% ' selected' IF report.category == cat_op %]>[% cat_op | html %]</option>
+ [% END %]
+ </select>
+[% END %]
+[% END -%]
diff --git a/templates/web/southampton/report/new/form_heading.html b/templates/web/southampton/report/new/form_heading.html
new file mode 100644
index 000000000..deeb63e5d
--- /dev/null
+++ b/templates/web/southampton/report/new/form_heading.html
@@ -0,0 +1,4 @@
+<p>
+<br />
+<strong>Please report only one problem at a time.</strong>
+</p>
diff --git a/web/cobrands/reading/css/css.scss b/web/cobrands/reading/css/css.scss
new file mode 100644
index 000000000..81ab69fd2
--- /dev/null
+++ b/web/cobrands/reading/css/css.scss
@@ -0,0 +1,93 @@
+// Generics
+
+$header_back: #ecf5fd;
+$header_back_lighter: #ecf5fd;
+$header_colour: #439DC2;
+$header_darker: #ecf5fd;
+
+$map_width: 420px;
+
+@import "../../../css/_main.scss";
+
+p.thirdParty#reading-logo {
+ margin-top: 0px;
+ padding-bottom: 0px;
+}
+
+div#header {
+ border-bottom: solid 1px #CCC;
+}
+
+#header a:link, #header a:visited, div#header {
+ background-color: transparent;
+}
+
+a {
+ color: #9C2161;
+}
+
+body {
+ font-family: Helvetica, Arial, sans-serif;
+ font-size: 13.5px;
+ color: black;
+}
+
+#navigation {
+ margin-top: 8px;
+ a {
+ font-weight: bold;
+ }
+}
+
+#mysociety {
+
+ #map_box {
+ width: $map_width + 2;
+ }
+
+ #map {
+ width: $map_width;
+ height: $map_width;
+ }
+
+ dd {
+ margin-left: 40px;
+ }
+
+ div {
+ padding-top: 0.2em;
+ padding-bottom: 0.2em;
+ }
+
+ h3 {
+ font-size: 1.17em;
+ font-weight: bold;
+ margin: 1em 0em 1em 0em;
+ }
+
+ h2 {
+ font-weight: bold;
+ margin: 1em 0em 1em 0em;
+ }
+
+ ul, ol {
+ padding-left: 2em;
+ }
+
+ label {
+ width: 6em;
+ }
+
+ .fieldset div.checkbox, #problem_submit {
+ padding-left: 6.5em;
+ }
+
+ table {
+ border-collapse: separate;
+ border-spacing: 1px;
+ }
+
+ td {
+ padding: 3px;
+ }
+}
diff --git a/web/cobrands/reading/css/print3rdParty.css b/web/cobrands/reading/css/print3rdParty.css
new file mode 100644
index 000000000..f5b7ebc83
--- /dev/null
+++ b/web/cobrands/reading/css/print3rdParty.css
@@ -0,0 +1,33 @@
+body {
+ background: white;
+ font-size: 12pt;
+ color:#000;
+ }
+#access,
+.header .social, .nav, .footer {
+ display: none;
+}
+.wrapper, #content {
+ width: auto;
+ margin: 0 2%;
+ padding: 0;
+ border: 0;
+ float: none !important;
+ color: black;
+ background: transparent none;
+}
+p#logo img.printMe { display:block; vertical-align: bottom; }
+div#content {
+ margin-left: 5%;
+ padding-top: 1em;
+ border-top: 1px solid #9c2161;
+}
+p#logo {
+ margin-bottom: -8px;
+}
+a:link, a:visited {
+ color: #9c2161;
+ background: transparent;
+ font-weight: bold;
+ text-decoration: underline;
+} \ No newline at end of file
diff --git a/web/cobrands/reading/css/reading.css b/web/cobrands/reading/css/reading.css
new file mode 100644
index 000000000..4daef13c9
--- /dev/null
+++ b/web/cobrands/reading/css/reading.css
@@ -0,0 +1,176 @@
+html, body, div, span, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp,
+small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section, summary,
+time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+}
+article, aside, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section {
+ display: block;
+}
+blockquote, q { quotes: none; }
+blockquote:before, blockquote:after,
+q:before, q:after { content: ''; content: none; }
+ins { background-color: #ff9; color: #000; text-decoration: none; }
+mark { background-color: #ff9; color: #000; font-style: italic; font-weight: bold; }
+del { text-decoration: line-through; }
+abbr[title], dfn[title] { border-bottom: 1px dotted; cursor: help; }
+table { border-collapse: collapse; border-spacing: 0; }
+hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; }
+input, select { vertical-align: middle; }
+body { font:13px/1.231 sans-serif; *font-size:small; }
+select, input, textarea, button { font:99% sans-serif; }
+pre, code, kbd, samp { font-family: monospace, sans-serif; }
+html { overflow-y: scroll; }
+a:hover, a:active { outline: none; }
+ul, ol { margin-left: 0; }
+ol { list-style-type: decimal; }
+nav ul, nav li,
+.nav ul, .nav li{ margin: 0; list-style:none; list-style-image: none; }
+small { font-size: 85%; }
+strong, th { font-weight: bold; }
+td { vertical-align: top; }
+sub, sup { font-size: 75%; line-height: 0; position: relative; }
+sup { top: -0.5em; }
+sub { bottom: -0.25em; }
+pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; padding: 15px; }
+textarea { overflow: auto; }
+.ie6 legend, .ie7 legend { margin-left: -7px; }
+input[type="radio"] { vertical-align: text-bottom; }
+input[type="checkbox"] { vertical-align: bottom; }
+.ie7 input[type="checkbox"] { vertical-align: baseline; }
+.ie6 input { vertical-align: text-bottom; }
+label, input[type="button"], input[type="submit"], input[type="image"], button { cursor: pointer; }
+button, input, select, textarea { margin: 0; }
+input:valid, textarea:valid { }
+input:invalid, textarea:invalid { border-radius: 1px; -moz-box-shadow: 0px 0px 5px red; -webkit-box-shadow: 0px 0px 5px red; box-shadow: 0px 0px 5px red; }
+.no-boxshadow input:invalid, .no-boxshadow textarea:invalid { background-color: #f0dddd; }
+button { width: auto; overflow: visible; }
+img { -ms-interpolation-mode: bicubic; }
+body {
+ margin:0;
+ padding:0;
+ font:normal 14px Helvetica, Arial, serif;
+}
+
+
+
+/*Main Structure*/
+.wrapper {
+ max-width: 1376px;
+ margin-bottom:20px;
+}
+header, nav, footer,
+.header, .nav, .footer,
+#content{
+ margin:0 20px;
+}
+
+
+.header {}
+
+p#reading-logo{
+ text-indent:-9999px;
+ background:url("/cobrands/reading/images/reading-borough-council-logo.gif") top left no-repeat;
+ width:176px;
+ padding-bottom:20px;
+}
+p.thirdParty#reading-logo { margin-top:35px;}
+p#reading-logo img.printMe { display:none;}
+p#reading-logo a{
+ display:block;
+ height:38px;
+}
+
+#content{
+ margin-top:30px;
+}
+#content h1 {
+ font-weight: bold;
+ font-size:1.6em;
+ margin-bottom:1em;
+}
+.thirdParty { }
+.thirdParty p { margin-bottom:1em;}
+ .footer .contact {
+ width:44%!important;
+ }
+ .footer .links {
+ width:55%!important;
+ margin-right:0!important;
+ }
+ .footer .links ul li {
+ display:inline;
+ font-size:12px;
+ margin-right:3px;
+ border-right:1px solid #999;
+ padding-right:4px;
+ }
+ .footer .links ul li.last {
+ margin-right:0;
+ border:none;
+ paddin-right:0;
+ }
+ .footer .partners {
+ width:100%!important;
+ }
+footer,
+.footer{
+ margin-top:15px;
+}
+footer h3,
+.footer h3{
+ border-bottom:1px solid #b4b4b4;
+ padding-bottom:3px;
+ margin-bottom:10px;
+}
+footer p.title,
+.footer p.title{
+ border-bottom:1px solid #b4b4b4;
+ padding-bottom:3px;
+ margin-bottom:10px;
+}
+footer .contact,
+.footer .contact {
+ width:38.9%;
+ margin-top:15px;
+}
+footer .links,
+.footer .links {
+ width:15%;
+ margin-top:15px;
+}
+footer .partners,
+.footer .partners {
+ width:44%;
+ margin-top:15px;
+}
+footer h4,
+.footer h4 {display:inline;}
+footer .contact,
+footer .links,
+.footer .contact,
+.footer .links {
+ margin-right:1%;
+}
+footer .contact address, footer .contact .phone,
+.footer .contact address, .footer .contact .phone{
+ width:49%;
+}
+footer .contact,footer .links,footer .contact address,footer .contact .phone,footer .partners,
+.footer .contact,.footer .links,.footer .contact address,.footer .contact .phone,.footer .partners{
+ float:left;
+ font-style:normal
+}
+.clear { clear:both;}
+
diff --git a/web/cobrands/reading/images/favicon.ico b/web/cobrands/reading/images/favicon.ico
new file mode 100755
index 000000000..2619d70e9
--- /dev/null
+++ b/web/cobrands/reading/images/favicon.ico
Binary files differ
diff --git a/web/cobrands/reading/images/reading-borough-council-logo.gif b/web/cobrands/reading/images/reading-borough-council-logo.gif
new file mode 100644
index 000000000..8532e63ea
--- /dev/null
+++ b/web/cobrands/reading/images/reading-borough-council-logo.gif
Binary files differ
diff --git a/web/css/_main.scss b/web/css/_main.scss
index 383e099a1..305a9e43e 100644
--- a/web/css/_main.scss
+++ b/web/css/_main.scss
@@ -55,14 +55,6 @@ select, input, textarea {
background-color: $header_back;
}
- p.promo {
- border-top: 1px solid #bbb;
- border-bottom: 1px solid #bbb;
- background-color: #eee;
- text-align: center;
- padding: 0 0.5em;
- }
-
}
// Site layout
@@ -106,7 +98,7 @@ select, input, textarea {
#meta {
list-style-type: none;
- margin: 0.25em 0 0 1em;
+ margin: 30px 0 0.5em 1em; /* (was 0.25em 0 0 1em) forced to drop below promo (fix before the freeze) image */
padding: 0;
font-size: 0.875em;
li {
@@ -164,6 +156,31 @@ select, input, textarea {
background-position: 100% 0;
}
+#promo {
+ position: absolute;
+ top: 3.3em;
+ left: 10px;
+ a {
+ display: block;
+ padding:0;
+ border:2px solid white;
+ img {
+ margin:0px;
+ }
+ }
+ a:hover {
+ border:2px dotted #70CFE3;
+ }
+}
+
+.promo-background {
+ margin-top:-4px;
+ background-image:url(/i/promo-icicles.gif);
+ background-repeat:repeat-x;
+ background-position:top left;
+ padding-top:3em;
+}
+
#logo {
border: none;
position: absolute;
@@ -211,6 +228,18 @@ select, input, textarea {
#logo {
display: none;
}
+ #promo {
+ position: static;
+ width: 116px;
+ top: none;
+ text-align: center;
+ margin: 0.25em auto;
+ display:block;
+ }
+ .promo-background img#logo {
+ border:2px solid #fff;
+ background-color: #fff;
+ }
#header {
font-size: 150%;
}
diff --git a/web/css/core.scss b/web/css/core.scss
index 0f98956de..03651b1e6 100644
--- a/web/css/core.scss
+++ b/web/css/core.scss
@@ -230,6 +230,14 @@ $map_width: 500px;
margin-bottom: 1em;
}
+ #category_meta {
+ margin-bottom: 30px;
+ }
+
+ #category_meta label {
+ width: 10em;
+ }
+
// Map
#map_box {
diff --git a/web/i/mysociety-on-white.gif b/web/i/mysociety-on-white.gif
new file mode 100644
index 000000000..0f8a10296
--- /dev/null
+++ b/web/i/mysociety-on-white.gif
Binary files differ
diff --git a/web/i/promo-fb4tf.gif b/web/i/promo-fb4tf.gif
new file mode 100644
index 000000000..d2d5ca1e0
--- /dev/null
+++ b/web/i/promo-fb4tf.gif
Binary files differ
diff --git a/web/i/promo-icicles.gif b/web/i/promo-icicles.gif
new file mode 100644
index 000000000..bac92fb17
--- /dev/null
+++ b/web/i/promo-icicles.gif
Binary files differ
diff --git a/web/js/OpenLayers.fixmystreet.js b/web/js/OpenLayers.fixmystreet.js
index 9616df8b6..eab691def 100644
--- a/web/js/OpenLayers.fixmystreet.js
+++ b/web/js/OpenLayers.fixmystreet.js
@@ -1100,7 +1100,15 @@ return true;}
return false;},deactivate:function(){var deactivated=OpenLayers.Strategy.prototype.deactivate.call(this);if(deactivated){this.layer.events.un({"refresh":this.load,"visibilitychanged":this.load,scope:this});}
return deactivated;},load:function(options){var layer=this.layer;layer.events.triggerEvent("loadstart");layer.protocol.read(OpenLayers.Util.applyDefaults({callback:OpenLayers.Function.bind(this.merge,this,layer.map.getProjectionObject()),filter:layer.filter},options));layer.events.un({"visibilitychanged":this.load,scope:this});},merge:function(mapProjection,resp){var layer=this.layer;layer.destroyFeatures();var features=resp.features;if(features&&features.length>0){if(!mapProjection.equals(layer.projection)){var geom;for(var i=0,len=features.length;i<len;++i){geom=features[i].geometry;if(geom){geom.transform(layer.projection,mapProjection);}}}
layer.addFeatures(features);}
-layer.events.triggerEvent("loadend");},CLASS_NAME:"OpenLayers.Strategy.Fixed"});OpenLayers.Date={toISOString:(function(){if("toISOString"in Date.prototype){return function(date){return date.toISOString();};}else{function pad(num,len){var str=num+"";while(str.length<len){str="0"+str;}
+layer.events.triggerEvent("loadend");},CLASS_NAME:"OpenLayers.Strategy.Fixed"});OpenLayers.Handler.Pinch=OpenLayers.Class(OpenLayers.Handler,{started:false,stopDown:false,pinching:false,last:null,start:null,initialize:function(control,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,arguments);},touchstart:function(evt){var propagate=true;this.pinching=false;if(OpenLayers.Event.isMultiTouch(evt)){this.started=true;this.last=this.start={distance:this.getDistance(evt.touches),delta:0,scale:1};this.callback("start",[evt,this.start]);propagate=!this.stopDown;}else{this.started=false;this.start=null;this.last=null;}
+OpenLayers.Event.stop(evt);return propagate;},touchmove:function(evt){if(this.started&&OpenLayers.Event.isMultiTouch(evt)){this.pinching=true;var current=this.getPinchData(evt);this.callback("move",[evt,current]);this.last=current;OpenLayers.Event.stop(evt);}
+return true;},touchend:function(evt){if(this.started){this.started=false;this.pinching=false;this.callback("done",[evt,this.start,this.last]);this.start=null;this.last=null;}
+return true;},activate:function(){var activated=false;if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){this.pinching=false;activated=true;}
+return activated;},deactivate:function(){var deactivated=false;if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){this.started=false;this.pinching=false;this.start=null;this.last=null;deactivated=true;}
+return deactivated;},getDistance:function(touches){var t0=touches[0];var t1=touches[1];return Math.sqrt(Math.pow(t0.clientX-t1.clientX,2)+
+Math.pow(t0.clientY-t1.clientY,2));},getPinchData:function(evt){var distance=this.getDistance(evt.touches);var scale=distance/this.start.distance;return{distance:distance,delta:this.last.distance-distance,scale:scale};},CLASS_NAME:"OpenLayers.Handler.Pinch"});OpenLayers.Control.PinchZoom=OpenLayers.Class(OpenLayers.Control,{type:OpenLayers.Control.TYPE_TOOL,containerOrigin:null,pinchOrigin:null,currentCenter:null,autoActivate:true,initialize:function(options){OpenLayers.Control.prototype.initialize.apply(this,arguments);this.handler=new OpenLayers.Handler.Pinch(this,{start:this.pinchStart,move:this.pinchMove,done:this.pinchDone},this.handlerOptions);},activate:function(){var activated=OpenLayers.Control.prototype.activate.apply(this,arguments);if(activated){this.map.events.on({moveend:this.updateContainerOrigin,scope:this});this.updateContainerOrigin();}
+return activated;},deactivate:function(){var deactivated=OpenLayers.Control.prototype.deactivate.apply(this,arguments);if(this.map&&this.map.events){this.map.events.un({moveend:this.updateContainerOrigin,scope:this});}
+return deactivated;},updateContainerOrigin:function(){var container=this.map.layerContainerDiv;this.containerOrigin={x:parseInt(container.style.left,10),y:parseInt(container.style.top,10)};},pinchStart:function(evt,pinchData){this.pinchOrigin=evt.xy;this.currentCenter=evt.xy;},pinchMove:function(evt,pinchData){var scale=pinchData.scale;var containerOrigin=this.containerOrigin;var pinchOrigin=this.pinchOrigin;var current=evt.xy;var dx=Math.round((current.x-pinchOrigin.x)+(scale-1)*(containerOrigin.x-pinchOrigin.x));var dy=Math.round((current.y-pinchOrigin.y)+(scale-1)*(containerOrigin.y-pinchOrigin.y));this.applyTransform("translate("+dx+"px, "+dy+"px) scale("+scale+")");this.currentCenter=current;},applyTransform:function(transform){var style=this.map.layerContainerDiv.style;style['-webkit-transform']=transform;style['-moz-transform']=transform;},pinchDone:function(evt,start,last){this.applyTransform("");var zoom=this.map.getZoomForResolution(this.map.getResolution()/last.scale,true);if(zoom!==this.map.getZoom()||!this.currentCenter.equals(this.pinchOrigin)){var resolution=this.map.getResolutionForZoom(zoom);var location=this.map.getLonLatFromPixel(this.pinchOrigin);var zoomPixel=this.currentCenter;var size=this.map.getSize();location.lon+=resolution*((size.w/2)-zoomPixel.x);location.lat-=resolution*((size.h/2)-zoomPixel.y);this.map.setCenter(location,zoom);}},CLASS_NAME:"OpenLayers.Control.PinchZoom"});OpenLayers.Date={toISOString:(function(){if("toISOString"in Date.prototype){return function(date){return date.toISOString();};}else{function pad(num,len){var str=num+"";while(str.length<len){str="0"+str;}
return str;}
return function(date){var str;if(isNaN(date.getTime())){str="Invalid Date";}else{str=date.getUTCFullYear()+"-"+
pad(date.getUTCMonth()+1,2)+"-"+
diff --git a/web/js/fixmystreet.js b/web/js/fixmystreet.js
index 291e096f8..3bf30d9a6 100644
--- a/web/js/fixmystreet.js
+++ b/web/js/fixmystreet.js
@@ -3,6 +3,24 @@
* FixMyStreet JavaScript
*/
+function form_category_onchange() {
+ $.getJSON('/report/new/category_extras', {
+ latitude: fixmystreet.latitude,
+ longitude: fixmystreet.longitude,
+ category: this.options[ this.selectedIndex ].text,
+ }, function(data) {
+ if ( data.category_extra ) {
+ if ( $('#category_meta').size() ) {
+ $('#category_meta').html( data.category_extra);
+ } else {
+ $('#form_category_row').after( data.category_extra );
+ }
+ } else {
+ $('#category_meta').empty();
+ }
+ });
+}
+
$(function(){
$('html').removeClass('no-js').addClass('js');
@@ -123,6 +141,9 @@ $(function(){
timer = window.setTimeout(email_alert_close, 2000);
});
+
+ $('#form_category').change( form_category_onchange );
+
// Geolocation
if (geo_position_js.init()) {
$('#postcodeForm').append('<p id="geolocate_para">Or <a href="#" id="geolocate_link">locate me automatically</a>').css({ "padding-bottom": "0.5em" });
diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js
index 0f9974222..b911b7c71 100644
--- a/web/js/map-OpenLayers.js
+++ b/web/js/map-OpenLayers.js
@@ -144,9 +144,9 @@ function fixmystreet_onload() {
$('#all_pins_link').click(function(e) {
e.preventDefault();
fixmystreet.markers.setVisibility(true);
- var welsh = 0;
var texts = [
'en', 'Include stale reports', 'Hide stale reports',
+ 'nb', 'Inkluder utdaterte problemer', 'Skjul utdaterte rapporter',
'cy', 'Cynnwys hen adroddiadau', 'Cuddio hen adroddiadau'
];
for (var i=0; i<texts.length; i+=3) {
@@ -164,6 +164,8 @@ function fixmystreet_onload() {
}
if (lang == 'cy') {
document.getElementById('hide_pins_link').innerHTML = 'Cuddio pinnau';
+ } else if (lang == 'nb') {
+ document.getElementById('hide_pins_link').innerHTML = 'Gjem nĂ¥ler';
} else {
document.getElementById('hide_pins_link').innerHTML = 'Hide pins';
}
@@ -315,6 +317,11 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, {
}, function(data) {
$('#councils_text').html(data.councils_text);
$('#form_category_row').html(data.category);
+ /* Need to reset this here as it gets removed when we replace
+ the HTML for the dropdown */
+ if ( data.has_open311 > 0 ) {
+ $('#form_category').change( form_category_onchange );
+ }
});
$('#side-form').show();
$('#side').hide();
diff --git a/web/js/map-bing-ol.js b/web/js/map-bing-ol.js
index 391f837c6..9f8dc9599 100644
--- a/web/js/map-bing-ol.js
+++ b/web/js/map-bing-ol.js
@@ -88,11 +88,13 @@ OpenLayers.Layer.Bing = OpenLayers.Class(OpenLayers.Layer.XYZ, {
"http://c.tilma.mysociety.org/sv/${z}/${x}/${y}.png"
];
} else {
+ var type = '';
+ if (z > 10) type = '&productSet=mmOS';
var url = [
- "http://ecn.t0.tiles.virtualearth.net/tiles/r${id}.png?g=701&productSet=mmOS",
- "http://ecn.t1.tiles.virtualearth.net/tiles/r${id}.png?g=701&productSet=mmOS",
- "http://ecn.t2.tiles.virtualearth.net/tiles/r${id}.png?g=701&productSet=mmOS",
- "http://ecn.t3.tiles.virtualearth.net/tiles/r${id}.png?g=701&productSet=mmOS"
+ "http://ecn.t0.tiles.virtualearth.net/tiles/r${id}.png?g=701" + type,
+ "http://ecn.t1.tiles.virtualearth.net/tiles/r${id}.png?g=701" + type,
+ "http://ecn.t2.tiles.virtualearth.net/tiles/r${id}.png?g=701" + type,
+ "http://ecn.t3.tiles.virtualearth.net/tiles/r${id}.png?g=701" + type,
];
}
var s = '' + x + y + z;