aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/open311-populate-service-list8
-rw-r--r--bin/open311-update-reports21
-rwxr-xr-xbin/send-comments24
-rwxr-xr-xbin/update-all-reports37
-rwxr-xr-xbin/zurich-overdue-alert83
-rw-r--r--conf/crontab.ugly51
-rw-r--r--conf/general.yml-example8
-rw-r--r--db/alert_types.sql8
-rw-r--r--db/alert_types_eha.sql8
-rw-r--r--db/schema.sql124
-rw-r--r--db/schema_0027-rename_open311conf.sql12
-rw-r--r--db/schema_0028-rename_from_council.sql5
-rw-r--r--db/schema_0029-rename_contacts_area_id.sql31
-rw-r--r--db/schema_0030-add-body-name.sql7
-rw-r--r--db/schema_0031-rename-problem-council-column.sql5
-rw-r--r--db/schema_0032-add-from_body-reference.sql6
-rw-r--r--db/schema_0033-body-areas-many-many.sql15
-rw-r--r--db/schema_0034-add-body-parent.sql5
-rw-r--r--locale/FixMyStreet.po870
-rw-r--r--locale/cy_GB.UTF-8/LC_MESSAGES/EmptyHomes.po1367
-rw-r--r--locale/de_CH.UTF-8/LC_MESSAGES/FixMyStreet.po1465
-rw-r--r--locale/nb_NO.UTF-8/LC_MESSAGES/FixMyStreet.po1444
-rw-r--r--locale/nn_NO.UTF-8/LC_MESSAGES/FixMyStreet.po1430
-rw-r--r--notes/cobranding.txt2
-rw-r--r--notes/states.txt2
-rwxr-xr-xperllib/CronFns.pm1
-rw-r--r--perllib/FixMyStreet/App.pm9
-rw-r--r--perllib/FixMyStreet/App/Controller/Admin.pm473
-rw-r--r--perllib/FixMyStreet/App/Controller/Alert.pm6
-rw-r--r--perllib/FixMyStreet/App/Controller/Around.pm73
-rw-r--r--perllib/FixMyStreet/App/Controller/Auth.pm2
-rw-r--r--perllib/FixMyStreet/App/Controller/Council.pm52
-rw-r--r--perllib/FixMyStreet/App/Controller/Dashboard.pm21
-rwxr-xr-xperllib/FixMyStreet/App/Controller/JS.pm4
-rw-r--r--perllib/FixMyStreet/App/Controller/JSON.pm20
-rw-r--r--perllib/FixMyStreet/App/Controller/Open311.pm24
-rw-r--r--perllib/FixMyStreet/App/Controller/Photo.pm3
-rw-r--r--perllib/FixMyStreet/App/Controller/Report.pm41
-rw-r--r--perllib/FixMyStreet/App/Controller/Report/New.pm122
-rw-r--r--perllib/FixMyStreet/App/Controller/Report/Update.pm8
-rw-r--r--perllib/FixMyStreet/App/Controller/Reports.pm360
-rwxr-xr-xperllib/FixMyStreet/App/Controller/Rss.pm11
-rw-r--r--perllib/FixMyStreet/App/Controller/Tokens.pm22
-rw-r--r--perllib/FixMyStreet/App/View/Web.pm12
-rw-r--r--perllib/FixMyStreet/Cobrand/Default.pm80
-rw-r--r--perllib/FixMyStreet/Cobrand/FiksGataMi.pm23
-rw-r--r--perllib/FixMyStreet/Cobrand/LichfieldDC.pm2
-rw-r--r--perllib/FixMyStreet/Cobrand/Oxfordshire.pm2
-rw-r--r--perllib/FixMyStreet/Cobrand/SeeSomething.pm8
-rw-r--r--perllib/FixMyStreet/Cobrand/UK.pm88
-rw-r--r--perllib/FixMyStreet/Cobrand/UKCouncils.pm14
-rw-r--r--perllib/FixMyStreet/Cobrand/Zurich.pm444
-rw-r--r--perllib/FixMyStreet/DB/Result/Body.pm108
-rw-r--r--perllib/FixMyStreet/DB/Result/BodyArea.pm33
-rw-r--r--perllib/FixMyStreet/DB/Result/Comment.pm5
-rw-r--r--perllib/FixMyStreet/DB/Result/Contact.pm17
-rw-r--r--perllib/FixMyStreet/DB/Result/ContactsHistory.pm6
-rw-r--r--perllib/FixMyStreet/DB/Result/Open311conf.pm61
-rw-r--r--perllib/FixMyStreet/DB/Result/Problem.pm136
-rw-r--r--perllib/FixMyStreet/DB/Result/Token.pm1
-rw-r--r--perllib/FixMyStreet/DB/Result/User.pm60
-rw-r--r--perllib/FixMyStreet/DB/ResultSet/AlertType.pm10
-rw-r--r--perllib/FixMyStreet/DB/ResultSet/Body.pm17
-rw-r--r--perllib/FixMyStreet/DB/ResultSet/Nearby.pm7
-rw-r--r--perllib/FixMyStreet/DB/ResultSet/Problem.pm97
-rw-r--r--perllib/FixMyStreet/Geocode.pm2
-rw-r--r--perllib/FixMyStreet/Geocode/Zurich.pm14
-rw-r--r--perllib/FixMyStreet/Map.pm2
-rw-r--r--perllib/FixMyStreet/Map/Zurich.pm10
-rw-r--r--perllib/FixMyStreet/SendReport.pm22
-rw-r--r--perllib/FixMyStreet/SendReport/Barnet.pm8
-rw-r--r--perllib/FixMyStreet/SendReport/Email.pm37
-rw-r--r--perllib/FixMyStreet/SendReport/EmptyHomes.pm23
-rw-r--r--perllib/FixMyStreet/SendReport/NI.pm8
-rw-r--r--perllib/FixMyStreet/SendReport/Open311.pm26
-rw-r--r--perllib/FixMyStreet/SendReport/Zurich.pm58
-rw-r--r--perllib/FixMyStreet/TestMech.pm34
-rw-r--r--perllib/Open311/GetServiceRequestUpdates.pm30
-rw-r--r--perllib/Open311/GetUpdates.pm82
-rw-r--r--perllib/Open311/PopulateServiceList.pm61
-rw-r--r--perllib/Utils.pm7
-rw-r--r--t/app/controller/admin.t116
-rw-r--r--t/app/controller/alert_new.t6
-rw-r--r--t/app/controller/around.t2
-rw-r--r--t/app/controller/dashboard.t14
-rw-r--r--t/app/controller/index.t4
-rw-r--r--t/app/controller/json.t8
-rw-r--r--t/app/controller/questionnaire.t2
-rw-r--r--t/app/controller/report_display.t114
-rw-r--r--t/app/controller/report_interest_count.t40
-rw-r--r--t/app/controller/report_new.t88
-rw-r--r--t/app/controller/report_new_open311.t16
-rw-r--r--t/app/controller/report_updates.t26
-rw-r--r--t/app/controller/reports.t13
-rw-r--r--t/app/controller/rss.t64
-rw-r--r--t/app/model/alert_type.t8
-rw-r--r--t/app/model/problem.t78
-rw-r--r--t/app/sendreport/email.t13
-rw-r--r--t/cobrand/closest.t2
-rw-r--r--t/cobrand/get_body_sender.t38
-rw-r--r--t/cobrand/get_council_sender.t30
-rw-r--r--t/cobrand/zurich.t168
-rw-r--r--t/map/tilma/original.t2
-rw-r--r--t/open311/getservicerequestupdates.t18
-rw-r--r--t/open311/getupdates.t198
-rw-r--r--t/open311/populate-service-list.t114
-rw-r--r--templates/email/default/submit-brent.txt2
-rw-r--r--templates/email/default/submit.txt2
-rw-r--r--templates/email/fiksgatami/nn/submit.txt2
-rw-r--r--templates/email/fiksgatami/submit.txt2
-rw-r--r--templates/email/zurich/alert-moderation-overdue.txt15
-rw-r--r--templates/email/zurich/alert-overdue.txt12
-rw-r--r--templates/email/zurich/alert-update.txt11
-rw-r--r--templates/email/zurich/problem-closed.txt17
-rwxr-xr-xtemplates/email/zurich/problem-confirm.txt27
-rw-r--r--templates/email/zurich/problem-external.txt15
-rw-r--r--templates/email/zurich/problem-rejected.txt12
-rwxr-xr-xtemplates/email/zurich/reply-autoresponse.txt8
-rw-r--r--templates/email/zurich/submit-external-personal.txt13
-rw-r--r--templates/email/zurich/submit-external.txt8
-rwxr-xr-xtemplates/email/zurich/submit-feedback-pending.txt10
-rw-r--r--templates/email/zurich/submit-in-progress.txt10
-rw-r--r--[-rwxr-xr-x]templates/email/zurich/submit.txt16
-rw-r--r--templates/web/bromley/report/display.html4
-rw-r--r--templates/web/bromley/report/new/fill_in_details_form.html4
-rw-r--r--templates/web/default/admin/bodies.html48
-rw-r--r--templates/web/default/admin/body-form.html85
-rw-r--r--templates/web/default/admin/body.html (renamed from templates/web/default/admin/council_contacts.html)84
-rw-r--r--templates/web/default/admin/body_edit.html (renamed from templates/web/default/admin/council_edit.html)43
-rw-r--r--templates/web/default/admin/council_list.html47
-rw-r--r--templates/web/default/admin/edit-league.html14
-rw-r--r--templates/web/default/admin/flagged.html (renamed from templates/web/default/admin/list_flagged.html)2
-rw-r--r--templates/web/default/admin/list_updates.html4
-rw-r--r--templates/web/default/admin/problem_row.html8
-rw-r--r--templates/web/default/admin/report_blocks.html8
-rw-r--r--templates/web/default/admin/report_edit.html32
-rw-r--r--templates/web/default/admin/reports.html (renamed from templates/web/default/admin/search_reports.html)6
-rw-r--r--templates/web/default/admin/stats.html6
-rw-r--r--templates/web/default/admin/timeline.html2
-rw-r--r--templates/web/default/admin/update_edit.html9
-rw-r--r--templates/web/default/admin/user-form.html18
-rw-r--r--templates/web/default/admin/user_edit.html16
-rw-r--r--templates/web/default/admin/users.html (renamed from templates/web/default/admin/search_users.html)21
-rw-r--r--templates/web/default/around/around_map_list_items.html2
-rwxr-xr-xtemplates/web/default/around/display_location.html5
-rw-r--r--templates/web/default/around/on_map_list_items.html2
-rw-r--r--templates/web/default/around/postcode_form.html2
-rw-r--r--templates/web/default/auth/sign_out.html3
-rw-r--r--templates/web/default/auth/token.html2
-rw-r--r--templates/web/default/common_header_tags.html2
-rw-r--r--templates/web/default/contact/index.html8
-rw-r--r--templates/web/default/email_sent.html46
-rw-r--r--templates/web/default/front/stats.html2
-rw-r--r--templates/web/default/index.html2
-rw-r--r--templates/web/default/js/translation_strings.html (renamed from templates/web/default/js/validation_strings.html)19
-rw-r--r--templates/web/default/my/my.html6
-rw-r--r--templates/web/default/questionnaire/completed.html2
-rw-r--r--templates/web/default/report/_main.html2
-rw-r--r--templates/web/default/report/_support.html2
-rw-r--r--templates/web/default/report/new/category.html3
-rw-r--r--templates/web/default/report/new/councils_text.html4
-rw-r--r--templates/web/default/report/new/councils_text_all.html11
-rw-r--r--templates/web/default/report/new/councils_text_none.html7
-rw-r--r--templates/web/default/report/new/councils_text_some.html8
-rw-r--r--templates/web/default/report/new/fill_in_details_form.html4
-rw-r--r--templates/web/default/report/update-form.html2
-rw-r--r--templates/web/default/report/updates.html16
-rwxr-xr-xtemplates/web/default/reports/_list-entry.html4
-rwxr-xr-xtemplates/web/default/reports/body.html12
-rwxr-xr-xtemplates/web/default/reports/index.html16
-rw-r--r--templates/web/default/tokens/confirm_problem.html9
-rw-r--r--templates/web/emptyhomes/report/new/councils_text_all.html2
-rw-r--r--templates/web/emptyhomes/report/new/councils_text_none.html2
-rwxr-xr-xtemplates/web/emptyhomes/reports/index.html10
-rw-r--r--templates/web/emptyhomes/tokens/confirm_problem.html2
-rwxr-xr-xtemplates/web/fiksgatami/nn/reports/index.html16
-rwxr-xr-xtemplates/web/fiksgatami/reports/index.html14
-rw-r--r--templates/web/fixmybarangay/around/tabbed_lists.html2
-rw-r--r--templates/web/fixmybarangay/header.html2
-rw-r--r--templates/web/fixmybarangay/report/_message_manager.html2
-rwxr-xr-xtemplates/web/fixmybarangay/reports/index.html17
-rw-r--r--templates/web/fixmystreet/around/postcode_form.html2
-rw-r--r--templates/web/fixmystreet/contact/index.html8
-rw-r--r--templates/web/fixmystreet/my/my.html2
-rw-r--r--templates/web/fixmystreet/report/_item.html13
-rw-r--r--templates/web/fixmystreet/report/display.html12
-rw-r--r--templates/web/fixmystreet/report/new/fill_in_details_form.html8
-rw-r--r--templates/web/fixmystreet/report/new/notes.html2
-rw-r--r--templates/web/fixmystreet/report/update-form.html6
-rw-r--r--templates/web/fixmystreet/report/updates-sidebar-notes.html2
-rw-r--r--templates/web/seesomething/js/translation_strings.html (renamed from templates/web/seesomething/js/validation_strings.html)4
-rw-r--r--templates/web/zurich/admin/body-form.html50
-rw-r--r--templates/web/zurich/admin/body.html67
-rw-r--r--templates/web/zurich/admin/edit-league.html0
-rw-r--r--templates/web/zurich/admin/header.html22
-rw-r--r--templates/web/zurich/admin/index-dm.html36
-rw-r--r--templates/web/zurich/admin/index-sdm.html33
-rw-r--r--templates/web/zurich/admin/index.html23
-rw-r--r--templates/web/zurich/admin/list_updates.html16
-rw-r--r--templates/web/zurich/admin/problem_row.html38
-rw-r--r--templates/web/zurich/admin/report_edit-sdm.html57
-rw-r--r--templates/web/zurich/admin/report_edit.html179
-rw-r--r--templates/web/zurich/admin/reports.html27
-rw-r--r--templates/web/zurich/admin/update_edit.html40
-rw-r--r--templates/web/zurich/around/_updates.html0
-rw-r--r--templates/web/zurich/around/intro.html15
-rw-r--r--templates/web/zurich/auth/sign_out.html (renamed from templates/web/fixmybarangay/auth/sign_out.html)3
-rwxr-xr-xtemplates/web/zurich/faq/faq-de-ch.html (renamed from templates/web/zurich/faq/faq-de.html)0
-rw-r--r--templates/web/zurich/footer.html21
-rw-r--r--templates/web/zurich/header.html75
-rw-r--r--templates/web/zurich/nav_over_content.html10
-rw-r--r--templates/web/zurich/report/_item.html22
-rw-r--r--templates/web/zurich/report/_main.html17
-rw-r--r--templates/web/zurich/report/banner.html17
-rw-r--r--templates/web/zurich/report/new/councils_text_all.html0
-rw-r--r--templates/web/zurich/report/new/fill_in_details_form.html18
-rw-r--r--templates/web/zurich/report/updates.html17
-rwxr-xr-xtemplates/web/zurich/reports/index.html33
-rw-r--r--templates/web/zurich/tokens/confirm_problem.html15
-rw-r--r--web/cobrands/barnet/base.scss2
-rw-r--r--web/cobrands/fixmystreet/_base.scss2
-rw-r--r--web/cobrands/fixmystreet/_layout.scss2
-rw-r--r--web/cobrands/fixmystreet/fixmystreet.js27
-rw-r--r--web/cobrands/fixmystreet/position_map.js4
-rw-r--r--web/cobrands/stevenage/layout.scss2
-rw-r--r--web/cobrands/zurich/_colours.scss24
-rw-r--r--web/cobrands/zurich/base.scss101
-rw-r--r--web/cobrands/zurich/layout.scss255
-rw-r--r--web/cobrands/zurich/search-icon-white.pngbin0 -> 209 bytes
-rw-r--r--web/cobrands/zurich/search-icon.pngbin0 -> 209 bytes
-rw-r--r--web/cobrands/zurich/tab-white.pngbin0 -> 826 bytes
-rw-r--r--web/cobrands/zurich/zurich-wmts-hybrid.xml356
-rw-r--r--web/cobrands/zurich/zurich-wmts-map.xml356
-rw-r--r--web/cobrands/zurich/zurich-wmts-satellite.xml (renamed from web/cobrands/zurich/Zurich-WMTSCapabilities.xml)0
-rw-r--r--web/css/core.scss4
-rw-r--r--web/js/OpenLayers.2.11.zurich.js22
-rw-r--r--web/js/fixmystreet.js16
-rw-r--r--web/js/map-OpenLayers.js47
-rw-r--r--web/js/map-wmts-zurich.js46
239 files changed, 9484 insertions, 4734 deletions
diff --git a/bin/open311-populate-service-list b/bin/open311-populate-service-list
index dc8fa3f7b..be1ace3b9 100755
--- a/bin/open311-populate-service-list
+++ b/bin/open311-populate-service-list
@@ -14,13 +14,13 @@ my ($opt, $usage) = describe_options(
);
print($usage->text), exit if $opt->help;
-my $council_list = FixMyStreet::App->model('DB::Open311conf')->search( {
- area_id => { '!=', 2237 }, # XXX Until Oxfordshire does do so
+my $bodies = FixMyStreet::App->model('DB::Body')->search( {
+ id => { '!=', 2237 }, # XXX Until Oxfordshire does do so
send_method => 'Open311'
} );
my $verbose = 0;
$verbose = 1 if $opt->warn;
$verbose = 2 if $opt->verbose;
-my $p = Open311::PopulateServiceList->new( council_list => $council_list, verbose => $verbose );
+my $p = Open311::PopulateServiceList->new( bodies => $bodies, verbose => $verbose );
-$p->process_councils;
+$p->process_bodies;
diff --git a/bin/open311-update-reports b/bin/open311-update-reports
deleted file mode 100644
index 41c9c4546..000000000
--- a/bin/open311-update-reports
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/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-comments b/bin/send-comments
index 232521447..850a57758 100755
--- a/bin/send-comments
+++ b/bin/send-comments
@@ -1,7 +1,7 @@
#!/usr/bin/env perl
# send-comments:
-# Send comments/updates on reports to councils
+# Send comments/updates on reports to bodies
# In Open311 parlance these are 'service request udpates' and are sent using
# mySociety's proposed extension to the Open311 Georeport v2 spec:
# https://github.com/mysociety/fixmystreet/wiki/Open311-FMS---Proposed-differences-to-Open311
@@ -38,12 +38,12 @@ my ($verbose, $nomail) = CronFns::options();
my $base_url = mySociety::Config::get('BASE_URL');
my $site = CronFns::site($base_url);
-my $councils = FixMyStreet::App->model('DB::Open311Conf')->search( {
+my $bodies = FixMyStreet::App->model('DB::Body')->search( {
send_method => SEND_METHOD_OPEN311,
send_comments => 1,
} );
-while ( my $council = $councils->next ) {
+while ( my $body = $bodies->next ) {
my $use_extended = 0;
my $comments = FixMyStreet::App->model('DB::Comment')->search( {
'me.whensent' => undef,
@@ -52,7 +52,7 @@ while ( my $council = $councils->next ) {
'me.confirmed' => { '!=' => undef },
'problem.whensent' => { '!=' => undef },
'problem.external_id' => { '!=' => undef },
- 'problem.council' => { -like => '%' . $council->area_id .'%' },
+ 'problem.bodies_str' => { -like => '%' . $body->id . '%' },
'problem.send_method_used' => 'Open311',
},
{
@@ -60,25 +60,25 @@ while ( my $council = $councils->next ) {
}
);
- if ( $council->area_id == 2482 ) {
+ if ( $body->areas->{2482} ) {
$use_extended = 1;
}
my %open311_conf = (
- endpoint => $council->endpoint,
- jurisdiction => $council->jurisdiction,
- api_key => $council->api_key,
+ endpoint => $body->endpoint,
+ jurisdiction => $body->jurisdiction,
+ api_key => $body->api_key,
use_extended_updates => $use_extended,
);
- if ( $council->send_extended_statuses ) {
+ if ( $body->send_extended_statuses ) {
$open311_conf{extended_statuses} = 1;
}
my $o = Open311->new( %open311_conf );
- if ( $council->area_id =~ /2482/ ) {
+ if ( $body->areas->{2482} ) {
my $endpoints = $o->endpoints;
$endpoints->{update} = 'update.xml';
$endpoints->{service_request_updates} = 'update.xml';
@@ -90,7 +90,7 @@ while ( my $council = $councils->next ) {
# actually this should be OK for any devolved endpoint if original Open311->can_be_devolved, presumably
if ( $cobrand->moniker eq "fixmybarangay") {
- my $sender = $cobrand->get_council_sender( $council->area_id, undef, $comment->problem->category );
+ my $sender = $cobrand->get_body_sender( $body, $comment->problem->category );
my $config = $sender->{config};
$o = Open311->new(
endpoint => $config->endpoint,
@@ -104,7 +104,7 @@ while ( my $council = $councils->next ) {
next if bromley_retry_timeout( $comment );
}
- if ( $council->area_id == 2482 ) {
+ if ( $body->areas->{2482} ) {
my $extra = $comment->extra;
if ( !$extra ) {
$extra = {};
diff --git a/bin/update-all-reports b/bin/update-all-reports
index b8e47f2e7..d0146dd47 100755
--- a/bin/update-all-reports
+++ b/bin/update-all-reports
@@ -18,46 +18,53 @@ use List::MoreUtils qw(zip);
my $fourweeks = 4*7*24*60*60;
+# Age problems from when they're confirmed, except on Zurich
+# where they appear as soon as they're created.
+my $age_column = 'confirmed';
+if ( FixMyStreet->config('BASE_URL') =~ /zurich/ ) {
+ $age_column = 'created';
+}
+
my $problems = FixMyStreet::App->model("DB::Problem")->search(
{
state => [ FixMyStreet::DB::Result::Problem->visible_states() ],
},
{
columns => [
- 'id', 'council', 'state', 'areas',
+ 'id', 'bodies_str', 'state', 'areas',
{ duration => { extract => "epoch from current_timestamp-lastupdate" } },
- { age => { extract => "epoch from current_timestamp-confirmed" } },
+ { age => { extract => "epoch from current_timestamp-$age_column" } },
]
}
);
$problems = $problems->cursor; # Raw DB cursor for speed
my ( %fixed, %open );
-my @cols = ( 'id', 'council', 'state', 'areas', 'duration', 'age' );
+my @cols = ( 'id', 'bodies_str', 'state', 'areas', 'duration', 'age' );
while ( my @problem = $problems->next ) {
my %problem = zip @cols, @problem;
- my @areas;
- if ( !$problem{council} ) {
- # Problem was not sent to any council, add to all areas
- @areas = grep { $_ } split( /,/, $problem{areas} );
- $problem{councils} = 0;
+ my @bodies;
+ if ( !$problem{bodies_str} ) {
+ # Problem was not sent to any bodies, add to all areas
+ @bodies = grep { $_ } split( /,/, $problem{areas} );
+ $problem{bodies} = 0;
} else {
- # Add to councils it was sent to
- (my $council = $problem{council}) =~ s/\|.*$//;
- @areas = split( /,/, $council );
- $problem{councils} = scalar @areas;
+ # Add to bodies it was sent to
+ (my $bodies = $problem{bodies_str}) =~ s/\|.*$//;
+ @bodies = split( /,/, $bodies );
+ $problem{bodies} = scalar @bodies;
}
- foreach my $council ( @areas ) {
+ foreach my $body ( @bodies ) {
my $duration_str = ( $problem{duration} > 2 * $fourweeks ) ? 'old' : 'new';
my $type = ( $problem{duration} > 2 * $fourweeks )
? 'unknown'
: ($problem{age} > $fourweeks ? 'older' : 'new');
if (FixMyStreet::DB::Result::Problem->fixed_states()->{$problem{state}} || FixMyStreet::DB::Result::Problem->closed_states()->{$problem{state}}) {
# Fixed problems are either old or new
- $fixed{$council}{$duration_str}++;
+ $fixed{$body}{$duration_str}++;
} else {
# Open problems are either unknown, older, or new
- $open{$council}{$type}++ if $problem{state} eq 'confirmed';
+ $open{$body}{$type}++ if $problem{state} eq 'confirmed';
}
}
}
diff --git a/bin/zurich-overdue-alert b/bin/zurich-overdue-alert
new file mode 100755
index 000000000..aa9f6fe60
--- /dev/null
+++ b/bin/zurich-overdue-alert
@@ -0,0 +1,83 @@
+#!/usr/bin/env perl
+
+# zurich-overdue-alert:
+# Send email alerts to administrators for overdue admin activities.
+#
+# Copyright (c) 2012 UK Citizens Online Democracy. All rights reserved.
+# Email: matthew@mysociety.org. WWW: http://www.mysociety.org
+
+use strict;
+use warnings;
+require 5.8.0;
+
+use DateTime;
+use CronFns;
+use FixMyStreet::App;
+
+my ($verbose, $nomail) = CronFns::options();
+
+# Only run on working days
+my $now = DateTime->now();
+exit if FixMyStreet::Cobrand::Zurich::is_public_holiday($now) or FixMyStreet::Cobrand::Zurich::is_weekend($now);
+
+my $cobrand = FixMyStreet::Cobrand->get_class_for_moniker('zurich')->new();
+my %bodies = map { $_->id => $_ } FixMyStreet::App->model("DB::Body")->all;
+
+loop_through( 'alert-moderation-overdue.txt', 0, 1, [ 'unconfirmed', 'confirmed' ] );
+loop_through( 'alert-overdue.txt', 1, 5, 'in progress' );
+
+sub loop_through {
+ my ( $template, $include_parent, $days, $states ) = @_;
+
+ my $reports = FixMyStreet::App->model("DB::Problem")->search( {
+ state => $states,
+ whensent => { '<', FixMyStreet::Cobrand::Zurich::sub_days( $now, $days ) },
+ bodies_str => { '!=', undef },
+ } );
+
+ my %to_send = ();
+ while (my $row = $reports->next) {
+ $to_send{$row->bodies_str} .= '* ' . $row->id . ": '" . $row->title . "'\n\n";
+ }
+
+ my $template_path = FixMyStreet->path_to( "templates", "email", "zurich", $template )->stringify;
+ $template = Utils::read_file( $template_path );
+
+ foreach my $body_id (keys %to_send) {
+ send_alert( $template, $body_id, $to_send{$body_id}, $include_parent );
+ }
+}
+
+sub send_alert {
+ my ( $template, $body_id, $data, $include_parent ) = @_;
+
+ my $body = $bodies{$body_id};
+ my $body_email = $body->endpoint;
+
+ my $h = {
+ data => $data,
+ admin_url => $cobrand->admin_base_url,
+ };
+
+ my $env_to = [ $body_email ];
+ my $to = [ [ $body_email, $body->name ] ];
+ if ( $include_parent ) {
+ my $parent = $body->parent;
+ my $parent_email = $parent->endpoint;
+ push @$env_to, $parent_email;
+ push @$to, [ $parent_email, $parent->name ];
+ }
+
+ my $result = FixMyStreet::App->send_email_cron(
+ {
+ _template_ => $template,
+ _parameters_ => $h,
+ To => $to,
+ From => [ FixMyStreet->config('CONTACT_EMAIL'), FixMyStreet->config('CONTACT_NAME') ],
+ },
+ FixMyStreet->config('CONTACT_EMAIL'),
+ $env_to,
+ $nomail
+ );
+}
+
diff --git a/conf/crontab.ugly b/conf/crontab.ugly
index d9d146c93..4eb6d5a26 100644
--- a/conf/crontab.ugly
+++ b/conf/crontab.ugly
@@ -13,33 +13,58 @@ MAILTO=cron-!!(*= $site *)!!@mysociety.org
MAILTO=!!(*= $user *)!!@mysociety.org
!!(* } *)!!
-# On only one server
-!!(* if ($vhost eq 'reportemptyhomes.com') { *)!!
+!!(*
-*/5 * * * * !!(*= $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?"
-0,30 * * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/send-questionnaires.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper send-questionnaires" || echo "stalled?"
+my @sending = qw(
+ www.fixmystreet.com
+ bromley.test.mysociety.org
+ stevenage.test.mysociety.org
+ barnet.fixmystreet.staging.mysociety.org
+ oxfordshire.fixmystreet.staging.mysociety.org
+ fixmybarangay.test.mysociety.org
+ demo.fixmybarangay.com
+ www.fixmybarangay.com
+ zurich.fixmystreet.staging.mysociety.org
+ seesomething.mysociety.org
+);
+my @no_alerts = qw(
+ zurich.fixmystreet.staging.mysociety.org
+ seesomething.mysociety.org
+);
+my @no_open311 = qw(
+ zurich.fixmystreet.staging.mysociety.org
+ seesomething.mysociety.org
+);
+my %sending = map { $_ => 1 } @sending;
+my %no_alerts = map { $_ => 1 } @no_alerts;
+
+*)!!
-!!(* } elsif (($vhost eq 'www.fixmystreet.com') || ($vhost eq 'bromley.test.mysociety.org') || ($vhost eq 'barnet.fixmystreet.staging.mysociety.org') || ($vhost eq 'oxfordshire.fixmystreet.staging.mysociety.org') || ($vhost eq 'demo.fixmybarangay.com') || ($vhost eq 'www.fixmybarangay.com') || ($vhost eq 'stevenage.test.mysociety.org')) { *)!!
+!!(* if ($sending{$vhost}) { *)!!
+# Sending of reports
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-7,9-11,13-15,17-23 * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/send-reports.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper send-reports" || echo "stalled?"
0 8,12,16 * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/send-reports.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper send-reports --verbose" || echo "stalled?"
+
+!!(* if (!$no_alerts{$vhost}) { *)!!
+# Sending of alerts and questionnaires
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?"
-5,10,15,20,25,30,35,40,45,50,55 * * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/send-comments.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper send-comments" || echo "stalled?"
+!!(* } *)!!
+!!(* if (!$no_open311{$vhost}) { *)!!
+# Open311 sending and fetching of updates
+5,10,15,20,25,30,35,40,45,50,55 * * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/send-comments.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper send-comments" || echo "stalled?"
5,10,15,20,25,30,35,40,45,50,55 * * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/fetch-comments.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper fetch-comments" || echo "stalled?"
0 8 * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/fetch-comments.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper fetch-comments --verbose" || echo "stalled?"
0 1 * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/fetch-comments.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper fetch-comments-24hs" || echo "stalled?"
+# Open311 service list population
30 * * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/open311-populate-service-list.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper open311-populate-service-list" || echo "stalled?"
0 0-7,9-23 * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/open311-populate-service-list.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper open311-populate-service-list" || echo "stalled?"
0 8 * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/open311-populate-service-list.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper open311-populate-service-list --warn" || echo "stalled?"
+!!(* } *)!!
-!!(* } elsif ($vhost eq 'seesomething.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-7,9-11,13-15,17-23 * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/send-reports.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper send-reports" || echo "stalled?"
-0 8,12,16 * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/send-reports.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper send-reports --verbose" || echo "stalled?"
!!(* } *)!!
# Once an hour, update the all reports stats
@@ -49,3 +74,7 @@ MAILTO=!!(*= $user *)!!@mysociety.org
39 2 * * * !!(*= $user *)!! /data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/problems-filed-graph
43 2 * * * !!(*= $user *)!! /data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/problem-creation-graph
00 8 * * * !!(*= $user *)!! /data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/check-for-zombies !!(*= $user *)!!
+
+!!(* if ($vhost =~ /zurich/) { *)!!
+30 0 * * * !!(*= $user *)!! /data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper zurich-overdue-alert
+!!(* } *)!!
diff --git a/conf/general.yml-example b/conf/general.yml-example
index a8da589d1..4a06a2aff 100644
--- a/conf/general.yml-example
+++ b/conf/general.yml-example
@@ -27,8 +27,14 @@ CONTACT_NAME: 'FixMyStreet'
# special address.
DO_NOT_REPLY_EMAIL: 'do-not-reply@example.org'
-# Whether this is a development site or not.
+# Whether this is a development site or not. It will mean e.g. templates/
+# CSS modified times aren't cached
STAGING_SITE: 1
+# Normally, a staging site will route all reports to CONTACT_EMAIL on a
+# development site (when STAGING_SITE is 1), to guard against sending fake
+# reports to live places. Set this to 1 if you want a dev site to route
+# reports as normal.
+SEND_REPORTS_ON_STAGING: 0
# What to use as front page/alert example places placeholder
# Defaults to High Street, Main Street
diff --git a/db/alert_types.sql b/db/alert_types.sql
index 4116d29dc..1de79e722 100644
--- a/db/alert_types.sql
+++ b/db/alert_types.sql
@@ -83,8 +83,8 @@ insert into alert_type
item_title, item_link, item_description, template)
values ('council_problems', '', '',
'New problems to {{COUNCIL}} on FixMyStreet', '/reports', 'The latest problems for {{COUNCIL}} reported by users',
- 'problem', 'problem.non_public = ''f'' and problem.state in (''confirmed'', ''investigating'', ''planned'', ''in progress'', ''fixed'', ''fixed - council'', ''fixed - user'', ''closed'') and (council like ''%''||?||''%''
- or council is null) and areas like ''%,''||?||'',%''', 'created desc',
+ 'problem', 'problem.non_public = ''f'' and problem.state in (''confirmed'', ''investigating'', ''planned'', ''in progress'', ''fixed'', ''fixed - council'', ''fixed - user'', ''closed'') and (bodies_str like ''%''||?||''%''
+ or bodies_str is null) and areas like ''%,''||?||'',%''', 'created desc',
'{{title}}, {{confirmed}}', '/report/{{id}}', '{{detail}}', 'alert-problem-council'
);
@@ -97,8 +97,8 @@ insert into alert_type
values ('ward_problems', '', '',
'New problems for {{COUNCIL}} within {{WARD}} ward on FixMyStreet', '/reports',
'The latest problems for {{COUNCIL}} within {{WARD}} ward reported by users',
- 'problem', 'problem.non_public = ''f'' and problem.state in (''confirmed'', ''investigating'', ''planned'', ''in progress'', ''fixed'', ''fixed - council'', ''fixed - user'', ''closed'') and (council like ''%''||?||''%''
- or council is null) and areas like ''%,''||?||'',%''', 'created desc',
+ 'problem', 'problem.non_public = ''f'' and problem.state in (''confirmed'', ''investigating'', ''planned'', ''in progress'', ''fixed'', ''fixed - council'', ''fixed - user'', ''closed'') and (bodies_str like ''%''||?||''%''
+ or bodies_str is null) and areas like ''%,''||?||'',%''', 'created desc',
'{{title}}, {{confirmed}}', '/report/{{id}}', '{{detail}}', 'alert-problem-ward'
);
diff --git a/db/alert_types_eha.sql b/db/alert_types_eha.sql
index af074717b..e4ec0c986 100644
--- a/db/alert_types_eha.sql
+++ b/db/alert_types_eha.sql
@@ -61,8 +61,8 @@ insert into alert_type
item_title, item_link, item_description, template)
values ('council_problems', '', '',
'New reports to {{COUNCIL}} on reportemptyhomes.com', '/reports', 'The latest reports for {{COUNCIL}} reported by users',
- 'problem', 'problem.state in (''confirmed'', ''investigating'', ''planned'', ''in progress'', ''fixed'', ''fixed - council'', ''fixed - user'', ''closed'') and (council like ''%''||?||''%''
- or council is null) and areas like ''%,''||?||'',%''', 'created desc',
+ 'problem', 'problem.state in (''confirmed'', ''investigating'', ''planned'', ''in progress'', ''fixed'', ''fixed - council'', ''fixed - user'', ''closed'') and (bodies_str like ''%''||?||''%''
+ or bodies_str is null) and areas like ''%,''||?||'',%''', 'created desc',
'{{title}}, {{confirmed}}', '/report/{{id}}', '{{detail}}', 'alert-problem-council'
);
@@ -75,8 +75,8 @@ insert into alert_type
values ('ward_problems', '', '',
'New reports for {{COUNCIL}} within {{WARD}} ward on reportemptyhomes.com', '/reports',
'The latest reports for {{COUNCIL}} within {{WARD}} ward reported by users',
- 'problem', 'problem.state in (''confirmed'', ''investigating'', ''planned'', ''in progress'', ''fixed'', ''fixed - council'', ''fixed - user'', ''closed'') and (council like ''%''||?||''%''
- or council is null) and areas like ''%,''||?||'',%''', 'created desc',
+ 'problem', 'problem.state in (''confirmed'', ''investigating'', ''planned'', ''in progress'', ''fixed'', ''fixed - council'', ''fixed - user'', ''closed'') and (bodies_str like ''%''||?||''%''
+ or bodies_str is null) and areas like ''%,''||?||'',%''', 'created desc',
'{{title}}, {{confirmed}}', '/report/{{id}}', '{{detail}}', 'alert-problem-ward'
);
diff --git a/db/schema.sql b/db/schema.sql
index 5bdd2a66a..5e4bc4a3e 100644
--- a/db/schema.sql
+++ b/db/schema.sql
@@ -4,8 +4,6 @@
-- Copyright (c) 2006 UK Citizens Online Democracy. All rights reserved.
-- Email: matthew@mysociety.org; WWW: http://www.mysociety.org/
--
--- $Id: schema.sql,v 1.49 2009-11-10 13:53:33 louise Exp $
---
-- secret
-- A random secret.
@@ -19,22 +17,6 @@ create table debugdate (
override_today date
);
--- Returns the date of "today", which can be overriden for testing.
-create function ms_current_date()
- returns date as '
- declare
- today date;
- begin
- today = (select override_today from debugdate);
- if today is not null then
- return today;
- else
- return current_date;
- end if;
-
- end;
-' language 'plpgsql' stable;
-
-- Returns the timestamp of current time, but with possibly overriden "today".
create function ms_current_timestamp()
returns timestamp as '
@@ -50,24 +32,55 @@ create function ms_current_timestamp()
end;
' language 'plpgsql';
+-- table for sessions - needed by Catalyst::Plugin::Session::Store::DBIC
+create table sessions (
+ id char(72) primary key,
+ session_data text,
+ expires integer
+);
--- users, but call the table person rather than user so we don't have to quote
--- its name in every statement....
--- create table person (
--- id serial not null primary key,
--- name text,
--- email text not null,
--- password text,
--- website text,
--- numlogins integer not null default 0
--- );
---
--- create unique index person_email_idx on person(email);
-
--- Who to send problems for a specific MaPit area ID to
+-- users table
+create table users (
+ id serial not null primary key,
+ email text not null unique,
+ name text,
+ phone text,
+ password text not null default '',
+ from_body integer,
+ flagged boolean not null default 'f',
+ title text
+);
+
+-- Record details of reporting bodies, including open311 configuration details
+create table body (
+ id serial primary key,
+ name text not null,
+ parent integer references body(id),
+ endpoint text,
+ jurisdiction text,
+ api_key text,
+ send_method text,
+ send_comments boolean not null default 'f',
+ comment_user_id int references users(id),
+ suppress_alerts boolean not null default 'f',
+ can_be_devolved boolean not null default 'f',
+ send_extended_statuses boolean not null default 'f'
+);
+
+create table body_areas (
+ body_id integer not null references body(id),
+ area_id integer not null
+);
+create unique index body_areas_body_id_area_id_idx on body_areas(body_id, area_id);
+
+-- Now can create reference from users to body
+ALTER TABLE users ADD CONSTRAINT users_from_body_fkey
+ FOREIGN KEY (from_body) REFERENCES body(id);
+
+-- The contact for a category within a particular body
create table contacts (
id serial primary key,
- area_id integer not null,
+ body_id integer not null references body(id),
category text not null default 'Other',
email text not null,
confirmed boolean not null,
@@ -92,7 +105,7 @@ create table contacts (
api_key text default '',
send_method text
);
-create unique index contacts_area_id_category_idx on contacts(area_id, category);
+create unique index contacts_body_id_category_idx on contacts(body_id, category);
-- History of changes to contacts - automatically updated
-- whenever contacts is changed, using trigger below.
@@ -100,7 +113,7 @@ create table contacts_history (
contacts_history_id serial not null primary key,
contact_id integer not null,
- area_id integer not null,
+ body_id integer not null,
category text not null default 'Other',
email text not null,
confirmed boolean not null,
@@ -119,7 +132,7 @@ create table contacts_history (
create function contacts_updated()
returns trigger as '
begin
- insert into contacts_history (contact_id, area_id, category, email, editor, whenedited, note, confirmed, deleted) values (new.id, new.area_id, new.category, new.email, new.editor, new.whenedited, new.note, new.confirmed, new.deleted);
+ insert into contacts_history (contact_id, body_id, category, email, editor, whenedited, note, confirmed, deleted) values (new.id, new.body_id, new.category, new.email, new.editor, new.whenedited, new.note, new.confirmed, new.deleted);
return new;
end;
' language 'plpgsql';
@@ -129,25 +142,6 @@ create trigger contacts_update_trigger after update on contacts
create trigger contacts_insert_trigger after insert on contacts
for each row execute procedure contacts_updated();
--- table for sessions - needed by Catalyst::Plugin::Session::Store::DBIC
-create table sessions (
- id char(72) primary key,
- session_data text,
- expires integer
-);
-
--- users table
-create table users (
- id serial not null primary key,
- email text not null unique,
- name text,
- phone text,
- password text not null default '',
- from_council integer, -- id of council user is from or null/0 if not
- flagged boolean not null default 'f',
- title text
-);
-
-- Problems reported by users of site
create table problem (
id serial not null primary key,
@@ -156,8 +150,8 @@ create table problem (
postcode text not null,
latitude double precision not null,
longitude double precision not null,
- council text, -- the council(s) we'll report this problem to
- areas text not null, -- the voting areas this location is in
+ bodies_str text, -- the body(s) we'll report this problem to
+ areas text not null, -- the mapit areas this location is in
category text not null default 'Other',
title text not null,
detail text not null,
@@ -459,19 +453,3 @@ create table admin_log (
or action = 'resend'),
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,
- send_method text,
- send_comments boolean not null default 'f',
- comment_user_id int references users(id),
- suppress_alerts boolean not null default 'f',
- can_be_devolved boolean not null default 'f',
- send_extended_statuses boolean not null default 'f'
-);
diff --git a/db/schema_0027-rename_open311conf.sql b/db/schema_0027-rename_open311conf.sql
new file mode 100644
index 000000000..cef020648
--- /dev/null
+++ b/db/schema_0027-rename_open311conf.sql
@@ -0,0 +1,12 @@
+begin;
+
+ALTER TABLE open311conf RENAME TO body;
+ALTER INDEX open311conf_pkey RENAME TO body_pkey;
+ALTER INDEX open311conf_area_id_key RENAME TO body_area_id_key;
+ALTER TABLE body ALTER COLUMN endpoint DROP NOT NULL;
+ALTER TABLE body DROP CONSTRAINT open311conf_comment_user_id_fkey;
+ALTER TABLE body ADD CONSTRAINT body_comment_user_id_fkey
+ FOREIGN KEY (comment_user_id) REFERENCES users(id);
+ALTER SEQUENCE open311conf_id_seq RENAME TO body_id_seq;
+
+commit;
diff --git a/db/schema_0028-rename_from_council.sql b/db/schema_0028-rename_from_council.sql
new file mode 100644
index 000000000..027a257a4
--- /dev/null
+++ b/db/schema_0028-rename_from_council.sql
@@ -0,0 +1,5 @@
+begin;
+
+ALTER TABLE users RENAME COLUMN from_council TO from_body;
+
+commit;
diff --git a/db/schema_0029-rename_contacts_area_id.sql b/db/schema_0029-rename_contacts_area_id.sql
new file mode 100644
index 000000000..861ace5c5
--- /dev/null
+++ b/db/schema_0029-rename_contacts_area_id.sql
@@ -0,0 +1,31 @@
+begin;
+
+ALTER TABLE contacts RENAME area_id TO body_id;
+ALTER TABLE contacts_history RENAME area_id TO body_id;
+ALTER INDEX contacts_area_id_category_idx RENAME TO contacts_body_id_category_idx;
+
+-- Data migration
+UPDATE body SET id = area_id;
+INSERT INTO body (id, area_id)
+ SELECT DISTINCT body_id, body_id FROM contacts WHERE body_id not in (SELECT id FROM body);
+SELECT setval('body_id_seq', (SELECT MAX(id) FROM body) );
+
+ALTER TABLE contacts ADD CONSTRAINT contacts_body_id_fkey
+ FOREIGN KEY (body_id) REFERENCES body(id);
+
+DROP TRIGGER contacts_update_trigger ON contacts;
+DROP TRIGGER contacts_insert_trigger ON contacts;
+DROP FUNCTION contacts_updated();
+create function contacts_updated()
+ returns trigger as '
+ begin
+ insert into contacts_history (contact_id, body_id, category, email, editor, whenedited, note, confirmed, deleted) values (new.id, new.body_id, new.category, new.email, new.editor, new.whenedited, new.note, new.confirmed, new.deleted);
+ return new;
+ end;
+' language 'plpgsql';
+create trigger contacts_update_trigger after update on contacts
+ for each row execute procedure contacts_updated();
+create trigger contacts_insert_trigger after insert on contacts
+ for each row execute procedure contacts_updated();
+
+commit;
diff --git a/db/schema_0030-add-body-name.sql b/db/schema_0030-add-body-name.sql
new file mode 100644
index 000000000..30ac26e98
--- /dev/null
+++ b/db/schema_0030-add-body-name.sql
@@ -0,0 +1,7 @@
+begin;
+
+ALTER TABLE body ADD name text;
+UPDATE body SET name='';
+ALTER table body ALTER COLUMN name SET NOT NULL;
+
+commit;
diff --git a/db/schema_0031-rename-problem-council-column.sql b/db/schema_0031-rename-problem-council-column.sql
new file mode 100644
index 000000000..87542a192
--- /dev/null
+++ b/db/schema_0031-rename-problem-council-column.sql
@@ -0,0 +1,5 @@
+begin;
+
+ALTER TABLE problem RENAME COLUMN council TO bodies_str;
+
+commit;
diff --git a/db/schema_0032-add-from_body-reference.sql b/db/schema_0032-add-from_body-reference.sql
new file mode 100644
index 000000000..4fa526963
--- /dev/null
+++ b/db/schema_0032-add-from_body-reference.sql
@@ -0,0 +1,6 @@
+begin;
+
+ALTER TABLE users ADD CONSTRAINT users_from_body_fkey
+ FOREIGN KEY (from_body) REFERENCES body(id);
+
+commit;
diff --git a/db/schema_0033-body-areas-many-many.sql b/db/schema_0033-body-areas-many-many.sql
new file mode 100644
index 000000000..e03f3fa44
--- /dev/null
+++ b/db/schema_0033-body-areas-many-many.sql
@@ -0,0 +1,15 @@
+begin;
+
+create table body_areas (
+ body_id integer not null references body(id),
+ area_id integer not null
+);
+create unique index body_areas_body_id_area_id_idx on body_areas(body_id, area_id);
+
+INSERT INTO body_areas (body_id, area_id)
+ SELECT id, area_id FROM body;
+
+ALTER TABLE body DROP COLUMN area_id;
+
+commit;
+
diff --git a/db/schema_0034-add-body-parent.sql b/db/schema_0034-add-body-parent.sql
new file mode 100644
index 000000000..9360fbcb3
--- /dev/null
+++ b/db/schema_0034-add-body-parent.sql
@@ -0,0 +1,5 @@
+begin;
+
+ALTER TABLE body ADD parent INTEGER REFERENCES body(id);
+
+commit;
diff --git a/locale/FixMyStreet.po b/locale/FixMyStreet.po
index 44584597a..ca355e607 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: 2012-12-10 13:18+0000\n"
+"POT-Creation-Date: 2013-01-31 15:59+0000\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,19 +17,19 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:560 perllib/FixMyStreet/DB/ResultSet/Problem.pm:339
+#: perllib/FixMyStreet/DB/Result/Problem.pm:579 perllib/FixMyStreet/DB/ResultSet/Problem.pm:339
msgid " and "
msgstr ""
-#: templates/web/default/tokens/confirm_problem.html:14 templates/web/default/tokens/confirm_problem.html:18
+#: templates/web/default/tokens/confirm_problem.html:14 templates/web/default/tokens/confirm_problem.html:17
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:17 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/councils_text_all.html:2
+#: templates/web/default/report/new/councils_text_all.html:11 templates/web/default/report/new/councils_text_all.html:18 templates/web/default/report/new/councils_text_all.html:4 templates/web/default/report/new/councils_text_none.html:11 templates/web/default/report/new/councils_text_none.html:14 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/councils_text_all.html:2
msgid " or "
msgstr ""
-#: templates/web/default/admin/council_list.html:17
+#: templates/web/default/admin/bodies.html:31
msgid "%d addresses"
msgstr ""
@@ -37,11 +37,11 @@ msgstr ""
msgid "%d confirmed alerts, %d unconfirmed"
msgstr ""
-#: templates/web/default/admin/index.html:19
+#: templates/web/default/admin/index.html:19 templates/web/zurich/admin/index.html:6
msgid "%d council contacts &ndash; %d confirmed, %d unconfirmed"
msgstr ""
-#: templates/web/default/admin/council_list.html:27
+#: templates/web/default/admin/edit-league.html:5
msgid "%d edits by %s"
msgstr ""
@@ -61,31 +61,39 @@ msgstr ""
msgid "%s - Summary reports"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:610
+#: perllib/FixMyStreet/DB/Result/Problem.pm:627
msgid "%s ref:&nbsp;%s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/UK.pm:279 perllib/FixMyStreet/Cobrand/UK.pm:291
+#: perllib/FixMyStreet/Cobrand/UK.pm:275 perllib/FixMyStreet/Cobrand/UK.pm:287
msgid "%s ward, %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:496
+#: perllib/FixMyStreet/DB/Result/Problem.pm:512
msgid "%s, reported anonymously at %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:498
+#: perllib/FixMyStreet/DB/Result/Problem.pm:514
msgid "%s, reported by %s at %s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/UK.pm:306 perllib/FixMyStreet/Cobrand/UK.pm:318
+#: perllib/FixMyStreet/Cobrand/UK.pm:302 perllib/FixMyStreet/Cobrand/UK.pm:314
msgid "%s, within %s ward"
msgstr ""
-#: templates/web/default/email_sent.html:28
-msgid "(Don't worry &mdash; %s)"
+#: templates/web/default/email_sent.html:29
+msgid "(Don't worry &mdash; we'll hang on to your alert while you're checking your email.)"
+msgstr ""
+
+#: templates/web/default/email_sent.html:25
+msgid "(Don't worry &mdash; we'll hang on to your problem report while you're checking your email.)"
msgstr ""
-#: templates/web/default/admin/report_blocks.html:11 templates/web/default/admin/search_users.html:23
+#: templates/web/default/email_sent.html:27
+msgid "(Don't worry &mdash; we'll hang on to your update while you're checking your email.)"
+msgstr ""
+
+#: templates/web/default/admin/report_blocks.html:11 templates/web/default/admin/users.html:26
msgid "(Email in abuse table)"
msgstr ""
@@ -97,11 +105,11 @@ msgstr ""
msgid "(alternatively the RSS feed can be customised, within"
msgstr ""
-#: templates/web/default/around/around_map_list_items.html:12 templates/web/default/around/on_map_list_items.html:9 templates/web/fixmystreet/report/_item.html:23
+#: templates/web/default/around/around_map_list_items.html:12 templates/web/default/around/on_map_list_items.html:9 templates/web/fixmystreet/report/_item.html:20 templates/web/zurich/report/_item.html:19
msgid "(closed)"
msgstr ""
-#: templates/web/default/around/around_map_list_items.html:10 templates/web/default/around/on_map_list_items.html:7 templates/web/fixmystreet/report/_item.html:21
+#: templates/web/default/around/around_map_list_items.html:10 templates/web/default/around/on_map_list_items.html:7 templates/web/fixmystreet/report/_item.html:18 templates/web/zurich/report/_item.html:17
msgid "(fixed)"
msgstr ""
@@ -109,15 +117,15 @@ msgstr ""
msgid "(like graffiti, fly tipping, broken paving slabs, or street lighting)"
msgstr ""
-#: templates/web/default/reports/_list-entry.html:4 templates/web/fixmystreet/report/_item.html:17
+#: templates/web/default/reports/_list-entry.html:4 templates/web/fixmystreet/report/_item.html:14
msgid "(not sent to council)"
msgstr ""
-#: templates/web/default/report/new/fill_in_details_form.html:217 templates/web/zurich/report/new/fill_in_details_form.html:118
+#: templates/web/default/report/new/fill_in_details_form.html:217 templates/web/zurich/report/new/fill_in_details_form.html:100
msgid "(optional)"
msgstr ""
-#: templates/web/default/reports/_list-entry.html:2 templates/web/fixmystreet/report/_item.html:16
+#: templates/web/default/reports/_list-entry.html:2 templates/web/fixmystreet/report/_item.html:13
msgid "(sent to both)"
msgstr ""
@@ -129,22 +137,14 @@ msgstr ""
msgid "(we never show your email)"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:285
-msgid "*unknown*"
-msgstr ""
-
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:628 perllib/FixMyStreet/App/Controller/Report/New.pm:656 perllib/FixMyStreet/DB/Result/Problem.pm:353
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:635 perllib/FixMyStreet/App/Controller/Report/New.pm:663 perllib/FixMyStreet/DB/Result/Problem.pm:362
msgid "-- Pick a category --"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:608 perllib/FixMyStreet/DB/Result/Problem.pm:359
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:615 perllib/FixMyStreet/DB/Result/Problem.pm:368
msgid "-- Pick a property type --"
msgstr ""
-#: templates/web/default/tokens/confirm_problem.html:14 templates/web/default/tokens/confirm_problem.html:22
-msgid ". You can <a href=\"%s%s\">view the problem on this site</a>."
-msgstr ""
-
#: templates/web/default/report/_support.html:3
msgid "1 supporter"
msgstr ""
@@ -217,7 +217,7 @@ msgstr ""
msgid "<small>If you cannot see the map, <a href='%s' rel='nofollow'>skip this step</a>.</small>"
msgstr ""
-#: templates/web/default/admin/index.html:14
+#: templates/web/default/admin/index.html:14 templates/web/zurich/admin/index.html:4
msgid "<strong>%d</strong> live problems"
msgstr ""
@@ -253,10 +253,18 @@ msgstr ""
msgid "About us"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:72
+#: templates/web/default/admin/bodies.html:45 templates/web/default/admin/body-form.html:77 templates/web/zurich/admin/body-form.html:47
+msgid "Add body"
+msgstr ""
+
+#: templates/web/default/admin/body.html:69 templates/web/zurich/admin/body.html:30
msgid "Add new category"
msgstr ""
+#: templates/web/default/admin/users.html:35
+msgid "Add user"
+msgstr ""
+
#: templates/web/default/my/my.html:56 templates/web/fixmystreet/my/my.html:60
msgid "Added %s"
msgstr ""
@@ -277,15 +285,11 @@ msgstr ""
msgid "Alert me to future updates"
msgstr ""
-#: templates/web/default/reports/index.html:3 templates/web/fixmybarangay/reports/index.html:3
+#: templates/web/default/reports/index.html:3 templates/web/fixmybarangay/reports/index.html:3 templates/web/zurich/reports/index.html:12
msgid "All Reports"
msgstr ""
-#: templates/web/default/admin/council_list.html:44
-msgid "All confirmed"
-msgstr ""
-
-#: templates/web/barnet/footer.html:20 templates/web/bromley/footer.html:21 templates/web/bromley/header.html:77 templates/web/default/footer.html:11 templates/web/fiksgatami/footer.html:7 templates/web/fiksgatami/nn/footer.html:7 templates/web/fixmybarangay/footer.html:20 templates/web/fixmystreet/footer.html:49 templates/web/reading/footer.html:8 templates/web/stevenage/footer.html:43 templates/web/zurich/footer.html:12
+#: templates/web/barnet/footer.html:20 templates/web/bromley/footer.html:21 templates/web/bromley/header.html:77 templates/web/default/footer.html:11 templates/web/fiksgatami/footer.html:7 templates/web/fiksgatami/nn/footer.html:7 templates/web/fixmybarangay/footer.html:20 templates/web/fixmystreet/footer.html:49 templates/web/reading/footer.html:8 templates/web/stevenage/footer.html:43 templates/web/zurich/admin/index-dm.html:12 templates/web/zurich/footer.html:19 templates/web/zurich/nav_over_content.html:6
msgid "All reports"
msgstr ""
@@ -297,15 +301,15 @@ msgstr ""
msgid "All the information you provide here will be sent to"
msgstr ""
-#: templates/web/default/report/new/councils_text_all.html:10 templates/web/default/report/new/councils_text_all.html:12
+#: templates/web/default/report/new/councils_text_all.html:11 templates/web/default/report/new/councils_text_all.html:13
msgid "All the information you provide here will be sent to <strong>%s</strong> or <strong>Roads Service</strong>."
msgstr ""
-#: templates/web/default/report/new/councils_text_all.html:3 templates/web/default/report/new/councils_text_all.html:5
+#: templates/web/default/report/new/councils_text_all.html:4 templates/web/default/report/new/councils_text_all.html:6
msgid "All the information you provide here will be sent to <strong>%s</strong> or a relevant local body such as <strong>TfL</strong>, via the London Report-It system."
msgstr ""
-#: templates/web/bromley/report/new/fill_in_details_form.html:4 templates/web/bromley/report/new/fill_in_details_form.html:6 templates/web/default/report/new/councils_text_all.html:17 templates/web/default/report/new/councils_text_all.html:19 templates/web/default/report/new/fill_in_details_form.html:11 templates/web/default/report/new/fill_in_details_form.html:13 templates/web/fixmystreet/report/new/fill_in_details_form.html:6 templates/web/fixmystreet/report/new/fill_in_details_form.html:8 templates/web/zurich/report/new/fill_in_details_form.html:6 templates/web/zurich/report/new/fill_in_details_form.html:8
+#: templates/web/bromley/report/new/fill_in_details_form.html:4 templates/web/bromley/report/new/fill_in_details_form.html:6 templates/web/default/report/new/councils_text_all.html:18 templates/web/default/report/new/councils_text_all.html:20 templates/web/default/report/new/fill_in_details_form.html:11 templates/web/default/report/new/fill_in_details_form.html:13 templates/web/fixmystreet/report/new/fill_in_details_form.html:6 templates/web/fixmystreet/report/new/fill_in_details_form.html:8
msgid "All the information you provide here will be sent to <strong>%s</strong>."
msgstr ""
@@ -317,11 +321,11 @@ msgstr ""
msgid "An update marked this problem as fixed."
msgstr ""
-#: templates/web/default/admin/list_flagged.html:15 templates/web/default/admin/list_updates.html:10 templates/web/default/admin/search_reports.html:18
+#: templates/web/default/admin/flagged.html:15 templates/web/default/admin/list_updates.html:10 templates/web/default/admin/reports.html:18
msgid "Anonymous"
msgstr ""
-#: templates/web/default/admin/report_edit.html:26 templates/web/default/admin/update_edit.html:14
+#: templates/web/default/admin/report_edit.html:31 templates/web/default/admin/update_edit.html:17
msgid "Anonymous:"
msgstr ""
@@ -337,6 +341,26 @@ msgstr ""
msgid "Are you from a council?"
msgstr ""
+#: templates/web/default/admin/body-form.html:19 templates/web/zurich/admin/body-form.html:25
+msgid "Area covered"
+msgstr ""
+
+#: templates/web/zurich/admin/report_edit.html:99
+msgid "Assign to different category:"
+msgstr ""
+
+#: templates/web/zurich/admin/report_edit.html:108
+msgid "Assign to external body:"
+msgstr ""
+
+#: templates/web/zurich/admin/report_edit.html:140 templates/web/zurich/admin/report_edit.html:87
+msgid "Assign to subdivision:"
+msgstr ""
+
+#: templates/web/zurich/report/updates.html:11
+msgid "Assigned to %s"
+msgstr ""
+
#: 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 ""
@@ -345,6 +369,14 @@ msgstr ""
msgid "At the moment only searching for and looking at reports work."
msgstr ""
+#: perllib/FixMyStreet/DB/Result/Problem.pm:317 templates/web/zurich/report/_item.html:9
+msgid "Awaiting moderation"
+msgstr ""
+
+#: templates/web/default/js/translation_strings.html:26
+msgid "Back"
+msgstr ""
+
#: templates/web/default/admin/report_blocks.html:11
msgid "Ban email address"
msgstr ""
@@ -353,10 +385,18 @@ msgstr ""
msgid "Be sure to choose the right category, because we use that to determine to whom the report is sent."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1032
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1086 perllib/FixMyStreet/Cobrand/Zurich.pm:140 templates/web/default/admin/bodies.html:1 templates/web/zurich/header.html:63
msgid "Bodies"
msgstr ""
+#: templates/web/default/admin/reports.html:16 templates/web/default/admin/users.html:14
+msgid "Body"
+msgstr ""
+
+#: templates/web/default/admin/user-form.html:7
+msgid "Body:"
+msgstr ""
+
#: templates/web/fiksgatami/footer.html:16 templates/web/fiksgatami/nn/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 ""
@@ -369,7 +409,7 @@ msgstr ""
msgid "Can't see the map? <a href='%s' rel='nofollow'>Skip this step</a>"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:631 perllib/FixMyStreet/App/Controller/Report/New.pm:658 templates/web/bromley/report/new/fill_in_details_form.html:68 templates/web/default/admin/council_contacts.html:37 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/fixmystreet/report/new/fill_in_details_form.html:74 templates/web/zurich/report/new/fill_in_details_form.html:68
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:638 perllib/FixMyStreet/App/Controller/Report/New.pm:665 templates/web/bromley/report/new/fill_in_details_form.html:68 templates/web/default/admin/bodies.html:11 templates/web/default/admin/body.html:35 templates/web/default/admin/flagged.html:14 templates/web/default/admin/index.html:36 templates/web/default/admin/reports.html:17 templates/web/fixmystreet/report/new/fill_in_details_form.html:74 templates/web/zurich/admin/body.html:13 templates/web/zurich/admin/index-dm.html:22 templates/web/zurich/admin/index-sdm.html:20 templates/web/zurich/admin/reports.html:14 templates/web/zurich/report/new/fill_in_details_form.html:50
msgid "Category"
msgstr ""
@@ -377,7 +417,7 @@ msgstr ""
msgid "Category fix rate for problems > 4 weeks old"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:78 templates/web/default/admin/council_edit.html:23 templates/web/default/admin/report_edit.html:25 templates/web/default/report/new/fill_in_details_form.html:67
+#: templates/web/default/admin/body.html:75 templates/web/default/admin/body_edit.html:23 templates/web/default/admin/report_edit.html:30 templates/web/default/report/new/fill_in_details_form.html:67 templates/web/zurich/admin/body.html:36 templates/web/zurich/admin/report_edit-sdm.html:23 templates/web/zurich/admin/report_edit.html:98
msgid "Category:"
msgstr ""
@@ -389,15 +429,15 @@ msgstr ""
msgid "Change Password"
msgstr ""
-#: templates/web/default/js/validation_strings.html:22 templates/web/fixmystreet/around/_report_banner.html:2
+#: templates/web/default/js/translation_strings.html:39 templates/web/fixmystreet/around/_report_banner.html:2
msgid "Click map to report a problem"
msgstr ""
-#: templates/web/bromley/report/display.html:80 templates/web/bromley/report/display.html:82 templates/web/default/admin/report_edit.html:18 templates/web/default/admin/report_edit.html:20 templates/web/default/dashboard/index.html:138 templates/web/default/dashboard/index.html:140 templates/web/default/report/update-form.html:30 templates/web/default/report/update-form.html:32 templates/web/fixmystreet/report/banner.html:15 templates/web/fixmystreet/report/update-form.html:28 templates/web/fixmystreet/report/update-form.html:30
+#: templates/web/bromley/report/display.html:80 templates/web/bromley/report/display.html:82 templates/web/default/admin/report_edit.html:25 templates/web/default/dashboard/index.html:138 templates/web/default/dashboard/index.html:140 templates/web/default/report/update-form.html:30 templates/web/default/report/update-form.html:32 templates/web/fixmystreet/report/banner.html:15 templates/web/fixmystreet/report/update-form.html:28 templates/web/fixmystreet/report/update-form.html:30 templates/web/zurich/admin/header.html:1 templates/web/zurich/admin/header.html:10 templates/web/zurich/admin/header.html:12 templates/web/zurich/admin/report_edit.html:75 templates/web/zurich/admin/report_edit.html:77 templates/web/zurich/report/banner.html:13
msgid "Closed"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:695
+#: perllib/FixMyStreet/DB/Result/Problem.pm:720
msgid "Closed by council"
msgstr ""
@@ -405,7 +445,7 @@ msgstr ""
msgid "Closed reports"
msgstr ""
-#: templates/web/default/admin/problem_row.html:25
+#: templates/web/default/admin/problem_row.html:27
msgid "Closed:"
msgstr ""
@@ -413,43 +453,31 @@ msgstr ""
msgid "Closest nearby problems <small>(within&nbsp;%skm)</small>"
msgstr ""
-#: templates/web/default/admin/report_edit.html:15
+#: templates/web/default/admin/report_edit.html:17 templates/web/zurich/admin/report_edit-sdm.html:19 templates/web/zurich/admin/report_edit.html:37
msgid "Co-ordinates:"
msgstr ""
-#: templates/web/default/admin/list_flagged.html:16 templates/web/default/admin/list_updates.html:13 templates/web/default/admin/search_reports.html:19
+#: templates/web/default/admin/flagged.html:16 templates/web/default/admin/list_updates.html:13 templates/web/default/admin/reports.html:19
msgid "Cobrand"
msgstr ""
-#: templates/web/default/admin/report_edit.html:39 templates/web/default/admin/update_edit.html:41
+#: templates/web/default/admin/report_edit.html:44 templates/web/default/admin/update_edit.html:44
msgid "Cobrand data:"
msgstr ""
-#: templates/web/default/admin/report_edit.html:38 templates/web/default/admin/update_edit.html:40
+#: templates/web/default/admin/report_edit.html:43 templates/web/default/admin/update_edit.html:43
msgid "Cobrand:"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:365
-msgid "Configuration updated"
-msgstr ""
-
-#: perllib/FixMyStreet/App/Controller/Admin.pm:380
+#: perllib/FixMyStreet/App/Controller/Admin.pm:395
msgid "Configuration updated - contacts will be generated automatically later"
msgstr ""
-#: templates/web/default/admin/council_edit.html:34
+#: templates/web/default/admin/body_edit.html:47
msgid "Configure Endpoint"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:168
-msgid "Configure Open311"
-msgstr ""
-
-#: templates/web/default/admin/council_contacts.html:116
-msgid "Configure Open311 integration"
-msgstr ""
-
-#: templates/web/default/admin/council_contacts.html:46
+#: templates/web/default/admin/body.html:44
msgid "Confirm"
msgstr ""
@@ -461,11 +489,11 @@ msgstr ""
msgid "Confirm by email below, providing a new password at that point. When you confirm, your password will be updated."
msgstr ""
-#: templates/web/default/questionnaire/creator_fixed.html:1 templates/web/default/tokens/confirm_problem.html:1 templates/web/default/tokens/confirm_problem.html:3 templates/web/default/tokens/confirm_update.html:1 templates/web/default/tokens/confirm_update.html:3 templates/web/emptyhomes/tokens/confirm_problem.html:1 templates/web/emptyhomes/tokens/confirm_problem.html:3 templates/web/southampton/tokens/confirm_problem.html:1 templates/web/southampton/tokens/confirm_problem.html:3
+#: templates/web/default/questionnaire/creator_fixed.html:1 templates/web/default/tokens/confirm_problem.html:1 templates/web/default/tokens/confirm_problem.html:3 templates/web/default/tokens/confirm_update.html:1 templates/web/default/tokens/confirm_update.html:3 templates/web/emptyhomes/tokens/confirm_problem.html:1 templates/web/emptyhomes/tokens/confirm_problem.html:3 templates/web/southampton/tokens/confirm_problem.html:1 templates/web/southampton/tokens/confirm_problem.html:3 templates/web/zurich/tokens/confirm_problem.html:1 templates/web/zurich/tokens/confirm_problem.html:3
msgid "Confirmation"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:39 templates/web/default/admin/council_contacts.html:88 templates/web/default/admin/council_edit.html:28 templates/web/default/admin/council_edit.html:71
+#: templates/web/default/admin/body.html:37 templates/web/default/admin/body.html:85 templates/web/default/admin/body_edit.html:32 templates/web/default/admin/body_edit.html:84 templates/web/zurich/admin/report_edit-sdm.html:26 templates/web/zurich/admin/report_edit.html:43
msgid "Confirmed"
msgstr ""
@@ -473,7 +501,7 @@ msgstr ""
msgid "Confirmed reports between %s and %s"
msgstr ""
-#: templates/web/default/admin/problem_row.html:23 templates/web/default/admin/report_edit.html:34
+#: templates/web/default/admin/problem_row.html:25 templates/web/default/admin/report_edit.html:39
msgid "Confirmed:"
msgstr ""
@@ -493,30 +521,26 @@ msgstr ""
msgid "Contact the team"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1159 perllib/FixMyStreet/App/Controller/Admin.pm:1187
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1219 perllib/FixMyStreet/App/Controller/Admin.pm:1247
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
-msgid "Council"
+#: templates/web/default/js/translation_strings.html:31
+msgid "Could not look up location"
msgstr ""
-#: templates/web/default/admin/council_list.html:1
-msgid "Council contacts"
+#: templates/web/default/admin/flagged.html:13 templates/web/default/admin/list_updates.html:12
+msgid "Council"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:1 templates/web/default/admin/council_edit.html:1
+#: templates/web/default/admin/body.html:1 templates/web/default/admin/body_edit.html:1 templates/web/zurich/admin/body.html:1
msgid "Council contacts for %s"
msgstr ""
-#: templates/web/default/admin/stats.html:84 templates/web/default/admin/user_edit.html:12
+#: templates/web/default/admin/stats.html:84
msgid "Council:"
msgstr ""
-#: templates/web/default/admin/council_list.html:36
-msgid "Councils"
-msgstr ""
-
#: templates/web/default/admin/stats.html:12 templates/web/default/admin/stats.html:32
msgid "Count"
msgstr ""
@@ -525,15 +549,15 @@ msgstr ""
msgid "Create a report"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:107
+#: templates/web/default/admin/body.html:103 templates/web/zurich/admin/body.html:53
msgid "Create category"
msgstr ""
-#: templates/web/default/admin/list_flagged.html:17 templates/web/default/admin/list_updates.html:9 templates/web/default/admin/search_reports.html:20
+#: templates/web/default/admin/flagged.html:17 templates/web/default/admin/list_updates.html:9 templates/web/default/admin/reports.html:20 templates/web/zurich/admin/list_updates.html:6
msgid "Created"
msgstr ""
-#: templates/web/default/admin/report_edit.html:33 templates/web/default/admin/update_edit.html:42
+#: templates/web/default/admin/report_edit.html:38 templates/web/default/admin/update_edit.html:45 templates/web/zurich/admin/report_edit-sdm.html:28 templates/web/zurich/admin/report_edit.html:46 templates/web/zurich/admin/update_edit.html:29
msgid "Created:"
msgstr ""
@@ -541,31 +565,31 @@ msgstr ""
msgid "Current state"
msgstr ""
-#: templates/web/default/admin/council_list.html:40
-msgid "Currently has 1+ deleted"
-msgstr ""
-
#: templates/web/default/dashboard/index.html:5 templates/web/default/dashboard/index.html:7
msgid "Dashboard"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:40 templates/web/default/admin/council_contacts.html:91 templates/web/default/admin/council_edit.html:29 templates/web/default/admin/council_edit.html:72
+#: templates/web/default/admin/body.html:38 templates/web/default/admin/body.html:88 templates/web/default/admin/body_edit.html:37 templates/web/default/admin/body_edit.html:85
msgid "Deleted"
msgstr ""
-#: templates/web/bromley/report/new/fill_in_details_form.html:54 templates/web/fixmystreet/report/new/fill_in_details_form.html:66 templates/web/zurich/report/new/fill_in_details_form.html:60
+#: templates/web/zurich/admin/index-dm.html:21 templates/web/zurich/admin/index-sdm.html:19 templates/web/zurich/admin/reports.html:13
+msgid "Description"
+msgstr ""
+
+#: templates/web/bromley/report/new/fill_in_details_form.html:54 templates/web/default/js/translation_strings.html:28 templates/web/fixmystreet/report/new/fill_in_details_form.html:66 templates/web/zurich/report/new/fill_in_details_form.html:42
msgid "Details"
msgstr ""
-#: templates/web/default/admin/report_edit.html:14 templates/web/default/report/new/fill_in_details_form.html:61
+#: templates/web/default/admin/report_edit.html:14 templates/web/default/report/new/fill_in_details_form.html:61 templates/web/zurich/admin/report_edit-sdm.html:14 templates/web/zurich/admin/report_edit.html:22 templates/web/zurich/admin/report_edit.html:29
msgid "Details:"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:41
+#: templates/web/default/admin/body.html:39
msgid "Devolved"
msgstr ""
-#: templates/web/default/admin/council_list.html:23
+#: templates/web/default/admin/edit-league.html:1
msgid "Diligency prize league table"
msgstr ""
@@ -581,15 +605,19 @@ msgstr ""
msgid "Don&rsquo;t know"
msgstr ""
-#: templates/web/default/admin/list_updates.html:35 templates/web/default/admin/problem_row.html:29 templates/web/default/admin/search_users.html:24
+#: templates/web/default/admin/list_updates.html:35 templates/web/default/admin/problem_row.html:31 templates/web/default/admin/users.html:28 templates/web/zurich/admin/problem_row.html:35
msgid "Edit"
msgstr ""
-#: templates/web/default/admin/report_edit.html:1
+#: templates/web/default/admin/body.html:112 templates/web/zurich/admin/body.html:64
+msgid "Edit body details"
+msgstr ""
+
+#: templates/web/default/admin/report_edit.html:1 templates/web/zurich/admin/report_edit-sdm.html:1 templates/web/zurich/admin/report_edit.html:4
msgid "Editing problem %d"
msgstr ""
-#: templates/web/default/admin/update_edit.html:1
+#: templates/web/default/admin/update_edit.html:1 templates/web/zurich/admin/update_edit.html:1
msgid "Editing update %d"
msgstr ""
@@ -597,19 +625,19 @@ msgstr ""
msgid "Editing user %d"
msgstr ""
-#: templates/web/default/admin/council_edit.html:73
+#: templates/web/default/admin/body_edit.html:86
msgid "Editor"
msgstr ""
-#: templates/web/bromley/report/display.html:126 templates/web/default/admin/council_contacts.html:38 templates/web/default/admin/council_edit.html:70 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_reports.html:15 templates/web/default/admin/search_users.html:13 templates/web/fixmystreet/auth/general.html:20 templates/web/fixmystreet/report/update-form.html:74
+#: templates/web/bromley/report/display.html:126 templates/web/default/admin/bodies.html:9 templates/web/default/admin/body.html:36 templates/web/default/admin/body_edit.html:83 templates/web/default/admin/flagged.html:12 templates/web/default/admin/flagged.html:35 templates/web/default/admin/list_updates.html:8 templates/web/default/admin/reports.html:15 templates/web/default/admin/users.html:13 templates/web/fixmystreet/auth/general.html:20 templates/web/fixmystreet/report/update-form.html:74 templates/web/zurich/admin/body-form.html:9 templates/web/zurich/admin/body.html:14
msgid "Email"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1135
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1195
msgid "Email added to abuse list"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1132
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1192
msgid "Email already in abuse list"
msgstr ""
@@ -621,19 +649,19 @@ msgstr ""
msgid "Email me updates"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:83 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:34
+#: templates/web/default/admin/body.html:80 templates/web/default/admin/body_edit.html:26 templates/web/default/admin/report_edit.html:36 templates/web/default/admin/update_edit.html:27 templates/web/default/admin/user-form.html:6 templates/web/default/alert/updates.html:13 templates/web/default/report/display.html:34 templates/web/zurich/admin/body.html:41 templates/web/zurich/admin/report_edit-sdm.html:25 templates/web/zurich/admin/report_edit.html:42
msgid "Email:"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:610
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:617
msgid "Empty flat or maisonette"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:609
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:616
msgid "Empty house or bungalow"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:612
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:619
msgid "Empty office or other commercial"
msgstr ""
@@ -641,11 +669,11 @@ msgstr ""
msgid "Empty property details form"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:613
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:620
msgid "Empty pub or bar"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:614
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:621
msgid "Empty public building - school, hospital, etc."
msgstr ""
@@ -661,7 +689,11 @@ msgstr ""
msgid "End month:"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Zurich.pm:9
+#: templates/web/default/admin/body-form.html:40
+msgid "Endpoint"
+msgstr ""
+
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:25
msgid "Enter a Z&uuml;rich street name"
msgstr ""
@@ -697,7 +729,7 @@ msgstr ""
msgid "Error"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:13 templates/web/default/admin/council_edit.html:18
+#: templates/web/default/admin/body.html:11 templates/web/default/admin/body_edit.html:18
msgid "Example postcode %s"
msgstr ""
@@ -705,7 +737,7 @@ msgstr ""
msgid "Examples:"
msgstr ""
-#: templates/web/default/admin/report_edit.html:40
+#: templates/web/default/admin/report_edit.html:45
msgid "Extra data:"
msgstr ""
@@ -713,6 +745,10 @@ msgstr ""
msgid "Failed to send message. Please try again, or <a href=\"mailto:%s\">email us</a>."
msgstr ""
+#: templates/web/zurich/admin/index-dm.html:32 templates/web/zurich/admin/index-sdm.html:29
+msgid "Filter report list"
+msgstr ""
+
#: templates/web/bromley/report/display.html:189 templates/web/bromley/report/new/fill_in_details_form.html:113 templates/web/bromley/report/new/fill_in_details_form.html:160
msgid "First Name"
msgstr ""
@@ -750,15 +786,15 @@ msgid ""
"for the county council."
msgstr ""
-#: templates/web/bromley/report/display.html:80 templates/web/bromley/report/display.html:82 templates/web/default/admin/index.html:36 templates/web/default/admin/report_edit.html:18 templates/web/default/admin/report_edit.html:20 templates/web/default/dashboard/index.html:138 templates/web/default/dashboard/index.html:140 templates/web/default/report/update-form.html:30 templates/web/default/report/update-form.html:32 templates/web/fixmystreet/report/banner.html:12 templates/web/fixmystreet/report/update-form.html:28 templates/web/fixmystreet/report/update-form.html:30
+#: templates/web/bromley/report/display.html:80 templates/web/bromley/report/display.html:82 templates/web/default/admin/index.html:36 templates/web/default/admin/report_edit.html:25 templates/web/default/dashboard/index.html:138 templates/web/default/dashboard/index.html:140 templates/web/default/report/update-form.html:30 templates/web/default/report/update-form.html:32 templates/web/fixmystreet/report/banner.html:12 templates/web/fixmystreet/report/update-form.html:28 templates/web/fixmystreet/report/update-form.html:30
msgid "Fixed"
msgstr ""
-#: templates/web/default/admin/report_edit.html:18 templates/web/default/admin/report_edit.html:21
+#: templates/web/default/admin/report_edit.html:26
msgid "Fixed - Council"
msgstr ""
-#: templates/web/default/admin/report_edit.html:18 templates/web/default/admin/report_edit.html:21
+#: templates/web/default/admin/report_edit.html:26
msgid "Fixed - User"
msgstr ""
@@ -766,7 +802,7 @@ msgstr ""
msgid "Fixed reports"
msgstr ""
-#: templates/web/default/admin/problem_row.html:24
+#: templates/web/default/admin/problem_row.html:26
msgid "Fixed:"
msgstr ""
@@ -774,11 +810,11 @@ msgstr ""
msgid "Flag user"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1037 templates/web/default/admin/search_users.html:15
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1091 templates/web/default/admin/users.html:16
msgid "Flagged"
msgstr ""
-#: templates/web/default/admin/report_edit.html:42 templates/web/default/admin/user_edit.html:18
+#: templates/web/default/admin/report_edit.html:47 templates/web/default/admin/user-form.html:14
msgid "Flagged:"
msgstr ""
@@ -786,7 +822,7 @@ msgstr ""
msgid "Follow a ward link to view only reports within that ward."
msgstr ""
-#: templates/web/default/admin/report_edit.html:16
+#: templates/web/default/admin/report_edit.html:21
msgid "For council(s):"
msgstr ""
@@ -794,7 +830,7 @@ msgstr ""
msgid "Forgotten your password?"
msgstr ""
-#: templates/web/default/faq/faq-en-gb.html:1 templates/web/emptyhomes/faq/faq-cy.html:1 templates/web/emptyhomes/faq/faq-en-gb.html:1 templates/web/fiksgatami/faq/faq-nb.html:1 templates/web/fiksgatami/nn/faq/faq-nn.html:1 templates/web/fixmybarangay/faq/faq-en-gb.html:1 templates/web/fixmystreet/faq/faq-en-gb.html:1 templates/web/fixmystreet/static/privacy.html:1 templates/web/zurich/faq/faq-de.html:1
+#: templates/web/default/faq/faq-en-gb.html:1 templates/web/emptyhomes/faq/faq-cy.html:1 templates/web/emptyhomes/faq/faq-en-gb.html:1 templates/web/fiksgatami/faq/faq-nb.html:1 templates/web/fiksgatami/nn/faq/faq-nn.html:1 templates/web/fixmybarangay/faq/faq-en-gb.html:1 templates/web/fixmystreet/faq/faq-en-gb.html:1 templates/web/fixmystreet/static/privacy.html:1 templates/web/zurich/faq/faq-de-ch.html:1
msgid "Frequently Asked Questions"
msgstr ""
@@ -806,7 +842,7 @@ msgstr ""
msgid "GeoRSS on Google Maps"
msgstr ""
-#: templates/web/bromley/report/display.html:30 templates/web/fixmystreet/report/display.html:31
+#: templates/web/bromley/report/display.html:30 templates/web/fixmystreet/report/display.html:38
msgid "Get updates"
msgstr ""
@@ -826,11 +862,11 @@ msgstr ""
msgid "Go"
msgstr ""
-#: templates/web/default/admin/report_edit.html:41
+#: templates/web/default/admin/report_edit.html:46
msgid "Going to send questionnaire?"
msgstr ""
-#: templates/web/default/admin/index.html:24
+#: templates/web/default/admin/index.html:24 templates/web/zurich/admin/index.html:11
msgid "Graph of problem creation by status over time"
msgstr ""
@@ -846,7 +882,7 @@ msgstr ""
msgid "Have you ever reported a problem to a council before, or is this your first time?"
msgstr ""
-#: templates/web/barnet/footer.html:24 templates/web/bromley/footer.html:25 templates/web/bromley/header.html:81 templates/web/default/footer.html:15 templates/web/emptyhomes/header.html:28 templates/web/fiksgatami/footer.html:9 templates/web/fiksgatami/nn/footer.html:9 templates/web/fixmybarangay/footer.html:24 templates/web/fixmystreet/footer.html:53 templates/web/reading/footer.html:10 templates/web/stevenage/footer.html:47 templates/web/zurich/footer.html:14
+#: templates/web/barnet/footer.html:24 templates/web/bromley/footer.html:25 templates/web/bromley/header.html:81 templates/web/default/footer.html:15 templates/web/emptyhomes/header.html:28 templates/web/fiksgatami/footer.html:9 templates/web/fiksgatami/nn/footer.html:9 templates/web/fixmybarangay/footer.html:24 templates/web/fixmystreet/footer.html:53 templates/web/reading/footer.html:10 templates/web/stevenage/footer.html:47 templates/web/zurich/footer.html:21 templates/web/zurich/nav_over_content.html:8
msgid "Help"
msgstr ""
@@ -854,31 +890,39 @@ msgstr ""
msgid "Here are the types of local problem alerts for &lsquo;%s&rsquo;."
msgstr ""
-#: templates/web/barnet/header.html:70 templates/web/bromley/header.html:64 templates/web/bromley/header.html:99 templates/web/fixmybarangay/header.html:64 templates/web/fixmystreet/header.html:49 templates/web/stevenage/header.html:97 templates/web/zurich/header.html:47
+#: templates/web/barnet/header.html:70 templates/web/bromley/header.html:64 templates/web/bromley/header.html:99 templates/web/fixmybarangay/header.html:64 templates/web/fixmystreet/header.html:49 templates/web/stevenage/header.html:97 templates/web/zurich/footer.html:11
msgid "Hi %s"
msgstr ""
-#: templates/web/default/admin/report_edit.html:18 templates/web/default/admin/report_edit.html:21 templates/web/default/admin/update_edit.html:19
+#: templates/web/default/admin/report_edit.html:26 templates/web/default/admin/update_edit.html:22 templates/web/zurich/admin/header.html:1 templates/web/zurich/admin/header.html:11 templates/web/zurich/admin/report_edit.html:70 templates/web/zurich/admin/update_edit.html:18
msgid "Hidden"
msgstr ""
-#: templates/web/default/around/display_location.html:63
+#: templates/web/default/around/display_location.html:66
msgid "Hide old"
msgstr ""
-#: templates/web/default/around/display_location.html:58
+#: templates/web/default/around/display_location.html:61
msgid "Hide pins"
msgstr ""
-#: templates/web/default/admin/council_edit.html:66
+#: templates/web/default/admin/body_edit.html:79
msgid "History"
msgstr ""
+#: templates/web/default/js/translation_strings.html:25
+msgid "Home"
+msgstr ""
+
#: templates/web/default/index-steps.html:1 templates/web/emptyhomes/index.html:53
msgid "How to report a problem"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:648
+#: templates/web/default/js/translation_strings.html:27
+msgid "How to send successful reports"
+msgstr ""
+
+#: perllib/FixMyStreet/App/Controller/Admin.pm:670
msgid "I am afraid you cannot confirm unconfirmed reports."
msgstr ""
@@ -890,15 +934,27 @@ 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:235
+#: perllib/FixMyStreet/App/Controller/Tokens.pm:257
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 ""
-#: templates/web/default/admin/list_flagged.html:9 templates/web/default/admin/list_updates.html:5 templates/web/default/admin/search_reports.html:12
+#: templates/web/default/admin/flagged.html:9 templates/web/default/admin/list_updates.html:5 templates/web/default/admin/reports.html:12 templates/web/zurich/admin/index-dm.html:20 templates/web/zurich/admin/index-sdm.html:18 templates/web/zurich/admin/list_updates.html:5 templates/web/zurich/admin/reports.html:12
msgid "ID"
msgstr ""
-#: templates/web/default/report/new/councils_text_none.html:11 templates/web/default/report/new/councils_text_none.html:12
+#: templates/web/default/email_sent.html:19
+msgid "If you do not, your alert will not be activated."
+msgstr ""
+
+#: templates/web/default/email_sent.html:15
+msgid "If you do not, your problem will not be posted."
+msgstr ""
+
+#: templates/web/default/email_sent.html:17
+msgid "If you do not, your update will not be posted."
+msgstr ""
+
+#: templates/web/default/report/new/councils_text_none.html:8 templates/web/default/report/new/councils_text_none.html:9
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 ""
@@ -906,7 +962,7 @@ msgstr ""
msgid "If you submit a report here it will be left on the site, but not reported to the council &ndash; please still leave your report, so that we can show to the council the activity in their area."
msgstr ""
-#: templates/web/default/auth/token.html:23 templates/web/default/email_sent.html:24
+#: templates/web/default/auth/token.html:25 templates/web/default/email_sent.html:9
msgid "If you use web-based email or have 'junk mail' filters, you may wish to check your bulk/spam mail folders: sometimes, our messages are marked that way."
msgstr ""
@@ -925,43 +981,47 @@ msgstr ""
msgid "Illegal feed selection"
msgstr ""
-#: templates/web/bromley/report/display.html:80 templates/web/bromley/report/display.html:82 templates/web/default/admin/report_edit.html:18 templates/web/default/admin/report_edit.html:20 templates/web/default/dashboard/index.html:138 templates/web/default/dashboard/index.html:140 templates/web/default/report/update-form.html:30 templates/web/default/report/update-form.html:32 templates/web/fixmystreet/report/update-form.html:28 templates/web/fixmystreet/report/update-form.html:30
-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 ""
-#: templates/web/fixmystreet/report/banner.html:19
+#: templates/web/bromley/report/display.html:80 templates/web/bromley/report/display.html:82 templates/web/default/admin/report_edit.html:25 templates/web/default/dashboard/index.html:138 templates/web/default/dashboard/index.html:140 templates/web/default/report/update-form.html:30 templates/web/default/report/update-form.html:32 templates/web/fixmystreet/report/banner.html:19 templates/web/fixmystreet/report/update-form.html:28 templates/web/fixmystreet/report/update-form.html:30 templates/web/zurich/admin/header.html:1 templates/web/zurich/admin/header.html:8 templates/web/zurich/admin/report_edit.html:79 templates/web/zurich/report/banner.html:15
msgid "In progress"
msgstr ""
+#: templates/web/zurich/admin/report_edit.html:118
+msgid "Include reporter personal details"
+msgstr ""
+
#: templates/web/default/admin/stats.html:76
msgid "Include unconfirmed reports"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Open311.pm:356
+#: perllib/FixMyStreet/App/Controller/Open311.pm:348
msgid "Incorrect has_photo value \"%s\""
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Open311.pm:341
+#: templates/web/zurich/admin/report_edit-sdm.html:37 templates/web/zurich/admin/report_edit.html:61
+msgid "Internal notes:"
+msgstr ""
+
+#: perllib/FixMyStreet/App/Controller/Open311.pm:333
msgid "Invalid agency_responsible value %s"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:952
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1006
msgid "Invalid end date"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Open311.pm:432
+#: perllib/FixMyStreet/App/Controller/Open311.pm:424
msgid "Invalid format %s specified."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:942
+#: perllib/FixMyStreet/App/Controller/Admin.pm:996
msgid "Invalid start date"
msgstr ""
-#: templates/web/bromley/report/display.html:80 templates/web/bromley/report/display.html:81 templates/web/default/admin/report_edit.html:18 templates/web/default/admin/report_edit.html:19 templates/web/default/dashboard/index.html:138 templates/web/default/dashboard/index.html:139 templates/web/default/report/update-form.html:30 templates/web/default/report/update-form.html:31 templates/web/fixmystreet/report/update-form.html:28 templates/web/fixmystreet/report/update-form.html:29
+#: templates/web/bromley/report/display.html:80 templates/web/bromley/report/display.html:81 templates/web/default/admin/report_edit.html:24 templates/web/default/dashboard/index.html:138 templates/web/default/dashboard/index.html:139 templates/web/default/report/update-form.html:30 templates/web/default/report/update-form.html:31 templates/web/fixmystreet/report/update-form.html:28 templates/web/fixmystreet/report/update-form.html:29
msgid "Investigating"
msgstr ""
@@ -977,23 +1037,23 @@ msgstr ""
msgid "Last Name"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:42
+#: templates/web/default/admin/body.html:40 templates/web/zurich/admin/body.html:15
msgid "Last editor"
msgstr ""
-#: templates/web/default/admin/report_edit.html:36
+#: templates/web/default/admin/report_edit.html:41
msgid "Last update:"
msgstr ""
-#: templates/web/default/admin/problem_row.html:26
+#: templates/web/default/admin/problem_row.html:28
msgid "Last&nbsp;update:"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:16 templates/web/default/admin/council_contacts.html:18
+#: templates/web/default/admin/body.html:14 templates/web/default/admin/body.html:16
msgid "List all reported problems"
msgstr ""
-#: templates/web/bromley/report/new/fill_in_details_form.html:69 templates/web/default/report/new/fill_in_details_form.html:68 templates/web/fixmystreet/report/new/fill_in_details_form.html:75 templates/web/zurich/report/new/fill_in_details_form.html:69
+#: templates/web/bromley/report/new/fill_in_details_form.html:69 templates/web/default/report/new/fill_in_details_form.html:68 templates/web/fixmystreet/report/new/fill_in_details_form.html:75 templates/web/zurich/report/new/fill_in_details_form.html:51
msgid "Loading..."
msgstr ""
@@ -1013,6 +1073,10 @@ msgstr ""
msgid "Locate the problem on a map of the area"
msgstr ""
+#: templates/web/default/js/translation_strings.html:37
+msgid "MAP"
+msgstr ""
+
#: perllib/FixMyStreet/Map/OSM.pm:44
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 ""
@@ -1025,7 +1089,7 @@ msgstr ""
msgid "Message:"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Open311.pm:440
+#: perllib/FixMyStreet/App/Controller/Open311.pm:432
msgid "Missing jurisdiction_id"
msgstr ""
@@ -1037,11 +1101,11 @@ msgstr ""
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/admin/search_users.html:12 templates/web/default/reports/index.html:15 templates/web/emptyhomes/reports/index.html:10 templates/web/fiksgatami/nn/reports/index.html:9 templates/web/fiksgatami/reports/index.html:9 templates/web/fixmybarangay/reports/index.html:19 templates/web/fixmystreet/auth/general.html:56 templates/web/fixmystreet/report/new/fill_in_details_form.html:120 templates/web/fixmystreet/report/new/fill_in_details_form.html:197 templates/web/fixmystreet/report/update-form.html:134 templates/web/zurich/report/new/fill_in_details_form.html:118
+#: templates/web/default/admin/bodies.html:7 templates/web/default/admin/body-form.html:4 templates/web/default/admin/flagged.html:11 templates/web/default/admin/flagged.html:34 templates/web/default/admin/list_updates.html:7 templates/web/default/admin/reports.html:14 templates/web/default/admin/users.html:12 templates/web/default/reports/index.html:15 templates/web/emptyhomes/reports/index.html:10 templates/web/fiksgatami/nn/reports/index.html:9 templates/web/fiksgatami/reports/index.html:9 templates/web/fixmybarangay/reports/index.html:19 templates/web/fixmystreet/auth/general.html:56 templates/web/fixmystreet/report/new/fill_in_details_form.html:120 templates/web/fixmystreet/report/new/fill_in_details_form.html:197 templates/web/fixmystreet/report/update-form.html:134 templates/web/zurich/admin/body-form.html:4 templates/web/zurich/report/new/fill_in_details_form.html:100
msgid "Name"
msgstr ""
-#: templates/web/default/admin/report_edit.html:30 templates/web/default/admin/update_edit.html:23 templates/web/default/admin/user_edit.html:10
+#: templates/web/default/admin/report_edit.html:35 templates/web/default/admin/update_edit.html:26 templates/web/default/admin/user-form.html:5 templates/web/zurich/admin/report_edit-sdm.html:24 templates/web/zurich/admin/report_edit.html:41
msgid "Name:"
msgstr ""
@@ -1053,7 +1117,7 @@ msgstr ""
msgid "Nearest named road to the pin placed on the map (automatically generated using OpenStreetMap): %s%s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/UK.pm:152
+#: perllib/FixMyStreet/Cobrand/UK.pm:148
msgid "Nearest postcode to the pin placed on the map (automatically generated): %s (%sm away)"
msgstr ""
@@ -1061,13 +1125,13 @@ msgstr ""
msgid "Nearest road to the pin placed on the map (automatically generated by Bing Maps): %s"
msgstr ""
-#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:265
+#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:267
msgid ""
"Nearest road to the pin placed on the map (automatically generated by Bing Maps): %s\n"
"\n"
msgstr ""
-#: templates/web/default/email_sent.html:20
+#: templates/web/default/email_sent.html:3
msgid "Nearly Done! Now check your email..."
msgstr ""
@@ -1075,7 +1139,11 @@ msgstr ""
msgid "New <br>problems"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:320
+#: perllib/FixMyStreet/App/Controller/Admin.pm:249
+msgid "New body added"
+msgstr ""
+
+#: perllib/FixMyStreet/App/Controller/Admin.pm:351
msgid "New category contact added"
msgstr ""
@@ -1111,6 +1179,10 @@ msgstr ""
msgid "New problems within {{NAME}}'s boundary on FixMyStreet"
msgstr ""
+#: templates/web/zurich/admin/index-sdm.html:4
+msgid "New reports"
+msgstr ""
+
#: db/alert_types_eha.pl:23
msgid "New reports for {{COUNCIL}} within {{WARD}} ward on reportemptyhomes.com"
msgstr ""
@@ -1135,36 +1207,44 @@ msgstr ""
msgid "New state"
msgstr ""
+#: templates/web/zurich/admin/report_edit-sdm.html:40
+msgid "New update:"
+msgstr ""
+
#: templates/web/fiksgatami/front/news.html:9 templates/web/fiksgatami/nn/front/news.html:9 templates/web/fixmystreet/front/news.html:8
msgid "New!"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:52 templates/web/default/admin/council_contacts.html:53 templates/web/default/admin/council_contacts.html:54 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:28 templates/web/default/admin/report_edit.html:41 templates/web/default/admin/update_edit.html:16 templates/web/default/questionnaire/creator_fixed.html:16 templates/web/default/questionnaire/index.html:107 templates/web/default/questionnaire/index.html:68 templates/web/fixmystreet/questionnaire/index.html:101 templates/web/fixmystreet/questionnaire/index.html:62
+#: templates/web/default/admin/body.html:50 templates/web/default/admin/body.html:51 templates/web/default/admin/body.html:52 templates/web/default/admin/body_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:21 templates/web/default/admin/report_edit.html:33 templates/web/default/admin/report_edit.html:46 templates/web/default/admin/update_edit.html:19 templates/web/default/questionnaire/creator_fixed.html:16 templates/web/default/questionnaire/index.html:107 templates/web/default/questionnaire/index.html:68 templates/web/fixmystreet/questionnaire/index.html:101 templates/web/fixmystreet/questionnaire/index.html:62
msgid "No"
msgstr ""
-#: templates/web/default/admin/stats.html:85 templates/web/default/admin/user_edit.html:13
+#: templates/web/default/admin/user-form.html:8
+msgid "No body"
+msgstr ""
+
+#: templates/web/default/admin/stats.html:85
msgid "No council"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:336
+#: perllib/FixMyStreet/DB/Result/Problem.pm:345
msgid "No council selected"
msgstr ""
-#: templates/web/default/admin/council_list.html:32
+#: templates/web/default/admin/edit-league.html:10
msgid "No edits have yet been made."
msgstr ""
-#: templates/web/default/admin/list_flagged.html:26
+#: templates/web/default/admin/flagged.html:26
msgid "No flagged problems found"
msgstr ""
-#: templates/web/default/admin/list_flagged.html:47
+#: templates/web/default/admin/flagged.html:47
msgid "No flagged users found"
msgstr ""
-#: templates/web/default/admin/council_list.html:38
-msgid "No info at all"
+#: templates/web/zurich/admin/report_edit-sdm.html:46
+msgid "No further updates"
msgstr ""
#: templates/web/default/around/around_map_list_items.html:17 templates/web/fixmystreet/around/around_map_list_items.html:8
@@ -1175,18 +1255,26 @@ msgstr ""
msgid "No problems have been reported yet."
msgstr ""
+#: templates/web/default/js/translation_strings.html:32
+msgid "No result returned"
+msgstr ""
+
#: templates/web/default/report/_support.html:3
msgid "No supporters"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:57
+#: templates/web/default/admin/body.html:55
msgid "Non Public"
msgstr ""
-#: templates/web/default/admin/council_list.html:5 templates/web/default/admin/report_edit.html:16
+#: templates/web/default/admin/report_edit.html:21 templates/web/zurich/admin/report_edit-sdm.html:27 templates/web/zurich/admin/report_edit.html:45
msgid "None"
msgstr ""
+#: templates/web/zurich/admin/report_edit-sdm.html:10
+msgid "Not for my subdivision"
+msgstr ""
+
#: templates/web/default/admin/questionnaire.html:6
msgid "Not reported before"
msgstr ""
@@ -1195,7 +1283,7 @@ msgstr ""
msgid "Not reported to council"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:43 templates/web/default/admin/council_edit.html:74
+#: templates/web/default/admin/body.html:41 templates/web/default/admin/body_edit.html:87 templates/web/zurich/admin/body.html:16
msgid "Note"
msgstr ""
@@ -1203,7 +1291,7 @@ msgstr ""
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:95 templates/web/default/admin/council_edit.html:32
+#: templates/web/default/admin/body.html:92 templates/web/default/admin/body_edit.html:44 templates/web/zurich/admin/body.html:47
msgid "Note:"
msgstr ""
@@ -1227,6 +1315,10 @@ msgstr ""
msgid "Now to submit your update&hellip; do you have a FixMyStreet password?"
msgstr ""
+#: templates/web/default/js/translation_strings.html:36
+msgid "OK"
+msgstr ""
+
#: templates/web/default/report/display.html:21 templates/web/default/report/update.html:16
msgid "Offensive? Unsuitable? Tell us"
msgstr ""
@@ -1259,7 +1351,7 @@ msgstr ""
msgid "Older problems"
msgstr ""
-#: templates/web/bromley/report/display.html:80 templates/web/default/admin/report_edit.html:18 templates/web/default/admin/update_edit.html:19 templates/web/default/dashboard/index.html:138 templates/web/default/report/update-form.html:30 templates/web/fixmystreet/report/update-form.html:28
+#: templates/web/bromley/report/display.html:80 templates/web/default/admin/report_edit.html:23 templates/web/default/admin/update_edit.html:22 templates/web/default/dashboard/index.html:138 templates/web/default/report/update-form.html:30 templates/web/fixmystreet/report/update-form.html:28 templates/web/zurich/admin/header.html:1 templates/web/zurich/admin/header.html:7 templates/web/zurich/admin/report_edit.html:68 templates/web/zurich/admin/update_edit.html:18 templates/web/zurich/report/banner.html:11
msgid "Open"
msgstr ""
@@ -1287,7 +1379,7 @@ msgstr ""
msgid "Or you can subscribe to an alert based upon what ward or council you&rsquo;re in:"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:1006 perllib/FixMyStreet/App/Controller/Report/New.pm:656 perllib/FixMyStreet/App/Controller/Report/New.pm:657 perllib/FixMyStreet/DB/Result/Problem.pm:505 perllib/FixMyStreet/DB/Result/Problem.pm:515 perllib/FixMyStreet/DB/Result/Problem.pm:525 perllib/FixMyStreet/DB/Result/Problem.pm:537 perllib/FixMyStreet/DB/ResultSet/Problem.pm:331 perllib/FixMyStreet/DB/ResultSet/Problem.pm:340
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:1023 perllib/FixMyStreet/App/Controller/Report/New.pm:663 perllib/FixMyStreet/App/Controller/Report/New.pm:664 perllib/FixMyStreet/DB/Result/Problem.pm:521 perllib/FixMyStreet/DB/Result/Problem.pm:531 perllib/FixMyStreet/DB/Result/Problem.pm:541 perllib/FixMyStreet/DB/Result/Problem.pm:553 perllib/FixMyStreet/DB/ResultSet/Problem.pm:331 perllib/FixMyStreet/DB/ResultSet/Problem.pm:340
msgid "Other"
msgstr ""
@@ -1303,7 +1395,11 @@ msgstr ""
msgid "Page Not Found"
msgstr ""
-#: templates/web/default/admin/report_edit.html:18 templates/web/default/admin/report_edit.html:21
+#: templates/web/default/admin/body-form.html:9 templates/web/zurich/admin/body-form.html:15
+msgid "Parent"
+msgstr ""
+
+#: templates/web/default/admin/report_edit.html:26
msgid "Partial"
msgstr ""
@@ -1315,15 +1411,15 @@ msgstr ""
msgid "Password:"
msgstr ""
-#: templates/web/bromley/report/new/fill_in_details_form.html:136 templates/web/bromley/report/new/fill_in_details_form.html:183 templates/web/fixmystreet/report/new/fill_in_details_form.html:148 templates/web/fixmystreet/report/new/fill_in_details_form.html:215 templates/web/zurich/report/new/fill_in_details_form.html:124
+#: templates/web/bromley/report/new/fill_in_details_form.html:136 templates/web/bromley/report/new/fill_in_details_form.html:183 templates/web/fixmystreet/report/new/fill_in_details_form.html:148 templates/web/fixmystreet/report/new/fill_in_details_form.html:215 templates/web/zurich/report/new/fill_in_details_form.html:106
msgid "Phone number (optional)"
msgstr ""
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:262 templates/web/default/admin/report_edit.html:32 templates/web/default/report/new/fill_in_details_form.html:215
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:263 templates/web/default/admin/report_edit.html:37 templates/web/default/report/new/fill_in_details_form.html:215 templates/web/zurich/admin/report_edit-sdm.html:27 templates/web/zurich/admin/report_edit.html:45
msgid "Phone:"
msgstr ""
-#: templates/web/bromley/report/display.html:109 templates/web/bromley/report/new/fill_in_details_form.html:104 templates/web/fixmystreet/report/new/fill_in_details_form.html:92 templates/web/fixmystreet/report/update-form.html:57 templates/web/zurich/report/new/fill_in_details_form.html:86
+#: templates/web/bromley/report/display.html:109 templates/web/bromley/report/new/fill_in_details_form.html:104 templates/web/fixmystreet/report/new/fill_in_details_form.html:92 templates/web/fixmystreet/report/update-form.html:57 templates/web/zurich/report/new/fill_in_details_form.html:68
msgid "Photo"
msgstr ""
@@ -1335,7 +1431,11 @@ msgstr ""
msgid "Photos of recent nearby reports"
msgstr ""
-#: templates/web/bromley/report/display.html:80 templates/web/bromley/report/display.html:81 templates/web/default/admin/report_edit.html:18 templates/web/default/admin/report_edit.html:19 templates/web/default/dashboard/index.html:138 templates/web/default/dashboard/index.html:139 templates/web/default/report/update-form.html:30 templates/web/default/report/update-form.html:31 templates/web/fixmystreet/report/update-form.html:28 templates/web/fixmystreet/report/update-form.html:29
+#: templates/web/default/js/translation_strings.html:24
+msgid "Place pin on map"
+msgstr ""
+
+#: templates/web/bromley/report/display.html:80 templates/web/bromley/report/display.html:81 templates/web/default/admin/report_edit.html:24 templates/web/default/dashboard/index.html:138 templates/web/default/dashboard/index.html:139 templates/web/default/report/update-form.html:30 templates/web/default/report/update-form.html:31 templates/web/fixmystreet/report/update-form.html:28 templates/web/fixmystreet/report/update-form.html:29 templates/web/zurich/admin/header.html:1 templates/web/zurich/admin/header.html:9 templates/web/zurich/admin/index-dm.html:9 templates/web/zurich/admin/report_edit.html:69
msgid "Planned"
msgstr ""
@@ -1343,7 +1443,7 @@ msgstr ""
msgid "Please <a class=\"tab_link\" href=\"#report\">take a look</a> at the updates that have been left."
msgstr ""
-#: templates/web/default/report/new/notes.html:6 templates/web/fixmystreet/report/new/notes.html:5
+#: templates/web/default/report/new/notes.html:6 templates/web/fixmystreet/report/new/notes.html:6
msgid "Please be polite, concise and to the point."
msgstr ""
@@ -1359,11 +1459,11 @@ msgstr ""
msgid "Please check your email address is correct"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:822 perllib/FixMyStreet/App/Controller/Report/New.pm:829 perllib/FixMyStreet/App/Controller/Report/New.pm:848 perllib/FixMyStreet/App/Controller/Report/New.pm:891 perllib/FixMyStreet/DB/Result/Problem.pm:355 templates/web/default/js/validation_strings.html:9
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:828 perllib/FixMyStreet/App/Controller/Report/New.pm:835 perllib/FixMyStreet/App/Controller/Report/New.pm:854 perllib/FixMyStreet/App/Controller/Report/New.pm:897 perllib/FixMyStreet/DB/Result/Problem.pm:364 templates/web/default/js/translation_strings.html:9
msgid "Please choose a category"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:361
+#: perllib/FixMyStreet/DB/Result/Problem.pm:370
msgid "Please choose a property type"
msgstr ""
@@ -1378,11 +1478,11 @@ msgid ""
"please <a href=\"/\">go to the front page</a> and follow the instructions."
msgstr ""
-#: templates/web/default/report/new/notes.html:7 templates/web/fixmystreet/report/new/notes.html:6
+#: templates/web/default/report/new/notes.html:7 templates/web/fixmystreet/report/new/notes.html:7
msgid "Please do not be abusive&nbsp;&mdash; abusing your council devalues the service for all users."
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Comment.pm:146 templates/web/default/js/validation_strings.html:2
+#: perllib/FixMyStreet/DB/Result/Comment.pm:147 templates/web/default/js/translation_strings.html:2
msgid "Please enter a message"
msgstr ""
@@ -1390,11 +1490,11 @@ msgstr ""
msgid "Please enter a password"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Contact.pm:97 perllib/FixMyStreet/DB/Result/Problem.pm:330 templates/web/default/js/validation_strings.html:3
+#: perllib/FixMyStreet/App/Controller/Contact.pm:97 perllib/FixMyStreet/DB/Result/Problem.pm:339 templates/web/default/js/translation_strings.html:3
msgid "Please enter a subject"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/User.pm:104 templates/web/default/js/validation_strings.html:12 templates/web/default/js/validation_strings.html:16
+#: perllib/FixMyStreet/DB/Result/User.pm:115 templates/web/default/js/translation_strings.html:12 templates/web/default/js/translation_strings.html:16
msgid "Please enter a valid email"
msgstr ""
@@ -1402,38 +1502,42 @@ msgstr ""
msgid "Please enter a valid email address"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:333 templates/web/default/js/validation_strings.html:4
+#: perllib/FixMyStreet/DB/Result/Problem.pm:342 templates/web/default/js/translation_strings.html:4
msgid "Please enter some details"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Contact.pm:96 perllib/FixMyStreet/DB/Result/User.pm:101 templates/web/default/auth/general.html:13 templates/web/default/auth/general.html:8 templates/web/default/js/validation_strings.html:11 templates/web/default/js/validation_strings.html:15 templates/web/fixmystreet/auth/general.html:14 templates/web/fixmystreet/auth/general.html:9
+#: perllib/FixMyStreet/App/Controller/Contact.pm:96 perllib/FixMyStreet/DB/Result/User.pm:112 templates/web/default/auth/general.html:13 templates/web/default/auth/general.html:8 templates/web/default/js/translation_strings.html:11 templates/web/default/js/translation_strings.html:15 templates/web/fixmystreet/auth/general.html:14 templates/web/fixmystreet/auth/general.html:9
msgid "Please enter your email"
msgstr ""
-#: templates/web/bromley/report/new/fill_in_details_form.html:149 templates/web/fixmystreet/report/new/fill_in_details_form.html:161 templates/web/zurich/report/new/fill_in_details_form.html:110
+#: templates/web/bromley/report/new/fill_in_details_form.html:149 templates/web/fixmystreet/report/new/fill_in_details_form.html:161 templates/web/zurich/report/new/fill_in_details_form.html:92
msgid "Please enter your email address"
msgstr ""
-#: templates/web/default/js/validation_strings.html:19
+#: templates/web/default/js/translation_strings.html:19
msgid "Please enter your first name"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:348 templates/web/default/js/validation_strings.html:7
+#: perllib/FixMyStreet/DB/Result/Problem.pm:357 templates/web/default/js/translation_strings.html:7
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 below"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Contact.pm:95 perllib/FixMyStreet/DB/Result/Comment.pm:143 perllib/FixMyStreet/DB/Result/Problem.pm:341 perllib/FixMyStreet/DB/Result/User.pm:97 templates/web/default/js/validation_strings.html:6
+#: perllib/FixMyStreet/App/Controller/Contact.pm:95 perllib/FixMyStreet/DB/Result/Comment.pm:144 perllib/FixMyStreet/DB/Result/Problem.pm:350 perllib/FixMyStreet/DB/Result/User.pm:108 templates/web/default/js/translation_strings.html:6
msgid "Please enter your name"
msgstr ""
-#: templates/web/default/js/validation_strings.html:20
+#: templates/web/default/js/translation_strings.html:20
msgid "Please enter your second name"
msgstr ""
-#: templates/web/default/js/validation_strings.html:18
+#: templates/web/default/js/translation_strings.html:18
msgid "Please enter your title"
msgstr ""
+#: templates/web/default/auth/sign_out.html:5 templates/web/zurich/auth/sign_out.html:5
+msgid "Please feel free to <a href=\"%s\">sign in again</a>, or go back to the <a href=\"/\">front page</a>."
+msgstr ""
+
#: templates/web/emptyhomes/report/new/fill_in_details_text.html:1
msgid ""
"Please fill in details of the empty property below, saying what type of\n"
@@ -1463,11 +1567,11 @@ msgid ""
"photo of the problem if you have one), etc."
msgstr ""
-#: templates/web/fixmystreet/report/new/fill_in_details_form.html:70 templates/web/zurich/report/new/fill_in_details_form.html:64
+#: templates/web/fixmystreet/report/new/fill_in_details_form.html:70 templates/web/zurich/report/new/fill_in_details_form.html:46
msgid "Please fill in details of the problem."
msgstr ""
-#: templates/web/bromley/report/new/fill_in_details_form.html:28 templates/web/default/report/new/fill_in_details_form.html:27 templates/web/fixmystreet/report/new/fill_in_details_form.html:35 templates/web/zurich/report/new/fill_in_details_form.html:35
+#: templates/web/bromley/report/new/fill_in_details_form.html:28 templates/web/default/report/new/fill_in_details_form.html:27 templates/web/fixmystreet/report/new/fill_in_details_form.html:35 templates/web/zurich/report/new/fill_in_details_form.html:20
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 ""
@@ -1487,7 +1591,7 @@ msgstr ""
msgid "Please note that updates are not sent to the relevant department. 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 ""
-#: templates/web/bromley/report/new/fill_in_details_form.html:23 templates/web/default/report/new/fill_in_details_form.html:5 templates/web/fixmystreet/report/new/fill_in_details_form.html:26 templates/web/zurich/report/new/fill_in_details_form.html:26
+#: templates/web/bromley/report/new/fill_in_details_form.html:23 templates/web/default/report/new/fill_in_details_form.html:5 templates/web/fixmystreet/report/new/fill_in_details_form.html:26 templates/web/zurich/report/new/fill_in_details_form.html:11
msgid "Please note your report has <strong>not yet been sent</strong>. Choose a category and add further information below, then submit."
msgstr ""
@@ -1523,11 +1627,11 @@ msgstr ""
msgid "Please take a look at the updates that have been left."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Photo.pm:175
+#: perllib/FixMyStreet/App/Controller/Photo.pm:172
msgid "Please upload a JPEG image only"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Photo.pm:182
+#: perllib/FixMyStreet/App/Controller/Photo.pm:179
msgid "Please upload a JPEG image only\n"
msgstr ""
@@ -1555,7 +1659,7 @@ msgstr ""
msgid "Posted by %s at %s"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:100 templates/web/default/admin/council_edit.html:30 templates/web/default/admin/report_edit.html:43
+#: templates/web/default/admin/body.html:97 templates/web/default/admin/body_edit.html:40 templates/web/default/admin/report_edit.html:48
msgid "Private"
msgstr ""
@@ -1575,11 +1679,11 @@ msgstr ""
msgid "Problem %s sent to council %s"
msgstr ""
-#: templates/web/default/admin/index.html:28
+#: templates/web/default/admin/index.html:28 templates/web/zurich/admin/index.html:15
msgid "Problem breakdown by state"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:849
+#: perllib/FixMyStreet/App/Controller/Admin.pm:877
msgid "Problem marked as open."
msgstr ""
@@ -1587,7 +1691,7 @@ msgstr ""
msgid "Problem state change based on survey results"
msgstr ""
-#: templates/web/default/admin/list_flagged.html:5
+#: templates/web/default/admin/flagged.html:5
msgid "Problems"
msgstr ""
@@ -1595,7 +1699,7 @@ msgstr ""
msgid "Problems in this area"
msgstr ""
-#: templates/web/bromley/report/display.html:31 templates/web/fixmystreet/around/tabbed_lists.html:4 templates/web/fixmystreet/report/display.html:35
+#: templates/web/bromley/report/display.html:31 templates/web/fixmystreet/around/tabbed_lists.html:4 templates/web/fixmystreet/report/display.html:43
msgid "Problems nearby"
msgstr ""
@@ -1611,11 +1715,11 @@ msgstr ""
msgid "Problems within %.1fkm of this location"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Default.pm:612 perllib/FixMyStreet/Cobrand/EmptyHomes.pm:95 perllib/FixMyStreet/Cobrand/FiksGataMi.pm:162 perllib/FixMyStreet/Cobrand/UK.pm:231
+#: perllib/FixMyStreet/Cobrand/Default.pm:600 perllib/FixMyStreet/Cobrand/EmptyHomes.pm:95 perllib/FixMyStreet/Cobrand/FiksGataMi.pm:155 perllib/FixMyStreet/Cobrand/UK.pm:227
msgid "Problems within %s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:103 perllib/FixMyStreet/Cobrand/UK.pm:245
+#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:103 perllib/FixMyStreet/Cobrand/UK.pm:241
msgid "Problems within %s ward"
msgstr ""
@@ -1631,7 +1735,7 @@ msgstr ""
msgid "Properties recently reported as put back to use on reportemptyhomes.com"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:616
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:623
msgid "Property type:"
msgstr ""
@@ -1651,10 +1755,22 @@ msgstr ""
msgid "Providing a password is optional, but doing so will allow you to more easily report problems, leave updates and manage your reports."
msgstr ""
-#: templates/web/default/admin/council_contacts.html:44 templates/web/default/admin/council_contacts.html:57
+#: templates/web/default/admin/body.html:42 templates/web/default/admin/body.html:55
msgid "Public"
msgstr ""
+#: templates/web/zurich/admin/report_edit.html:150
+msgid "Public response:"
+msgstr ""
+
+#: templates/web/zurich/admin/report_edit.html:57
+msgid "Publish photo"
+msgstr ""
+
+#: templates/web/zurich/admin/report_edit.html:160
+msgid "Publish the response"
+msgstr ""
+
#: templates/web/default/questionnaire/completed.html:1 templates/web/default/questionnaire/completed.html:2 templates/web/default/questionnaire/index.html:0 templates/web/default/questionnaire/index.html:14 templates/web/default/questionnaire/index.html:4 templates/web/fixmystreet/questionnaire/index.html:0 templates/web/fixmystreet/questionnaire/index.html:14 templates/web/fixmystreet/questionnaire/index.html:32 templates/web/fixmystreet/questionnaire/index.html:4
msgid "Questionnaire"
msgstr ""
@@ -1671,23 +1787,23 @@ msgstr ""
msgid "Questionnaire filled in by problem reporter"
msgstr ""
-#: templates/web/bromley/report/display.html:37 templates/web/default/alert/_list.html:21 templates/web/default/around/display_location.html:1 templates/web/default/around/display_location.html:3 templates/web/default/report/display.html:42 templates/web/default/reports/_rss.html:1 templates/web/fixmystreet/alert/_list.html:22 templates/web/fixmystreet/alert/updates.html:9 templates/web/fixmystreet/report/display.html:49
+#: templates/web/bromley/report/display.html:37 templates/web/default/alert/_list.html:21 templates/web/default/around/display_location.html:1 templates/web/default/around/display_location.html:3 templates/web/default/report/display.html:42 templates/web/default/reports/_rss.html:1 templates/web/fixmystreet/alert/_list.html:22 templates/web/fixmystreet/alert/updates.html:9 templates/web/fixmystreet/report/display.html:57
msgid "RSS feed"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/UK.pm:274 perllib/FixMyStreet/Cobrand/UK.pm:286
+#: perllib/FixMyStreet/Cobrand/UK.pm:270 perllib/FixMyStreet/Cobrand/UK.pm:282
msgid "RSS feed for %s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/UK.pm:280 perllib/FixMyStreet/Cobrand/UK.pm:292
+#: perllib/FixMyStreet/Cobrand/UK.pm:276 perllib/FixMyStreet/Cobrand/UK.pm:288
msgid "RSS feed for %s ward, %s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:178 perllib/FixMyStreet/Cobrand/FiksGataMi.pm:186 perllib/FixMyStreet/Cobrand/FiksGataMi.pm:196 perllib/FixMyStreet/Cobrand/FiksGataMi.pm:204 perllib/FixMyStreet/Cobrand/UK.pm:300 perllib/FixMyStreet/Cobrand/UK.pm:312
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:171 perllib/FixMyStreet/Cobrand/FiksGataMi.pm:179 perllib/FixMyStreet/Cobrand/FiksGataMi.pm:189 perllib/FixMyStreet/Cobrand/FiksGataMi.pm:197 perllib/FixMyStreet/Cobrand/UK.pm:296 perllib/FixMyStreet/Cobrand/UK.pm:308
msgid "RSS feed of %s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/UK.pm:305 perllib/FixMyStreet/Cobrand/UK.pm:317
+#: perllib/FixMyStreet/Cobrand/UK.pm:301 perllib/FixMyStreet/Cobrand/UK.pm:313
msgid "RSS feed of %s, within %s ward"
msgstr ""
@@ -1699,11 +1815,11 @@ msgstr ""
msgid "RSS feed of problems in this %s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Default.pm:613 perllib/FixMyStreet/Cobrand/EmptyHomes.pm:96 perllib/FixMyStreet/Cobrand/FiksGataMi.pm:161 perllib/FixMyStreet/Cobrand/UK.pm:238
+#: perllib/FixMyStreet/Cobrand/Default.pm:601 perllib/FixMyStreet/Cobrand/EmptyHomes.pm:96 perllib/FixMyStreet/Cobrand/FiksGataMi.pm:154 perllib/FixMyStreet/Cobrand/UK.pm:234
msgid "RSS feed of problems within %s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:102 perllib/FixMyStreet/Cobrand/UK.pm:244
+#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:102 perllib/FixMyStreet/Cobrand/UK.pm:240
msgid "RSS feed of problems within %s ward"
msgstr ""
@@ -1711,11 +1827,11 @@ msgstr ""
msgid "RSS feed of recent local problems"
msgstr ""
-#: templates/web/bromley/report/display.html:37 templates/web/default/report/display.html:42 templates/web/fixmystreet/alert/updates.html:9 templates/web/fixmystreet/report/display.html:49
+#: templates/web/bromley/report/display.html:37 templates/web/default/report/display.html:42 templates/web/fixmystreet/alert/updates.html:9 templates/web/fixmystreet/report/display.html:57
msgid "RSS feed of updates to this problem"
msgstr ""
-#: templates/web/bromley/report/display.html:39 templates/web/default/alert/updates.html:9 templates/web/default/report/display.html:33 templates/web/fixmystreet/alert/updates.html:14 templates/web/fixmystreet/report/display.html:51
+#: templates/web/bromley/report/display.html:39 templates/web/default/alert/updates.html:9 templates/web/default/report/display.html:33 templates/web/fixmystreet/alert/updates.html:14 templates/web/fixmystreet/report/display.html:59
msgid "Receive email when updates are left on this problem."
msgstr ""
@@ -1735,7 +1851,7 @@ msgstr ""
msgid "Recently reported problems"
msgstr ""
-#: templates/web/default/report/new/notes.html:9 templates/web/fixmystreet/report/new/notes.html:8
+#: templates/web/default/report/new/notes.html:9 templates/web/fixmystreet/report/new/notes.html:10
msgid "Remember that FixMyStreet is primarily for reporting physical problems that can be fixed. If your problem is not appropriate for submission via this site remember that you can contact your council directly using their own website."
msgstr ""
@@ -1747,7 +1863,7 @@ msgstr ""
msgid "Remove flag"
msgstr ""
-#: templates/web/default/admin/report_edit.html:54 templates/web/default/admin/update_edit.html:48
+#: templates/web/default/admin/report_edit.html:59 templates/web/default/admin/update_edit.html:51 templates/web/zurich/admin/update_edit.html:35
msgid "Remove photo (can't be undone!)"
msgstr ""
@@ -1755,11 +1871,11 @@ msgstr ""
msgid "Report Empty Homes"
msgstr ""
-#: templates/web/barnet/footer.html:16 templates/web/bromley/footer.html:17 templates/web/default/footer.html:7 templates/web/emptyhomes/header.html:27 templates/web/fiksgatami/footer.html:5 templates/web/fiksgatami/nn/footer.html:5 templates/web/fixmystreet/footer.html:45 templates/web/reading/footer.html:6 templates/web/stevenage/footer.html:39 templates/web/zurich/footer.html:10
+#: templates/web/barnet/footer.html:16 templates/web/bromley/footer.html:17 templates/web/default/footer.html:7 templates/web/emptyhomes/header.html:27 templates/web/fiksgatami/footer.html:5 templates/web/fiksgatami/nn/footer.html:5 templates/web/fixmystreet/footer.html:45 templates/web/reading/footer.html:6 templates/web/stevenage/footer.html:39 templates/web/zurich/footer.html:17 templates/web/zurich/nav_over_content.html:4
msgid "Report a problem"
msgstr ""
-#: templates/web/bromley/report/display.html:28 templates/web/fixmystreet/report/display.html:29
+#: templates/web/bromley/report/display.html:28 templates/web/fixmystreet/report/display.html:35
msgid "Report abuse"
msgstr ""
@@ -1767,7 +1883,7 @@ msgstr ""
msgid "Report empty properties"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Rss.pm:286
+#: perllib/FixMyStreet/App/Controller/Rss.pm:295
msgid "Report on %s"
msgstr ""
@@ -1783,7 +1899,7 @@ msgstr ""
msgid "Reported %s, to %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:520 templates/web/default/contact/index.html:45 templates/web/fixmystreet/contact/index.html:46
+#: perllib/FixMyStreet/DB/Result/Problem.pm:536 templates/web/default/contact/index.html:45 templates/web/fixmystreet/contact/index.html:46
msgid "Reported anonymously at %s"
msgstr ""
@@ -1791,50 +1907,66 @@ msgstr ""
msgid "Reported before"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:512
+#: perllib/FixMyStreet/DB/Result/Problem.pm:528
msgid "Reported by %s anonymously at %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:543 templates/web/default/contact/index.html:47 templates/web/fixmystreet/contact/index.html:48
+#: perllib/FixMyStreet/DB/Result/Problem.pm:559 templates/web/default/contact/index.html:47 templates/web/fixmystreet/contact/index.html:48
msgid "Reported by %s at %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:534
+#: perllib/FixMyStreet/DB/Result/Problem.pm:550
msgid "Reported by %s by %s at %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:508
+#: perllib/FixMyStreet/DB/Result/Problem.pm:524
msgid "Reported by %s in the %s category anonymously at %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:528
+#: perllib/FixMyStreet/DB/Result/Problem.pm:544
msgid "Reported by %s in the %s category by %s at %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:516
+#: templates/web/zurich/report/_main.html:2
+msgid "Reported in the %s category"
+msgstr ""
+
+#: perllib/FixMyStreet/DB/Result/Problem.pm:532
msgid "Reported in the %s category anonymously at %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:538
+#: perllib/FixMyStreet/DB/Result/Problem.pm:554
msgid "Reported in the %s category by %s at %s"
msgstr ""
-#: templates/web/default/around/around_index.html:1 templates/web/default/report/new/fill_in_details.html:0 templates/web/default/report/new/fill_in_details.html:3 templates/web/default/report/new/fill_in_details_form.html:1 templates/web/fixmystreet/around/around_index.html:2 templates/web/fixmystreet/report/new/fill_in_details.html:0 templates/web/fixmystreet/report/new/fill_in_details.html:5 templates/web/fixmystreet/report/new/fill_in_details_form.html:2 templates/web/zurich/report/new/fill_in_details_form.html:2
+#: templates/web/default/around/around_index.html:1 templates/web/default/js/translation_strings.html:35 templates/web/default/report/new/fill_in_details.html:0 templates/web/default/report/new/fill_in_details.html:3 templates/web/default/report/new/fill_in_details_form.html:1 templates/web/fixmystreet/around/around_index.html:2 templates/web/fixmystreet/report/new/fill_in_details.html:0 templates/web/fixmystreet/report/new/fill_in_details.html:5 templates/web/fixmystreet/report/new/fill_in_details_form.html:2 templates/web/zurich/report/new/fill_in_details_form.html:2
msgid "Reporting a problem"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1033
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1087 perllib/FixMyStreet/Cobrand/Zurich.pm:133 templates/web/zurich/header.html:59
msgid "Reports"
msgstr ""
+#: templates/web/zurich/admin/index-sdm.html:7
+msgid "Reports awaiting approval"
+msgstr ""
+
#: templates/web/default/around/tabbed_lists.html:3
msgid "Reports on and around the map"
msgstr ""
-#: templates/web/default/admin/report_edit.html:35
+#: templates/web/zurich/admin/index-sdm.html:10
+msgid "Reports published"
+msgstr ""
+
+#: templates/web/default/admin/report_edit.html:40
msgid "Resend report"
msgstr ""
+#: templates/web/default/js/translation_strings.html:22
+msgid "Right place?"
+msgstr ""
+
#: perllib/FixMyStreet/Geocode/OSM.pm:173
msgid "Road operator for this named road (derived from road reference number and type): %s"
msgstr ""
@@ -1843,39 +1975,59 @@ msgstr ""
msgid "Road operator for this named road (from OpenStreetMap): %s"
msgstr ""
-#: templates/web/default/admin/council_edit.html:63
+#: templates/web/default/admin/report_edit.html:55 templates/web/zurich/admin/report_edit.html:53
+msgid "Rotate Left"
+msgstr ""
+
+#: templates/web/default/admin/report_edit.html:56 templates/web/zurich/admin/report_edit.html:54
+msgid "Rotate Right"
+msgstr ""
+
+#: templates/web/default/admin/body_edit.html:76
msgid "Save changes"
msgstr ""
-#: templates/web/default/admin/list_flagged.html:1 templates/web/default/admin/search_reports.html:1
+#: templates/web/default/admin/flagged.html:1 templates/web/default/admin/reports.html:1 templates/web/zurich/admin/reports.html:1
msgid "Search Reports"
msgstr ""
-#: templates/web/default/admin/search_users.html:1
+#: templates/web/default/admin/users.html:1
msgid "Search Users"
msgstr ""
-#: templates/web/default/admin/search_reports.html:5 templates/web/default/admin/search_users.html:5
+#: templates/web/zurich/header.html:73
+msgid "Search reports"
+msgstr ""
+
+#: templates/web/default/admin/reports.html:5 templates/web/default/admin/users.html:5 templates/web/zurich/admin/reports.html:5
msgid "Search:"
msgstr ""
+#: templates/web/default/admin/body-form.html:11 templates/web/zurich/admin/body-form.html:17
+msgid "Select a body"
+msgstr ""
+
+#: templates/web/default/admin/body-form.html:21 templates/web/zurich/admin/body-form.html:27
+msgid "Select an area"
+msgstr ""
+
#: templates/web/default/alert/_list.html:8 templates/web/fixmystreet/alert/_list.html:10
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:623
+#: perllib/FixMyStreet/DB/Result/Problem.pm:640
msgid "Sent to %s %s later"
msgstr ""
-#: templates/web/default/admin/report_edit.html:35
+#: templates/web/default/admin/report_edit.html:40
msgid "Sent:"
msgstr ""
-#: templates/web/default/admin/report_edit.html:37
+#: templates/web/default/admin/report_edit.html:42
msgid "Service:"
msgstr ""
-#: templates/web/fixmystreet/report/display.html:33
+#: templates/web/fixmystreet/report/display.html:41
msgid "Share"
msgstr ""
@@ -1900,15 +2052,15 @@ msgstr ""
msgid "Show my name publicly"
msgstr ""
-#: templates/web/default/around/display_location.html:65
+#: templates/web/default/around/display_location.html:68
msgid "Show old"
msgstr ""
-#: templates/web/default/around/display_location.html:56
+#: templates/web/default/around/display_location.html:59
msgid "Show pins"
msgstr ""
-#: templates/web/default/auth/general.html:3 templates/web/default/auth/general.html:49 templates/web/fixmybarangay/header.html:68 templates/web/fixmystreet/auth/general.html:3 templates/web/fixmystreet/auth/general.html:42 templates/web/fixmystreet/auth/general.html:62 templates/web/fixmystreet/header.html:53 templates/web/stevenage/header.html:101 templates/web/zurich/header.html:51
+#: templates/web/default/auth/general.html:3 templates/web/default/auth/general.html:49 templates/web/fixmybarangay/header.html:68 templates/web/fixmystreet/auth/general.html:3 templates/web/fixmystreet/auth/general.html:42 templates/web/fixmystreet/auth/general.html:62 templates/web/fixmystreet/header.html:53 templates/web/stevenage/header.html:101
msgid "Sign in"
msgstr ""
@@ -1920,7 +2072,7 @@ msgstr ""
msgid "Sign in or create an account"
msgstr ""
-#: templates/web/bromley/auth/sign_out.html:1 templates/web/default/auth/sign_out.html:1 templates/web/default/header.html:30 templates/web/emptyhomes/header.html:41 templates/web/fiksgatami/header.html:22 templates/web/fiksgatami/nn/header.html:22 templates/web/fixmybarangay/auth/sign_out.html:1 templates/web/lichfielddc/header.html:177 templates/web/reading/header.html:33
+#: templates/web/bromley/auth/sign_out.html:1 templates/web/default/auth/sign_out.html:1 templates/web/default/header.html:30 templates/web/emptyhomes/header.html:41 templates/web/fiksgatami/header.html:22 templates/web/fiksgatami/nn/header.html:22 templates/web/lichfielddc/header.html:177 templates/web/reading/header.html:33 templates/web/zurich/auth/sign_out.html:1
msgid "Sign out"
msgstr ""
@@ -1940,11 +2092,7 @@ msgstr ""
msgid "Some text to localize"
msgstr ""
-#: templates/web/default/admin/council_list.html:42
-msgid "Some unconfirmeds"
-msgstr ""
-
-#: perllib/FixMyStreet/Cobrand/UK.pm:89
+#: perllib/FixMyStreet/Cobrand/UK.pm:93
msgid "Sorry, that appears to be a Crown dependency postcode, which we don't cover."
msgstr ""
@@ -1956,7 +2104,7 @@ msgstr ""
msgid "Sorry, we could not find that location."
msgstr ""
-#: perllib/FixMyStreet/Geocode/Bing.pm:53 perllib/FixMyStreet/Geocode/Google.pm:69 perllib/FixMyStreet/Geocode/Zurich.pm:82
+#: perllib/FixMyStreet/Geocode/Bing.pm:53 perllib/FixMyStreet/Geocode/Google.pm:69 perllib/FixMyStreet/Geocode/Zurich.pm:87
msgid "Sorry, we could not parse that location. Please try again."
msgstr ""
@@ -1976,35 +2124,43 @@ msgstr ""
msgid "Start month:"
msgstr ""
-#: templates/web/bromley/report/display.html:78 templates/web/default/admin/list_flagged.html:18 templates/web/default/admin/list_updates.html:6 templates/web/default/admin/search_reports.html:21 templates/web/fixmystreet/report/update-form.html:26
+#: templates/web/bromley/report/display.html:78 templates/web/default/admin/flagged.html:18 templates/web/default/admin/list_updates.html:6 templates/web/default/admin/reports.html:21 templates/web/fixmystreet/report/update-form.html:26
msgid "State"
msgstr ""
-#: templates/web/default/admin/report_edit.html:17 templates/web/default/admin/update_edit.html:18 templates/web/default/report/update-form.html:28
+#: templates/web/default/admin/report_edit.html:22 templates/web/default/admin/update_edit.html:21 templates/web/default/report/update-form.html:28 templates/web/zurich/admin/report_edit-sdm.html:35 templates/web/zurich/admin/report_edit.html:64 templates/web/zurich/admin/update_edit.html:17
msgid "State:"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1038 templates/web/default/admin/stats.html:1
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1092 templates/web/default/admin/stats.html:1
msgid "Stats"
msgstr ""
+#: templates/web/zurich/admin/index-dm.html:25 templates/web/zurich/admin/index-sdm.html:23 templates/web/zurich/admin/reports.html:17
+msgid "Status"
+msgstr ""
+
#: templates/web/default/report/updates.html:9
msgid "Still open, via questionnaire, %s"
msgstr ""
+#: templates/web/zurich/admin/index-dm.html:27
+msgid "Subdivision/Body"
+msgstr ""
+
#: templates/web/bromley/report/new/fill_in_details_form.html:48 templates/web/fixmystreet/contact/index.html:79 templates/web/fixmystreet/report/new/fill_in_details_form.html:60
msgid "Subject"
msgstr ""
-#: templates/web/default/admin/report_edit.html:13 templates/web/default/contact/index.html:83 templates/web/default/report/new/fill_in_details_form.html:52
+#: templates/web/default/admin/report_edit.html:13 templates/web/default/contact/index.html:83 templates/web/default/report/new/fill_in_details_form.html:52 templates/web/zurich/admin/report_edit.html:28
msgid "Subject:"
msgstr ""
-#: templates/web/bromley/report/new/fill_in_details_form.html:140 templates/web/bromley/report/new/fill_in_details_form.html:190 templates/web/bromley/report/new/fill_in_details_form.html:204 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 templates/web/fixmystreet/report/new/fill_in_details_form.html:152 templates/web/fixmystreet/report/new/fill_in_details_form.html:177 templates/web/fixmystreet/report/new/fill_in_details_form.html:222 templates/web/zurich/report/new/fill_in_details_form.html:128
+#: templates/web/bromley/report/new/fill_in_details_form.html:140 templates/web/bromley/report/new/fill_in_details_form.html:190 templates/web/bromley/report/new/fill_in_details_form.html:204 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 templates/web/fixmystreet/report/new/fill_in_details_form.html:152 templates/web/fixmystreet/report/new/fill_in_details_form.html:177 templates/web/fixmystreet/report/new/fill_in_details_form.html:222 templates/web/zurich/report/new/fill_in_details_form.html:111
msgid "Submit"
msgstr ""
-#: templates/web/default/admin/report_edit.html:57 templates/web/default/admin/update_edit.html:51 templates/web/default/admin/user_edit.html:20
+#: templates/web/default/admin/report_edit.html:62 templates/web/default/admin/update_edit.html:54 templates/web/default/admin/user-form.html:17 templates/web/zurich/admin/report_edit-sdm.html:45 templates/web/zurich/admin/report_edit.html:162 templates/web/zurich/admin/update_edit.html:38
msgid "Submit changes"
msgstr ""
@@ -2012,7 +2168,11 @@ msgstr ""
msgid "Submit questionnaire"
msgstr ""
-#: templates/web/bromley/report/display.html:44 templates/web/default/alert/updates.html:17 templates/web/default/report/display.html:38 templates/web/fixmystreet/alert/updates.html:23 templates/web/fixmystreet/report/display.html:56
+#: templates/web/zurich/admin/header.html:1 templates/web/zurich/admin/header.html:6 templates/web/zurich/admin/index-dm.html:23 templates/web/zurich/admin/index-dm.html:6 templates/web/zurich/admin/index-sdm.html:21 templates/web/zurich/admin/report_edit.html:67 templates/web/zurich/admin/reports.html:15 templates/web/zurich/report/banner.html:9
+msgid "Submitted"
+msgstr ""
+
+#: templates/web/bromley/report/display.html:44 templates/web/default/alert/updates.html:17 templates/web/default/report/display.html:38 templates/web/fixmystreet/alert/updates.html:23 templates/web/fixmystreet/report/display.html:64
msgid "Subscribe"
msgstr ""
@@ -2024,15 +2184,15 @@ msgstr ""
msgid "Subscribe to an alert based upon what baranagay you&rsquo;re in:"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1031 templates/web/default/admin/index.html:1
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1085 perllib/FixMyStreet/Cobrand/Zurich.pm:132 templates/web/default/admin/index.html:1 templates/web/zurich/admin/index-dm.html:1 templates/web/zurich/admin/index-sdm.html:1 templates/web/zurich/admin/index.html:1 templates/web/zurich/header.html:56
msgid "Summary"
msgstr ""
-#: templates/web/default/reports/index.html:1 templates/web/emptyhomes/reports/index.html:1 templates/web/fiksgatami/nn/reports/index.html:1 templates/web/fiksgatami/reports/index.html:1 templates/web/fixmybarangay/reports/index.html:1
+#: templates/web/default/reports/index.html:1 templates/web/emptyhomes/reports/index.html:1 templates/web/fiksgatami/nn/reports/index.html:1 templates/web/fiksgatami/reports/index.html:1 templates/web/fixmybarangay/reports/index.html:1 templates/web/zurich/reports/index.html:0 templates/web/zurich/reports/index.html:4
msgid "Summary reports"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1035
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1089
msgid "Survey"
msgstr ""
@@ -2040,15 +2200,15 @@ msgstr ""
msgid "Survey Results"
msgstr ""
-#: templates/web/default/admin/list_updates.html:14
+#: templates/web/default/admin/list_updates.html:14 templates/web/zurich/admin/list_updates.html:7
msgid "Text"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:20
+#: templates/web/default/admin/body.html:18
msgid "Text only version"
msgstr ""
-#: templates/web/default/admin/update_edit.html:13
+#: templates/web/default/admin/update_edit.html:14 templates/web/zurich/admin/update_edit.html:12
msgid "Text:"
msgstr ""
@@ -2092,7 +2252,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/Photo.pm:189
+#: perllib/FixMyStreet/App/Controller/Photo.pm:186
msgid "That image doesn't appear to have uploaded correctly (%s), please try again."
msgstr ""
@@ -2104,19 +2264,19 @@ msgstr ""
msgid "That location does not appear to be in the UK; please try again."
msgstr ""
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:63 perllib/FixMyStreet/Cobrand/UK.pm:82
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:63 perllib/FixMyStreet/Cobrand/UK.pm:86
msgid "That postcode was not recognised, sorry."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:616
+#: perllib/FixMyStreet/App/Controller/Admin.pm:641
msgid "That problem will now be resent."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report.pm:98
+#: perllib/FixMyStreet/App/Controller/Report.pm:117
msgid "That report cannot be viewed on FixMyStreet."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report.pm:92
+#: perllib/FixMyStreet/App/Controller/Report.pm:111
msgid "That report has been removed from FixMyStreet."
msgstr ""
@@ -2139,7 +2299,7 @@ msgstr ""
msgid "The Open311 v2 attribute agency_responsible is used to list the administrations that received the problem report, which is not quite the way the attribute is defined in the Open311 v2 specification."
msgstr ""
-#: templates/web/default/auth/token.html:21 templates/web/default/email_sent.html:22
+#: templates/web/default/auth/token.html:22 templates/web/default/email_sent.html:6
msgid "The confirmation email <strong>may</strong> take a few minutes to arrive &mdash; <em>please</em> be patient."
msgstr ""
@@ -2155,7 +2315,7 @@ msgstr ""
msgid "The details of your problem are available on the right hand side of this page."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Dashboard.pm:60 perllib/FixMyStreet/App/Controller/Reports.pm:43 perllib/FixMyStreet/App/Controller/Reports.pm:74
+#: perllib/FixMyStreet/App/Controller/Dashboard.pm:60 perllib/FixMyStreet/App/Controller/Reports.pm:67
msgid "The error was: %s"
msgstr ""
@@ -2223,15 +2383,15 @@ msgstr ""
msgid "The simplest alert is our geographic one:"
msgstr ""
-#: templates/web/barnet/report/new/councils_text_all.html:3 templates/web/default/report/new/councils_extra_text.html:1 templates/web/default/report/new/councils_text_some.html:10 templates/web/default/report/new/councils_text_some.html:11 templates/web/default/report/new/fill_in_details_form.html:17 templates/web/fixmystreet/report/new/fill_in_details_form.html:12 templates/web/zurich/report/new/fill_in_details_form.html:12
+#: templates/web/barnet/report/new/councils_text_all.html:3 templates/web/default/report/new/councils_extra_text.html:1 templates/web/default/report/new/councils_text_some.html:10 templates/web/default/report/new/councils_text_some.html:11 templates/web/default/report/new/fill_in_details_form.html:17 templates/web/fixmystreet/report/new/fill_in_details_form.html:12
msgid "The subject and details of the problem will be public, plus your name if you give us permission."
msgstr ""
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:271
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:272
msgid "The user could not locate the problem on a map, but to see the area around the location they entered"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Reports.pm:71
+#: perllib/FixMyStreet/App/Controller/Reports.pm:64
msgid "There was a problem showing the All Reports page. Please try again later."
msgstr ""
@@ -2239,7 +2399,7 @@ msgstr ""
msgid "There was a problem showing this page. Please try again later."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:736 perllib/FixMyStreet/App/Controller/Report/Update.pm:134 templates/web/default/auth/general.html:23 templates/web/fixmystreet/auth/general.html:24
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:740 perllib/FixMyStreet/App/Controller/Report/Update.pm:134 templates/web/default/auth/general.html:23 templates/web/fixmystreet/auth/general.html:24
msgid "There was a problem with your email/password combination. If you cannot remember your password, or do not have one, please fill in the &lsquo;sign in by email&rsquo; section of the form."
msgstr ""
@@ -2271,7 +2431,7 @@ msgstr ""
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:868 perllib/FixMyStreet/Cobrand/UK.pm:54
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:874 perllib/FixMyStreet/Cobrand/UK.pm:58
msgid "This information is required"
msgstr ""
@@ -2315,6 +2475,10 @@ msgstr ""
msgid "This problem is old and of unknown status."
msgstr ""
+#: templates/web/zurich/report/_main.html:14
+msgid "This report is awaiting moderation."
+msgstr ""
+
#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:86
msgid "This report is currently marked as closed."
msgstr ""
@@ -2327,15 +2491,15 @@ msgstr ""
msgid "This report is currently marked as open."
msgstr ""
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:264
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:265
msgid "This web page also contains a photo of the problem, provided by the user."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1034 templates/web/default/admin/timeline.html:1
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1088 templates/web/default/admin/timeline.html:1
msgid "Timeline"
msgstr ""
-#: templates/web/default/admin/list_flagged.html:10 templates/web/default/admin/search_reports.html:13
+#: templates/web/default/admin/flagged.html:10 templates/web/default/admin/reports.html:13
msgid "Title"
msgstr ""
@@ -2351,7 +2515,7 @@ msgstr ""
msgid "To find out what local alerts we have for you, please enter your postcode or street name and area"
msgstr ""
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:270
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:271
msgid "To view a map of the precise location of this issue"
msgstr ""
@@ -2359,11 +2523,11 @@ msgstr ""
msgid "Total"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Reports.pm:42
-msgid "Unable to look up areas in MaPit. Please try again later."
+#: templates/web/default/js/translation_strings.html:23
+msgid "Try again"
msgstr ""
-#: templates/web/default/admin/report_edit.html:18 templates/web/default/admin/report_edit.html:21 templates/web/default/admin/update_edit.html:19
+#: templates/web/default/admin/report_edit.html:26 templates/web/default/admin/update_edit.html:22 templates/web/zurich/admin/update_edit.html:18
msgid "Unconfirmed"
msgstr ""
@@ -2375,7 +2539,11 @@ msgstr ""
msgid "Unknown alert type"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report.pm:87
+#: templates/web/default/js/translation_strings.html:33
+msgid "Unknown error"
+msgstr ""
+
+#: perllib/FixMyStreet/App/Controller/Report.pm:106
msgid "Unknown problem ID"
msgstr ""
@@ -2395,6 +2563,10 @@ msgstr ""
msgid "Update below added by %s at %s"
msgstr ""
+#: templates/web/default/admin/body-form.html:77 templates/web/zurich/admin/body-form.html:47
+msgid "Update body"
+msgstr ""
+
#: templates/web/default/admin/index.html:30
msgid "Update breakdown by state"
msgstr ""
@@ -2403,19 +2575,19 @@ msgstr ""
msgid "Update by {{name}}"
msgstr ""
-#: templates/web/default/admin/update_edit.html:33
+#: templates/web/default/admin/update_edit.html:36 templates/web/zurich/admin/update_edit.html:25
msgid "Update changed problem state to %s"
msgstr ""
-#: templates/web/default/admin/update_edit.html:35
+#: templates/web/default/admin/update_edit.html:38
msgid "Update marked problem as fixed"
msgstr ""
-#: templates/web/default/admin/update_edit.html:37
+#: templates/web/default/admin/update_edit.html:40
msgid "Update reopened problem"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:68
+#: templates/web/default/admin/body.html:65
msgid "Update statuses"
msgstr ""
@@ -2423,11 +2595,15 @@ msgstr ""
msgid "Update:"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:708 perllib/FixMyStreet/App/Controller/Admin.pm:839 perllib/FixMyStreet/App/Controller/Admin.pm:899
+#: templates/web/zurich/admin/index-dm.html:24 templates/web/zurich/admin/index-sdm.html:22 templates/web/zurich/admin/reports.html:16
+msgid "Updated"
+msgstr ""
+
+#: perllib/FixMyStreet/App/Controller/Admin.pm:733 perllib/FixMyStreet/App/Controller/Admin.pm:867 perllib/FixMyStreet/App/Controller/Admin.pm:918 perllib/FixMyStreet/App/Controller/Admin.pm:957 perllib/FixMyStreet/Cobrand/Zurich.pm:322 perllib/FixMyStreet/Cobrand/Zurich.pm:377
msgid "Updated!"
msgstr ""
-#: templates/web/default/admin/list_updates.html:1 templates/web/default/report/update.html:3 templates/web/fixmystreet/report/update.html:3
+#: templates/web/default/admin/list_updates.html:1 templates/web/default/report/update.html:3 templates/web/fixmystreet/report/update.html:3 templates/web/zurich/admin/list_updates.html:1 templates/web/zurich/report/updates.html:2
msgid "Updates"
msgstr ""
@@ -2439,23 +2615,23 @@ msgstr ""
msgid "Updates to this problem, FixMyStreet"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1191
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1251
msgid "User flag removed"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1163
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1223
msgid "User flagged"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1036 templates/web/default/admin/list_flagged.html:30
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1090 perllib/FixMyStreet/Cobrand/Zurich.pm:147 templates/web/default/admin/flagged.html:30 templates/web/zurich/header.html:68
msgid "Users"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:315 perllib/FixMyStreet/App/Controller/Admin.pm:345
+#: perllib/FixMyStreet/App/Controller/Admin.pm:346 perllib/FixMyStreet/App/Controller/Admin.pm:376
msgid "Values updated"
msgstr ""
-#: templates/web/default/admin/report_edit.html:12 templates/web/default/admin/update_edit.html:12
+#: templates/web/default/admin/report_edit.html:12 templates/web/default/admin/update_edit.html:12 templates/web/zurich/admin/report_edit-sdm.html:13 templates/web/zurich/admin/report_edit.html:19 templates/web/zurich/admin/update_edit.html:10
msgid "View report on site"
msgstr ""
@@ -2495,11 +2671,11 @@ msgstr ""
msgid "We never show your email"
msgstr ""
-#: templates/web/bromley/report/new/fill_in_details_form.html:133 templates/web/bromley/report/new/fill_in_details_form.html:179 templates/web/fixmystreet/report/new/fill_in_details_form.html:144 templates/web/fixmystreet/report/new/fill_in_details_form.html:211 templates/web/zurich/report/new/fill_in_details_form.html:114
+#: templates/web/bromley/report/new/fill_in_details_form.html:133 templates/web/bromley/report/new/fill_in_details_form.html:179 templates/web/fixmystreet/report/new/fill_in_details_form.html:144 templates/web/fixmystreet/report/new/fill_in_details_form.html:211 templates/web/zurich/report/new/fill_in_details_form.html:96
msgid "We never show your email address or phone number."
msgstr ""
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:351
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:350
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 ""
@@ -2523,15 +2699,15 @@ 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:45 templates/web/default/admin/council_edit.html:69
+#: templates/web/default/admin/body.html:43 templates/web/default/admin/body_edit.html:82 templates/web/zurich/admin/body.html:17
msgid "When edited"
msgstr ""
-#: templates/web/default/admin/list_flagged.html:19 templates/web/default/admin/search_reports.html:22
+#: templates/web/default/admin/flagged.html:19 templates/web/default/admin/reports.html:22
msgid "When sent"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:611
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:618
msgid "Whole block of empty flats"
msgstr ""
@@ -2551,7 +2727,7 @@ msgstr ""
msgid "Would you like to receive another questionnaire in 4 weeks, reminding you to check the status?"
msgstr ""
-#: templates/web/default/report/new/notes.html:8 templates/web/fixmybarangay/report/new/notes.html:8 templates/web/fixmystreet/report/new/notes.html:7
+#: templates/web/default/report/new/notes.html:8 templates/web/fixmybarangay/report/new/notes.html:8 templates/web/fixmystreet/report/new/notes.html:8
msgid "Writing your message entirely in block capitals makes it hard to read, as does a lack of punctuation."
msgstr ""
@@ -2559,7 +2735,7 @@ msgstr ""
msgid "Year"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:52 templates/web/default/admin/council_contacts.html:53 templates/web/default/admin/council_contacts.html:54 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:27 templates/web/default/admin/report_edit.html:41 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:105 templates/web/default/questionnaire/index.html:66 templates/web/fixmystreet/questionnaire/index.html:60 templates/web/fixmystreet/questionnaire/index.html:99
+#: templates/web/default/admin/body.html:50 templates/web/default/admin/body.html:51 templates/web/default/admin/body.html:52 templates/web/default/admin/body_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:21 templates/web/default/admin/report_edit.html:32 templates/web/default/admin/report_edit.html:46 templates/web/default/admin/update_edit.html:18 templates/web/default/admin/users.html:26 templates/web/default/questionnaire/creator_fixed.html:14 templates/web/default/questionnaire/index.html:105 templates/web/default/questionnaire/index.html:66 templates/web/fixmystreet/questionnaire/index.html:60 templates/web/fixmystreet/questionnaire/index.html:99
msgid "Yes"
msgstr ""
@@ -2579,19 +2755,27 @@ msgstr ""
msgid "You can <a href=\"%s\">view all reports for the council</a> or <a href=\"/reports\">show all councils</a>."
msgstr ""
+#: templates/web/default/tokens/confirm_problem.html:19 templates/web/default/tokens/confirm_problem.html:21 templates/web/zurich/tokens/confirm_problem.html:5 templates/web/zurich/tokens/confirm_problem.html:8
+msgid "You can <a href=\"%s%s\">view the problem on this site</a>."
+msgstr ""
+
#: templates/web/emptyhomes/reports/body.html:66
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:16 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:11 templates/web/default/report/new/councils_text_none.html:13 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 ""
+#: templates/web/default/js/translation_strings.html:30
+msgid "You declined; please fill in the box above"
+msgstr ""
+
#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:38
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/bromley/report/new/fill_in_details_form.html:97 templates/web/default/questionnaire/index.html:92 templates/web/default/report/new/fill_in_details_form.html:93 templates/web/fixmystreet/questionnaire/index.html:87 templates/web/fixmystreet/report/new/fill_in_details_form.html:99 templates/web/zurich/report/new/fill_in_details_form.html:93
+#: templates/web/bromley/report/new/fill_in_details_form.html:97 templates/web/default/questionnaire/index.html:92 templates/web/default/report/new/fill_in_details_form.html:93 templates/web/fixmystreet/questionnaire/index.html:87 templates/web/fixmystreet/report/new/fill_in_details_form.html:99 templates/web/zurich/report/new/fill_in_details_form.html:75
msgid "You have already attached a photo to this report, attaching another one will replace it."
msgstr ""
@@ -2599,11 +2783,11 @@ msgstr ""
msgid "You have already attached a photo to this update, attaching another one will replace it."
msgstr ""
-#: templates/web/default/auth/sign_out.html:3 templates/web/fixmybarangay/auth/sign_out.html:3
+#: templates/web/default/auth/sign_out.html:3 templates/web/zurich/auth/sign_out.html:3
msgid "You have been signed out"
msgstr ""
-#: templates/web/bromley/report/new/fill_in_details_form.html:25 templates/web/default/report/new/fill_in_details_form.html:7 templates/web/fixmystreet/report/new/fill_in_details_form.html:28 templates/web/zurich/report/new/fill_in_details_form.html:28
+#: templates/web/bromley/report/new/fill_in_details_form.html:25 templates/web/default/report/new/fill_in_details_form.html:7 templates/web/fixmystreet/report/new/fill_in_details_form.html:28 templates/web/zurich/report/new/fill_in_details_form.html:13
msgid "You have located the problem at the point marked with a green pin on the map. If this is not the correct location, simply click on the map again. "
msgstr ""
@@ -2611,6 +2795,10 @@ msgstr ""
msgid "You have successfully confirmed your alert."
msgstr ""
+#: templates/web/zurich/tokens/confirm_problem.html:5 templates/web/zurich/tokens/confirm_problem.html:6
+msgid "You have successfully confirmed your email address."
+msgstr ""
+
#: templates/web/default/tokens/confirm_problem.html:14 templates/web/default/tokens/confirm_problem.html:15
msgid "You have successfully confirmed your problem"
msgstr ""
@@ -2627,15 +2815,15 @@ msgstr ""
msgid "You have successfully deleted your alert."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:743 perllib/FixMyStreet/App/Controller/Report/Update.pm:140
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:747 perllib/FixMyStreet/App/Controller/Report/Update.pm:140
msgid "You have successfully signed in; please check and confirm your details are accurate:"
msgstr ""
-#: templates/web/default/email_sent.html:26
-msgid "You must now click the link in the email we've just sent you &mdash; if you do not, %s."
+#: templates/web/default/email_sent.html:13
+msgid "You must now click the link in the email we've just sent you."
msgstr ""
-#: templates/web/default/admin/report_edit.html:35
+#: templates/web/default/admin/report_edit.html:40
msgid "You really want to resend?"
msgstr ""
@@ -2643,7 +2831,7 @@ msgstr ""
msgid "Your Reports"
msgstr ""
-#: templates/web/bromley/report/display.html:41 templates/web/bromley/report/display.html:43 templates/web/bromley/report/new/fill_in_details_form.html:145 templates/web/fixmystreet/alert/_list.html:89 templates/web/fixmystreet/alert/updates.html:19 templates/web/fixmystreet/alert/updates.html:22 templates/web/fixmystreet/contact/index.html:72 templates/web/fixmystreet/report/display.html:53 templates/web/fixmystreet/report/display.html:55 templates/web/fixmystreet/report/new/fill_in_details_form.html:115 templates/web/fixmystreet/report/new/fill_in_details_form.html:157 templates/web/zurich/report/new/fill_in_details_form.html:106
+#: templates/web/bromley/report/display.html:41 templates/web/bromley/report/display.html:43 templates/web/bromley/report/new/fill_in_details_form.html:145 templates/web/fixmystreet/alert/_list.html:89 templates/web/fixmystreet/alert/updates.html:19 templates/web/fixmystreet/alert/updates.html:22 templates/web/fixmystreet/contact/index.html:72 templates/web/fixmystreet/report/display.html:61 templates/web/fixmystreet/report/display.html:63 templates/web/fixmystreet/report/new/fill_in_details_form.html:115 templates/web/fixmystreet/report/new/fill_in_details_form.html:157 templates/web/zurich/report/new/fill_in_details_form.html:88
msgid "Your email"
msgstr ""
@@ -2671,7 +2859,7 @@ msgstr ""
msgid "Your last name"
msgstr ""
-#: templates/web/fixmystreet/auth/general.html:57 templates/web/fixmystreet/contact/index.html:65 templates/web/fixmystreet/report/new/fill_in_details_form.html:124 templates/web/fixmystreet/report/new/fill_in_details_form.html:202 templates/web/fixmystreet/report/update-form.html:138 templates/web/zurich/report/new/fill_in_details_form.html:122
+#: templates/web/fixmystreet/auth/general.html:57 templates/web/fixmystreet/contact/index.html:65 templates/web/fixmystreet/report/new/fill_in_details_form.html:124 templates/web/fixmystreet/report/new/fill_in_details_form.html:202 templates/web/fixmystreet/report/update-form.html:138 templates/web/zurich/report/new/fill_in_details_form.html:104
msgid "Your name"
msgstr ""
@@ -2687,7 +2875,7 @@ msgstr ""
msgid "Your password has been changed"
msgstr ""
-#: templates/web/bromley/report/new/fill_in_details_form.html:137 templates/web/bromley/report/new/fill_in_details_form.html:184 templates/web/fixmystreet/report/new/fill_in_details_form.html:149 templates/web/fixmystreet/report/new/fill_in_details_form.html:216 templates/web/zurich/report/new/fill_in_details_form.html:125
+#: templates/web/bromley/report/new/fill_in_details_form.html:137 templates/web/bromley/report/new/fill_in_details_form.html:184 templates/web/fixmystreet/report/new/fill_in_details_form.html:149 templates/web/fixmystreet/report/new/fill_in_details_form.html:216 templates/web/zurich/report/new/fill_in_details_form.html:107
msgid "Your phone number"
msgstr ""
@@ -2715,11 +2903,11 @@ msgstr ""
msgid "council"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:608
+#: perllib/FixMyStreet/DB/Result/Problem.pm:625
msgid "council ref:&nbsp;%s"
msgstr ""
-#: templates/web/default/admin/report_edit.html:15
+#: templates/web/default/admin/report_edit.html:19 templates/web/zurich/admin/report_edit-sdm.html:21 templates/web/zurich/admin/report_edit.html:39
msgid "didn't use map"
msgstr ""
@@ -2727,11 +2915,11 @@ msgstr ""
msgid "e.g. ‘%s’ or ‘%s’"
msgstr ""
-#: templates/web/default/admin/index.html:15
+#: templates/web/default/admin/index.html:15 templates/web/zurich/admin/index.html:5
msgid "from %d different users"
msgstr ""
-#: perllib/Utils.pm:267
+#: perllib/Utils.pm:268
msgid "less than a minute"
msgstr ""
@@ -2743,7 +2931,7 @@ msgstr ""
msgid "marked as fixed"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:113 templates/web/default/admin/questionnaire.html:15 templates/web/default/admin/questionnaire.html:16
+#: perllib/FixMyStreet/App/Controller/Admin.pm:128 templates/web/default/admin/questionnaire.html:15 templates/web/default/admin/questionnaire.html:16
msgid "n/a"
msgstr ""
@@ -2751,15 +2939,15 @@ msgstr ""
msgid "or"
msgstr ""
-#: templates/web/default/js/validation_strings.html:21
+#: templates/web/default/js/translation_strings.html:21
msgid "or locate me automatically"
msgstr ""
-#: templates/web/default/admin/report_edit.html:15
-msgid "originally entered"
+#: templates/web/default/admin/report_edit.html:18 templates/web/zurich/admin/report_edit-sdm.html:16 templates/web/zurich/admin/report_edit-sdm.html:20 templates/web/zurich/admin/report_edit.html:24 templates/web/zurich/admin/report_edit.html:32 templates/web/zurich/admin/report_edit.html:38
+msgid "originally entered: &ldquo;%s&rdquo;"
msgstr ""
-#: templates/web/default/admin/report_edit.html:16
+#: templates/web/default/admin/report_edit.html:21
msgid "other areas:"
msgstr ""
@@ -2767,15 +2955,15 @@ msgstr ""
msgid "reopened"
msgstr ""
-#: templates/web/barnet/header.html:71 templates/web/bromley/header.html:100 templates/web/bromley/header.html:65 templates/web/fixmybarangay/header.html:65 templates/web/fixmystreet/header.html:50 templates/web/stevenage/header.html:98 templates/web/zurich/header.html:48
+#: templates/web/barnet/header.html:71 templates/web/bromley/header.html:100 templates/web/bromley/header.html:65 templates/web/fixmybarangay/header.html:65 templates/web/fixmystreet/header.html:50 templates/web/stevenage/header.html:98 templates/web/zurich/footer.html:12
msgid "sign out"
msgstr ""
-#: templates/web/bromley/report/new/fill_in_details_form.html:4 templates/web/bromley/report/new/fill_in_details_form.html:7 templates/web/default/report/new/fill_in_details_form.html:11 templates/web/default/report/new/fill_in_details_form.html:14 templates/web/fixmystreet/report/new/fill_in_details_form.html:6 templates/web/fixmystreet/report/new/fill_in_details_form.html:9 templates/web/zurich/report/new/fill_in_details_form.html:6 templates/web/zurich/report/new/fill_in_details_form.html:9
+#: templates/web/bromley/report/new/fill_in_details_form.html:4 templates/web/bromley/report/new/fill_in_details_form.html:7 templates/web/default/report/new/fill_in_details_form.html:11 templates/web/default/report/new/fill_in_details_form.html:14 templates/web/fixmystreet/report/new/fill_in_details_form.html:6 templates/web/fixmystreet/report/new/fill_in_details_form.html:9
msgid "the local council"
msgstr ""
-#: templates/web/default/report/_main.html:6
+#: templates/web/default/report/_main.html:6 templates/web/zurich/report/_main.html:5
msgid "there is no pin shown as the user did not use the map"
msgstr ""
@@ -2783,19 +2971,19 @@ msgstr ""
msgid "this type of local problem"
msgstr ""
-#: perllib/Utils.pm:241
+#: perllib/Utils.pm:240
msgid "today"
msgstr ""
-#: templates/web/default/admin/report_edit.html:15
+#: templates/web/default/admin/report_edit.html:19 templates/web/zurich/admin/report_edit-sdm.html:21 templates/web/zurich/admin/report_edit.html:39
msgid "used map"
msgstr ""
-#: templates/web/default/admin/update_edit.html:26
+#: templates/web/default/admin/update_edit.html:29
msgid "user is from same council as problem - %d"
msgstr ""
-#: templates/web/default/admin/update_edit.html:29
+#: templates/web/default/admin/update_edit.html:32
msgid "user is problem owner"
msgstr ""
@@ -2803,30 +2991,6 @@ msgstr ""
msgid "ward"
msgstr ""
-#: templates/web/default/email_sent.html:15 templates/web/default/email_sent.html:3
-msgid "we'll hang on to your alert while you're checking your email."
-msgstr ""
-
-#: templates/web/default/email_sent.html:3 templates/web/default/email_sent.html:7
-msgid "we'll hang on to your problem report while you're checking your email."
-msgstr ""
-
-#: templates/web/default/email_sent.html:11 templates/web/default/email_sent.html:3
-msgid "we'll hang on to your update while you're checking your email."
-msgstr ""
-
-#: templates/web/default/email_sent.html:14 templates/web/default/email_sent.html:3
-msgid "your alert will not be activated"
-msgstr ""
-
-#: templates/web/default/email_sent.html:3 templates/web/default/email_sent.html:6
-msgid "your problem will not be posted"
-msgstr ""
-
-#: templates/web/default/email_sent.html:10 templates/web/default/email_sent.html:3
-msgid "your update will not be posted"
-msgstr ""
-
#: templates/web/emptyhomes/front/stats.html:17
#, perl-format
msgid "<big>%s</big> report recently"
@@ -2834,14 +2998,14 @@ msgid_plural "<big>%s</big> reports recently"
msgstr[0] ""
msgstr[1] ""
-#: perllib/Utils.pm:286
+#: perllib/Utils.pm:287
#, perl-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] ""
msgstr[1] ""
-#: perllib/Utils.pm:288
+#: perllib/Utils.pm:289
#, perl-format
msgid "%d minute"
msgid_plural "%d minutes"
@@ -2862,7 +3026,7 @@ msgid_plural "We do not yet have details for the councils that cover this locati
msgstr[0] ""
msgstr[1] ""
-#: perllib/Utils.pm:282
+#: perllib/Utils.pm:283
#, perl-format
msgid "%d week"
msgid_plural "%d weeks"
@@ -2890,7 +3054,7 @@ msgid_plural "We do <strong>not</strong> yet have details for the other councils
msgstr[0] ""
msgstr[1] ""
-#: perllib/Utils.pm:284
+#: perllib/Utils.pm:285
#, perl-format
msgid "%d day"
msgid_plural "%d days"
diff --git a/locale/cy_GB.UTF-8/LC_MESSAGES/EmptyHomes.po b/locale/cy_GB.UTF-8/LC_MESSAGES/EmptyHomes.po
index 337bd8a40..11e07f708 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: 2012-12-10 13:18+0000\n"
+"POT-Creation-Date: 2013-01-31 15:59+0000\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"
@@ -20,21 +20,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:560
+#: perllib/FixMyStreet/DB/Result/Problem.pm:579
#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:339
msgid " and "
msgstr ""
#: templates/web/default/tokens/confirm_problem.html:14
-#: templates/web/default/tokens/confirm_problem.html:18
+#: templates/web/default/tokens/confirm_problem.html:17
msgid " and <strong>we will now send it to the council</strong>"
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:17
-#: templates/web/default/report/new/councils_text_all.html:3
+#: templates/web/default/report/new/councils_text_all.html:11
+#: templates/web/default/report/new/councils_text_all.html:18
+#: templates/web/default/report/new/councils_text_all.html:4
+#: templates/web/default/report/new/councils_text_none.html:11
#: 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
@@ -43,7 +43,7 @@ msgstr " a <strong>byddwn nawr yn ei anfon at y cyngor</strong>"
msgid " or "
msgstr "neu"
-#: templates/web/default/admin/council_list.html:17
+#: templates/web/default/admin/bodies.html:31
#, fuzzy
msgid "%d addresses"
msgstr "wythnos"
@@ -53,10 +53,11 @@ msgid "%d confirmed alerts, %d unconfirmed"
msgstr ""
#: templates/web/default/admin/index.html:19
+#: templates/web/zurich/admin/index.html:6
msgid "%d council contacts &ndash; %d confirmed, %d unconfirmed"
msgstr ""
-#: templates/web/default/admin/council_list.html:27
+#: templates/web/default/admin/edit-league.html:5
msgid "%d edits by %s"
msgstr ""
@@ -80,33 +81,52 @@ msgstr ""
msgid "%s - Summary reports"
msgstr "%s - Adroddiadau cryno"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:610
+#: perllib/FixMyStreet/DB/Result/Problem.pm:627
msgid "%s ref:&nbsp;%s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/UK.pm:279 perllib/FixMyStreet/Cobrand/UK.pm:291
+#: perllib/FixMyStreet/Cobrand/UK.pm:275 perllib/FixMyStreet/Cobrand/UK.pm:287
msgid "%s ward, %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:496
+#: perllib/FixMyStreet/DB/Result/Problem.pm:512
msgid "%s, reported anonymously at %s"
msgstr "Rhoddodd %s wybod yn ddi-enw am %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:498
+#: perllib/FixMyStreet/DB/Result/Problem.pm:514
msgid "%s, reported by %s at %s"
msgstr "Adroddwyd am %s gan %s am %s"
-#: perllib/FixMyStreet/Cobrand/UK.pm:306 perllib/FixMyStreet/Cobrand/UK.pm:318
+#: perllib/FixMyStreet/Cobrand/UK.pm:302 perllib/FixMyStreet/Cobrand/UK.pm:314
#, fuzzy
msgid "%s, within %s ward"
msgstr "Eiddo gwag yn ward %s"
-#: templates/web/default/email_sent.html:28
-msgid "(Don't worry &mdash; %s)"
+#: templates/web/default/email_sent.html:29
+#, fuzzy
+msgid ""
+"(Don't worry &mdash; we'll hang on to your alert while you're checking your "
+"email.)"
+msgstr "byddwn yn dal gafael ar eich hysbysiad wrth i chi wirio eich e-bost."
+
+#: templates/web/default/email_sent.html:25
+#, fuzzy
+msgid ""
+"(Don't worry &mdash; we'll hang on to your empty property report while "
+"you're checking your email.)"
msgstr ""
+"byddwn yn dal gafael ar eich hysbysiad am eiddo gwag wrth i chi wirio eich e-"
+"bost."
+
+#: templates/web/default/email_sent.html:27
+#, fuzzy
+msgid ""
+"(Don't worry &mdash; we'll hang on to your update while you're checking your "
+"email.)"
+msgstr "byddwn yn dal gafael ar eich diweddariad wrth i chi wirio eich e-bost."
#: templates/web/default/admin/report_blocks.html:11
-#: templates/web/default/admin/search_users.html:23
+#: templates/web/default/admin/users.html:26
msgid "(Email in abuse table)"
msgstr ""
@@ -122,13 +142,15 @@ msgstr "(fel arall, gellir addasu'r porthiant RSS yn bersonol, o fewn"
#: templates/web/default/around/around_map_list_items.html:12
#: templates/web/default/around/on_map_list_items.html:9
-#: templates/web/fixmystreet/report/_item.html:23
+#: templates/web/fixmystreet/report/_item.html:20
+#: templates/web/zurich/report/_item.html:19
msgid "(closed)"
msgstr ""
#: templates/web/default/around/around_map_list_items.html:10
#: templates/web/default/around/on_map_list_items.html:7
-#: templates/web/fixmystreet/report/_item.html:21
+#: templates/web/fixmystreet/report/_item.html:18
+#: templates/web/zurich/report/_item.html:17
msgid "(returned to use)"
msgstr "(wedi'i adfer i'w ddefnyddio)"
@@ -138,18 +160,18 @@ msgid " "
msgstr " "
#: templates/web/default/reports/_list-entry.html:4
-#: templates/web/fixmystreet/report/_item.html:17
+#: templates/web/fixmystreet/report/_item.html:14
#, fuzzy
msgid "(not sent to council)"
msgstr "Ni roddwyd gwybod i'r cyngor am hyn"
#: templates/web/default/report/new/fill_in_details_form.html:217
-#: templates/web/zurich/report/new/fill_in_details_form.html:118
+#: templates/web/zurich/report/new/fill_in_details_form.html:100
msgid "(optional)"
msgstr "(dewisol)"
#: templates/web/default/reports/_list-entry.html:2
-#: templates/web/fixmystreet/report/_item.html:16
+#: templates/web/fixmystreet/report/_item.html:13
#, fuzzy
msgid "(sent to both)"
msgstr "Ni roddwyd gwybod i'r cyngor am hyn"
@@ -163,28 +185,18 @@ msgstr "(nid ydym byth yn dangos eich cyfeiriad e-bost na'ch rhif ffôn)"
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:285
-msgid "*unknown*"
-msgstr ""
-
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:628
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:656
-#: perllib/FixMyStreet/DB/Result/Problem.pm:353
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:635
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:663
+#: perllib/FixMyStreet/DB/Result/Problem.pm:362
#, fuzzy
msgid "-- Pick a category --"
msgstr "-- Dewiswch fath o eiddo --"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:608
-#: perllib/FixMyStreet/DB/Result/Problem.pm:359
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:615
+#: perllib/FixMyStreet/DB/Result/Problem.pm:368
msgid "-- Pick a property type --"
msgstr "-- Dewiswch fath o eiddo --"
-#: templates/web/default/tokens/confirm_problem.html:14
-#: templates/web/default/tokens/confirm_problem.html:22
-#, fuzzy
-msgid ". You can <a href=\"%s%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/report/_support.html:3
msgid "1 supporter"
msgstr ""
@@ -354,6 +366,7 @@ msgstr ""
" i'r cam hwn</a>.</small>"
#: templates/web/default/admin/index.html:14
+#: templates/web/zurich/admin/index.html:4
#, fuzzy
msgid "<strong>%d</strong> live empty properties"
msgstr "Adrodd am eiddo gwag a gweld y rhain"
@@ -406,10 +419,21 @@ msgstr "Adrodd am eiddo gwag a gweld y rhain"
msgid "About us"
msgstr "Amdanom ni"
-#: templates/web/default/admin/council_contacts.html:72
+#: templates/web/default/admin/bodies.html:45
+#: templates/web/default/admin/body-form.html:77
+#: templates/web/zurich/admin/body-form.html:47
+msgid "Add body"
+msgstr ""
+
+#: templates/web/default/admin/body.html:69
+#: templates/web/zurich/admin/body.html:30
msgid "Add new category"
msgstr ""
+#: templates/web/default/admin/users.html:35
+msgid "Add user"
+msgstr ""
+
#: templates/web/default/my/my.html:56 templates/web/fixmystreet/my/my.html:60
msgid "Added %s"
msgstr ""
@@ -434,14 +458,11 @@ msgstr "Rhowch wybod i mi am ddiweddariadau yn y dyfodol"
#: templates/web/default/reports/index.html:3
#: templates/web/fixmybarangay/reports/index.html:3
+#: templates/web/zurich/reports/index.html:12
#, fuzzy
msgid "All Reports"
msgstr "Adroddiadau"
-#: templates/web/default/admin/council_list.html:44
-msgid "All confirmed"
-msgstr ""
-
#: templates/web/barnet/footer.html:20 templates/web/bromley/footer.html:21
#: templates/web/bromley/header.html:77 templates/web/default/footer.html:11
#: templates/web/fiksgatami/footer.html:7
@@ -449,7 +470,9 @@ msgstr ""
#: templates/web/fixmybarangay/footer.html:20
#: templates/web/fixmystreet/footer.html:49
#: templates/web/reading/footer.html:8 templates/web/stevenage/footer.html:43
-#: templates/web/zurich/footer.html:12
+#: templates/web/zurich/admin/index-dm.html:12
+#: templates/web/zurich/footer.html:19
+#: templates/web/zurich/nav_over_content.html:6
#, fuzzy
msgid "All reports"
msgstr "Adroddiadau"
@@ -463,8 +486,8 @@ msgstr "Adroddwyd am %s gan %s am %s"
msgid "All the information you provide here will be sent to"
msgstr ""
-#: templates/web/default/report/new/councils_text_all.html:10
-#: templates/web/default/report/new/councils_text_all.html:12
+#: templates/web/default/report/new/councils_text_all.html:11
+#: templates/web/default/report/new/councils_text_all.html:13
#, fuzzy
msgid ""
"All the information you provide here will be sent to <strong>%s</strong> or "
@@ -475,8 +498,8 @@ msgstr ""
"Ar y safle, byddwn yn dangos pwnc a manylion yr eiddo gwag,\n"
"ynghyd â'ch enw os ydych yn rhoi caniatâd i ni."
-#: templates/web/default/report/new/councils_text_all.html:3
-#: templates/web/default/report/new/councils_text_all.html:5
+#: templates/web/default/report/new/councils_text_all.html:4
+#: templates/web/default/report/new/councils_text_all.html:6
#, fuzzy
msgid ""
"All the information you provide here will be sent to <strong>%s</strong> or "
@@ -490,14 +513,12 @@ msgstr ""
#: templates/web/bromley/report/new/fill_in_details_form.html:4
#: templates/web/bromley/report/new/fill_in_details_form.html:6
-#: templates/web/default/report/new/councils_text_all.html:17
-#: templates/web/default/report/new/councils_text_all.html:19
+#: templates/web/default/report/new/councils_text_all.html:18
+#: templates/web/default/report/new/councils_text_all.html:20
#: templates/web/default/report/new/fill_in_details_form.html:11
#: templates/web/default/report/new/fill_in_details_form.html:13
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:6
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:8
-#: templates/web/zurich/report/new/fill_in_details_form.html:6
-#: templates/web/zurich/report/new/fill_in_details_form.html:8
msgid ""
"All the information you provide here will be sent to <strong>%s</strong>."
msgstr ""
@@ -522,14 +543,14 @@ msgstr ""
"Fe wnaeth diweddariad gofnodi bod yr eiddo hwn wedi cael ei adfer i'w "
"ddefnyddio."
-#: templates/web/default/admin/list_flagged.html:15
+#: templates/web/default/admin/flagged.html:15
#: templates/web/default/admin/list_updates.html:10
-#: templates/web/default/admin/search_reports.html:18
+#: templates/web/default/admin/reports.html:18
msgid "Anonymous"
msgstr "Di-enw"
-#: templates/web/default/admin/report_edit.html:26
-#: templates/web/default/admin/update_edit.html:14
+#: templates/web/default/admin/report_edit.html:31
+#: templates/web/default/admin/update_edit.html:17
#, fuzzy
msgid "Anonymous:"
msgstr "Di-enw"
@@ -551,6 +572,28 @@ msgstr ""
msgid "Are you from a council?"
msgstr "Ni roddwyd gwybod i'r cyngor am hyn"
+#: templates/web/default/admin/body-form.html:19
+#: templates/web/zurich/admin/body-form.html:25
+msgid "Area covered"
+msgstr ""
+
+#: templates/web/zurich/admin/report_edit.html:99
+msgid "Assign to different category:"
+msgstr ""
+
+#: templates/web/zurich/admin/report_edit.html:108
+msgid "Assign to external body:"
+msgstr ""
+
+#: templates/web/zurich/admin/report_edit.html:140
+#: templates/web/zurich/admin/report_edit.html:87
+msgid "Assign to subdivision:"
+msgstr ""
+
+#: templates/web/zurich/report/updates.html:11
+msgid "Assigned to %s"
+msgstr ""
+
#: templates/web/default/open311/index.html:17
msgid ""
"At most %d requests are returned in each query. The returned requests are "
@@ -562,6 +605,15 @@ msgstr ""
msgid "At the moment only searching for and looking at reports work."
msgstr ""
+#: perllib/FixMyStreet/DB/Result/Problem.pm:317
+#: templates/web/zurich/report/_item.html:9
+msgid "Awaiting moderation"
+msgstr ""
+
+#: templates/web/default/js/translation_strings.html:26
+msgid "Back"
+msgstr ""
+
#: templates/web/default/admin/report_blocks.html:11
#, fuzzy
msgid "Ban email address"
@@ -573,10 +625,22 @@ msgid ""
"whom the report is sent."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1032
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1086
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:140
+#: templates/web/default/admin/bodies.html:1
+#: templates/web/zurich/header.html:63
msgid "Bodies"
msgstr ""
+#: templates/web/default/admin/reports.html:16
+#: templates/web/default/admin/users.html:14
+msgid "Body"
+msgstr ""
+
+#: templates/web/default/admin/user-form.html:7
+msgid "Body:"
+msgstr ""
+
#: templates/web/fiksgatami/footer.html:16
#: templates/web/fiksgatami/nn/footer.html:16
msgid ""
@@ -596,15 +660,20 @@ msgstr ""
"<small>Os na allwch weld y map, <a href='%s' rel='nofollow'>ewch heibio\n"
" i'r cam hwn</a>.</small>"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:631
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:658
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:638
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:665
#: templates/web/bromley/report/new/fill_in_details_form.html:68
-#: templates/web/default/admin/council_contacts.html:37
+#: templates/web/default/admin/bodies.html:11
+#: templates/web/default/admin/body.html:35
+#: templates/web/default/admin/flagged.html:14
#: 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/reports.html:17
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:74
-#: templates/web/zurich/report/new/fill_in_details_form.html:68
+#: templates/web/zurich/admin/body.html:13
+#: templates/web/zurich/admin/index-dm.html:22
+#: templates/web/zurich/admin/index-sdm.html:20
+#: templates/web/zurich/admin/reports.html:14
+#: templates/web/zurich/report/new/fill_in_details_form.html:50
#, fuzzy
msgid "Category"
msgstr "Categori:"
@@ -613,10 +682,13 @@ msgstr "Categori:"
msgid "Category fix rate for empty properties > 4 weeks old"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:78
-#: templates/web/default/admin/council_edit.html:23
-#: templates/web/default/admin/report_edit.html:25
+#: templates/web/default/admin/body.html:75
+#: templates/web/default/admin/body_edit.html:23
+#: templates/web/default/admin/report_edit.html:30
#: templates/web/default/report/new/fill_in_details_form.html:67
+#: templates/web/zurich/admin/body.html:36
+#: templates/web/zurich/admin/report_edit-sdm.html:23
+#: templates/web/zurich/admin/report_edit.html:98
msgid "Category:"
msgstr "Categori:"
@@ -631,7 +703,7 @@ msgstr "Categori:"
msgid "Change Password"
msgstr ""
-#: templates/web/default/js/validation_strings.html:22
+#: templates/web/default/js/translation_strings.html:39
#: templates/web/fixmystreet/around/_report_banner.html:2
#, fuzzy
msgid "Click map to report an empty property"
@@ -639,8 +711,7 @@ msgstr "Sut i roi gwybod am eiddo gwag"
#: templates/web/bromley/report/display.html:80
#: templates/web/bromley/report/display.html:82
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:20
+#: templates/web/default/admin/report_edit.html:25
#: templates/web/default/dashboard/index.html:138
#: templates/web/default/dashboard/index.html:140
#: templates/web/default/report/update-form.html:30
@@ -648,10 +719,16 @@ msgstr "Sut i roi gwybod am eiddo gwag"
#: templates/web/fixmystreet/report/banner.html:15
#: templates/web/fixmystreet/report/update-form.html:28
#: templates/web/fixmystreet/report/update-form.html:30
+#: templates/web/zurich/admin/header.html:1
+#: templates/web/zurich/admin/header.html:10
+#: templates/web/zurich/admin/header.html:12
+#: templates/web/zurich/admin/report_edit.html:75
+#: templates/web/zurich/admin/report_edit.html:77
+#: templates/web/zurich/report/banner.html:13
msgid "Closed"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:695
+#: perllib/FixMyStreet/DB/Result/Problem.pm:720
#, fuzzy
msgid "Closed by council"
msgstr "Ni roddwyd gwybod i'r cyngor am hyn"
@@ -661,7 +738,7 @@ msgstr "Ni roddwyd gwybod i'r cyngor am hyn"
msgid "Closed reports"
msgstr "Cuddio hen adroddiadau "
-#: templates/web/default/admin/problem_row.html:25
+#: templates/web/default/admin/problem_row.html:27
msgid "Closed:"
msgstr ""
@@ -670,49 +747,38 @@ msgstr ""
msgid "Closest nearby empty properties <small>(within&nbsp;%skm)</small>"
msgstr "Yr eiddo gwag cyfagos agosaf <small>(within&nbsp;%skm)</small>"
-#: templates/web/default/admin/report_edit.html:15
+#: templates/web/default/admin/report_edit.html:17
+#: templates/web/zurich/admin/report_edit-sdm.html:19
+#: templates/web/zurich/admin/report_edit.html:37
msgid "Co-ordinates:"
msgstr ""
-#: templates/web/default/admin/list_flagged.html:16
+#: templates/web/default/admin/flagged.html:16
#: templates/web/default/admin/list_updates.html:13
-#: templates/web/default/admin/search_reports.html:19
+#: templates/web/default/admin/reports.html:19
msgid "Cobrand"
msgstr ""
-#: templates/web/default/admin/report_edit.html:39
-#: templates/web/default/admin/update_edit.html:41
+#: templates/web/default/admin/report_edit.html:44
+#: templates/web/default/admin/update_edit.html:44
msgid "Cobrand data:"
msgstr ""
-#: templates/web/default/admin/report_edit.html:38
-#: templates/web/default/admin/update_edit.html:40
+#: templates/web/default/admin/report_edit.html:43
+#: templates/web/default/admin/update_edit.html:43
msgid "Cobrand:"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:365
-#, fuzzy
-msgid "Configuration updated"
-msgstr "Cadarnhau"
-
-#: perllib/FixMyStreet/App/Controller/Admin.pm:380
+#: perllib/FixMyStreet/App/Controller/Admin.pm:395
msgid "Configuration updated - contacts will be generated automatically later"
msgstr ""
-#: templates/web/default/admin/council_edit.html:34
+#: templates/web/default/admin/body_edit.html:47
#, fuzzy
msgid "Configure Endpoint"
msgstr "Cadarnhau"
-#: templates/web/default/admin/council_contacts.html:168
-msgid "Configure Open311"
-msgstr ""
-
-#: templates/web/default/admin/council_contacts.html:116
-msgid "Configure Open311 integration"
-msgstr ""
-
-#: templates/web/default/admin/council_contacts.html:46
+#: templates/web/default/admin/body.html:44
#, fuzzy
msgid "Confirm"
msgstr "Cadarnhau"
@@ -738,13 +804,17 @@ msgstr ""
#: templates/web/emptyhomes/tokens/confirm_problem.html:3
#: templates/web/southampton/tokens/confirm_problem.html:1
#: templates/web/southampton/tokens/confirm_problem.html:3
+#: templates/web/zurich/tokens/confirm_problem.html:1
+#: templates/web/zurich/tokens/confirm_problem.html:3
msgid "Confirmation"
msgstr "Cadarnhau"
-#: templates/web/default/admin/council_contacts.html:39
-#: templates/web/default/admin/council_contacts.html:88
-#: templates/web/default/admin/council_edit.html:28
-#: templates/web/default/admin/council_edit.html:71
+#: templates/web/default/admin/body.html:37
+#: templates/web/default/admin/body.html:85
+#: templates/web/default/admin/body_edit.html:32
+#: templates/web/default/admin/body_edit.html:84
+#: templates/web/zurich/admin/report_edit-sdm.html:26
+#: templates/web/zurich/admin/report_edit.html:43
#, fuzzy
msgid "Confirmed"
msgstr "Cadarnhau"
@@ -754,8 +824,8 @@ msgstr "Cadarnhau"
msgid "Confirmed reports between %s and %s"
msgstr "Adroddwyd am %s gan %s am %s"
-#: templates/web/default/admin/problem_row.html:23
-#: templates/web/default/admin/report_edit.html:34
+#: templates/web/default/admin/problem_row.html:25
+#: templates/web/default/admin/report_edit.html:39
#, fuzzy
msgid "Confirmed:"
msgstr "Cadarnhau"
@@ -786,40 +856,32 @@ msgstr "Cysylltwch â Ni"
msgid "Contact the team"
msgstr "Cysylltu â'r tîm"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1159
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1187
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1219
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1247
msgid "Could not find user"
msgstr ""
-#: templates/web/default/admin/list_flagged.html:13
+#: templates/web/default/js/translation_strings.html:31
+msgid "Could not look up location"
+msgstr ""
+
+#: templates/web/default/admin/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"
-#: templates/web/default/admin/council_list.html:1
-#, fuzzy
-msgid "Council contacts"
-msgstr "Cysylltwch â Ni"
-
-#: templates/web/default/admin/council_contacts.html:1
-#: templates/web/default/admin/council_edit.html:1
+#: templates/web/default/admin/body.html:1
+#: templates/web/default/admin/body_edit.html:1
+#: templates/web/zurich/admin/body.html:1
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:12
#: templates/web/default/admin/stats.html:32
#, fuzzy
@@ -831,19 +893,24 @@ msgstr "Cysylltu"
msgid "Create a report"
msgstr "Categori:"
-#: templates/web/default/admin/council_contacts.html:107
+#: templates/web/default/admin/body.html:103
+#: templates/web/zurich/admin/body.html:53
#, fuzzy
msgid "Create category"
msgstr "Categori:"
-#: templates/web/default/admin/list_flagged.html:17
+#: templates/web/default/admin/flagged.html:17
#: templates/web/default/admin/list_updates.html:9
-#: templates/web/default/admin/search_reports.html:20
+#: templates/web/default/admin/reports.html:20
+#: templates/web/zurich/admin/list_updates.html:6
msgid "Created"
msgstr ""
-#: templates/web/default/admin/report_edit.html:33
-#: templates/web/default/admin/update_edit.html:42
+#: templates/web/default/admin/report_edit.html:38
+#: templates/web/default/admin/update_edit.html:45
+#: templates/web/zurich/admin/report_edit-sdm.html:28
+#: templates/web/zurich/admin/report_edit.html:46
+#: templates/web/zurich/admin/update_edit.html:29
msgid "Created:"
msgstr ""
@@ -851,39 +918,45 @@ msgstr ""
msgid "Current state"
msgstr ""
-#: templates/web/default/admin/council_list.html:40
-msgid "Currently has 1+ deleted"
-msgstr ""
-
#: templates/web/default/dashboard/index.html:5
#: templates/web/default/dashboard/index.html:7
msgid "Dashboard"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:40
-#: templates/web/default/admin/council_contacts.html:91
-#: templates/web/default/admin/council_edit.html:29
-#: templates/web/default/admin/council_edit.html:72
+#: templates/web/default/admin/body.html:38
+#: templates/web/default/admin/body.html:88
+#: templates/web/default/admin/body_edit.html:37
+#: templates/web/default/admin/body_edit.html:85
msgid "Deleted"
msgstr ""
+#: templates/web/zurich/admin/index-dm.html:21
+#: templates/web/zurich/admin/index-sdm.html:19
+#: templates/web/zurich/admin/reports.html:13
+msgid "Description"
+msgstr ""
+
#: templates/web/bromley/report/new/fill_in_details_form.html:54
+#: templates/web/default/js/translation_strings.html:28
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:66
-#: templates/web/zurich/report/new/fill_in_details_form.html:60
+#: templates/web/zurich/report/new/fill_in_details_form.html:42
#, fuzzy
msgid "Details"
msgstr "Manylion:"
#: templates/web/default/admin/report_edit.html:14
#: templates/web/default/report/new/fill_in_details_form.html:61
+#: templates/web/zurich/admin/report_edit-sdm.html:14
+#: templates/web/zurich/admin/report_edit.html:22
+#: templates/web/zurich/admin/report_edit.html:29
msgid "Details:"
msgstr "Manylion:"
-#: templates/web/default/admin/council_contacts.html:41
+#: templates/web/default/admin/body.html:39
msgid "Devolved"
msgstr ""
-#: templates/web/default/admin/council_list.html:23
+#: templates/web/default/admin/edit-league.html:1
msgid "Diligency prize league table"
msgstr ""
@@ -906,17 +979,26 @@ msgid "Don&rsquo;t know"
msgstr "Ddim yn gwybod"
#: templates/web/default/admin/list_updates.html:35
-#: templates/web/default/admin/problem_row.html:29
-#: templates/web/default/admin/search_users.html:24
+#: templates/web/default/admin/problem_row.html:31
+#: templates/web/default/admin/users.html:28
+#: templates/web/zurich/admin/problem_row.html:35
msgid "Edit"
msgstr ""
+#: templates/web/default/admin/body.html:112
+#: templates/web/zurich/admin/body.html:64
+msgid "Edit body details"
+msgstr ""
+
#: templates/web/default/admin/report_edit.html:1
+#: templates/web/zurich/admin/report_edit-sdm.html:1
+#: templates/web/zurich/admin/report_edit.html:4
#, fuzzy
msgid "Editing empty property %d"
msgstr "Gweld eiddo gwag"
#: templates/web/default/admin/update_edit.html:1
+#: templates/web/zurich/admin/update_edit.html:1
#, fuzzy
msgid "Editing update %d"
msgstr "Cyflwyno'ch diweddariad"
@@ -926,29 +1008,32 @@ msgstr "Cyflwyno'ch diweddariad"
msgid "Editing user %d"
msgstr "Cyflwyno'ch diweddariad"
-#: templates/web/default/admin/council_edit.html:73
+#: templates/web/default/admin/body_edit.html:86
msgid "Editor"
msgstr ""
#: templates/web/bromley/report/display.html:126
-#: templates/web/default/admin/council_contacts.html:38
-#: templates/web/default/admin/council_edit.html:70
-#: templates/web/default/admin/list_flagged.html:12
-#: templates/web/default/admin/list_flagged.html:35
+#: templates/web/default/admin/bodies.html:9
+#: templates/web/default/admin/body.html:36
+#: templates/web/default/admin/body_edit.html:83
+#: templates/web/default/admin/flagged.html:12
+#: templates/web/default/admin/flagged.html:35
#: templates/web/default/admin/list_updates.html:8
-#: templates/web/default/admin/search_reports.html:15
-#: templates/web/default/admin/search_users.html:13
+#: templates/web/default/admin/reports.html:15
+#: templates/web/default/admin/users.html:13
#: templates/web/fixmystreet/auth/general.html:20
#: templates/web/fixmystreet/report/update-form.html:74
+#: templates/web/zurich/admin/body-form.html:9
+#: templates/web/zurich/admin/body.html:14
#, fuzzy
msgid "Email"
msgstr "E-bost:"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1135
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1195
msgid "Email added to abuse list"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1132
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1192
msgid "Email already in abuse list"
msgstr ""
@@ -960,25 +1045,28 @@ msgstr "Anfonwch fanylion eiddo gwag lleol newydd ataf i drwy'r e-bost"
msgid "Email me updates"
msgstr "Anfonwch ddiweddariadau ataf i drwy'r e-bost"
-#: templates/web/default/admin/council_contacts.html:83
-#: 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/admin/body.html:80
+#: templates/web/default/admin/body_edit.html:26
+#: templates/web/default/admin/report_edit.html:36
+#: templates/web/default/admin/update_edit.html:27
+#: templates/web/default/admin/user-form.html:6
#: templates/web/default/alert/updates.html:13
#: templates/web/default/report/display.html:34
+#: templates/web/zurich/admin/body.html:41
+#: templates/web/zurich/admin/report_edit-sdm.html:25
+#: templates/web/zurich/admin/report_edit.html:42
msgid "Email:"
msgstr "E-bost:"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:610
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:617
msgid "Empty flat or maisonette"
msgstr "Fflat neu fflat deulawr gwag"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:609
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:616
msgid "Empty house or bungalow"
msgstr "Tŷ neu fyngalo gwag"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:612
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:619
msgid "Empty office or other commercial"
msgstr "Swyddfa wag neu fan masnachol gwag arall"
@@ -986,11 +1074,11 @@ 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:613
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:620
msgid "Empty pub or bar"
msgstr "Tafarn neu far gwag"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:614
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:621
msgid "Empty public building - school, hospital, etc."
msgstr "Adeilad cyhoeddus gwag - ysgol, ysbyty, ac ati."
@@ -1007,7 +1095,12 @@ msgstr "diwrnod"
msgid "End month:"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Zurich.pm:9
+#: templates/web/default/admin/body-form.html:40
+#, fuzzy
+msgid "Endpoint"
+msgstr "Cadarnhau"
+
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:25
#, fuzzy
msgid "Enter a Z&uuml;rich street name"
msgstr "Cofnodwch god post Prydeinig, neu enw stryd ac ardal gerllaw:"
@@ -1066,8 +1159,8 @@ msgstr "Rhowch fanylion yr eiddo gwag"
msgid "Error"
msgstr "Gwall"
-#: templates/web/default/admin/council_contacts.html:13
-#: templates/web/default/admin/council_edit.html:18
+#: templates/web/default/admin/body.html:11
+#: templates/web/default/admin/body_edit.html:18
msgid "Example postcode %s"
msgstr ""
@@ -1075,7 +1168,7 @@ msgstr ""
msgid "Examples:"
msgstr ""
-#: templates/web/default/admin/report_edit.html:40
+#: templates/web/default/admin/report_edit.html:45
msgid "Extra data:"
msgstr ""
@@ -1089,6 +1182,12 @@ msgstr ""
"Rhowch gynnig eto'n ddiweddarach, neu <a href=\"mailto:%s\">anfonwch neges e-"
"bost atom</a>i roi gwybod inni."
+#: templates/web/zurich/admin/index-dm.html:32
+#: templates/web/zurich/admin/index-sdm.html:29
+#, fuzzy
+msgid "Filter report list"
+msgstr "Cuddio hen adroddiadau "
+
#: templates/web/bromley/report/display.html:189
#: templates/web/bromley/report/new/fill_in_details_form.html:113
#: templates/web/bromley/report/new/fill_in_details_form.html:160
@@ -1157,8 +1256,7 @@ msgstr ""
#: templates/web/bromley/report/display.html:80
#: templates/web/bromley/report/display.html:82
#: templates/web/default/admin/index.html:36
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:20
+#: templates/web/default/admin/report_edit.html:25
#: templates/web/default/dashboard/index.html:138
#: templates/web/default/dashboard/index.html:140
#: templates/web/default/report/update-form.html:30
@@ -1169,14 +1267,12 @@ msgstr ""
msgid "Fixed"
msgstr ""
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:21
+#: templates/web/default/admin/report_edit.html:26
#, fuzzy
msgid "Fixed - Council"
msgstr "cyngor"
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:21
+#: templates/web/default/admin/report_edit.html:26
#, fuzzy
msgid "Fixed - User"
msgstr "Cuddio hen adroddiadau "
@@ -1186,7 +1282,7 @@ msgstr "Cuddio hen adroddiadau "
msgid "Fixed reports"
msgstr "Cuddio hen adroddiadau "
-#: templates/web/default/admin/problem_row.html:24
+#: templates/web/default/admin/problem_row.html:26
msgid "Fixed:"
msgstr ""
@@ -1194,13 +1290,13 @@ msgstr ""
msgid "Flag user"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1037
-#: templates/web/default/admin/search_users.html:15
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1091
+#: templates/web/default/admin/users.html:16
msgid "Flagged"
msgstr ""
-#: templates/web/default/admin/report_edit.html:42
-#: templates/web/default/admin/user_edit.html:18
+#: templates/web/default/admin/report_edit.html:47
+#: templates/web/default/admin/user-form.html:14
msgid "Flagged:"
msgstr ""
@@ -1210,7 +1306,7 @@ msgstr ""
msgid "Follow a ward link to view only reports within that ward."
msgstr ""
-#: templates/web/default/admin/report_edit.html:16
+#: templates/web/default/admin/report_edit.html:21
#, fuzzy
msgid "For council(s):"
msgstr "cyngor"
@@ -1229,7 +1325,7 @@ msgstr "Adroddiadau"
#: templates/web/fixmybarangay/faq/faq-en-gb.html:1
#: templates/web/fixmystreet/faq/faq-en-gb.html:1
#: templates/web/fixmystreet/static/privacy.html:1
-#: templates/web/zurich/faq/faq-de.html:1
+#: templates/web/zurich/faq/faq-de-ch.html:1
msgid "Frequently Asked Questions"
msgstr "Cwestiynau Cyffredin"
@@ -1242,7 +1338,7 @@ msgid "GeoRSS on Google Maps"
msgstr ""
#: templates/web/bromley/report/display.html:30
-#: templates/web/fixmystreet/report/display.html:31
+#: templates/web/fixmystreet/report/display.html:38
#, fuzzy
msgid "Get updates"
msgstr "Anfonwch ddiweddariadau ataf i drwy'r e-bost"
@@ -1272,12 +1368,13 @@ msgstr "Rhowch borthiant RSS i mi"
msgid "Go"
msgstr "Ewch"
-#: templates/web/default/admin/report_edit.html:41
+#: templates/web/default/admin/report_edit.html:46
#, fuzzy
msgid "Going to send questionnaire?"
msgstr "Anfon yr holiadur"
#: templates/web/default/admin/index.html:24
+#: templates/web/zurich/admin/index.html:11
msgid "Graph of empty property creation by status over time"
msgstr ""
@@ -1308,7 +1405,8 @@ msgstr ""
#: templates/web/fixmybarangay/footer.html:24
#: templates/web/fixmystreet/footer.html:53
#: templates/web/reading/footer.html:10 templates/web/stevenage/footer.html:47
-#: templates/web/zurich/footer.html:14
+#: templates/web/zurich/footer.html:21
+#: templates/web/zurich/nav_over_content.html:8
msgid "FAQs"
msgstr "Cwestiynau Cyffredin"
@@ -1322,35 +1420,46 @@ msgstr ""
#: templates/web/bromley/header.html:99
#: templates/web/fixmybarangay/header.html:64
#: templates/web/fixmystreet/header.html:49
-#: templates/web/stevenage/header.html:97 templates/web/zurich/header.html:47
+#: templates/web/stevenage/header.html:97 templates/web/zurich/footer.html:11
msgid "Hi %s"
msgstr ""
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:21
-#: templates/web/default/admin/update_edit.html:19
+#: templates/web/default/admin/report_edit.html:26
+#: templates/web/default/admin/update_edit.html:22
+#: templates/web/zurich/admin/header.html:1
+#: templates/web/zurich/admin/header.html:11
+#: templates/web/zurich/admin/report_edit.html:70
+#: templates/web/zurich/admin/update_edit.html:18
#, fuzzy
msgid "Hidden"
msgstr "Cuddio pinnau"
-#: templates/web/default/around/display_location.html:63
+#: templates/web/default/around/display_location.html:66
msgid "Hide old"
msgstr ""
-#: templates/web/default/around/display_location.html:58
+#: templates/web/default/around/display_location.html:61
msgid "Hide pins"
msgstr "Cuddio pinnau"
-#: templates/web/default/admin/council_edit.html:66
+#: templates/web/default/admin/body_edit.html:79
msgid "History"
msgstr ""
+#: templates/web/default/js/translation_strings.html:25
+msgid "Home"
+msgstr ""
+
#: templates/web/default/index-steps.html:1
#: templates/web/emptyhomes/index.html:53
msgid "How to report an empty property"
msgstr "Sut i roi gwybod am eiddo gwag"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:648
+#: templates/web/default/js/translation_strings.html:27
+msgid "How to send successful reports"
+msgstr ""
+
+#: perllib/FixMyStreet/App/Controller/Admin.pm:670
msgid "I am afraid you cannot confirm unconfirmed reports."
msgstr ""
@@ -1368,7 +1477,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:235
+#: perllib/FixMyStreet/App/Controller/Tokens.pm:257
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"
@@ -1376,14 +1485,33 @@ 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"
-#: templates/web/default/admin/list_flagged.html:9
+#: templates/web/default/admin/flagged.html:9
#: templates/web/default/admin/list_updates.html:5
-#: templates/web/default/admin/search_reports.html:12
+#: templates/web/default/admin/reports.html:12
+#: templates/web/zurich/admin/index-dm.html:20
+#: templates/web/zurich/admin/index-sdm.html:18
+#: templates/web/zurich/admin/list_updates.html:5
+#: templates/web/zurich/admin/reports.html:12
msgid "ID"
msgstr ""
-#: templates/web/default/report/new/councils_text_none.html:11
-#: templates/web/default/report/new/councils_text_none.html:12
+#: templates/web/default/email_sent.html:19
+#, fuzzy
+msgid "If you do not, your alert will not be activated."
+msgstr "ni fydd eich hysbysiad yn cael ei weithredu"
+
+#: templates/web/default/email_sent.html:15
+#, fuzzy
+msgid "If you do not, your empty property will not be posted."
+msgstr "ni fydd eich eiddo gwag yn cael ei bostio"
+
+#: templates/web/default/email_sent.html:17
+#, fuzzy
+msgid "If you do not, your update will not be posted."
+msgstr "ni fydd eich diweddariad yn cael ei bostio"
+
+#: templates/web/default/report/new/councils_text_none.html:8
+#: templates/web/default/report/new/councils_text_none.html:9
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 "
@@ -1404,8 +1532,8 @@ msgstr ""
"fel y gallwn\n"
"ddangos i'r cyngor y gweithgarwch yn ei ardal."
-#: templates/web/default/auth/token.html:23
-#: templates/web/default/email_sent.html:24
+#: templates/web/default/auth/token.html:25
+#: templates/web/default/email_sent.html:9
msgid ""
"If you use web-based email or have 'junk mail' filters, you may wish to "
"check your bulk/spam mail folders: sometimes, our messages are marked that "
@@ -1434,19 +1562,6 @@ msgstr "ID Anghyfreithlon"
msgid "Illegal feed selection"
msgstr "Dewis porthiant annilys"
-#: templates/web/bromley/report/display.html:80
-#: templates/web/bromley/report/display.html:82
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:20
-#: templates/web/default/dashboard/index.html:138
-#: templates/web/default/dashboard/index.html:140
-#: templates/web/default/report/update-form.html:30
-#: templates/web/default/report/update-form.html:32
-#: templates/web/fixmystreet/report/update-form.html:28
-#: templates/web/fixmystreet/report/update-form.html:30
-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 "
@@ -1455,40 +1570,62 @@ msgid ""
"present if requestor allowed the name to be shown on this site)."
msgstr ""
+#: templates/web/bromley/report/display.html:80
+#: templates/web/bromley/report/display.html:82
+#: templates/web/default/admin/report_edit.html:25
+#: templates/web/default/dashboard/index.html:138
+#: templates/web/default/dashboard/index.html:140
+#: templates/web/default/report/update-form.html:30
+#: templates/web/default/report/update-form.html:32
#: templates/web/fixmystreet/report/banner.html:19
+#: templates/web/fixmystreet/report/update-form.html:28
+#: templates/web/fixmystreet/report/update-form.html:30
+#: templates/web/zurich/admin/header.html:1
+#: templates/web/zurich/admin/header.html:8
+#: templates/web/zurich/admin/report_edit.html:79
+#: templates/web/zurich/report/banner.html:15
msgid "In progress"
msgstr ""
+#: templates/web/zurich/admin/report_edit.html:118
+#, fuzzy
+msgid "Include reporter personal details"
+msgstr "Cofnodwch fanylion"
+
#: templates/web/default/admin/stats.html:76
#, fuzzy
msgid "Include unconfirmed reports"
msgstr "Cynnwys hen adroddiadau"
-#: perllib/FixMyStreet/App/Controller/Open311.pm:356
+#: perllib/FixMyStreet/App/Controller/Open311.pm:348
msgid "Incorrect has_photo value \"%s\""
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Open311.pm:341
+#: templates/web/zurich/admin/report_edit-sdm.html:37
+#: templates/web/zurich/admin/report_edit.html:61
+msgid "Internal notes:"
+msgstr ""
+
+#: perllib/FixMyStreet/App/Controller/Open311.pm:333
msgid "Invalid agency_responsible value %s"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:952
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1006
#, fuzzy
msgid "Invalid end date"
msgstr "Rhowch ddiweddariad"
-#: perllib/FixMyStreet/App/Controller/Open311.pm:432
+#: perllib/FixMyStreet/App/Controller/Open311.pm:424
msgid "Invalid format %s specified."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:942
+#: perllib/FixMyStreet/App/Controller/Admin.pm:996
msgid "Invalid start date"
msgstr ""
#: templates/web/bromley/report/display.html:80
#: templates/web/bromley/report/display.html:81
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:19
+#: templates/web/default/admin/report_edit.html:24
#: templates/web/default/dashboard/index.html:138
#: templates/web/default/dashboard/index.html:139
#: templates/web/default/report/update-form.html:30
@@ -1541,21 +1678,22 @@ msgstr ""
msgid "Last Name"
msgstr "Anfonwch ddiweddariadau ataf i drwy'r e-bost"
-#: templates/web/default/admin/council_contacts.html:42
+#: templates/web/default/admin/body.html:40
+#: templates/web/zurich/admin/body.html:15
msgid "Last editor"
msgstr ""
-#: templates/web/default/admin/report_edit.html:36
+#: templates/web/default/admin/report_edit.html:41
#, fuzzy
msgid "Last update:"
msgstr "Anfonwch ddiweddariadau ataf i drwy'r e-bost"
-#: templates/web/default/admin/problem_row.html:26
+#: templates/web/default/admin/problem_row.html:28
msgid "Last&nbsp;update:"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:16
-#: templates/web/default/admin/council_contacts.html:18
+#: templates/web/default/admin/body.html:14
+#: templates/web/default/admin/body.html:16
#, fuzzy
msgid "List all reported empty properties"
msgstr "Eiddo gwag yr adroddwyd amdanynt yn ddiweddar"
@@ -1563,7 +1701,7 @@ msgstr "Eiddo gwag yr adroddwyd amdanynt yn ddiweddar"
#: templates/web/bromley/report/new/fill_in_details_form.html:69
#: templates/web/default/report/new/fill_in_details_form.html:68
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:75
-#: templates/web/zurich/report/new/fill_in_details_form.html:69
+#: templates/web/zurich/report/new/fill_in_details_form.html:51
msgid "Loading..."
msgstr ""
@@ -1607,6 +1745,10 @@ msgstr "Gweld adroddiadau lleol"
msgid "Locate the empty property on a map of the area"
msgstr "Chwiliwch am leoliad yr eiddo gwag ar fap o'r ardal"
+#: templates/web/default/js/translation_strings.html:37
+msgid "MAP"
+msgstr ""
+
#: perllib/FixMyStreet/Map/OSM.pm:44
msgid ""
"Map &copy; <a id=\"osm_link\" href=\"http://www.openstreetmap.org/"
@@ -1623,7 +1765,7 @@ msgstr "Neges:"
msgid "Message:"
msgstr "Neges:"
-#: perllib/FixMyStreet/App/Controller/Open311.pm:440
+#: perllib/FixMyStreet/App/Controller/Open311.pm:432
msgid "Missing jurisdiction_id"
msgstr ""
@@ -1636,11 +1778,13 @@ msgstr "Cysylltu"
msgid "More empty properties nearby"
msgstr "Mwy o eiddo gwag cyfagos"
-#: templates/web/default/admin/list_flagged.html:11
-#: templates/web/default/admin/list_flagged.html:34
+#: templates/web/default/admin/bodies.html:7
+#: templates/web/default/admin/body-form.html:4
+#: templates/web/default/admin/flagged.html:11
+#: templates/web/default/admin/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/admin/reports.html:14
+#: templates/web/default/admin/users.html:12
#: templates/web/default/reports/index.html:15
#: templates/web/emptyhomes/reports/index.html:10
#: templates/web/fiksgatami/nn/reports/index.html:9
@@ -1650,13 +1794,16 @@ msgstr "Mwy o eiddo gwag cyfagos"
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:120
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:197
#: templates/web/fixmystreet/report/update-form.html:134
-#: templates/web/zurich/report/new/fill_in_details_form.html:118
+#: templates/web/zurich/admin/body-form.html:4
+#: templates/web/zurich/report/new/fill_in_details_form.html:100
msgid "Name"
msgstr "Enw"
-#: templates/web/default/admin/report_edit.html:30
-#: templates/web/default/admin/update_edit.html:23
-#: templates/web/default/admin/user_edit.html:10
+#: templates/web/default/admin/report_edit.html:35
+#: templates/web/default/admin/update_edit.html:26
+#: templates/web/default/admin/user-form.html:5
+#: templates/web/zurich/admin/report_edit-sdm.html:24
+#: templates/web/zurich/admin/report_edit.html:41
msgid "Name:"
msgstr "Enw:"
@@ -1672,7 +1819,7 @@ msgid ""
"using OpenStreetMap): %s%s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/UK.pm:152
+#: perllib/FixMyStreet/Cobrand/UK.pm:148
msgid ""
"Nearest postcode to the pin placed on the map (automatically generated): %s "
"(%sm away)"
@@ -1685,14 +1832,14 @@ msgid ""
"Maps): %s"
msgstr ""
-#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:265
+#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:267
msgid ""
"Nearest road to the pin placed on the map (automatically generated by Bing "
"Maps): %s\n"
"\n"
msgstr ""
-#: templates/web/default/email_sent.html:20
+#: templates/web/default/email_sent.html:3
msgid "Nearly Done! Now check your email..."
msgstr ""
@@ -1702,7 +1849,11 @@ msgstr ""
msgid "New <br>empty properties"
msgstr "Adroddiadau newydd am eiddo gwag"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:320
+#: perllib/FixMyStreet/App/Controller/Admin.pm:249
+msgid "New body added"
+msgstr ""
+
+#: perllib/FixMyStreet/App/Controller/Admin.pm:351
msgid "New category contact added"
msgstr ""
@@ -1751,6 +1902,11 @@ msgid ""
"New empty property reports within {{NAME}}'s boundary on reportemptyhomes.com"
msgstr "Adroddiadau newydd o fewn ffin {{NAME}} ar reportemptyhomes.com"
+#: templates/web/zurich/admin/index-sdm.html:4
+#, fuzzy
+msgid "New reports"
+msgstr "Cuddio hen adroddiadau "
+
#: db/alert_types_eha.pl:23
msgid ""
"New reports for {{COUNCIL}} within {{WARD}} ward on reportemptyhomes.com"
@@ -1779,23 +1935,28 @@ msgstr "Adroddiadau newydd o fewn ffin {{NAME}} ar reportemptyhomes.com"
msgid "New state"
msgstr ""
+#: templates/web/zurich/admin/report_edit-sdm.html:40
+#, fuzzy
+msgid "New update:"
+msgstr "Anfonwch ddiweddariadau ataf i drwy'r e-bost"
+
#: templates/web/fiksgatami/front/news.html:9
#: templates/web/fiksgatami/nn/front/news.html:9
#: templates/web/fixmystreet/front/news.html:8
msgid "New!"
msgstr "Newydd!"
-#: templates/web/default/admin/council_contacts.html:52
-#: templates/web/default/admin/council_contacts.html:53
-#: templates/web/default/admin/council_contacts.html:54
-#: templates/web/default/admin/council_edit.html:4
+#: templates/web/default/admin/body.html:50
+#: templates/web/default/admin/body.html:51
+#: templates/web/default/admin/body.html:52
+#: templates/web/default/admin/body_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:28
-#: templates/web/default/admin/report_edit.html:41
-#: templates/web/default/admin/update_edit.html:16
+#: templates/web/default/admin/problem_row.html:21
+#: templates/web/default/admin/report_edit.html:33
+#: templates/web/default/admin/report_edit.html:46
+#: templates/web/default/admin/update_edit.html:19
#: templates/web/default/questionnaire/creator_fixed.html:16
#: templates/web/default/questionnaire/index.html:107
#: templates/web/default/questionnaire/index.html:68
@@ -1804,32 +1965,36 @@ msgstr "Newydd!"
msgid "No"
msgstr "Nac ydw"
+#: templates/web/default/admin/user-form.html:8
+msgid "No body"
+msgstr ""
+
#: 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:336
+#: perllib/FixMyStreet/DB/Result/Problem.pm:345
msgid "No council selected"
msgstr "Ni ddewiswyd cyngor"
-#: templates/web/default/admin/council_list.html:32
+#: templates/web/default/admin/edit-league.html:10
msgid "No edits have yet been made."
msgstr ""
-#: templates/web/default/admin/list_flagged.html:26
+#: templates/web/default/admin/flagged.html:26
#, fuzzy
msgid "No flagged empty properties found"
msgstr "Ni ddaethpwyd o hyd i unrhyw eiddo gwag."
-#: templates/web/default/admin/list_flagged.html:47
+#: templates/web/default/admin/flagged.html:47
msgid "No flagged users found"
msgstr ""
-#: templates/web/default/admin/council_list.html:38
-msgid "No info at all"
-msgstr ""
+#: templates/web/zurich/admin/report_edit-sdm.html:46
+#, fuzzy
+msgid "No further updates"
+msgstr "Adroddiadau"
#: templates/web/default/around/around_map_list_items.html:17
#: templates/web/fixmystreet/around/around_map_list_items.html:8
@@ -1841,20 +2006,29 @@ msgstr "Ni ddaethpwyd o hyd i unrhyw eiddo gwag."
msgid "No empty properties have been reported yet."
msgstr "Ni roddwyd gwybod eto am unrhyw eiddo gwag."
+#: templates/web/default/js/translation_strings.html:32
+msgid "No result returned"
+msgstr ""
+
#: templates/web/default/report/_support.html:3
msgid "No supporters"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:57
+#: templates/web/default/admin/body.html:55
msgid "Non Public"
msgstr ""
-#: templates/web/default/admin/council_list.html:5
-#: templates/web/default/admin/report_edit.html:16
+#: templates/web/default/admin/report_edit.html:21
+#: templates/web/zurich/admin/report_edit-sdm.html:27
+#: templates/web/zurich/admin/report_edit.html:45
#, fuzzy
msgid "None"
msgstr "Nac ydw"
+#: templates/web/zurich/admin/report_edit-sdm.html:10
+msgid "Not for my subdivision"
+msgstr ""
+
#: templates/web/default/admin/questionnaire.html:6
#, fuzzy
msgid "Not reported before"
@@ -1865,8 +2039,9 @@ 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:43
-#: templates/web/default/admin/council_edit.html:74
+#: templates/web/default/admin/body.html:41
+#: templates/web/default/admin/body_edit.html:87
+#: templates/web/zurich/admin/body.html:16
#, fuzzy
msgid "Note"
msgstr "Nac ydw"
@@ -1878,8 +2053,9 @@ msgid ""
"numbers may jump about a little"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:95
-#: templates/web/default/admin/council_edit.html:32
+#: templates/web/default/admin/body.html:92
+#: templates/web/default/admin/body_edit.html:44
+#: templates/web/zurich/admin/body.html:47
#, fuzzy
msgid "Note:"
msgstr "Nac ydw"
@@ -1908,6 +2084,10 @@ msgid ""
"password?"
msgstr ""
+#: templates/web/default/js/translation_strings.html:36
+msgid "OK"
+msgstr ""
+
#: templates/web/default/report/display.html:21
#: templates/web/default/report/update.html:16
msgid "Offensive? Unsuitable? Tell us"
@@ -1953,11 +2133,16 @@ msgid "Older empty property reports"
msgstr "Adroddiadau hŷn o eiddo gwag"
#: templates/web/bromley/report/display.html:80
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/update_edit.html:19
+#: templates/web/default/admin/report_edit.html:23
+#: templates/web/default/admin/update_edit.html:22
#: templates/web/default/dashboard/index.html:138
#: templates/web/default/report/update-form.html:30
#: templates/web/fixmystreet/report/update-form.html:28
+#: templates/web/zurich/admin/header.html:1
+#: templates/web/zurich/admin/header.html:7
+#: templates/web/zurich/admin/report_edit.html:68
+#: templates/web/zurich/admin/update_edit.html:18
+#: templates/web/zurich/report/banner.html:11
msgid "Open"
msgstr ""
@@ -1993,13 +2178,13 @@ msgstr ""
"Neu, gallwch danysgrifio am hysbysiad yn ôl pa ward neu gyngor yr ydych yn "
"byw ynddo:"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:1006
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:656
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:657
-#: perllib/FixMyStreet/DB/Result/Problem.pm:505
-#: perllib/FixMyStreet/DB/Result/Problem.pm:515
-#: perllib/FixMyStreet/DB/Result/Problem.pm:525
-#: perllib/FixMyStreet/DB/Result/Problem.pm:537
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:1023
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:663
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:664
+#: perllib/FixMyStreet/DB/Result/Problem.pm:521
+#: perllib/FixMyStreet/DB/Result/Problem.pm:531
+#: perllib/FixMyStreet/DB/Result/Problem.pm:541
+#: perllib/FixMyStreet/DB/Result/Problem.pm:553
#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:331
#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:340
msgid "Other"
@@ -2021,8 +2206,12 @@ msgstr "Arall"
msgid "Page Not Found"
msgstr ""
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:21
+#: templates/web/default/admin/body-form.html:9
+#: templates/web/zurich/admin/body-form.html:15
+msgid "Parent"
+msgstr ""
+
+#: templates/web/default/admin/report_edit.html:26
msgid "Partial"
msgstr ""
@@ -2043,14 +2232,16 @@ msgstr ""
#: templates/web/bromley/report/new/fill_in_details_form.html:183
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:148
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:215
-#: templates/web/zurich/report/new/fill_in_details_form.html:124
+#: templates/web/zurich/report/new/fill_in_details_form.html:106
#, fuzzy
msgid "Phone number (optional)"
msgstr "(dewisol)"
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:262
-#: templates/web/default/admin/report_edit.html:32
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:263
+#: templates/web/default/admin/report_edit.html:37
#: templates/web/default/report/new/fill_in_details_form.html:215
+#: templates/web/zurich/admin/report_edit-sdm.html:27
+#: templates/web/zurich/admin/report_edit.html:45
msgid "Phone:"
msgstr "Rhif ffôn:"
@@ -2058,7 +2249,7 @@ msgstr "Rhif ffôn:"
#: templates/web/bromley/report/new/fill_in_details_form.html:104
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:92
#: templates/web/fixmystreet/report/update-form.html:57
-#: templates/web/zurich/report/new/fill_in_details_form.html:86
+#: templates/web/zurich/report/new/fill_in_details_form.html:68
#, fuzzy
msgid "Photo"
msgstr "Ffotograff:"
@@ -2074,16 +2265,23 @@ msgstr "Ffotograff:"
msgid "Photos of recent nearby reports"
msgstr "Ffotograffau o adroddiadau cyfagos diweddar"
+#: templates/web/default/js/translation_strings.html:24
+msgid "Place pin on map"
+msgstr ""
+
#: templates/web/bromley/report/display.html:80
#: templates/web/bromley/report/display.html:81
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:19
+#: templates/web/default/admin/report_edit.html:24
#: templates/web/default/dashboard/index.html:138
#: templates/web/default/dashboard/index.html:139
#: templates/web/default/report/update-form.html:30
#: templates/web/default/report/update-form.html:31
#: templates/web/fixmystreet/report/update-form.html:28
#: templates/web/fixmystreet/report/update-form.html:29
+#: templates/web/zurich/admin/header.html:1
+#: templates/web/zurich/admin/header.html:9
+#: templates/web/zurich/admin/index-dm.html:9
+#: templates/web/zurich/admin/report_edit.html:69
msgid "Planned"
msgstr ""
@@ -2095,7 +2293,7 @@ msgid ""
msgstr "Ewch i fwrw golwg ar y diweddariadau sydd wedi cael eu gadael."
#: templates/web/default/report/new/notes.html:6
-#: templates/web/fixmystreet/report/new/notes.html:5
+#: templates/web/fixmystreet/report/new/notes.html:6
msgid "Please be polite, concise and to the point."
msgstr ""
@@ -2117,16 +2315,16 @@ 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:822
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:829
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:848
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:891
-#: perllib/FixMyStreet/DB/Result/Problem.pm:355
-#: templates/web/default/js/validation_strings.html:9
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:828
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:835
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:854
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:897
+#: perllib/FixMyStreet/DB/Result/Problem.pm:364
+#: templates/web/default/js/translation_strings.html:9
msgid "Please choose a category"
msgstr "Dewiswch gategori"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:361
+#: perllib/FixMyStreet/DB/Result/Problem.pm:370
msgid "Please choose a property type"
msgstr "Dewiswch fath o eiddo"
@@ -2152,14 +2350,14 @@ msgstr ""
"dilynwch y cyfarwyddiadau."
#: templates/web/default/report/new/notes.html:7
-#: templates/web/fixmystreet/report/new/notes.html:6
+#: templates/web/fixmystreet/report/new/notes.html:7
msgid ""
"Please do not be abusive&nbsp;&mdash; abusing your council devalues the "
"service for all users."
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Comment.pm:146
-#: templates/web/default/js/validation_strings.html:2
+#: perllib/FixMyStreet/DB/Result/Comment.pm:147
+#: templates/web/default/js/translation_strings.html:2
msgid "Please enter a message"
msgstr "Ychwanegwch neges"
@@ -2170,14 +2368,14 @@ msgid "Please enter a password"
msgstr "Ychwanegwch neges"
#: perllib/FixMyStreet/App/Controller/Contact.pm:97
-#: perllib/FixMyStreet/DB/Result/Problem.pm:330
-#: templates/web/default/js/validation_strings.html:3
+#: perllib/FixMyStreet/DB/Result/Problem.pm:339
+#: templates/web/default/js/translation_strings.html:3
msgid "Please enter a subject"
msgstr "Rhowch enw'r pwnc"
-#: perllib/FixMyStreet/DB/Result/User.pm:104
-#: templates/web/default/js/validation_strings.html:12
-#: templates/web/default/js/validation_strings.html:16
+#: perllib/FixMyStreet/DB/Result/User.pm:115
+#: templates/web/default/js/translation_strings.html:12
+#: templates/web/default/js/translation_strings.html:16
msgid "Please enter a valid email"
msgstr "Cofnodwch gyfeiriad e-bost dilys"
@@ -2186,17 +2384,17 @@ 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:333
-#: templates/web/default/js/validation_strings.html:4
+#: perllib/FixMyStreet/DB/Result/Problem.pm:342
+#: templates/web/default/js/translation_strings.html:4
msgid "Please enter some details"
msgstr "Cofnodwch fanylion"
#: perllib/FixMyStreet/App/Controller/Contact.pm:96
-#: perllib/FixMyStreet/DB/Result/User.pm:101
+#: perllib/FixMyStreet/DB/Result/User.pm:112
#: templates/web/default/auth/general.html:13
#: templates/web/default/auth/general.html:8
-#: templates/web/default/js/validation_strings.html:11
-#: templates/web/default/js/validation_strings.html:15
+#: templates/web/default/js/translation_strings.html:11
+#: templates/web/default/js/translation_strings.html:15
#: templates/web/fixmystreet/auth/general.html:14
#: templates/web/fixmystreet/auth/general.html:9
msgid "Please enter your email"
@@ -2204,18 +2402,18 @@ msgstr "Cofnodwch eich cyfeiriad e-bost"
#: templates/web/bromley/report/new/fill_in_details_form.html:149
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:161
-#: templates/web/zurich/report/new/fill_in_details_form.html:110
+#: templates/web/zurich/report/new/fill_in_details_form.html:92
#, fuzzy
msgid "Please enter your email address"
msgstr "Cofnodwch eich cyfeiriad e-bost"
-#: templates/web/default/js/validation_strings.html:19
+#: templates/web/default/js/translation_strings.html:19
#, fuzzy
msgid "Please enter your first name"
msgstr "Cofnodwch eich enw"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:348
-#: templates/web/default/js/validation_strings.html:7
+#: perllib/FixMyStreet/DB/Result/Problem.pm:357
+#: templates/web/default/js/translation_strings.html:7
#, fuzzy
msgid ""
"Please enter your full name, councils need this information – if you do not "
@@ -2225,23 +2423,30 @@ 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:143
-#: perllib/FixMyStreet/DB/Result/Problem.pm:341
-#: perllib/FixMyStreet/DB/Result/User.pm:97
-#: templates/web/default/js/validation_strings.html:6
+#: perllib/FixMyStreet/DB/Result/Comment.pm:144
+#: perllib/FixMyStreet/DB/Result/Problem.pm:350
+#: perllib/FixMyStreet/DB/Result/User.pm:108
+#: templates/web/default/js/translation_strings.html:6
msgid "Please enter your name"
msgstr "Cofnodwch eich enw"
-#: templates/web/default/js/validation_strings.html:20
+#: templates/web/default/js/translation_strings.html:20
#, fuzzy
msgid "Please enter your second name"
msgstr "Cofnodwch eich enw"
-#: templates/web/default/js/validation_strings.html:18
+#: templates/web/default/js/translation_strings.html:18
#, fuzzy
msgid "Please enter your title"
msgstr "Cofnodwch eich cyfeiriad e-bost"
+#: templates/web/default/auth/sign_out.html:5
+#: templates/web/zurich/auth/sign_out.html:5
+msgid ""
+"Please feel free to <a href=\"%s\">sign in again</a>, or go back to the <a "
+"href=\"/\">front page</a>."
+msgstr ""
+
#: templates/web/emptyhomes/report/new/fill_in_details_text.html:1
#, fuzzy
msgid ""
@@ -2293,7 +2498,7 @@ msgid ""
msgstr ""
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:70
-#: templates/web/zurich/report/new/fill_in_details_form.html:64
+#: templates/web/zurich/report/new/fill_in_details_form.html:46
#, fuzzy
msgid "Please fill in details of the empty property."
msgstr "Llenwch fanylion yr eiddo gwag isod."
@@ -2301,7 +2506,7 @@ msgstr "Llenwch fanylion yr eiddo gwag isod."
#: templates/web/bromley/report/new/fill_in_details_form.html:28
#: templates/web/default/report/new/fill_in_details_form.html:27
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:35
-#: templates/web/zurich/report/new/fill_in_details_form.html:35
+#: templates/web/zurich/report/new/fill_in_details_form.html:20
#, fuzzy
msgid ""
"Please fill in the form below with details of the empty property, and "
@@ -2335,7 +2540,7 @@ msgstr ""
#: templates/web/bromley/report/new/fill_in_details_form.html:23
#: templates/web/default/report/new/fill_in_details_form.html:5
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:26
-#: templates/web/zurich/report/new/fill_in_details_form.html:26
+#: templates/web/zurich/report/new/fill_in_details_form.html:11
msgid ""
"Please note your report has <strong>not yet been sent</strong>. Choose a "
"category and add further information below, then submit."
@@ -2381,11 +2586,11 @@ 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/Photo.pm:175
+#: perllib/FixMyStreet/App/Controller/Photo.pm:172
msgid "Please upload a JPEG image only"
msgstr "Dim ond llun JPEG y dylech lwytho i fyny."
-#: perllib/FixMyStreet/App/Controller/Photo.pm:182
+#: perllib/FixMyStreet/App/Controller/Photo.pm:179
#, fuzzy
msgid "Please upload a JPEG image only\n"
msgstr "Dim ond llun JPEG y dylech lwytho i fyny."
@@ -2427,9 +2632,9 @@ msgstr "Cofnodwyd gan %s am %s"
msgid "Posted by %s at %s"
msgstr "Cofnodwyd gan %s am %s"
-#: templates/web/default/admin/council_contacts.html:100
-#: templates/web/default/admin/council_edit.html:30
-#: templates/web/default/admin/report_edit.html:43
+#: templates/web/default/admin/body.html:97
+#: templates/web/default/admin/body_edit.html:40
+#: templates/web/default/admin/report_edit.html:48
msgid "Private"
msgstr ""
@@ -2453,11 +2658,12 @@ msgid "Empty property %s sent to council %s"
msgstr "Eiddo gwag yn %s"
#: templates/web/default/admin/index.html:28
+#: templates/web/zurich/admin/index.html:15
#, fuzzy
msgid "Empty property breakdown by state"
msgstr "ni fydd eich eiddo gwag yn cael ei bostio"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:849
+#: perllib/FixMyStreet/App/Controller/Admin.pm:877
#, fuzzy
msgid "Empty property marked as open."
msgstr "Ffurflen manylion eiddo gwag"
@@ -2466,7 +2672,7 @@ msgstr "Ffurflen manylion eiddo gwag"
msgid "Empty property state change based on survey results"
msgstr ""
-#: templates/web/default/admin/list_flagged.html:5
+#: templates/web/default/admin/flagged.html:5
#, fuzzy
msgid "Empty properties"
msgstr "Eiddo gwag"
@@ -2477,7 +2683,7 @@ msgstr "Eiddo gwag yn yr ardal hon"
#: templates/web/bromley/report/display.html:31
#: templates/web/fixmystreet/around/tabbed_lists.html:4
-#: templates/web/fixmystreet/report/display.html:35
+#: templates/web/fixmystreet/report/display.html:43
#, fuzzy
msgid "Empty properties nearby"
msgstr "Mwy o eiddo gwag cyfagos"
@@ -2501,15 +2707,15 @@ msgstr ""
msgid "Empty properties within %.1fkm of this location"
msgstr "Eiddo gwag o fewn %skm o'r lleoliad hwn"
-#: perllib/FixMyStreet/Cobrand/Default.pm:612
+#: perllib/FixMyStreet/Cobrand/Default.pm:600
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:95
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:162
-#: perllib/FixMyStreet/Cobrand/UK.pm:231
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:155
+#: perllib/FixMyStreet/Cobrand/UK.pm:227
msgid "Empty properties within %s"
msgstr "Eiddo gwag yn %s"
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:103
-#: perllib/FixMyStreet/Cobrand/UK.pm:245
+#: perllib/FixMyStreet/Cobrand/UK.pm:241
msgid "Empty properties within %s ward"
msgstr "Eiddo gwag yn ward %s"
@@ -2530,7 +2736,7 @@ 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:616
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:623
msgid "Property type:"
msgstr "Math o eiddo:"
@@ -2562,11 +2768,23 @@ msgid ""
"report empty properties, leave updates and manage your reports."
msgstr ""
-#: templates/web/default/admin/council_contacts.html:44
-#: templates/web/default/admin/council_contacts.html:57
+#: templates/web/default/admin/body.html:42
+#: templates/web/default/admin/body.html:55
msgid "Public"
msgstr ""
+#: templates/web/zurich/admin/report_edit.html:150
+msgid "Public response:"
+msgstr ""
+
+#: templates/web/zurich/admin/report_edit.html:57
+msgid "Publish photo"
+msgstr ""
+
+#: templates/web/zurich/admin/report_edit.html:160
+msgid "Publish the response"
+msgstr ""
+
#: templates/web/default/questionnaire/completed.html:1
#: templates/web/default/questionnaire/completed.html:2
#: templates/web/default/questionnaire/index.html:0
@@ -2601,29 +2819,29 @@ msgstr "Llenwyd yr holiadur gan yr unigolyn a roddodd wybod am yr eiddo gwag"
#: templates/web/default/reports/_rss.html:1
#: templates/web/fixmystreet/alert/_list.html:22
#: templates/web/fixmystreet/alert/updates.html:9
-#: templates/web/fixmystreet/report/display.html:49
+#: templates/web/fixmystreet/report/display.html:57
msgid "RSS feed"
msgstr "Porthiant RSS"
-#: perllib/FixMyStreet/Cobrand/UK.pm:274 perllib/FixMyStreet/Cobrand/UK.pm:286
+#: perllib/FixMyStreet/Cobrand/UK.pm:270 perllib/FixMyStreet/Cobrand/UK.pm:282
#, fuzzy
msgid "RSS feed for %s"
msgstr "Porthiant RSS %s"
-#: perllib/FixMyStreet/Cobrand/UK.pm:280 perllib/FixMyStreet/Cobrand/UK.pm:292
+#: perllib/FixMyStreet/Cobrand/UK.pm:276 perllib/FixMyStreet/Cobrand/UK.pm:288
#, fuzzy
msgid "RSS feed for %s ward, %s"
msgstr "Porthiant RSS %s"
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:178
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:186
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:196
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:204
-#: perllib/FixMyStreet/Cobrand/UK.pm:300 perllib/FixMyStreet/Cobrand/UK.pm:312
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:171
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:179
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:189
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:197
+#: perllib/FixMyStreet/Cobrand/UK.pm:296 perllib/FixMyStreet/Cobrand/UK.pm:308
msgid "RSS feed of %s"
msgstr "Porthiant RSS %s"
-#: perllib/FixMyStreet/Cobrand/UK.pm:305 perllib/FixMyStreet/Cobrand/UK.pm:317
+#: perllib/FixMyStreet/Cobrand/UK.pm:301 perllib/FixMyStreet/Cobrand/UK.pm:313
#, fuzzy
msgid "RSS feed of %s, within %s ward"
msgstr "Porthiant RSS %s"
@@ -2637,16 +2855,16 @@ 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:613
+#: perllib/FixMyStreet/Cobrand/Default.pm:601
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:96
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:161
-#: perllib/FixMyStreet/Cobrand/UK.pm:238
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:154
+#: perllib/FixMyStreet/Cobrand/UK.pm:234
#, fuzzy
msgid "RSS feed of empty properties within %s"
msgstr "Porthiant RSS o eiddo gwag yn yr %s hwn"
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:102
-#: perllib/FixMyStreet/Cobrand/UK.pm:244
+#: perllib/FixMyStreet/Cobrand/UK.pm:240
#, fuzzy
msgid "RSS feed of empty properties within %s ward"
msgstr "Porthiant RSS o eiddo gwag yn yr %s hwn"
@@ -2659,7 +2877,7 @@ msgstr "Porthiant RSS o eiddo gwag lleol diweddar"
#: templates/web/bromley/report/display.html:37
#: templates/web/default/report/display.html:42
#: templates/web/fixmystreet/alert/updates.html:9
-#: templates/web/fixmystreet/report/display.html:49
+#: templates/web/fixmystreet/report/display.html:57
msgid "RSS feed of updates to this empty property"
msgstr "Porthiant RSS o ddiweddariadau i'r eiddo gwag hwn"
@@ -2667,7 +2885,7 @@ msgstr "Porthiant RSS o ddiweddariadau i'r eiddo gwag hwn"
#: templates/web/default/alert/updates.html:9
#: templates/web/default/report/display.html:33
#: templates/web/fixmystreet/alert/updates.html:14
-#: templates/web/fixmystreet/report/display.html:51
+#: templates/web/fixmystreet/report/display.html:59
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 "
@@ -2695,7 +2913,7 @@ msgid "Recently reported empty properties"
msgstr "Eiddo gwag yr adroddwyd amdanynt yn ddiweddar"
#: templates/web/default/report/new/notes.html:9
-#: templates/web/fixmystreet/report/new/notes.html:8
+#: templates/web/fixmystreet/report/new/notes.html:10
msgid ""
"Remember that reportemptyhomes.com is primarily for reporting physical empty "
"properties that can be returned to use. If your empty property is not "
@@ -2713,8 +2931,9 @@ msgstr ""
msgid "Remove flag"
msgstr ""
-#: templates/web/default/admin/report_edit.html:54
-#: templates/web/default/admin/update_edit.html:48
+#: templates/web/default/admin/report_edit.html:59
+#: templates/web/default/admin/update_edit.html:51
+#: templates/web/zurich/admin/update_edit.html:35
msgid "Remove photo (can't be undone!)"
msgstr ""
@@ -2728,12 +2947,13 @@ msgstr "Adrodd am Eiddo Gwag"
#: templates/web/fiksgatami/nn/footer.html:5
#: templates/web/fixmystreet/footer.html:45
#: templates/web/reading/footer.html:6 templates/web/stevenage/footer.html:39
-#: templates/web/zurich/footer.html:10
+#: templates/web/zurich/footer.html:17
+#: templates/web/zurich/nav_over_content.html:4
msgid "Report a property"
msgstr "Rhoi gwybod am eiddo"
#: templates/web/bromley/report/display.html:28
-#: templates/web/fixmystreet/report/display.html:29
+#: templates/web/fixmystreet/report/display.html:35
#, fuzzy
msgid "Report abuse"
msgstr "Adroddiadau"
@@ -2743,7 +2963,7 @@ msgstr "Adroddiadau"
msgid "Report empty properties"
msgstr "Adrodd am eiddo gwag a gweld y rhain"
-#: perllib/FixMyStreet/App/Controller/Rss.pm:286
+#: perllib/FixMyStreet/App/Controller/Rss.pm:295
#, fuzzy
msgid "Report on %s"
msgstr "Adroddiadau"
@@ -2765,7 +2985,7 @@ msgstr "Adroddiadau"
msgid "Reported %s, to %s"
msgstr "Adroddwyd gan %s am %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:520
+#: perllib/FixMyStreet/DB/Result/Problem.pm:536
#: templates/web/default/contact/index.html:45
#: templates/web/fixmystreet/contact/index.html:46
msgid "Reported anonymously at %s"
@@ -2777,37 +2997,43 @@ msgstr "Adroddwyd yn ddi-enw am %s"
msgid "Reported before"
msgstr "Wedi adrodd o'r blaen"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:512
+#: perllib/FixMyStreet/DB/Result/Problem.pm:528
msgid "Reported by %s anonymously at %s"
msgstr "Adroddwyd gan %s yn ddi-enw am %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:543
+#: perllib/FixMyStreet/DB/Result/Problem.pm:559
#: templates/web/default/contact/index.html:47
#: templates/web/fixmystreet/contact/index.html:48
msgid "Reported by %s at %s"
msgstr "Adroddwyd gan %s am %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:534
+#: perllib/FixMyStreet/DB/Result/Problem.pm:550
msgid "Reported by %s by %s at %s"
msgstr "Adroddwyd gan %s trwy %s am %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:508
+#: perllib/FixMyStreet/DB/Result/Problem.pm:524
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:528
+#: perllib/FixMyStreet/DB/Result/Problem.pm:544
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:516
+#: templates/web/zurich/report/_main.html:2
+#, fuzzy
+msgid "Reported in the %s category"
+msgstr "Adroddwyd yn y categori %s gan %s am %s"
+
+#: perllib/FixMyStreet/DB/Result/Problem.pm:532
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:538
+#: perllib/FixMyStreet/DB/Result/Problem.pm:554
msgid "Reported in the %s category by %s at %s"
msgstr "Adroddwyd yn y categori %s gan %s am %s"
#: templates/web/default/around/around_index.html:1
+#: templates/web/default/js/translation_strings.html:35
#: templates/web/default/report/new/fill_in_details.html:0
#: templates/web/default/report/new/fill_in_details.html:3
#: templates/web/default/report/new/fill_in_details_form.html:1
@@ -2819,19 +3045,34 @@ msgstr "Adroddwyd yn y categori %s gan %s am %s"
msgid "Reporting an empty property"
msgstr "Adrodd am eiddo gwag"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1033
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1087
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:133
+#: templates/web/zurich/header.html:59
msgid "Reports"
msgstr "Adroddiadau"
+#: templates/web/zurich/admin/index-sdm.html:7
+msgid "Reports awaiting approval"
+msgstr ""
+
#: templates/web/default/around/tabbed_lists.html:3
msgid "Reports on and around the map"
msgstr "Adroddiadau ar ac yng nghyffiniau'r map"
-#: templates/web/default/admin/report_edit.html:35
+#: templates/web/zurich/admin/index-sdm.html:10
+#, fuzzy
+msgid "Reports published"
+msgstr "Adroddiadau"
+
+#: templates/web/default/admin/report_edit.html:40
#, fuzzy
msgid "Resend report"
msgstr "Cuddio hen adroddiadau "
+#: templates/web/default/js/translation_strings.html:22
+msgid "Right place?"
+msgstr ""
+
#: perllib/FixMyStreet/Geocode/OSM.pm:173
msgid ""
"Road operator for this named road (derived from road reference number and "
@@ -2842,26 +3083,53 @@ msgstr ""
msgid "Road operator for this named road (from OpenStreetMap): %s"
msgstr ""
-#: templates/web/default/admin/council_edit.html:63
+#: templates/web/default/admin/report_edit.html:55
+#: templates/web/zurich/admin/report_edit.html:53
+msgid "Rotate Left"
+msgstr ""
+
+#: templates/web/default/admin/report_edit.html:56
+#: templates/web/zurich/admin/report_edit.html:54
+msgid "Rotate Right"
+msgstr ""
+
+#: templates/web/default/admin/body_edit.html:76
msgid "Save changes"
msgstr ""
-#: templates/web/default/admin/list_flagged.html:1
-#: templates/web/default/admin/search_reports.html:1
+#: templates/web/default/admin/flagged.html:1
+#: templates/web/default/admin/reports.html:1
+#: templates/web/zurich/admin/reports.html:1
#, fuzzy
msgid "Search Reports"
msgstr "Adroddiadau cryno"
-#: templates/web/default/admin/search_users.html:1
+#: templates/web/default/admin/users.html:1
#, fuzzy
msgid "Search Users"
msgstr "Adroddiadau cryno"
-#: templates/web/default/admin/search_reports.html:5
-#: templates/web/default/admin/search_users.html:5
+#: templates/web/zurich/header.html:73
+#, fuzzy
+msgid "Search reports"
+msgstr "Adroddiadau cryno"
+
+#: templates/web/default/admin/reports.html:5
+#: templates/web/default/admin/users.html:5
+#: templates/web/zurich/admin/reports.html:5
msgid "Search:"
msgstr ""
+#: templates/web/default/admin/body-form.html:11
+#: templates/web/zurich/admin/body-form.html:17
+msgid "Select a body"
+msgstr ""
+
+#: templates/web/default/admin/body-form.html:21
+#: templates/web/zurich/admin/body-form.html:27
+msgid "Select an area"
+msgstr ""
+
#: templates/web/default/alert/_list.html:8
#: templates/web/fixmystreet/alert/_list.html:10
#, fuzzy
@@ -2873,20 +3141,20 @@ msgstr ""
"porthiant RSS,\n"
"neu rhowch eich cyfeiriad e-bost i danysgrifio am hysbysiad e-bost."
-#: perllib/FixMyStreet/DB/Result/Problem.pm:623
+#: perllib/FixMyStreet/DB/Result/Problem.pm:640
msgid "Sent to %s %s later"
msgstr "Anfonwyd at %s %s yn ddiweddarach"
-#: templates/web/default/admin/report_edit.html:35
+#: templates/web/default/admin/report_edit.html:40
#, fuzzy
msgid "Sent:"
msgstr "Pwnc:"
-#: templates/web/default/admin/report_edit.html:37
+#: templates/web/default/admin/report_edit.html:42
msgid "Service:"
msgstr ""
-#: templates/web/fixmystreet/report/display.html:33
+#: templates/web/fixmystreet/report/display.html:41
msgid "Share"
msgstr ""
@@ -2941,11 +3209,11 @@ msgstr ""
msgid "Show my name publicly"
msgstr ""
-#: templates/web/default/around/display_location.html:65
+#: templates/web/default/around/display_location.html:68
msgid "Show old"
msgstr ""
-#: templates/web/default/around/display_location.html:56
+#: templates/web/default/around/display_location.html:59
msgid "Show pins"
msgstr "Dangos pinnau"
@@ -2956,7 +3224,7 @@ msgstr "Dangos pinnau"
#: templates/web/fixmystreet/auth/general.html:42
#: templates/web/fixmystreet/auth/general.html:62
#: templates/web/fixmystreet/header.html:53
-#: templates/web/stevenage/header.html:101 templates/web/zurich/header.html:51
+#: templates/web/stevenage/header.html:101
msgid "Sign in"
msgstr ""
@@ -2975,9 +3243,9 @@ msgstr ""
#: templates/web/emptyhomes/header.html:41
#: templates/web/fiksgatami/header.html:22
#: templates/web/fiksgatami/nn/header.html:22
-#: templates/web/fixmybarangay/auth/sign_out.html:1
#: templates/web/lichfielddc/header.html:177
#: templates/web/reading/header.html:33
+#: templates/web/zurich/auth/sign_out.html:1
msgid "Sign out"
msgstr ""
@@ -3006,11 +3274,7 @@ msgstr "Rhai ffotograffau o adroddiadau diweddar"
msgid "Some text to localize"
msgstr ""
-#: templates/web/default/admin/council_list.html:42
-msgid "Some unconfirmeds"
-msgstr ""
-
-#: perllib/FixMyStreet/Cobrand/UK.pm:89
+#: perllib/FixMyStreet/Cobrand/UK.pm:93
msgid ""
"Sorry, that appears to be a Crown dependency postcode, which we don't cover."
msgstr ""
@@ -3028,7 +3292,7 @@ msgstr "Sori, ni fu modd i ni ddod o hyd i'r lleoliad hwnnw."
#: perllib/FixMyStreet/Geocode/Bing.pm:53
#: perllib/FixMyStreet/Geocode/Google.pm:69
-#: perllib/FixMyStreet/Geocode/Zurich.pm:82
+#: perllib/FixMyStreet/Geocode/Zurich.pm:87
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."
@@ -3053,32 +3317,46 @@ msgid "Start month:"
msgstr ""
#: templates/web/bromley/report/display.html:78
-#: templates/web/default/admin/list_flagged.html:18
+#: templates/web/default/admin/flagged.html:18
#: templates/web/default/admin/list_updates.html:6
-#: templates/web/default/admin/search_reports.html:21
+#: templates/web/default/admin/reports.html:21
#: templates/web/fixmystreet/report/update-form.html:26
#, fuzzy
msgid "State"
msgstr "Diweddariad:"
-#: templates/web/default/admin/report_edit.html:17
-#: templates/web/default/admin/update_edit.html:18
+#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/update_edit.html:21
#: templates/web/default/report/update-form.html:28
+#: templates/web/zurich/admin/report_edit-sdm.html:35
+#: templates/web/zurich/admin/report_edit.html:64
+#: templates/web/zurich/admin/update_edit.html:17
#, fuzzy
msgid "State:"
msgstr "Diweddariad:"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1038
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1092
#: templates/web/default/admin/stats.html:1
#, fuzzy
msgid "Stats"
msgstr "Diweddariad:"
+#: templates/web/zurich/admin/index-dm.html:25
+#: templates/web/zurich/admin/index-sdm.html:23
+#: templates/web/zurich/admin/reports.html:17
+#, fuzzy
+msgid "Status"
+msgstr "Diweddariad:"
+
#: templates/web/default/report/updates.html:9
#, fuzzy
msgid "Still open, via questionnaire, %s"
msgstr "Anfon yr holiadur"
+#: templates/web/zurich/admin/index-dm.html:27
+msgid "Subdivision/Body"
+msgstr ""
+
#: templates/web/bromley/report/new/fill_in_details_form.html:48
#: templates/web/fixmystreet/contact/index.html:79
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:60
@@ -3089,6 +3367,7 @@ msgstr "Pwnc:"
#: templates/web/default/admin/report_edit.html:13
#: templates/web/default/contact/index.html:83
#: templates/web/default/report/new/fill_in_details_form.html:52
+#: templates/web/zurich/admin/report_edit.html:28
msgid "Subject:"
msgstr "Pwnc:"
@@ -3102,13 +3381,16 @@ msgstr "Pwnc:"
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:152
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:177
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:222
-#: templates/web/zurich/report/new/fill_in_details_form.html:128
+#: templates/web/zurich/report/new/fill_in_details_form.html:111
msgid "Submit"
msgstr "Anfon"
-#: templates/web/default/admin/report_edit.html:57
-#: templates/web/default/admin/update_edit.html:51
-#: templates/web/default/admin/user_edit.html:20
+#: templates/web/default/admin/report_edit.html:62
+#: templates/web/default/admin/update_edit.html:54
+#: templates/web/default/admin/user-form.html:17
+#: templates/web/zurich/admin/report_edit-sdm.html:45
+#: templates/web/zurich/admin/report_edit.html:162
+#: templates/web/zurich/admin/update_edit.html:38
#, fuzzy
msgid "Submit changes"
msgstr "Anfon"
@@ -3118,11 +3400,23 @@ msgstr "Anfon"
msgid "Submit questionnaire"
msgstr "Anfon yr holiadur"
+#: templates/web/zurich/admin/header.html:1
+#: templates/web/zurich/admin/header.html:6
+#: templates/web/zurich/admin/index-dm.html:23
+#: templates/web/zurich/admin/index-dm.html:6
+#: templates/web/zurich/admin/index-sdm.html:21
+#: templates/web/zurich/admin/report_edit.html:67
+#: templates/web/zurich/admin/reports.html:15
+#: templates/web/zurich/report/banner.html:9
+#, fuzzy
+msgid "Submitted"
+msgstr "Anfon"
+
#: templates/web/bromley/report/display.html:44
#: templates/web/default/alert/updates.html:17
#: templates/web/default/report/display.html:38
#: templates/web/fixmystreet/alert/updates.html:23
-#: templates/web/fixmystreet/report/display.html:56
+#: templates/web/fixmystreet/report/display.html:64
msgid "Subscribe"
msgstr "Tanysgrifio"
@@ -3139,8 +3433,12 @@ msgstr ""
"Neu, gallwch danysgrifio am hysbysiad yn ôl pa ward neu gyngor yr ydych yn "
"byw ynddo:"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1031
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1085
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:132
#: templates/web/default/admin/index.html:1
+#: templates/web/zurich/admin/index-dm.html:1
+#: templates/web/zurich/admin/index-sdm.html:1
+#: templates/web/zurich/admin/index.html:1 templates/web/zurich/header.html:56
#, fuzzy
msgid "Summary"
msgstr "Adroddiadau cryno"
@@ -3150,10 +3448,12 @@ msgstr "Adroddiadau cryno"
#: templates/web/fiksgatami/nn/reports/index.html:1
#: templates/web/fiksgatami/reports/index.html:1
#: templates/web/fixmybarangay/reports/index.html:1
+#: templates/web/zurich/reports/index.html:0
+#: templates/web/zurich/reports/index.html:4
msgid "Summary reports"
msgstr "Adroddiadau cryno"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1035
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1089
msgid "Survey"
msgstr ""
@@ -3162,14 +3462,16 @@ msgid "Survey Results"
msgstr ""
#: templates/web/default/admin/list_updates.html:14
+#: templates/web/zurich/admin/list_updates.html:7
msgid "Text"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:20
+#: templates/web/default/admin/body.html:18
msgid "Text only version"
msgstr ""
-#: templates/web/default/admin/update_edit.html:13
+#: templates/web/default/admin/update_edit.html:14
+#: templates/web/zurich/admin/update_edit.html:12
msgid "Text:"
msgstr ""
@@ -3265,7 +3567,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/Photo.pm:189
+#: perllib/FixMyStreet/App/Controller/Photo.pm:186
msgid ""
"That image doesn't appear to have uploaded correctly (%s), please try again."
msgstr ""
@@ -3289,21 +3591,21 @@ msgstr ""
"arni."
#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:63
-#: perllib/FixMyStreet/Cobrand/UK.pm:82
+#: perllib/FixMyStreet/Cobrand/UK.pm:86
msgid "That postcode was not recognised, sorry."
msgstr "Ni chafodd y cod post hwnnw ei gydnabod, sori."
-#: perllib/FixMyStreet/App/Controller/Admin.pm:616
+#: perllib/FixMyStreet/App/Controller/Admin.pm:641
#, fuzzy
msgid "That empty property will now be resent."
msgstr "ni fydd eich eiddo gwag yn cael ei bostio"
-#: perllib/FixMyStreet/App/Controller/Report.pm:98
+#: perllib/FixMyStreet/App/Controller/Report.pm:117
#, fuzzy
msgid "That report cannot be viewed on reportemptyhomes.com."
msgstr "Mae'r adroddiad hwnnw wedi cael ei dynnu oddi ar reportemptyhomes.com"
-#: perllib/FixMyStreet/App/Controller/Report.pm:92
+#: perllib/FixMyStreet/App/Controller/Report.pm:111
msgid "That report has been removed from reportemptyhomes.com."
msgstr "Mae'r adroddiad hwnnw wedi cael ei dynnu oddi ar reportemptyhomes.com"
@@ -3349,8 +3651,8 @@ msgid ""
"the way the attribute is defined in the Open311 v2 specification."
msgstr ""
-#: templates/web/default/auth/token.html:21
-#: templates/web/default/email_sent.html:22
+#: templates/web/default/auth/token.html:22
+#: templates/web/default/email_sent.html:6
msgid ""
"The confirmation email <strong>may</strong> take a few minutes to arrive "
"&mdash; <em>please</em> be patient."
@@ -3378,8 +3680,7 @@ msgid ""
msgstr "Mae manylion eich eiddo gwag ar gael ar ochr dde'r dudalen hon."
#: perllib/FixMyStreet/App/Controller/Dashboard.pm:60
-#: perllib/FixMyStreet/App/Controller/Reports.pm:43
-#: perllib/FixMyStreet/App/Controller/Reports.pm:74
+#: perllib/FixMyStreet/App/Controller/Reports.pm:67
#, fuzzy
msgid "The error was: %s"
msgstr "Testun y gwall oedd:"
@@ -3488,13 +3789,12 @@ msgstr "Yr hysbysiad symlaf yw ein hysbysiad daearyddol:"
#: templates/web/default/report/new/councils_text_some.html:11
#: templates/web/default/report/new/fill_in_details_form.html:17
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:12
-#: templates/web/zurich/report/new/fill_in_details_form.html:12
msgid ""
"The subject and details of the empty property will be public, plus your name "
"if you give us permission."
msgstr ""
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:271
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:272
msgid ""
"The user could not locate the empty property on a map, but to see the area "
"around the location they entered"
@@ -3502,7 +3802,7 @@ msgstr ""
"Ni allai'r defnyddiwr leoli'r eiddo gwag ar fap, ond i weld yr ardal o "
"gwmpas y lleoliad a gofnodwyd ganddynt "
-#: perllib/FixMyStreet/App/Controller/Reports.pm:71
+#: perllib/FixMyStreet/App/Controller/Reports.pm:64
msgid ""
"There was an empty property showing the All Reports page. Please try again "
"later."
@@ -3513,7 +3813,7 @@ msgstr ""
msgid "There was an empty property showing this page. Please try again later."
msgstr "Cafwyd anhawsterau gyda'ch diweddariad. Gweler isod"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:736
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:740
#: perllib/FixMyStreet/App/Controller/Report/Update.pm:134
#: templates/web/default/auth/general.html:23
#: templates/web/fixmystreet/auth/general.html:24
@@ -3563,8 +3863,8 @@ msgid ""
"ignore it if you're not the correct council to deal with the issue."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:868
-#: perllib/FixMyStreet/Cobrand/UK.pm:54
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:874
+#: perllib/FixMyStreet/Cobrand/UK.pm:58
msgid "This information is required"
msgstr ""
@@ -3632,6 +3932,10 @@ msgstr "Mae'r eiddo gwag hwn wedi cael ei adfer i'w ddefnyddio"
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."
+#: templates/web/zurich/report/_main.html:14
+msgid "This report is awaiting moderation."
+msgstr ""
+
#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:86
#, fuzzy
msgid "This report is currently marked as closed."
@@ -3646,7 +3950,7 @@ msgstr "Mae'r eiddo gwag hwn wedi cael ei adfer i'w ddefnyddio"
msgid "This report is currently marked as open."
msgstr ""
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:264
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:265
msgid ""
"This web page also contains a photo of the empty property, provided by the "
"user."
@@ -3654,13 +3958,13 @@ 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:1034
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1088
#: templates/web/default/admin/timeline.html:1
msgid "Timeline"
msgstr ""
-#: templates/web/default/admin/list_flagged.html:10
-#: templates/web/default/admin/search_reports.html:13
+#: templates/web/default/admin/flagged.html:10
+#: templates/web/default/admin/reports.html:13
msgid "Title"
msgstr ""
@@ -3692,7 +3996,7 @@ msgstr ""
"ward chi,\n"
"cofnodwch eich cod post Prydeinig neu enw stryd ac ardal:"
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:270
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:271
msgid "To view a map of the precise location of this issue"
msgstr "Gweld map o union leoliad y broblem hon"
@@ -3703,13 +4007,13 @@ msgstr "Gweld map o union leoliad y broblem hon"
msgid "Total"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Reports.pm:42
-msgid "Unable to look up areas in MaPit. Please try again later."
+#: templates/web/default/js/translation_strings.html:23
+msgid "Try again"
msgstr ""
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:21
-#: templates/web/default/admin/update_edit.html:19
+#: templates/web/default/admin/report_edit.html:26
+#: templates/web/default/admin/update_edit.html:22
+#: templates/web/zurich/admin/update_edit.html:18
msgid "Unconfirmed"
msgstr ""
@@ -3722,7 +4026,12 @@ msgstr ""
msgid "Unknown alert type"
msgstr "ID eiddo gwag anhysbys"
-#: perllib/FixMyStreet/App/Controller/Report.pm:87
+#: templates/web/default/js/translation_strings.html:33
+#, fuzzy
+msgid "Unknown error"
+msgstr "ID eiddo gwag anhysbys"
+
+#: perllib/FixMyStreet/App/Controller/Report.pm:106
msgid "Unknown empty property ID"
msgstr "ID eiddo gwag anhysbys"
@@ -3748,6 +4057,12 @@ msgstr "Adroddwyd yn ddi-enw am %s"
msgid "Update below added by %s at %s"
msgstr "Adroddwyd gan %s trwy %s am %s"
+#: templates/web/default/admin/body-form.html:77
+#: templates/web/zurich/admin/body-form.html:47
+#, fuzzy
+msgid "Update body"
+msgstr "Diweddariadau"
+
#: templates/web/default/admin/index.html:30
msgid "Update breakdown by state"
msgstr ""
@@ -3756,26 +4071,27 @@ msgstr ""
msgid "Update by {{name}}"
msgstr "Diweddariadau yn ôl {{name}}"
-#: templates/web/default/admin/update_edit.html:33
+#: templates/web/default/admin/update_edit.html:36
+#: templates/web/zurich/admin/update_edit.html:25
#, 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
+#: templates/web/default/admin/update_edit.html:38
#, 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
+#: templates/web/default/admin/update_edit.html:40
#, fuzzy
msgid "Update reopened empty property"
msgstr "Sut i roi gwybod am eiddo gwag"
-#: templates/web/default/admin/council_contacts.html:68
+#: templates/web/default/admin/body.html:65
#, fuzzy
msgid "Update statuses"
msgstr "Diweddariadau"
@@ -3784,9 +4100,19 @@ msgstr "Diweddariadau"
msgid "Update:"
msgstr "Diweddariad:"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:708
-#: perllib/FixMyStreet/App/Controller/Admin.pm:839
-#: perllib/FixMyStreet/App/Controller/Admin.pm:899
+#: templates/web/zurich/admin/index-dm.html:24
+#: templates/web/zurich/admin/index-sdm.html:22
+#: templates/web/zurich/admin/reports.html:16
+#, fuzzy
+msgid "Updated"
+msgstr "Diweddariadau"
+
+#: perllib/FixMyStreet/App/Controller/Admin.pm:733
+#: perllib/FixMyStreet/App/Controller/Admin.pm:867
+#: perllib/FixMyStreet/App/Controller/Admin.pm:918
+#: perllib/FixMyStreet/App/Controller/Admin.pm:957
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:322
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:377
#, fuzzy
msgid "Updated!"
msgstr "Diweddariadau"
@@ -3794,6 +4120,8 @@ msgstr "Diweddariadau"
#: templates/web/default/admin/list_updates.html:1
#: templates/web/default/report/update.html:3
#: templates/web/fixmystreet/report/update.html:3
+#: templates/web/zurich/admin/list_updates.html:1
+#: templates/web/zurich/report/updates.html:2
msgid "Updates"
msgstr "Diweddariadau"
@@ -3810,27 +4138,32 @@ 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:1191
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1251
msgid "User flag removed"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1163
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1223
msgid "User flagged"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1036
-#: templates/web/default/admin/list_flagged.html:30
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1090
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:147
+#: templates/web/default/admin/flagged.html:30
+#: templates/web/zurich/header.html:68
msgid "Users"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:315
-#: perllib/FixMyStreet/App/Controller/Admin.pm:345
+#: perllib/FixMyStreet/App/Controller/Admin.pm:346
+#: perllib/FixMyStreet/App/Controller/Admin.pm:376
#, fuzzy
msgid "Values updated"
msgstr "Anfonwch ddiweddariadau ataf i drwy'r e-bost"
#: templates/web/default/admin/report_edit.html:12
#: templates/web/default/admin/update_edit.html:12
+#: templates/web/zurich/admin/report_edit-sdm.html:13
+#: templates/web/zurich/admin/report_edit.html:19
+#: templates/web/zurich/admin/update_edit.html:10
#, fuzzy
msgid "View report on site"
msgstr "Adroddiadau"
@@ -3896,12 +4229,12 @@ msgstr "(nid ydym byth yn dangos eich cyfeiriad e-bost na'ch rhif ffôn)"
#: templates/web/bromley/report/new/fill_in_details_form.html:179
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:144
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:211
-#: templates/web/zurich/report/new/fill_in_details_form.html:114
+#: templates/web/zurich/report/new/fill_in_details_form.html:96
#, fuzzy
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)"
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:351
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:350
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 "
@@ -3951,17 +4284,18 @@ 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:45
-#: templates/web/default/admin/council_edit.html:69
+#: templates/web/default/admin/body.html:43
+#: templates/web/default/admin/body_edit.html:82
+#: templates/web/zurich/admin/body.html:17
msgid "When edited"
msgstr ""
-#: templates/web/default/admin/list_flagged.html:19
-#: templates/web/default/admin/search_reports.html:22
+#: templates/web/default/admin/flagged.html:19
+#: templates/web/default/admin/reports.html:22
msgid "When sent"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:611
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:618
msgid "Whole block of empty flats"
msgstr "Bloc cyfan o fflatiau gwag"
@@ -3997,7 +4331,7 @@ msgstr ""
#: templates/web/default/report/new/notes.html:8
#: templates/web/fixmybarangay/report/new/notes.html:8
-#: templates/web/fixmystreet/report/new/notes.html:7
+#: templates/web/fixmystreet/report/new/notes.html:8
msgid ""
"Writing your message entirely in block capitals makes it hard to read, as "
"does a lack of punctuation."
@@ -4007,18 +4341,18 @@ msgstr ""
msgid "Year"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:52
-#: templates/web/default/admin/council_contacts.html:53
-#: templates/web/default/admin/council_contacts.html:54
-#: templates/web/default/admin/council_edit.html:5
+#: templates/web/default/admin/body.html:50
+#: templates/web/default/admin/body.html:51
+#: templates/web/default/admin/body.html:52
+#: templates/web/default/admin/body_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:27
-#: templates/web/default/admin/report_edit.html:41
-#: templates/web/default/admin/search_users.html:23
-#: templates/web/default/admin/update_edit.html:15
+#: templates/web/default/admin/problem_row.html:21
+#: templates/web/default/admin/report_edit.html:32
+#: templates/web/default/admin/report_edit.html:46
+#: templates/web/default/admin/update_edit.html:18
+#: templates/web/default/admin/users.html:26
#: templates/web/default/questionnaire/creator_fixed.html:14
#: templates/web/default/questionnaire/index.html:105
#: templates/web/default/questionnaire/index.html:66
@@ -4060,13 +4394,20 @@ msgstr ""
"Gallwch <a href=\"%s\">weld llai o fanylion</a> neu fynd yn ôl a <a href=\"/"
"reports\">dangos pob cyngor</a>."
+#: templates/web/default/tokens/confirm_problem.html:19
+#: templates/web/default/tokens/confirm_problem.html:21
+#: templates/web/zurich/tokens/confirm_problem.html:5
+#: templates/web/zurich/tokens/confirm_problem.html:8
+msgid "You can <a href=\"%s%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/emptyhomes/reports/body.html:66
#, fuzzy
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:16
+#: templates/web/default/report/new/councils_text_none.html:11
+#: templates/web/default/report/new/councils_text_none.html:13
#: templates/web/default/report/new/councils_text_some.html:20
#: templates/web/default/report/new/councils_text_some.html:22
msgid ""
@@ -4074,6 +4415,10 @@ msgid ""
"properties for %s and emailing it to us at <a href='mailto:%s'>%s</a>."
msgstr ""
+#: templates/web/default/js/translation_strings.html:30
+msgid "You declined; please fill in the box above"
+msgstr ""
+
#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:38
msgid ""
"You have already answered this questionnaire. If you have a question, please "
@@ -4089,7 +4434,7 @@ msgstr ""
#: templates/web/default/report/new/fill_in_details_form.html:93
#: templates/web/fixmystreet/questionnaire/index.html:87
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:99
-#: templates/web/zurich/report/new/fill_in_details_form.html:93
+#: templates/web/zurich/report/new/fill_in_details_form.html:75
msgid ""
"You have already attached a photo to this report, attaching another one will "
"replace it."
@@ -4104,14 +4449,14 @@ msgid ""
msgstr ""
#: templates/web/default/auth/sign_out.html:3
-#: templates/web/fixmybarangay/auth/sign_out.html:3
+#: templates/web/zurich/auth/sign_out.html:3
msgid "You have been signed out"
msgstr ""
#: templates/web/bromley/report/new/fill_in_details_form.html:25
#: templates/web/default/report/new/fill_in_details_form.html:7
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:28
-#: templates/web/zurich/report/new/fill_in_details_form.html:28
+#: templates/web/zurich/report/new/fill_in_details_form.html:13
#, fuzzy
msgid ""
"You have located the empty property at the point marked with a green pin on "
@@ -4125,6 +4470,12 @@ msgstr ""
msgid "You have successfully confirmed your alert."
msgstr "Rydych wedi cadarnhau'ch hysbysiad yn llwyddiannus."
+#: templates/web/zurich/tokens/confirm_problem.html:5
+#: templates/web/zurich/tokens/confirm_problem.html:6
+#, fuzzy
+msgid "You have successfully confirmed your email address."
+msgstr "Rydych wedi cadarnhau'ch hysbysiad yn llwyddiannus."
+
#: templates/web/default/tokens/confirm_problem.html:14
#: templates/web/default/tokens/confirm_problem.html:15
msgid "You have successfully confirmed your empty property"
@@ -4148,7 +4499,7 @@ 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:743
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:747
#: perllib/FixMyStreet/App/Controller/Report/Update.pm:140
#, fuzzy
msgid ""
@@ -4156,13 +4507,11 @@ msgid ""
"accurate:"
msgstr "Rydych wedi cadarnhau'ch hysbysiad yn llwyddiannus."
-#: templates/web/default/email_sent.html:26
-msgid ""
-"You must now click the link in the email we've just sent you &mdash; if you "
-"do not, %s."
+#: templates/web/default/email_sent.html:13
+msgid "You must now click the link in the email we've just sent you."
msgstr ""
-#: templates/web/default/admin/report_edit.html:35
+#: templates/web/default/admin/report_edit.html:40
msgid "You really want to resend?"
msgstr ""
@@ -4181,11 +4530,11 @@ msgstr "Adroddiadau"
#: templates/web/fixmystreet/alert/updates.html:19
#: templates/web/fixmystreet/alert/updates.html:22
#: templates/web/fixmystreet/contact/index.html:72
-#: templates/web/fixmystreet/report/display.html:53
-#: templates/web/fixmystreet/report/display.html:55
+#: templates/web/fixmystreet/report/display.html:61
+#: templates/web/fixmystreet/report/display.html:63
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:115
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:157
-#: templates/web/zurich/report/new/fill_in_details_form.html:106
+#: templates/web/zurich/report/new/fill_in_details_form.html:88
#, fuzzy
msgid "Your email"
msgstr "Eich cyfeiriad e-bost:"
@@ -4234,7 +4583,7 @@ msgstr "Eich enw:"
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:124
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:202
#: templates/web/fixmystreet/report/update-form.html:138
-#: templates/web/zurich/report/new/fill_in_details_form.html:122
+#: templates/web/zurich/report/new/fill_in_details_form.html:104
#, fuzzy
msgid "Your name"
msgstr "Eich enw:"
@@ -4263,7 +4612,7 @@ msgstr ""
#: templates/web/bromley/report/new/fill_in_details_form.html:184
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:149
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:216
-#: templates/web/zurich/report/new/fill_in_details_form.html:125
+#: templates/web/zurich/report/new/fill_in_details_form.html:107
msgid "Your phone number"
msgstr ""
@@ -4302,11 +4651,13 @@ msgstr ""
msgid "council"
msgstr "cyngor"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:608
+#: perllib/FixMyStreet/DB/Result/Problem.pm:625
msgid "council ref:&nbsp;%s"
msgstr ""
-#: templates/web/default/admin/report_edit.html:15
+#: templates/web/default/admin/report_edit.html:19
+#: templates/web/zurich/admin/report_edit-sdm.html:21
+#: templates/web/zurich/admin/report_edit.html:39
msgid "didn't use map"
msgstr ""
@@ -4316,10 +4667,11 @@ msgid "e.g. ‘%s’ or ‘%s’"
msgstr ""
#: templates/web/default/admin/index.html:15
+#: templates/web/zurich/admin/index.html:5
msgid "from %d different users"
msgstr ""
-#: perllib/Utils.pm:267
+#: perllib/Utils.pm:268
msgid "less than a minute"
msgstr "llai na munud"
@@ -4331,7 +4683,7 @@ msgstr ""
msgid "marked as returned to use"
msgstr "cofnodwyd bod hyn wedi'i adfer i'w ddefnyddio"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:113
+#: perllib/FixMyStreet/App/Controller/Admin.pm:128
#: templates/web/default/admin/questionnaire.html:15
#: templates/web/default/admin/questionnaire.html:16
msgid "n/a"
@@ -4343,15 +4695,20 @@ msgstr ""
msgid "or"
msgstr "neu"
-#: templates/web/default/js/validation_strings.html:21
+#: templates/web/default/js/translation_strings.html:21
msgid "or locate me automatically"
msgstr ""
-#: templates/web/default/admin/report_edit.html:15
-msgid "originally entered"
+#: templates/web/default/admin/report_edit.html:18
+#: templates/web/zurich/admin/report_edit-sdm.html:16
+#: templates/web/zurich/admin/report_edit-sdm.html:20
+#: templates/web/zurich/admin/report_edit.html:24
+#: templates/web/zurich/admin/report_edit.html:32
+#: templates/web/zurich/admin/report_edit.html:38
+msgid "originally entered: &ldquo;%s&rdquo;"
msgstr ""
-#: templates/web/default/admin/report_edit.html:16
+#: templates/web/default/admin/report_edit.html:21
msgid "other areas:"
msgstr ""
@@ -4363,7 +4720,7 @@ msgstr "wedi'i ailagor"
#: templates/web/bromley/header.html:65
#: templates/web/fixmybarangay/header.html:65
#: templates/web/fixmystreet/header.html:50
-#: templates/web/stevenage/header.html:98 templates/web/zurich/header.html:48
+#: templates/web/stevenage/header.html:98 templates/web/zurich/footer.html:12
msgid "sign out"
msgstr ""
@@ -4373,13 +4730,12 @@ msgstr ""
#: templates/web/default/report/new/fill_in_details_form.html:14
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:6
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:9
-#: templates/web/zurich/report/new/fill_in_details_form.html:6
-#: templates/web/zurich/report/new/fill_in_details_form.html:9
#, fuzzy
msgid "the local council"
msgstr "Ni roddwyd gwybod i'r cyngor am hyn"
#: templates/web/default/report/_main.html:6
+#: templates/web/zurich/report/_main.html:5
msgid "there is no pin shown as the user did not use the map"
msgstr ""
@@ -4388,19 +4744,21 @@ msgstr ""
msgid "this type of local empty property"
msgstr "Anfonwch fanylion eiddo gwag lleol newydd ataf i drwy'r e-bost"
-#: perllib/Utils.pm:241
+#: perllib/Utils.pm:240
msgid "today"
msgstr "heddiw"
-#: templates/web/default/admin/report_edit.html:15
+#: templates/web/default/admin/report_edit.html:19
+#: templates/web/zurich/admin/report_edit-sdm.html:21
+#: templates/web/zurich/admin/report_edit.html:39
msgid "used map"
msgstr ""
-#: templates/web/default/admin/update_edit.html:26
+#: templates/web/default/admin/update_edit.html:29
msgid "user is from same council as empty property - %d"
msgstr ""
-#: templates/web/default/admin/update_edit.html:29
+#: templates/web/default/admin/update_edit.html:32
#, fuzzy
msgid "user is empty property owner"
msgstr "Adroddiadau hŷn o eiddo gwag"
@@ -4412,39 +4770,6 @@ msgstr "Adroddiadau hŷn o eiddo gwag"
msgid "ward"
msgstr ""
-#: templates/web/default/email_sent.html:15
-#: templates/web/default/email_sent.html:3
-msgid "we'll hang on to your alert while you're checking your email."
-msgstr "byddwn yn dal gafael ar eich hysbysiad wrth i chi wirio eich e-bost."
-
-#: templates/web/default/email_sent.html:3
-#: templates/web/default/email_sent.html:7
-msgid ""
-"we'll hang on to your empty property report while you're checking your email."
-msgstr ""
-"byddwn yn dal gafael ar eich hysbysiad am eiddo gwag wrth i chi wirio eich e-"
-"bost."
-
-#: templates/web/default/email_sent.html:11
-#: templates/web/default/email_sent.html:3
-msgid "we'll hang on to your update while you're checking your email."
-msgstr "byddwn yn dal gafael ar eich diweddariad wrth i chi wirio eich e-bost."
-
-#: templates/web/default/email_sent.html:14
-#: templates/web/default/email_sent.html:3
-msgid "your alert will not be activated"
-msgstr "ni fydd eich hysbysiad yn cael ei weithredu"
-
-#: templates/web/default/email_sent.html:3
-#: templates/web/default/email_sent.html:6
-msgid "your empty property will not be posted"
-msgstr "ni fydd eich eiddo gwag yn cael ei bostio"
-
-#: templates/web/default/email_sent.html:10
-#: templates/web/default/email_sent.html:3
-msgid "your update will not be posted"
-msgstr "ni fydd eich diweddariad yn cael ei bostio"
-
#: templates/web/emptyhomes/front/stats.html:17
#, perl-format
msgid "<big>%s</big> report recently"
@@ -4452,14 +4777,14 @@ msgid_plural "<big>%s</big> reports recently"
msgstr[0] "<big>%s</big> adroddiad yn ddiweddar"
msgstr[1] "<big>%s</big> o adroddiadau yn ddiweddar"
-#: perllib/Utils.pm:286
+#: perllib/Utils.pm:287
#, fuzzy, perl-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "awr"
msgstr[1] "awr"
-#: perllib/Utils.pm:288
+#: perllib/Utils.pm:289
#, fuzzy, perl-format
msgid "%d minute"
msgid_plural "%d minutes"
@@ -4481,7 +4806,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: perllib/Utils.pm:282
+#: perllib/Utils.pm:283
#, fuzzy, perl-format
msgid "%d week"
msgid_plural "%d weeks"
@@ -4513,7 +4838,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: perllib/Utils.pm:284
+#: perllib/Utils.pm:285
#, fuzzy, perl-format
msgid "%d day"
msgid_plural "%d days"
@@ -4521,6 +4846,36 @@ msgstr[0] "diwrnod"
msgstr[1] "diwrnod"
#, fuzzy
+#~ msgid ""
+#~ "All the information you provide here will be sent to <strong>Stadt "
+#~ "Zürich</strong>."
+#~ msgstr ""
+#~ "Bydd yr holl wybodaeth a ddarperir gennych yma'n cael ei hanfon at "
+#~ "<strong>%s</strong>.\n"
+#~ "Ar y safle, byddwn yn dangos pwnc a manylion yr eiddo gwag,\n"
+#~ "ynghyd â'ch enw os ydych yn rhoi caniatâd i ni."
+
+#, fuzzy
+#~ msgid "Reported at %s"
+#~ msgstr "Adroddiadau"
+
+#, fuzzy
+#~ msgid "Empty property ID"
+#~ msgstr "Eiddo gwag"
+
+#, fuzzy
+#~ msgid "Configuration updated"
+#~ msgstr "Cadarnhau"
+
+#, fuzzy
+#~ msgid "Council contacts"
+#~ msgstr "Cysylltwch â Ni"
+
+#, fuzzy
+#~ msgid "Councils"
+#~ msgstr "cyngor"
+
+#, fuzzy
#~ msgid "reportemptyhomes.com administration"
#~ msgstr "Diweddariadau i reportemptyhomes.com"
diff --git a/locale/de_CH.UTF-8/LC_MESSAGES/FixMyStreet.po b/locale/de_CH.UTF-8/LC_MESSAGES/FixMyStreet.po
index 024e86f26..be5764a11 100644
--- a/locale/de_CH.UTF-8/LC_MESSAGES/FixMyStreet.po
+++ b/locale/de_CH.UTF-8/LC_MESSAGES/FixMyStreet.po
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: 1.0\n"
"Report-Msgid-Bugs-To: matthew@mysociety.org\n"
-"POT-Creation-Date: 2012-12-10 13:18+0000\n"
-"PO-Revision-Date: 2012-11-20 17:17+0100\n"
+"POT-Creation-Date: 2013-01-31 15:59+0000\n"
+"PO-Revision-Date: 2013-01-28 14:00+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <team@fixmystreet.com>\n"
"Language: \n"
@@ -16,21 +16,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:560
+#: perllib/FixMyStreet/DB/Result/Problem.pm:579
#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:339
msgid " and "
msgstr "und"
#: templates/web/default/tokens/confirm_problem.html:14
-#: templates/web/default/tokens/confirm_problem.html:18
+#: templates/web/default/tokens/confirm_problem.html:17
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:17
-#: templates/web/default/report/new/councils_text_all.html:3
+#: templates/web/default/report/new/councils_text_all.html:11
+#: templates/web/default/report/new/councils_text_all.html:18
+#: templates/web/default/report/new/councils_text_all.html:4
+#: templates/web/default/report/new/councils_text_none.html:11
#: 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
@@ -38,7 +38,7 @@ msgstr ""
msgid " or "
msgstr "oder"
-#: templates/web/default/admin/council_list.html:17
+#: templates/web/default/admin/bodies.html:31
msgid "%d addresses"
msgstr "%d Adressen"
@@ -47,10 +47,11 @@ msgid "%d confirmed alerts, %d unconfirmed"
msgstr ""
#: templates/web/default/admin/index.html:19
+#: templates/web/zurich/admin/index.html:6
msgid "%d council contacts &ndash; %d confirmed, %d unconfirmed"
msgstr ""
-#: templates/web/default/admin/council_list.html:27
+#: templates/web/default/admin/edit-league.html:5
msgid "%d edits by %s"
msgstr ""
@@ -73,32 +74,46 @@ msgstr ""
msgid "%s - Summary reports"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:610
+#: perllib/FixMyStreet/DB/Result/Problem.pm:627
msgid "%s ref:&nbsp;%s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/UK.pm:279 perllib/FixMyStreet/Cobrand/UK.pm:291
+#: perllib/FixMyStreet/Cobrand/UK.pm:275 perllib/FixMyStreet/Cobrand/UK.pm:287
msgid "%s ward, %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:496
+#: perllib/FixMyStreet/DB/Result/Problem.pm:512
msgid "%s, reported anonymously at %s"
msgstr "%s, gemeldet um %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:498
+#: perllib/FixMyStreet/DB/Result/Problem.pm:514
msgid "%s, reported by %s at %s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/UK.pm:306 perllib/FixMyStreet/Cobrand/UK.pm:318
+#: perllib/FixMyStreet/Cobrand/UK.pm:302 perllib/FixMyStreet/Cobrand/UK.pm:314
msgid "%s, within %s ward"
msgstr ""
-#: templates/web/default/email_sent.html:28
-msgid "(Don't worry &mdash; %s)"
+#: templates/web/default/email_sent.html:29
+msgid ""
+"(Don't worry &mdash; we'll hang on to your alert while you're checking your "
+"email.)"
+msgstr ""
+
+#: templates/web/default/email_sent.html:25
+msgid ""
+"(Don't worry &mdash; we'll hang on to your problem report while you're "
+"checking your email.)"
+msgstr ""
+
+#: templates/web/default/email_sent.html:27
+msgid ""
+"(Don't worry &mdash; we'll hang on to your update while you're checking your "
+"email.)"
msgstr ""
#: templates/web/default/admin/report_blocks.html:11
-#: templates/web/default/admin/search_users.html:23
+#: templates/web/default/admin/users.html:26
msgid "(Email in abuse table)"
msgstr ""
@@ -114,14 +129,15 @@ msgstr ""
#: templates/web/default/around/around_map_list_items.html:12
#: templates/web/default/around/on_map_list_items.html:9
-#: templates/web/fixmystreet/report/_item.html:23
-#, fuzzy
+#: templates/web/fixmystreet/report/_item.html:20
+#: templates/web/zurich/report/_item.html:19
msgid "(closed)"
-msgstr "Geschlossen"
+msgstr "(erledigt)"
#: templates/web/default/around/around_map_list_items.html:10
#: templates/web/default/around/on_map_list_items.html:7
-#: templates/web/fixmystreet/report/_item.html:21
+#: templates/web/fixmystreet/report/_item.html:18
+#: templates/web/zurich/report/_item.html:17
msgid "(fixed)"
msgstr "(gel&ouml;st)"
@@ -131,17 +147,17 @@ msgid "(like graffiti, fly tipping, broken paving slabs, or street lighting)"
msgstr "(z.B. illegale Deponien, Strassensch&auml;den, Graffitis usw.)"
#: templates/web/default/reports/_list-entry.html:4
-#: templates/web/fixmystreet/report/_item.html:17
+#: templates/web/fixmystreet/report/_item.html:14
msgid "(not sent to council)"
msgstr ""
#: templates/web/default/report/new/fill_in_details_form.html:217
-#: templates/web/zurich/report/new/fill_in_details_form.html:118
+#: templates/web/zurich/report/new/fill_in_details_form.html:100
msgid "(optional)"
msgstr "(optional)"
#: templates/web/default/reports/_list-entry.html:2
-#: templates/web/fixmystreet/report/_item.html:16
+#: templates/web/fixmystreet/report/_item.html:13
msgid "(sent to both)"
msgstr ""
@@ -153,29 +169,17 @@ msgstr "(ihre E-Mail Adresse und Telefonnummer werden nie angezeigt)"
msgid "(we never show your email)"
msgstr "(ihre E-Mail Adresse wird nie angezeigt)"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:285
-msgid "*unknown*"
-msgstr "*unbekannt*"
-
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:628
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:656
-#: perllib/FixMyStreet/DB/Result/Problem.pm:353
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:635
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:663
+#: perllib/FixMyStreet/DB/Result/Problem.pm:362
msgid "-- Pick a category --"
-msgstr "-- W&auml;hlen Sie eine Kategorie --"
+msgstr "-- Wählen Sie eine Kategorie --"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:608
-#: perllib/FixMyStreet/DB/Result/Problem.pm:359
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:615
+#: perllib/FixMyStreet/DB/Result/Problem.pm:368
msgid "-- Pick a property type --"
msgstr ""
-#: templates/web/default/tokens/confirm_problem.html:14
-#: templates/web/default/tokens/confirm_problem.html:22
-#, fuzzy
-msgid ". You can <a href=\"%s%s\">view the problem on this site</a>."
-msgstr ""
-"Danke &amp;mdash; Sie k&ouml;nnen Ihre aktualisierte Meldung <a href=\"%s"
-"\">auf der Webseite anschauen</a>"
-
#: templates/web/default/report/_support.html:3
msgid "1 supporter"
msgstr ""
@@ -274,6 +278,7 @@ msgstr ""
"small>"
#: templates/web/default/admin/index.html:14
+#: templates/web/zurich/admin/index.html:4
msgid "<strong>%d</strong> live problems"
msgstr ""
@@ -287,7 +292,7 @@ msgstr ""
#: templates/web/fixmystreet/auth/general.html:50
msgid "<strong>No</strong> let me sign in by email"
-msgstr ""
+msgstr "Erstmalige Anmeldung"
#: templates/web/default/auth/general.html:55
msgid "<strong>No</strong>, I do not, let me sign in by email:"
@@ -309,7 +314,7 @@ msgstr ""
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:169
#: templates/web/fixmystreet/report/update-form.html:85
msgid "<strong>Yes</strong> I have a password"
-msgstr ""
+msgstr "Passwort"
#: templates/web/default/static/about.html:1
#: templates/web/default/static/about.html:3
@@ -319,10 +324,21 @@ msgstr ""
msgid "About us"
msgstr "&Uuml;ber uns"
-#: templates/web/default/admin/council_contacts.html:72
+#: templates/web/default/admin/bodies.html:45
+#: templates/web/default/admin/body-form.html:77
+#: templates/web/zurich/admin/body-form.html:47
+msgid "Add body"
+msgstr "Adresse hinzuf&uuml;gen"
+
+#: templates/web/default/admin/body.html:69
+#: templates/web/zurich/admin/body.html:30
msgid "Add new category"
msgstr "F&uuml;ge neue Kategorie hinzu"
+#: templates/web/default/admin/users.html:35
+msgid "Add user"
+msgstr ""
+
#: templates/web/default/my/my.html:56 templates/web/fixmystreet/my/my.html:60
msgid "Added %s"
msgstr ""
@@ -347,13 +363,10 @@ msgstr ""
#: templates/web/default/reports/index.html:3
#: templates/web/fixmybarangay/reports/index.html:3
+#: templates/web/zurich/reports/index.html:12
msgid "All Reports"
msgstr "Alle Meldungen"
-#: templates/web/default/admin/council_list.html:44
-msgid "All confirmed"
-msgstr "Alle best&auml;tigten"
-
#: templates/web/barnet/footer.html:20 templates/web/bromley/footer.html:21
#: templates/web/bromley/header.html:77 templates/web/default/footer.html:11
#: templates/web/fiksgatami/footer.html:7
@@ -361,12 +374,13 @@ msgstr "Alle best&auml;tigten"
#: templates/web/fixmybarangay/footer.html:20
#: templates/web/fixmystreet/footer.html:49
#: templates/web/reading/footer.html:8 templates/web/stevenage/footer.html:43
-#: templates/web/zurich/footer.html:12
+#: templates/web/zurich/admin/index-dm.html:12
+#: templates/web/zurich/footer.html:19
+#: templates/web/zurich/nav_over_content.html:6
msgid "All reports"
msgstr "Alle Meldungen"
#: templates/web/default/admin/stats.html:5
-#, fuzzy
msgid "All reports between %s and %s"
msgstr "Gemeldet von %s um %s"
@@ -374,15 +388,15 @@ msgstr "Gemeldet von %s um %s"
msgid "All the information you provide here will be sent to"
msgstr ""
-#: templates/web/default/report/new/councils_text_all.html:10
-#: templates/web/default/report/new/councils_text_all.html:12
+#: templates/web/default/report/new/councils_text_all.html:11
+#: templates/web/default/report/new/councils_text_all.html:13
msgid ""
"All the information you provide here will be sent to <strong>%s</strong> or "
"<strong>Roads Service</strong>."
msgstr ""
-#: templates/web/default/report/new/councils_text_all.html:3
-#: templates/web/default/report/new/councils_text_all.html:5
+#: templates/web/default/report/new/councils_text_all.html:4
+#: templates/web/default/report/new/councils_text_all.html:6
msgid ""
"All the information you provide here will be sent to <strong>%s</strong> or "
"a relevant local body such as <strong>TfL</strong>, via the London Report-It "
@@ -391,14 +405,12 @@ msgstr ""
#: templates/web/bromley/report/new/fill_in_details_form.html:4
#: templates/web/bromley/report/new/fill_in_details_form.html:6
-#: templates/web/default/report/new/councils_text_all.html:17
-#: templates/web/default/report/new/councils_text_all.html:19
+#: templates/web/default/report/new/councils_text_all.html:18
+#: templates/web/default/report/new/councils_text_all.html:20
#: templates/web/default/report/new/fill_in_details_form.html:11
#: templates/web/default/report/new/fill_in_details_form.html:13
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:6
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:8
-#: templates/web/zurich/report/new/fill_in_details_form.html:6
-#: templates/web/zurich/report/new/fill_in_details_form.html:8
msgid ""
"All the information you provide here will be sent to <strong>%s</strong>."
msgstr ""
@@ -416,14 +428,14 @@ msgstr ""
msgid "An update marked this problem as fixed."
msgstr ""
-#: templates/web/default/admin/list_flagged.html:15
+#: templates/web/default/admin/flagged.html:15
#: templates/web/default/admin/list_updates.html:10
-#: templates/web/default/admin/search_reports.html:18
+#: templates/web/default/admin/reports.html:18
msgid "Anonymous"
msgstr "Anonym"
-#: templates/web/default/admin/report_edit.html:26
-#: templates/web/default/admin/update_edit.html:14
+#: templates/web/default/admin/report_edit.html:31
+#: templates/web/default/admin/update_edit.html:17
msgid "Anonymous:"
msgstr "Anonym:"
@@ -443,6 +455,28 @@ msgstr ""
msgid "Are you from a council?"
msgstr ""
+#: templates/web/default/admin/body-form.html:19
+#: templates/web/zurich/admin/body-form.html:25
+msgid "Area covered"
+msgstr ""
+
+#: templates/web/zurich/admin/report_edit.html:99
+msgid "Assign to different category:"
+msgstr "Einer anderen Kategorie (DA) zuweisen:"
+
+#: templates/web/zurich/admin/report_edit.html:108
+msgid "Assign to external body:"
+msgstr "Einer externen Stelle zuweisen:"
+
+#: templates/web/zurich/admin/report_edit.html:140
+#: templates/web/zurich/admin/report_edit.html:87
+msgid "Assign to subdivision:"
+msgstr "An Fachbereich zuweisen:"
+
+#: templates/web/zurich/report/updates.html:11
+msgid "Assigned to %s"
+msgstr "An Fachbereich zuweisen:"
+
#: templates/web/default/open311/index.html:17
msgid ""
"At most %d requests are returned in each query. The returned requests are "
@@ -454,6 +488,15 @@ msgstr ""
msgid "At the moment only searching for and looking at reports work."
msgstr ""
+#: perllib/FixMyStreet/DB/Result/Problem.pm:317
+#: templates/web/zurich/report/_item.html:9
+msgid "Awaiting moderation"
+msgstr "&Uuml;berpr&uuml;fung ausstehend"
+
+#: templates/web/default/js/translation_strings.html:26
+msgid "Back"
+msgstr "Zur&uuml;ck"
+
#: templates/web/default/admin/report_blocks.html:11
msgid "Ban email address"
msgstr ""
@@ -464,8 +507,20 @@ msgid ""
"whom the report is sent."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1032
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1086
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:140
+#: templates/web/default/admin/bodies.html:1
+#: templates/web/zurich/header.html:63
msgid "Bodies"
+msgstr "Externe Adressen"
+
+#: templates/web/default/admin/reports.html:16
+#: templates/web/default/admin/users.html:14
+msgid "Body"
+msgstr ""
+
+#: templates/web/default/admin/user-form.html:7
+msgid "Body:"
msgstr ""
#: templates/web/fiksgatami/footer.html:16
@@ -486,15 +541,20 @@ msgstr ""
"Karte nicht sichtbar? <a href='%s' rel='nofollow'>&Uuml;berspringen Sie "
"diesen Schritt</a>"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:631
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:658
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:638
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:665
#: templates/web/bromley/report/new/fill_in_details_form.html:68
-#: templates/web/default/admin/council_contacts.html:37
+#: templates/web/default/admin/bodies.html:11
+#: templates/web/default/admin/body.html:35
+#: templates/web/default/admin/flagged.html:14
#: 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/reports.html:17
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:74
-#: templates/web/zurich/report/new/fill_in_details_form.html:68
+#: templates/web/zurich/admin/body.html:13
+#: templates/web/zurich/admin/index-dm.html:22
+#: templates/web/zurich/admin/index-sdm.html:20
+#: templates/web/zurich/admin/reports.html:14
+#: templates/web/zurich/report/new/fill_in_details_form.html:50
msgid "Category"
msgstr "Kategorie"
@@ -502,10 +562,13 @@ msgstr "Kategorie"
msgid "Category fix rate for problems > 4 weeks old"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:78
-#: templates/web/default/admin/council_edit.html:23
-#: templates/web/default/admin/report_edit.html:25
+#: templates/web/default/admin/body.html:75
+#: templates/web/default/admin/body_edit.html:23
+#: templates/web/default/admin/report_edit.html:30
#: templates/web/default/report/new/fill_in_details_form.html:67
+#: templates/web/zurich/admin/body.html:36
+#: templates/web/zurich/admin/report_edit-sdm.html:23
+#: templates/web/zurich/admin/report_edit.html:98
msgid "Category:"
msgstr "Kategorie:"
@@ -519,15 +582,14 @@ msgstr "Kategorie: %s"
msgid "Change Password"
msgstr "Passwort &auml;ndern"
-#: templates/web/default/js/validation_strings.html:22
+#: templates/web/default/js/translation_strings.html:39
#: templates/web/fixmystreet/around/_report_banner.html:2
msgid "Click map to report a problem"
msgstr "Mangel lokalisieren"
#: templates/web/bromley/report/display.html:80
#: templates/web/bromley/report/display.html:82
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:20
+#: templates/web/default/admin/report_edit.html:25
#: templates/web/default/dashboard/index.html:138
#: templates/web/default/dashboard/index.html:140
#: templates/web/default/report/update-form.html:30
@@ -535,10 +597,16 @@ msgstr "Mangel lokalisieren"
#: templates/web/fixmystreet/report/banner.html:15
#: templates/web/fixmystreet/report/update-form.html:28
#: templates/web/fixmystreet/report/update-form.html:30
+#: templates/web/zurich/admin/header.html:1
+#: templates/web/zurich/admin/header.html:10
+#: templates/web/zurich/admin/header.html:12
+#: templates/web/zurich/admin/report_edit.html:75
+#: templates/web/zurich/admin/report_edit.html:77
+#: templates/web/zurich/report/banner.html:13
msgid "Closed"
-msgstr "Geschlossen"
+msgstr "Erledigt"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:695
+#: perllib/FixMyStreet/DB/Result/Problem.pm:720
msgid "Closed by council"
msgstr ""
@@ -546,56 +614,46 @@ msgstr ""
msgid "Closed reports"
msgstr ""
-#: templates/web/default/admin/problem_row.html:25
+#: templates/web/default/admin/problem_row.html:27
msgid "Closed:"
-msgstr "Geschlossen:"
+msgstr "Erledigt:"
#: templates/web/default/around/tabbed_lists.html:10
#: templates/web/default/around/tabbed_lists.html:12
msgid "Closest nearby problems <small>(within&nbsp;%skm)</small>"
msgstr ""
-#: templates/web/default/admin/report_edit.html:15
+#: templates/web/default/admin/report_edit.html:17
+#: templates/web/zurich/admin/report_edit-sdm.html:19
+#: templates/web/zurich/admin/report_edit.html:37
msgid "Co-ordinates:"
msgstr "Koordinaten:"
-#: templates/web/default/admin/list_flagged.html:16
+#: templates/web/default/admin/flagged.html:16
#: templates/web/default/admin/list_updates.html:13
-#: templates/web/default/admin/search_reports.html:19
+#: templates/web/default/admin/reports.html:19
msgid "Cobrand"
msgstr ""
-#: templates/web/default/admin/report_edit.html:39
-#: templates/web/default/admin/update_edit.html:41
+#: templates/web/default/admin/report_edit.html:44
+#: templates/web/default/admin/update_edit.html:44
msgid "Cobrand data:"
msgstr ""
-#: templates/web/default/admin/report_edit.html:38
-#: templates/web/default/admin/update_edit.html:40
+#: templates/web/default/admin/report_edit.html:43
+#: templates/web/default/admin/update_edit.html:43
msgid "Cobrand:"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:365
-msgid "Configuration updated"
-msgstr ""
-
-#: perllib/FixMyStreet/App/Controller/Admin.pm:380
+#: perllib/FixMyStreet/App/Controller/Admin.pm:395
msgid "Configuration updated - contacts will be generated automatically later"
msgstr ""
-#: templates/web/default/admin/council_edit.html:34
+#: templates/web/default/admin/body_edit.html:47
msgid "Configure Endpoint"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:168
-msgid "Configure Open311"
-msgstr ""
-
-#: templates/web/default/admin/council_contacts.html:116
-msgid "Configure Open311 integration"
-msgstr ""
-
-#: templates/web/default/admin/council_contacts.html:46
+#: templates/web/default/admin/body.html:44
msgid "Confirm"
msgstr "Best&auml;tigen"
@@ -619,13 +677,17 @@ msgstr ""
#: templates/web/emptyhomes/tokens/confirm_problem.html:3
#: templates/web/southampton/tokens/confirm_problem.html:1
#: templates/web/southampton/tokens/confirm_problem.html:3
+#: templates/web/zurich/tokens/confirm_problem.html:1
+#: templates/web/zurich/tokens/confirm_problem.html:3
msgid "Confirmation"
msgstr "Best&auml;tigung"
-#: templates/web/default/admin/council_contacts.html:39
-#: templates/web/default/admin/council_contacts.html:88
-#: templates/web/default/admin/council_edit.html:28
-#: templates/web/default/admin/council_edit.html:71
+#: templates/web/default/admin/body.html:37
+#: templates/web/default/admin/body.html:85
+#: templates/web/default/admin/body_edit.html:32
+#: templates/web/default/admin/body_edit.html:84
+#: templates/web/zurich/admin/report_edit-sdm.html:26
+#: templates/web/zurich/admin/report_edit.html:43
msgid "Confirmed"
msgstr "Best&auml;tigt"
@@ -633,8 +695,8 @@ msgstr "Best&auml;tigt"
msgid "Confirmed reports between %s and %s"
msgstr ""
-#: templates/web/default/admin/problem_row.html:23
-#: templates/web/default/admin/report_edit.html:34
+#: templates/web/default/admin/problem_row.html:25
+#: templates/web/default/admin/report_edit.html:39
msgid "Confirmed:"
msgstr "Best&auml;tigt:"
@@ -663,36 +725,30 @@ msgstr ""
msgid "Contact the team"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1159
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1187
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1219
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1247
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
-msgid "Council"
+#: templates/web/default/js/translation_strings.html:31
+msgid "Could not look up location"
msgstr ""
-#: templates/web/default/admin/council_list.html:1
-msgid "Council contacts"
+#: templates/web/default/admin/flagged.html:13
+#: templates/web/default/admin/list_updates.html:12
+msgid "Council"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:1
-#: templates/web/default/admin/council_edit.html:1
+#: templates/web/default/admin/body.html:1
+#: templates/web/default/admin/body_edit.html:1
+#: templates/web/zurich/admin/body.html:1
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:12
#: templates/web/default/admin/stats.html:32
msgid "Count"
@@ -702,57 +758,68 @@ msgstr ""
msgid "Create a report"
msgstr "Erfasse eine Meldung"
-#: templates/web/default/admin/council_contacts.html:107
+#: templates/web/default/admin/body.html:103
+#: templates/web/zurich/admin/body.html:53
msgid "Create category"
msgstr ""
-#: templates/web/default/admin/list_flagged.html:17
+#: templates/web/default/admin/flagged.html:17
#: templates/web/default/admin/list_updates.html:9
-#: templates/web/default/admin/search_reports.html:20
+#: templates/web/default/admin/reports.html:20
+#: templates/web/zurich/admin/list_updates.html:6
msgid "Created"
msgstr "Erstellt"
-#: templates/web/default/admin/report_edit.html:33
-#: templates/web/default/admin/update_edit.html:42
+#: templates/web/default/admin/report_edit.html:38
+#: templates/web/default/admin/update_edit.html:45
+#: templates/web/zurich/admin/report_edit-sdm.html:28
+#: templates/web/zurich/admin/report_edit.html:46
+#: templates/web/zurich/admin/update_edit.html:29
msgid "Created:"
msgstr "Erstellt:"
#: templates/web/default/admin/stats.html:31
msgid "Current state"
-msgstr ""
-
-#: templates/web/default/admin/council_list.html:40
-msgid "Currently has 1+ deleted"
-msgstr ""
+msgstr "Aktueller Status"
#: templates/web/default/dashboard/index.html:5
#: templates/web/default/dashboard/index.html:7
msgid "Dashboard"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:40
-#: templates/web/default/admin/council_contacts.html:91
-#: templates/web/default/admin/council_edit.html:29
-#: templates/web/default/admin/council_edit.html:72
+#: templates/web/default/admin/body.html:38
+#: templates/web/default/admin/body.html:88
+#: templates/web/default/admin/body_edit.html:37
+#: templates/web/default/admin/body_edit.html:85
msgid "Deleted"
msgstr "Gel&ouml;scht"
+#: templates/web/zurich/admin/index-dm.html:21
+#: templates/web/zurich/admin/index-sdm.html:19
+#: templates/web/zurich/admin/reports.html:13
+msgid "Description"
+msgstr "Beschreibung"
+
#: templates/web/bromley/report/new/fill_in_details_form.html:54
+#: templates/web/default/js/translation_strings.html:28
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:66
-#: templates/web/zurich/report/new/fill_in_details_form.html:60
+#: templates/web/zurich/report/new/fill_in_details_form.html:42
msgid "Details"
msgstr "Beschreibung"
#: templates/web/default/admin/report_edit.html:14
#: templates/web/default/report/new/fill_in_details_form.html:61
+#: templates/web/zurich/admin/report_edit-sdm.html:14
+#: templates/web/zurich/admin/report_edit.html:22
+#: templates/web/zurich/admin/report_edit.html:29
msgid "Details:"
msgstr "Beschreibung:"
-#: templates/web/default/admin/council_contacts.html:41
+#: templates/web/default/admin/body.html:39
msgid "Devolved"
msgstr ""
-#: templates/web/default/admin/council_list.html:23
+#: templates/web/default/admin/edit-league.html:1
msgid "Diligency prize league table"
msgstr "Weiss ich nicht"
@@ -773,16 +840,25 @@ msgid "Don&rsquo;t know"
msgstr ""
#: templates/web/default/admin/list_updates.html:35
-#: templates/web/default/admin/problem_row.html:29
-#: templates/web/default/admin/search_users.html:24
+#: templates/web/default/admin/problem_row.html:31
+#: templates/web/default/admin/users.html:28
+#: templates/web/zurich/admin/problem_row.html:35
msgid "Edit"
msgstr ""
+#: templates/web/default/admin/body.html:112
+#: templates/web/zurich/admin/body.html:64
+msgid "Edit body details"
+msgstr ""
+
#: templates/web/default/admin/report_edit.html:1
+#: templates/web/zurich/admin/report_edit-sdm.html:1
+#: templates/web/zurich/admin/report_edit.html:4
msgid "Editing problem %d"
-msgstr ""
+msgstr "Meldung %d bearbeiten"
#: templates/web/default/admin/update_edit.html:1
+#: templates/web/zurich/admin/update_edit.html:1
msgid "Editing update %d"
msgstr ""
@@ -790,28 +866,31 @@ msgstr ""
msgid "Editing user %d"
msgstr ""
-#: templates/web/default/admin/council_edit.html:73
+#: templates/web/default/admin/body_edit.html:86
msgid "Editor"
msgstr ""
#: templates/web/bromley/report/display.html:126
-#: templates/web/default/admin/council_contacts.html:38
-#: templates/web/default/admin/council_edit.html:70
-#: templates/web/default/admin/list_flagged.html:12
-#: templates/web/default/admin/list_flagged.html:35
+#: templates/web/default/admin/bodies.html:9
+#: templates/web/default/admin/body.html:36
+#: templates/web/default/admin/body_edit.html:83
+#: templates/web/default/admin/flagged.html:12
+#: templates/web/default/admin/flagged.html:35
#: templates/web/default/admin/list_updates.html:8
-#: templates/web/default/admin/search_reports.html:15
-#: templates/web/default/admin/search_users.html:13
+#: templates/web/default/admin/reports.html:15
+#: templates/web/default/admin/users.html:13
#: templates/web/fixmystreet/auth/general.html:20
#: templates/web/fixmystreet/report/update-form.html:74
+#: templates/web/zurich/admin/body-form.html:9
+#: templates/web/zurich/admin/body.html:14
msgid "Email"
-msgstr ""
+msgstr "E-Mail"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1135
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1195
msgid "Email added to abuse list"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1132
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1192
msgid "Email already in abuse list"
msgstr ""
@@ -823,25 +902,28 @@ msgstr ""
msgid "Email me updates"
msgstr "Schicken sie mir Aktualisierungen"
-#: templates/web/default/admin/council_contacts.html:83
-#: 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/admin/body.html:80
+#: templates/web/default/admin/body_edit.html:26
+#: templates/web/default/admin/report_edit.html:36
+#: templates/web/default/admin/update_edit.html:27
+#: templates/web/default/admin/user-form.html:6
#: templates/web/default/alert/updates.html:13
#: templates/web/default/report/display.html:34
+#: templates/web/zurich/admin/body.html:41
+#: templates/web/zurich/admin/report_edit-sdm.html:25
+#: templates/web/zurich/admin/report_edit.html:42
msgid "Email:"
-msgstr ""
+msgstr "E-mail:"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:610
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:617
msgid "Empty flat or maisonette"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:609
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:616
msgid "Empty house or bungalow"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:612
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:619
msgid "Empty office or other commercial"
msgstr ""
@@ -849,11 +931,11 @@ msgstr ""
msgid "Empty property details form"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:613
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:620
msgid "Empty pub or bar"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:614
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:621
msgid "Empty public building - school, hospital, etc."
msgstr ""
@@ -869,7 +951,11 @@ msgstr ""
msgid "End month:"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Zurich.pm:9
+#: templates/web/default/admin/body-form.html:40
+msgid "Endpoint"
+msgstr ""
+
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:25
msgid "Enter a Z&uuml;rich street name"
msgstr "Ungef&auml;hre Adresse des Mangels"
@@ -879,7 +965,6 @@ msgid "Enter a nearby GB postcode, or street name and area"
msgstr "Geben Sie die ungef&auml;hre Adresse des Mangels an"
#: perllib/FixMyStreet/Cobrand/UK.pm:18
-#, fuzzy
msgid "Enter a nearby UK postcode, or street name and area"
msgstr "Geben Sie eine Adresse an"
@@ -906,7 +991,7 @@ msgstr ""
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:221
#: templates/web/fixmystreet/report/update-form.html:120
msgid "Enter a password"
-msgstr ""
+msgstr "Ihr Passwort"
#: templates/web/default/index-steps.html:11
#: templates/web/emptyhomes/index.html:58
@@ -923,8 +1008,8 @@ msgstr "Beschreiben Sie den Mangel"
msgid "Error"
msgstr "Fehler"
-#: templates/web/default/admin/council_contacts.html:13
-#: templates/web/default/admin/council_edit.html:18
+#: templates/web/default/admin/body.html:11
+#: templates/web/default/admin/body_edit.html:18
msgid "Example postcode %s"
msgstr "Beispieladresse"
@@ -932,7 +1017,7 @@ msgstr "Beispieladresse"
msgid "Examples:"
msgstr "Beispiele:"
-#: templates/web/default/admin/report_edit.html:40
+#: templates/web/default/admin/report_edit.html:45
msgid "Extra data:"
msgstr ""
@@ -943,6 +1028,11 @@ msgid ""
"us</a>."
msgstr ""
+#: templates/web/zurich/admin/index-dm.html:32
+#: templates/web/zurich/admin/index-sdm.html:29
+msgid "Filter report list"
+msgstr "Alle Meldungen"
+
#: templates/web/bromley/report/display.html:189
#: templates/web/bromley/report/new/fill_in_details_form.html:113
#: templates/web/bromley/report/new/fill_in_details_form.html:160
@@ -994,8 +1084,7 @@ msgstr ""
#: templates/web/bromley/report/display.html:80
#: templates/web/bromley/report/display.html:82
#: templates/web/default/admin/index.html:36
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:20
+#: templates/web/default/admin/report_edit.html:25
#: templates/web/default/dashboard/index.html:138
#: templates/web/default/dashboard/index.html:140
#: templates/web/default/report/update-form.html:30
@@ -1006,13 +1095,11 @@ msgstr ""
msgid "Fixed"
msgstr "Gel&ouml;st"
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:21
+#: templates/web/default/admin/report_edit.html:26
msgid "Fixed - Council"
msgstr ""
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:21
+#: templates/web/default/admin/report_edit.html:26
msgid "Fixed - User"
msgstr ""
@@ -1020,7 +1107,7 @@ msgstr ""
msgid "Fixed reports"
msgstr ""
-#: templates/web/default/admin/problem_row.html:24
+#: templates/web/default/admin/problem_row.html:26
msgid "Fixed:"
msgstr ""
@@ -1028,13 +1115,13 @@ msgstr ""
msgid "Flag user"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1037
-#: templates/web/default/admin/search_users.html:15
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1091
+#: templates/web/default/admin/users.html:16
msgid "Flagged"
msgstr ""
-#: templates/web/default/admin/report_edit.html:42
-#: templates/web/default/admin/user_edit.html:18
+#: templates/web/default/admin/report_edit.html:47
+#: templates/web/default/admin/user-form.html:14
msgid "Flagged:"
msgstr ""
@@ -1044,13 +1131,12 @@ msgstr ""
msgid "Follow a ward link to view only reports within that ward."
msgstr ""
-#: templates/web/default/admin/report_edit.html:16
+#: templates/web/default/admin/report_edit.html:21
msgid "For council(s):"
msgstr ""
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:186
#: templates/web/fixmystreet/report/update-form.html:102
-#, fuzzy
msgid "Forgotten your password?"
msgstr "Ihr Passwort"
@@ -1062,7 +1148,7 @@ msgstr "Ihr Passwort"
#: templates/web/fixmybarangay/faq/faq-en-gb.html:1
#: templates/web/fixmystreet/faq/faq-en-gb.html:1
#: templates/web/fixmystreet/static/privacy.html:1
-#: templates/web/zurich/faq/faq-de.html:1
+#: templates/web/zurich/faq/faq-de-ch.html:1
msgid "Frequently Asked Questions"
msgstr ""
@@ -1075,7 +1161,7 @@ msgid "GeoRSS on Google Maps"
msgstr ""
#: templates/web/bromley/report/display.html:30
-#: templates/web/fixmystreet/report/display.html:31
+#: templates/web/fixmystreet/report/display.html:38
msgid "Get updates"
msgstr ""
@@ -1102,11 +1188,12 @@ msgstr ""
msgid "Go"
msgstr "Los"
-#: templates/web/default/admin/report_edit.html:41
+#: templates/web/default/admin/report_edit.html:46
msgid "Going to send questionnaire?"
msgstr ""
#: templates/web/default/admin/index.html:24
+#: templates/web/zurich/admin/index.html:11
msgid "Graph of problem creation by status over time"
msgstr ""
@@ -1135,7 +1222,8 @@ msgstr ""
#: templates/web/fixmybarangay/footer.html:24
#: templates/web/fixmystreet/footer.html:53
#: templates/web/reading/footer.html:10 templates/web/stevenage/footer.html:47
-#: templates/web/zurich/footer.html:14
+#: templates/web/zurich/footer.html:21
+#: templates/web/zurich/nav_over_content.html:8
msgid "Help"
msgstr "Hilfe"
@@ -1148,34 +1236,45 @@ msgstr ""
#: templates/web/bromley/header.html:99
#: templates/web/fixmybarangay/header.html:64
#: templates/web/fixmystreet/header.html:49
-#: templates/web/stevenage/header.html:97 templates/web/zurich/header.html:47
+#: templates/web/stevenage/header.html:97 templates/web/zurich/footer.html:11
msgid "Hi %s"
msgstr "Hallo %s"
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:21
-#: templates/web/default/admin/update_edit.html:19
+#: templates/web/default/admin/report_edit.html:26
+#: templates/web/default/admin/update_edit.html:22
+#: templates/web/zurich/admin/header.html:1
+#: templates/web/zurich/admin/header.html:11
+#: templates/web/zurich/admin/report_edit.html:70
+#: templates/web/zurich/admin/update_edit.html:18
msgid "Hidden"
msgstr "Unsichtbar"
-#: templates/web/default/around/display_location.html:63
+#: templates/web/default/around/display_location.html:66
msgid "Hide old"
msgstr "Alte ausblenden"
-#: templates/web/default/around/display_location.html:58
+#: templates/web/default/around/display_location.html:61
msgid "Hide pins"
msgstr "Stecknadeln ausblenden"
-#: templates/web/default/admin/council_edit.html:66
+#: templates/web/default/admin/body_edit.html:79
msgid "History"
msgstr "History"
+#: templates/web/default/js/translation_strings.html:25
+msgid "Home"
+msgstr ""
+
#: templates/web/default/index-steps.html:1
#: templates/web/emptyhomes/index.html:53
msgid "How to report a problem"
msgstr "Erfasse eine neue Meldung:"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:648
+#: templates/web/default/js/translation_strings.html:27
+msgid "How to send successful reports"
+msgstr "Anleitung"
+
+#: perllib/FixMyStreet/App/Controller/Admin.pm:670
msgid "I am afraid you cannot confirm unconfirmed reports."
msgstr ""
@@ -1189,7 +1288,7 @@ msgid ""
"ago."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Tokens.pm:235
+#: perllib/FixMyStreet/App/Controller/Tokens.pm:257
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"
@@ -1198,14 +1297,30 @@ msgstr ""
"einer Mail kopiert haben, &uuml;berpr&uuml;fen sie bitte ob sie die gesamte "
"URL kopiert haben.\n"
-#: templates/web/default/admin/list_flagged.html:9
+#: templates/web/default/admin/flagged.html:9
#: templates/web/default/admin/list_updates.html:5
-#: templates/web/default/admin/search_reports.html:12
+#: templates/web/default/admin/reports.html:12
+#: templates/web/zurich/admin/index-dm.html:20
+#: templates/web/zurich/admin/index-sdm.html:18
+#: templates/web/zurich/admin/list_updates.html:5
+#: templates/web/zurich/admin/reports.html:12
msgid "ID"
msgstr "ID"
-#: templates/web/default/report/new/councils_text_none.html:11
-#: templates/web/default/report/new/councils_text_none.html:12
+#: templates/web/default/email_sent.html:19
+msgid "If you do not, your alert will not be activated."
+msgstr ""
+
+#: templates/web/default/email_sent.html:15
+msgid "If you do not, your problem will not be posted."
+msgstr ""
+
+#: templates/web/default/email_sent.html:17
+msgid "If you do not, your update will not be posted."
+msgstr ""
+
+#: templates/web/default/report/new/councils_text_none.html:8
+#: templates/web/default/report/new/councils_text_none.html:9
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."
@@ -1218,13 +1333,15 @@ msgid ""
"the council the activity in their area."
msgstr ""
-#: templates/web/default/auth/token.html:23
-#: templates/web/default/email_sent.html:24
+#: templates/web/default/auth/token.html:25
+#: templates/web/default/email_sent.html:9
msgid ""
"If you use web-based email or have 'junk mail' filters, you may wish to "
"check your bulk/spam mail folders: sometimes, our messages are marked that "
"way."
msgstr ""
+"Falls Sie kein E-Mail erhalten, &uuml;berpr&uuml;fend Sie bitte Ihren Spam-"
+"Ordner."
#: templates/web/default/questionnaire/index.html:83
#: templates/web/fixmystreet/questionnaire/index.html:77
@@ -1242,19 +1359,6 @@ msgstr "Unbekannt ID"
msgid "Illegal feed selection"
msgstr ""
-#: templates/web/bromley/report/display.html:80
-#: templates/web/bromley/report/display.html:82
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:20
-#: templates/web/default/dashboard/index.html:138
-#: templates/web/default/dashboard/index.html:140
-#: templates/web/default/report/update-form.html:30
-#: templates/web/default/report/update-form.html:32
-#: templates/web/fixmystreet/report/update-form.html:28
-#: templates/web/fixmystreet/report/update-form.html:30
-msgid "In Progress"
-msgstr "In Bearbeitung"
-
#: templates/web/default/open311/index.html:21
msgid ""
"In addition, the following attributes that are not part of the Open311 v2 "
@@ -1263,38 +1367,60 @@ msgid ""
"present if requestor allowed the name to be shown on this site)."
msgstr ""
+#: templates/web/bromley/report/display.html:80
+#: templates/web/bromley/report/display.html:82
+#: templates/web/default/admin/report_edit.html:25
+#: templates/web/default/dashboard/index.html:138
+#: templates/web/default/dashboard/index.html:140
+#: templates/web/default/report/update-form.html:30
+#: templates/web/default/report/update-form.html:32
#: templates/web/fixmystreet/report/banner.html:19
+#: templates/web/fixmystreet/report/update-form.html:28
+#: templates/web/fixmystreet/report/update-form.html:30
+#: templates/web/zurich/admin/header.html:1
+#: templates/web/zurich/admin/header.html:8
+#: templates/web/zurich/admin/report_edit.html:79
+#: templates/web/zurich/report/banner.html:15
msgid "In progress"
msgstr "In Bearbeitung"
+#: templates/web/zurich/admin/report_edit.html:118
+#, fuzzy
+msgid "Include reporter personal details"
+msgstr "Bitte geben Sie einiges Details an"
+
#: templates/web/default/admin/stats.html:76
msgid "Include unconfirmed reports"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Open311.pm:356
+#: perllib/FixMyStreet/App/Controller/Open311.pm:348
msgid "Incorrect has_photo value \"%s\""
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Open311.pm:341
+#: templates/web/zurich/admin/report_edit-sdm.html:37
+#: templates/web/zurich/admin/report_edit.html:61
+msgid "Internal notes:"
+msgstr "Interne Notizen"
+
+#: perllib/FixMyStreet/App/Controller/Open311.pm:333
msgid "Invalid agency_responsible value %s"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:952
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1006
msgid "Invalid end date"
msgstr "Ung&ultiges Enddatum"
-#: perllib/FixMyStreet/App/Controller/Open311.pm:432
+#: perllib/FixMyStreet/App/Controller/Open311.pm:424
msgid "Invalid format %s specified."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:942
+#: perllib/FixMyStreet/App/Controller/Admin.pm:996
msgid "Invalid start date"
msgstr "Ung&ultiges Startdatum"
#: templates/web/bromley/report/display.html:80
#: templates/web/bromley/report/display.html:81
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:19
+#: templates/web/default/admin/report_edit.html:24
#: templates/web/default/dashboard/index.html:138
#: templates/web/default/dashboard/index.html:139
#: templates/web/default/report/update-form.html:30
@@ -1326,37 +1452,36 @@ msgstr ""
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:182
#: templates/web/fixmystreet/report/update-form.html:98
msgid "Keep me signed in on this computer"
-msgstr ""
+msgstr "Angemeldet bleiben"
#: templates/web/bromley/report/display.html:195
#: templates/web/bromley/report/new/fill_in_details_form.html:119
#: templates/web/bromley/report/new/fill_in_details_form.html:166
-#, fuzzy
msgid "Last Name"
msgstr "Letzte Bearbeitung"
-#: templates/web/default/admin/council_contacts.html:42
+#: templates/web/default/admin/body.html:40
+#: templates/web/zurich/admin/body.html:15
msgid "Last editor"
msgstr "Letzter Bearbeiter"
-#: templates/web/default/admin/report_edit.html:36
+#: templates/web/default/admin/report_edit.html:41
msgid "Last update:"
msgstr "Letzte Bearbeitung"
-#: templates/web/default/admin/problem_row.html:26
-#, fuzzy
+#: templates/web/default/admin/problem_row.html:28
msgid "Last&nbsp;update:"
msgstr "Letzte Bearbeitung"
-#: templates/web/default/admin/council_contacts.html:16
-#: templates/web/default/admin/council_contacts.html:18
+#: templates/web/default/admin/body.html:14
+#: templates/web/default/admin/body.html:16
msgid "List all reported problems"
msgstr "Liste aller Meldungen"
#: templates/web/bromley/report/new/fill_in_details_form.html:69
#: templates/web/default/report/new/fill_in_details_form.html:68
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:75
-#: templates/web/zurich/report/new/fill_in_details_form.html:69
+#: templates/web/zurich/report/new/fill_in_details_form.html:51
msgid "Loading..."
msgstr ""
@@ -1399,6 +1524,10 @@ msgstr "RSS"
msgid "Locate the problem on a map of the area"
msgstr "Lokalisieren Sie den Mangel auf der Karte"
+#: templates/web/default/js/translation_strings.html:37
+msgid "MAP"
+msgstr ""
+
#: perllib/FixMyStreet/Map/OSM.pm:44
msgid ""
"Map &copy; <a id=\"osm_link\" href=\"http://www.openstreetmap.org/"
@@ -1414,7 +1543,7 @@ msgstr "Nachricht"
msgid "Message:"
msgstr "Nachricht:"
-#: perllib/FixMyStreet/App/Controller/Open311.pm:440
+#: perllib/FixMyStreet/App/Controller/Open311.pm:432
msgid "Missing jurisdiction_id"
msgstr ""
@@ -1426,11 +1555,13 @@ msgstr "Monat"
msgid "More problems nearby"
msgstr "Meldungen in der Nähe"
-#: templates/web/default/admin/list_flagged.html:11
-#: templates/web/default/admin/list_flagged.html:34
+#: templates/web/default/admin/bodies.html:7
+#: templates/web/default/admin/body-form.html:4
+#: templates/web/default/admin/flagged.html:11
+#: templates/web/default/admin/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/admin/reports.html:14
+#: templates/web/default/admin/users.html:12
#: templates/web/default/reports/index.html:15
#: templates/web/emptyhomes/reports/index.html:10
#: templates/web/fiksgatami/nn/reports/index.html:9
@@ -1440,13 +1571,16 @@ msgstr "Meldungen in der Nähe"
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:120
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:197
#: templates/web/fixmystreet/report/update-form.html:134
-#: templates/web/zurich/report/new/fill_in_details_form.html:118
+#: templates/web/zurich/admin/body-form.html:4
+#: templates/web/zurich/report/new/fill_in_details_form.html:100
msgid "Name"
msgstr "Name"
-#: templates/web/default/admin/report_edit.html:30
-#: templates/web/default/admin/update_edit.html:23
-#: templates/web/default/admin/user_edit.html:10
+#: templates/web/default/admin/report_edit.html:35
+#: templates/web/default/admin/update_edit.html:26
+#: templates/web/default/admin/user-form.html:5
+#: templates/web/zurich/admin/report_edit-sdm.html:24
+#: templates/web/zurich/admin/report_edit.html:41
msgid "Name:"
msgstr "Name:"
@@ -1462,7 +1596,7 @@ msgid ""
"using OpenStreetMap): %s%s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/UK.pm:152
+#: perllib/FixMyStreet/Cobrand/UK.pm:148
msgid ""
"Nearest postcode to the pin placed on the map (automatically generated): %s "
"(%sm away)"
@@ -1475,14 +1609,14 @@ msgid ""
"Maps): %s"
msgstr ""
-#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:265
+#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:267
msgid ""
"Nearest road to the pin placed on the map (automatically generated by Bing "
"Maps): %s\n"
"\n"
msgstr ""
-#: templates/web/default/email_sent.html:20
+#: templates/web/default/email_sent.html:3
msgid "Nearly Done! Now check your email..."
msgstr "Fast Fertig! Bitte checken Sie ihre Mailbox..."
@@ -1491,7 +1625,11 @@ msgstr "Fast Fertig! Bitte checken Sie ihre Mailbox..."
msgid "New <br>problems"
msgstr "Neue <br>Meldungen"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:320
+#: perllib/FixMyStreet/App/Controller/Admin.pm:249
+msgid "New body added"
+msgstr ""
+
+#: perllib/FixMyStreet/App/Controller/Admin.pm:351
msgid "New category contact added"
msgstr ""
@@ -1529,6 +1667,11 @@ msgstr ""
msgid "New problems within {{NAME}}'s boundary on FixMyStreet"
msgstr ""
+#: templates/web/zurich/admin/index-sdm.html:4
+#, fuzzy
+msgid "New reports"
+msgstr "Alle Meldungen"
+
#: db/alert_types_eha.pl:23
msgid ""
"New reports for {{COUNCIL}} within {{WARD}} ward on reportemptyhomes.com"
@@ -1552,7 +1695,11 @@ msgstr ""
#: templates/web/default/admin/questionnaire.html:24
msgid "New state"
-msgstr ""
+msgstr "Neuer Status"
+
+#: templates/web/zurich/admin/report_edit-sdm.html:40
+msgid "New update:"
+msgstr "Neue Antwort"
#: templates/web/fiksgatami/front/news.html:9
#: templates/web/fiksgatami/nn/front/news.html:9
@@ -1560,17 +1707,17 @@ msgstr ""
msgid "New!"
msgstr "Neu!"
-#: templates/web/default/admin/council_contacts.html:52
-#: templates/web/default/admin/council_contacts.html:53
-#: templates/web/default/admin/council_contacts.html:54
-#: templates/web/default/admin/council_edit.html:4
+#: templates/web/default/admin/body.html:50
+#: templates/web/default/admin/body.html:51
+#: templates/web/default/admin/body.html:52
+#: templates/web/default/admin/body_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:28
-#: templates/web/default/admin/report_edit.html:41
-#: templates/web/default/admin/update_edit.html:16
+#: templates/web/default/admin/problem_row.html:21
+#: templates/web/default/admin/report_edit.html:33
+#: templates/web/default/admin/report_edit.html:46
+#: templates/web/default/admin/update_edit.html:19
#: templates/web/default/questionnaire/creator_fixed.html:16
#: templates/web/default/questionnaire/index.html:107
#: templates/web/default/questionnaire/index.html:68
@@ -1579,30 +1726,33 @@ msgstr "Neu!"
msgid "No"
msgstr "Nein"
+#: templates/web/default/admin/user-form.html:8
+msgid "No body"
+msgstr ""
+
#: 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:336
+#: perllib/FixMyStreet/DB/Result/Problem.pm:345
msgid "No council selected"
msgstr ""
-#: templates/web/default/admin/council_list.html:32
+#: templates/web/default/admin/edit-league.html:10
msgid "No edits have yet been made."
msgstr "Noch keine Antwort"
-#: templates/web/default/admin/list_flagged.html:26
+#: templates/web/default/admin/flagged.html:26
msgid "No flagged problems found"
msgstr ""
-#: templates/web/default/admin/list_flagged.html:47
+#: templates/web/default/admin/flagged.html:47
msgid "No flagged users found"
msgstr ""
-#: templates/web/default/admin/council_list.html:38
-msgid "No info at all"
-msgstr "Keine Informationen"
+#: templates/web/zurich/admin/report_edit-sdm.html:46
+msgid "No further updates"
+msgstr "Bearbeitung abschliessen"
#: templates/web/default/around/around_map_list_items.html:17
#: templates/web/fixmystreet/around/around_map_list_items.html:8
@@ -1614,19 +1764,28 @@ msgstr "Keine Meldungen gefunden."
msgid "No problems have been reported yet."
msgstr "Bisher wurden noch keine Meldungen erfasst."
+#: templates/web/default/js/translation_strings.html:32
+msgid "No result returned"
+msgstr ""
+
#: templates/web/default/report/_support.html:3
msgid "No supporters"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:57
+#: templates/web/default/admin/body.html:55
msgid "Non Public"
msgstr ""
-#: templates/web/default/admin/council_list.html:5
-#: templates/web/default/admin/report_edit.html:16
+#: templates/web/default/admin/report_edit.html:21
+#: templates/web/zurich/admin/report_edit-sdm.html:27
+#: templates/web/zurich/admin/report_edit.html:45
msgid "None"
msgstr "Keine"
+#: templates/web/zurich/admin/report_edit-sdm.html:10
+msgid "Not for my subdivision"
+msgstr "Anderer Fachbereich zust&auml;ndig"
+
#: templates/web/default/admin/questionnaire.html:6
msgid "Not reported before"
msgstr ""
@@ -1636,8 +1795,9 @@ msgstr ""
msgid "Not reported to council"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:43
-#: templates/web/default/admin/council_edit.html:74
+#: templates/web/default/admin/body.html:41
+#: templates/web/default/admin/body_edit.html:87
+#: templates/web/zurich/admin/body.html:16
msgid "Note"
msgstr ""
@@ -1648,8 +1808,9 @@ msgid ""
"numbers may jump about a little"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:95
-#: templates/web/default/admin/council_edit.html:32
+#: templates/web/default/admin/body.html:92
+#: templates/web/default/admin/body_edit.html:44
+#: templates/web/zurich/admin/body.html:47
msgid "Note:"
msgstr ""
@@ -1673,6 +1834,10 @@ msgstr ""
msgid "Now to submit your update&hellip; do you have a FixMyStreet password?"
msgstr ""
+#: templates/web/default/js/translation_strings.html:36
+msgid "OK"
+msgstr ""
+
#: templates/web/default/report/display.html:21
#: templates/web/default/report/update.html:16
msgid "Offensive? Unsuitable? Tell us"
@@ -1686,11 +1851,11 @@ msgstr ""
#: templates/web/fiksgatami/nn/reports/index.html:12
#: templates/web/fiksgatami/reports/index.html:12
msgid "Old problems,<br>state unknown"
-msgstr ""
+msgstr "Alte Probleme, <br>Status unbekannt"
#: templates/web/default/admin/questionnaire.html:24
msgid "Old state"
-msgstr ""
+msgstr "Alter Status"
#: templates/web/default/reports/index.html:20
#: templates/web/fixmybarangay/reports/index.html:24
@@ -1715,13 +1880,18 @@ msgid "Older problems"
msgstr ""
#: templates/web/bromley/report/display.html:80
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/update_edit.html:19
+#: templates/web/default/admin/report_edit.html:23
+#: templates/web/default/admin/update_edit.html:22
#: templates/web/default/dashboard/index.html:138
#: templates/web/default/report/update-form.html:30
#: templates/web/fixmystreet/report/update-form.html:28
+#: templates/web/zurich/admin/header.html:1
+#: templates/web/zurich/admin/header.html:7
+#: templates/web/zurich/admin/report_edit.html:68
+#: templates/web/zurich/admin/update_edit.html:18
+#: templates/web/zurich/report/banner.html:11
msgid "Open"
-msgstr "&Ouml;ffnen"
+msgstr "Aufgenommen"
#: templates/web/default/my/my.html:22 templates/web/fixmystreet/my/my.html:26
msgid "Open reports"
@@ -1751,13 +1921,13 @@ msgid ""
"re in:"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:1006
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:656
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:657
-#: perllib/FixMyStreet/DB/Result/Problem.pm:505
-#: perllib/FixMyStreet/DB/Result/Problem.pm:515
-#: perllib/FixMyStreet/DB/Result/Problem.pm:525
-#: perllib/FixMyStreet/DB/Result/Problem.pm:537
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:1023
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:663
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:664
+#: perllib/FixMyStreet/DB/Result/Problem.pm:521
+#: perllib/FixMyStreet/DB/Result/Problem.pm:531
+#: perllib/FixMyStreet/DB/Result/Problem.pm:541
+#: perllib/FixMyStreet/DB/Result/Problem.pm:553
#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:331
#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:340
msgid "Other"
@@ -1778,8 +1948,12 @@ msgstr "Besitzer"
msgid "Page Not Found"
msgstr ""
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:21
+#: templates/web/default/admin/body-form.html:9
+#: templates/web/zurich/admin/body-form.html:15
+msgid "Parent"
+msgstr ""
+
+#: templates/web/default/admin/report_edit.html:26
msgid "Partial"
msgstr ""
@@ -1789,7 +1963,7 @@ msgstr ""
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:218
#: templates/web/fixmystreet/report/update-form.html:117
msgid "Password (optional)"
-msgstr ""
+msgstr "Passwort"
#: templates/web/default/auth/change_password.html:25
msgid "Password:"
@@ -1799,13 +1973,15 @@ msgstr ""
#: templates/web/bromley/report/new/fill_in_details_form.html:183
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:148
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:215
-#: templates/web/zurich/report/new/fill_in_details_form.html:124
+#: templates/web/zurich/report/new/fill_in_details_form.html:106
msgid "Phone number (optional)"
msgstr "Telefonnummer (optional)"
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:262
-#: templates/web/default/admin/report_edit.html:32
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:263
+#: templates/web/default/admin/report_edit.html:37
#: templates/web/default/report/new/fill_in_details_form.html:215
+#: templates/web/zurich/admin/report_edit-sdm.html:27
+#: templates/web/zurich/admin/report_edit.html:45
msgid "Phone:"
msgstr "Telefonnummer:"
@@ -1813,7 +1989,7 @@ msgstr "Telefonnummer:"
#: templates/web/bromley/report/new/fill_in_details_form.html:104
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:92
#: templates/web/fixmystreet/report/update-form.html:57
-#: templates/web/zurich/report/new/fill_in_details_form.html:86
+#: templates/web/zurich/report/new/fill_in_details_form.html:68
msgid "Photo"
msgstr "Foto"
@@ -1828,18 +2004,25 @@ msgstr "Foto:"
msgid "Photos of recent nearby reports"
msgstr "Fotos von neuen Meldungen in der N&auml;he"
+#: templates/web/default/js/translation_strings.html:24
+msgid "Place pin on map"
+msgstr "Pin auf der Karte absetzen"
+
#: templates/web/bromley/report/display.html:80
#: templates/web/bromley/report/display.html:81
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:19
+#: templates/web/default/admin/report_edit.html:24
#: templates/web/default/dashboard/index.html:138
#: templates/web/default/dashboard/index.html:139
#: templates/web/default/report/update-form.html:30
#: templates/web/default/report/update-form.html:31
#: templates/web/fixmystreet/report/update-form.html:28
#: templates/web/fixmystreet/report/update-form.html:29
+#: templates/web/zurich/admin/header.html:1
+#: templates/web/zurich/admin/header.html:9
+#: templates/web/zurich/admin/index-dm.html:9
+#: templates/web/zurich/admin/report_edit.html:69
msgid "Planned"
-msgstr "Geplant"
+msgstr "Rückmeldung ausstehend"
#: templates/web/fixmystreet/questionnaire/index.html:44
msgid ""
@@ -1848,7 +2031,7 @@ msgid ""
msgstr ""
#: templates/web/default/report/new/notes.html:6
-#: templates/web/fixmystreet/report/new/notes.html:5
+#: templates/web/fixmystreet/report/new/notes.html:6
msgid "Please be polite, concise and to the point."
msgstr "Bitte seien Sie freundlich und pr&auml;gnant."
@@ -1868,16 +2051,16 @@ msgstr "Bitte &uuml;berpr&uuml;fen sie ihr E-Mail"
msgid "Please check your email address is correct"
msgstr "Bitte &uuml;berpr&uuml;fen Sie ob Ihre E-Mail Adresse korrekt ist"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:822
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:829
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:848
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:891
-#: perllib/FixMyStreet/DB/Result/Problem.pm:355
-#: templates/web/default/js/validation_strings.html:9
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:828
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:835
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:854
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:897
+#: perllib/FixMyStreet/DB/Result/Problem.pm:364
+#: templates/web/default/js/translation_strings.html:9
msgid "Please choose a category"
msgstr "Bitte w&auml;hlen Sie eine Kategorie"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:361
+#: perllib/FixMyStreet/DB/Result/Problem.pm:370
msgid "Please choose a property type"
msgstr ""
@@ -1896,14 +2079,14 @@ msgid ""
msgstr ""
#: templates/web/default/report/new/notes.html:7
-#: templates/web/fixmystreet/report/new/notes.html:6
+#: templates/web/fixmystreet/report/new/notes.html:7
msgid ""
"Please do not be abusive&nbsp;&mdash; abusing your council devalues the "
"service for all users."
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Comment.pm:146
-#: templates/web/default/js/validation_strings.html:2
+#: perllib/FixMyStreet/DB/Result/Comment.pm:147
+#: templates/web/default/js/translation_strings.html:2
msgid "Please enter a message"
msgstr ""
@@ -1913,14 +2096,14 @@ msgid "Please enter a password"
msgstr ""
#: perllib/FixMyStreet/App/Controller/Contact.pm:97
-#: perllib/FixMyStreet/DB/Result/Problem.pm:330
-#: templates/web/default/js/validation_strings.html:3
+#: perllib/FixMyStreet/DB/Result/Problem.pm:339
+#: templates/web/default/js/translation_strings.html:3
msgid "Please enter a subject"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/User.pm:104
-#: templates/web/default/js/validation_strings.html:12
-#: templates/web/default/js/validation_strings.html:16
+#: perllib/FixMyStreet/DB/Result/User.pm:115
+#: templates/web/default/js/translation_strings.html:12
+#: templates/web/default/js/translation_strings.html:16
msgid "Please enter a valid email"
msgstr "Bitte geben Sie eine g&uuml;ltige E-Mail Adresse an"
@@ -1929,57 +2112,62 @@ msgstr "Bitte geben Sie eine g&uuml;ltige E-Mail Adresse an"
msgid "Please enter a valid email address"
msgstr "Bitte geben Sie eine g&uuml;ltige E-Mail Adresse an"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:333
-#: templates/web/default/js/validation_strings.html:4
+#: perllib/FixMyStreet/DB/Result/Problem.pm:342
+#: templates/web/default/js/translation_strings.html:4
msgid "Please enter some details"
msgstr "Bitte geben Sie einiges Details an"
#: perllib/FixMyStreet/App/Controller/Contact.pm:96
-#: perllib/FixMyStreet/DB/Result/User.pm:101
+#: perllib/FixMyStreet/DB/Result/User.pm:112
#: templates/web/default/auth/general.html:13
#: templates/web/default/auth/general.html:8
-#: templates/web/default/js/validation_strings.html:11
-#: templates/web/default/js/validation_strings.html:15
+#: templates/web/default/js/translation_strings.html:11
+#: templates/web/default/js/translation_strings.html:15
#: templates/web/fixmystreet/auth/general.html:14
#: templates/web/fixmystreet/auth/general.html:9
msgid "Please enter your email"
-msgstr "Bitte geben Sie Ihre E-Mail Adresse an"
+msgstr "Ihre E-Mail Adresse"
#: templates/web/bromley/report/new/fill_in_details_form.html:149
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:161
-#: templates/web/zurich/report/new/fill_in_details_form.html:110
+#: templates/web/zurich/report/new/fill_in_details_form.html:92
msgid "Please enter your email address"
-msgstr "Bitte geben Sie Ihre E-Mail Adresse an."
+msgstr "Ihre E-Mail Adresse"
-#: templates/web/default/js/validation_strings.html:19
-#, fuzzy
+#: templates/web/default/js/translation_strings.html:19
msgid "Please enter your first name"
msgstr "Bitte geben Sie Ihren Namen an"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:348
-#: templates/web/default/js/validation_strings.html:7
+#: perllib/FixMyStreet/DB/Result/Problem.pm:357
+#: templates/web/default/js/translation_strings.html:7
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 below"
msgstr ""
#: perllib/FixMyStreet/App/Controller/Contact.pm:95
-#: perllib/FixMyStreet/DB/Result/Comment.pm:143
-#: perllib/FixMyStreet/DB/Result/Problem.pm:341
-#: perllib/FixMyStreet/DB/Result/User.pm:97
-#: templates/web/default/js/validation_strings.html:6
+#: perllib/FixMyStreet/DB/Result/Comment.pm:144
+#: perllib/FixMyStreet/DB/Result/Problem.pm:350
+#: perllib/FixMyStreet/DB/Result/User.pm:108
+#: templates/web/default/js/translation_strings.html:6
msgid "Please enter your name"
msgstr "Bitte geben Sie Ihren Namen an"
-#: templates/web/default/js/validation_strings.html:20
-#, fuzzy
+#: templates/web/default/js/translation_strings.html:20
msgid "Please enter your second name"
msgstr "Bitte geben Sie Ihren Namen an"
-#: templates/web/default/js/validation_strings.html:18
+#: templates/web/default/js/translation_strings.html:18
msgid "Please enter your title"
msgstr "Bitte geben Sie Iher E-Mail-Adresse an"
+#: templates/web/default/auth/sign_out.html:5
+#: templates/web/zurich/auth/sign_out.html:5
+msgid ""
+"Please feel free to <a href=\"%s\">sign in again</a>, or go back to the <a "
+"href=\"/\">front page</a>."
+msgstr ""
+
#: templates/web/emptyhomes/report/new/fill_in_details_text.html:1
msgid ""
"Please fill in details of the empty property below, saying what type of\n"
@@ -2004,7 +2192,6 @@ msgstr ""
#: templates/web/fixmybarangay/report/new/fill_in_details_text.html:1
#: templates/web/fixmybarangay/report/new/fill_in_details_text.html:3
-#, fuzzy
msgid ""
"Please fill in details of the problem below. Leave as much detail as you "
"can, \n"
@@ -2034,18 +2221,20 @@ msgstr ""
"ein Photo des Mangels hoch."
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:70
-#: templates/web/zurich/report/new/fill_in_details_form.html:64
+#: templates/web/zurich/report/new/fill_in_details_form.html:46
msgid "Please fill in details of the problem."
msgstr "Beschreiben Sie den Mangel."
#: templates/web/bromley/report/new/fill_in_details_form.html:28
#: templates/web/default/report/new/fill_in_details_form.html:27
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:35
-#: templates/web/zurich/report/new/fill_in_details_form.html:35
+#: templates/web/zurich/report/new/fill_in_details_form.html:20
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 ""
+"F&uuml;llen Sie das Formular mit den Details des Mangels aus und beschreiben "
+"Sie den Ort des Mangels m&ouml;glichst genau."
#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:243
msgid "Please indicate whether you'd like to receive another questionnaire"
@@ -2063,7 +2252,6 @@ msgid ""
msgstr ""
#: templates/web/barnet/report/updates-sidebar-notes.html:1
-#, fuzzy
msgid ""
"Please note that updates are not sent to the relevant department. If you "
"leave your name it will be public. Your information will only be used in "
@@ -2075,7 +2263,7 @@ msgstr ""
#: templates/web/bromley/report/new/fill_in_details_form.html:23
#: templates/web/default/report/new/fill_in_details_form.html:5
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:26
-#: templates/web/zurich/report/new/fill_in_details_form.html:26
+#: templates/web/zurich/report/new/fill_in_details_form.html:11
msgid ""
"Please note your report has <strong>not yet been sent</strong>. Choose a "
"category and add further information below, then submit."
@@ -2117,13 +2305,13 @@ msgstr ""
msgid "Please take a look at the updates that have been left."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Photo.pm:175
+#: perllib/FixMyStreet/App/Controller/Photo.pm:172
msgid "Please upload a JPEG image only"
-msgstr ""
+msgstr "Bitte laden Sie nur JPEG Bilder hoch."
-#: perllib/FixMyStreet/App/Controller/Photo.pm:182
+#: perllib/FixMyStreet/App/Controller/Photo.pm:179
msgid "Please upload a JPEG image only\n"
-msgstr ""
+msgstr "Bitte laden Sie nur JPEG Bilder hoch\n"
#: perllib/FixMyStreet/App/Controller/Contact.pm:98
msgid "Please write a message"
@@ -2160,9 +2348,9 @@ msgstr ""
msgid "Posted by %s at %s"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:100
-#: templates/web/default/admin/council_edit.html:30
-#: templates/web/default/admin/report_edit.html:43
+#: templates/web/default/admin/body.html:97
+#: templates/web/default/admin/body_edit.html:40
+#: templates/web/default/admin/report_edit.html:48
msgid "Private"
msgstr ""
@@ -2183,10 +2371,11 @@ msgid "Problem %s sent to council %s"
msgstr ""
#: templates/web/default/admin/index.html:28
+#: templates/web/zurich/admin/index.html:15
msgid "Problem breakdown by state"
-msgstr ""
+msgstr "Meldungen nach Status sortiert"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:849
+#: perllib/FixMyStreet/App/Controller/Admin.pm:877
msgid "Problem marked as open."
msgstr ""
@@ -2194,7 +2383,7 @@ msgstr ""
msgid "Problem state change based on survey results"
msgstr ""
-#: templates/web/default/admin/list_flagged.html:5
+#: templates/web/default/admin/flagged.html:5
msgid "Problems"
msgstr "Meldungen"
@@ -2204,7 +2393,7 @@ msgstr "Meldungen in dieser Gegend"
#: templates/web/bromley/report/display.html:31
#: templates/web/fixmystreet/around/tabbed_lists.html:4
-#: templates/web/fixmystreet/report/display.html:35
+#: templates/web/fixmystreet/report/display.html:43
msgid "Problems nearby"
msgstr "Meldungen in der N&auml;he"
@@ -2221,15 +2410,15 @@ msgstr "Meldungen, welche k&uuml;rzlich gel&ouml;st wurden"
msgid "Problems within %.1fkm of this location"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Default.pm:612
+#: perllib/FixMyStreet/Cobrand/Default.pm:600
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:95
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:162
-#: perllib/FixMyStreet/Cobrand/UK.pm:231
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:155
+#: perllib/FixMyStreet/Cobrand/UK.pm:227
msgid "Problems within %s"
msgstr "Meldungen innerhalb %s"
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:103
-#: perllib/FixMyStreet/Cobrand/UK.pm:245
+#: perllib/FixMyStreet/Cobrand/UK.pm:241
msgid "Problems within %s ward"
msgstr ""
@@ -2248,7 +2437,7 @@ msgstr ""
msgid "Properties recently reported as put back to use on reportemptyhomes.com"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:616
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:623
msgid "Property type:"
msgstr ""
@@ -2279,11 +2468,23 @@ msgid ""
"report problems, leave updates and manage your reports."
msgstr ""
-#: templates/web/default/admin/council_contacts.html:44
-#: templates/web/default/admin/council_contacts.html:57
+#: templates/web/default/admin/body.html:42
+#: templates/web/default/admin/body.html:55
msgid "Public"
msgstr ""
+#: templates/web/zurich/admin/report_edit.html:150
+msgid "Public response:"
+msgstr "Offizielle Antwort"
+
+#: templates/web/zurich/admin/report_edit.html:57
+msgid "Publish photo"
+msgstr "Foto ver&ouml;ffentlichen"
+
+#: templates/web/zurich/admin/report_edit.html:160
+msgid "Publish the response"
+msgstr "Antwort ver&ouml;ffentlichen"
+
#: templates/web/default/questionnaire/completed.html:1
#: templates/web/default/questionnaire/completed.html:2
#: templates/web/default/questionnaire/index.html:0
@@ -2316,27 +2517,27 @@ msgstr ""
#: templates/web/default/reports/_rss.html:1
#: templates/web/fixmystreet/alert/_list.html:22
#: templates/web/fixmystreet/alert/updates.html:9
-#: templates/web/fixmystreet/report/display.html:49
+#: templates/web/fixmystreet/report/display.html:57
msgid "RSS feed"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/UK.pm:274 perllib/FixMyStreet/Cobrand/UK.pm:286
+#: perllib/FixMyStreet/Cobrand/UK.pm:270 perllib/FixMyStreet/Cobrand/UK.pm:282
msgid "RSS feed for %s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/UK.pm:280 perllib/FixMyStreet/Cobrand/UK.pm:292
+#: perllib/FixMyStreet/Cobrand/UK.pm:276 perllib/FixMyStreet/Cobrand/UK.pm:288
msgid "RSS feed for %s ward, %s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:178
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:186
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:196
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:204
-#: perllib/FixMyStreet/Cobrand/UK.pm:300 perllib/FixMyStreet/Cobrand/UK.pm:312
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:171
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:179
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:189
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:197
+#: perllib/FixMyStreet/Cobrand/UK.pm:296 perllib/FixMyStreet/Cobrand/UK.pm:308
msgid "RSS feed of %s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/UK.pm:305 perllib/FixMyStreet/Cobrand/UK.pm:317
+#: perllib/FixMyStreet/Cobrand/UK.pm:301 perllib/FixMyStreet/Cobrand/UK.pm:313
msgid "RSS feed of %s, within %s ward"
msgstr ""
@@ -2349,15 +2550,15 @@ msgstr ""
msgid "RSS feed of problems in this %s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/Default.pm:613
+#: perllib/FixMyStreet/Cobrand/Default.pm:601
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:96
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:161
-#: perllib/FixMyStreet/Cobrand/UK.pm:238
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:154
+#: perllib/FixMyStreet/Cobrand/UK.pm:234
msgid "RSS feed of problems within %s"
msgstr ""
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:102
-#: perllib/FixMyStreet/Cobrand/UK.pm:244
+#: perllib/FixMyStreet/Cobrand/UK.pm:240
msgid "RSS feed of problems within %s ward"
msgstr ""
@@ -2369,7 +2570,7 @@ msgstr ""
#: templates/web/bromley/report/display.html:37
#: templates/web/default/report/display.html:42
#: templates/web/fixmystreet/alert/updates.html:9
-#: templates/web/fixmystreet/report/display.html:49
+#: templates/web/fixmystreet/report/display.html:57
msgid "RSS feed of updates to this problem"
msgstr ""
@@ -2377,7 +2578,7 @@ msgstr ""
#: templates/web/default/alert/updates.html:9
#: templates/web/default/report/display.html:33
#: templates/web/fixmystreet/alert/updates.html:14
-#: templates/web/fixmystreet/report/display.html:51
+#: templates/web/fixmystreet/report/display.html:59
msgid "Receive email when updates are left on this problem."
msgstr "Erhalten Sie Aktualisierungen dieser Meldung."
@@ -2402,7 +2603,7 @@ msgid "Recently reported problems"
msgstr "K&uuml;rzlich erfasste Meldungen:"
#: templates/web/default/report/new/notes.html:9
-#: templates/web/fixmystreet/report/new/notes.html:8
+#: templates/web/fixmystreet/report/new/notes.html:10
msgid ""
"Remember that FixMyStreet is primarily for reporting physical problems that "
"can be fixed. If your problem is not appropriate for submission via this "
@@ -2425,8 +2626,9 @@ msgstr ""
msgid "Remove flag"
msgstr ""
-#: templates/web/default/admin/report_edit.html:54
-#: templates/web/default/admin/update_edit.html:48
+#: templates/web/default/admin/report_edit.html:59
+#: templates/web/default/admin/update_edit.html:51
+#: templates/web/zurich/admin/update_edit.html:35
msgid "Remove photo (can't be undone!)"
msgstr ""
@@ -2440,12 +2642,13 @@ msgstr ""
#: templates/web/fiksgatami/nn/footer.html:5
#: templates/web/fixmystreet/footer.html:45
#: templates/web/reading/footer.html:6 templates/web/stevenage/footer.html:39
-#: templates/web/zurich/footer.html:10
+#: templates/web/zurich/footer.html:17
+#: templates/web/zurich/nav_over_content.html:4
msgid "Report a problem"
msgstr "Eine Meldung erfassen"
#: templates/web/bromley/report/display.html:28
-#: templates/web/fixmystreet/report/display.html:29
+#: templates/web/fixmystreet/report/display.html:35
msgid "Report abuse"
msgstr "Missbrauch melden"
@@ -2453,7 +2656,7 @@ msgstr "Missbrauch melden"
msgid "Report empty properties"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Rss.pm:286
+#: perllib/FixMyStreet/App/Controller/Rss.pm:295
msgid "Report on %s"
msgstr ""
@@ -2472,7 +2675,7 @@ msgstr ""
msgid "Reported %s, to %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:520
+#: perllib/FixMyStreet/DB/Result/Problem.pm:536
#: templates/web/default/contact/index.html:45
#: templates/web/fixmystreet/contact/index.html:46
msgid "Reported anonymously at %s"
@@ -2484,37 +2687,42 @@ msgstr "Anonym gemeldet um"
msgid "Reported before"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:512
+#: perllib/FixMyStreet/DB/Result/Problem.pm:528
msgid "Reported by %s anonymously at %s"
msgstr "Anonym gemeldet von %s um %s "
-#: perllib/FixMyStreet/DB/Result/Problem.pm:543
+#: perllib/FixMyStreet/DB/Result/Problem.pm:559
#: templates/web/default/contact/index.html:47
#: templates/web/fixmystreet/contact/index.html:48
msgid "Reported by %s at %s"
msgstr "Gemeldet von %s um %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:534
+#: perllib/FixMyStreet/DB/Result/Problem.pm:550
msgid "Reported by %s by %s at %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:508
+#: perllib/FixMyStreet/DB/Result/Problem.pm:524
msgid "Reported by %s in the %s category anonymously at %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:528
+#: perllib/FixMyStreet/DB/Result/Problem.pm:544
msgid "Reported by %s in the %s category by %s at %s"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:516
+#: templates/web/zurich/report/_main.html:2
+msgid "Reported in the %s category"
+msgstr "In der Kategorie %s gemeldet"
+
+#: perllib/FixMyStreet/DB/Result/Problem.pm:532
msgid "Reported in the %s category anonymously at %s"
-msgstr ""
+msgstr "In der Kategorie %s um %s gemeldet"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:538
+#: perllib/FixMyStreet/DB/Result/Problem.pm:554
msgid "Reported in the %s category by %s at %s"
-msgstr ""
+msgstr "Gemeldet in der Kategorie %s"
#: templates/web/default/around/around_index.html:1
+#: templates/web/default/js/translation_strings.html:35
#: templates/web/default/report/new/fill_in_details.html:0
#: templates/web/default/report/new/fill_in_details.html:3
#: templates/web/default/report/new/fill_in_details_form.html:1
@@ -2526,19 +2734,34 @@ msgstr ""
msgid "Reporting a problem"
msgstr "Ihre Meldung"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1033
-#, fuzzy
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1087
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:133
+#: templates/web/zurich/header.html:59
msgid "Reports"
-msgstr "Alle Meldungen"
+msgstr "Meldungen"
+
+#: templates/web/zurich/admin/index-sdm.html:7
+#, fuzzy
+msgid "Reports awaiting approval"
+msgstr "Ihre Meldung"
#: templates/web/default/around/tabbed_lists.html:3
msgid "Reports on and around the map"
msgstr ""
-#: templates/web/default/admin/report_edit.html:35
+#: templates/web/zurich/admin/index-sdm.html:10
+#, fuzzy
+msgid "Reports published"
+msgstr "Missbrauch melden"
+
+#: templates/web/default/admin/report_edit.html:40
msgid "Resend report"
msgstr ""
+#: templates/web/default/js/translation_strings.html:22
+msgid "Right place?"
+msgstr "Richtiger Ort?"
+
#: perllib/FixMyStreet/Geocode/OSM.pm:173
msgid ""
"Road operator for this named road (derived from road reference number and "
@@ -2549,24 +2772,50 @@ msgstr ""
msgid "Road operator for this named road (from OpenStreetMap): %s"
msgstr ""
-#: templates/web/default/admin/council_edit.html:63
+#: templates/web/default/admin/report_edit.html:55
+#: templates/web/zurich/admin/report_edit.html:53
+msgid "Rotate Left"
+msgstr ""
+
+#: templates/web/default/admin/report_edit.html:56
+#: templates/web/zurich/admin/report_edit.html:54
+msgid "Rotate Right"
+msgstr ""
+
+#: templates/web/default/admin/body_edit.html:76
msgid "Save changes"
msgstr "&Auml;nderungen speichern"
-#: templates/web/default/admin/list_flagged.html:1
-#: templates/web/default/admin/search_reports.html:1
+#: templates/web/default/admin/flagged.html:1
+#: templates/web/default/admin/reports.html:1
+#: templates/web/zurich/admin/reports.html:1
msgid "Search Reports"
-msgstr ""
+msgstr "Meldungen suchen"
-#: templates/web/default/admin/search_users.html:1
+#: templates/web/default/admin/users.html:1
msgid "Search Users"
msgstr ""
-#: templates/web/default/admin/search_reports.html:5
-#: templates/web/default/admin/search_users.html:5
+#: templates/web/zurich/header.html:73
+msgid "Search reports"
+msgstr "Meldungen suchen"
+
+#: templates/web/default/admin/reports.html:5
+#: templates/web/default/admin/users.html:5
+#: templates/web/zurich/admin/reports.html:5
msgid "Search:"
msgstr "Suchen:"
+#: templates/web/default/admin/body-form.html:11
+#: templates/web/zurich/admin/body-form.html:17
+msgid "Select a body"
+msgstr ""
+
+#: templates/web/default/admin/body-form.html:21
+#: templates/web/zurich/admin/body-form.html:27
+msgid "Select an area"
+msgstr ""
+
#: templates/web/default/alert/_list.html:8
#: templates/web/fixmystreet/alert/_list.html:10
msgid ""
@@ -2574,19 +2823,19 @@ msgid ""
"or enter your email address to subscribe to an email alert."
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:623
+#: perllib/FixMyStreet/DB/Result/Problem.pm:640
msgid "Sent to %s %s later"
msgstr ""
-#: templates/web/default/admin/report_edit.html:35
+#: templates/web/default/admin/report_edit.html:40
msgid "Sent:"
msgstr "Gesendet:"
-#: templates/web/default/admin/report_edit.html:37
+#: templates/web/default/admin/report_edit.html:42
msgid "Service:"
msgstr ""
-#: templates/web/fixmystreet/report/display.html:33
+#: templates/web/fixmystreet/report/display.html:41
msgid "Share"
msgstr ""
@@ -2622,11 +2871,11 @@ msgstr ""
msgid "Show my name publicly"
msgstr ""
-#: templates/web/default/around/display_location.html:65
+#: templates/web/default/around/display_location.html:68
msgid "Show old"
msgstr ""
-#: templates/web/default/around/display_location.html:56
+#: templates/web/default/around/display_location.html:59
msgid "Show pins"
msgstr "Zeige Stecknadeln"
@@ -2637,9 +2886,9 @@ msgstr "Zeige Stecknadeln"
#: templates/web/fixmystreet/auth/general.html:42
#: templates/web/fixmystreet/auth/general.html:62
#: templates/web/fixmystreet/header.html:53
-#: templates/web/stevenage/header.html:101 templates/web/zurich/header.html:51
+#: templates/web/stevenage/header.html:101
msgid "Sign in"
-msgstr ""
+msgstr "Anmelden"
#: templates/web/default/auth/general.html:74
msgid "Sign in by email"
@@ -2656,9 +2905,9 @@ msgstr ""
#: templates/web/emptyhomes/header.html:41
#: templates/web/fiksgatami/header.html:22
#: templates/web/fiksgatami/nn/header.html:22
-#: templates/web/fixmybarangay/auth/sign_out.html:1
#: templates/web/lichfielddc/header.html:177
#: templates/web/reading/header.html:33
+#: templates/web/zurich/auth/sign_out.html:1
msgid "Sign out"
msgstr ""
@@ -2687,11 +2936,7 @@ msgstr ""
msgid "Some text to localize"
msgstr ""
-#: templates/web/default/admin/council_list.html:42
-msgid "Some unconfirmeds"
-msgstr ""
-
-#: perllib/FixMyStreet/Cobrand/UK.pm:89
+#: perllib/FixMyStreet/Cobrand/UK.pm:93
msgid ""
"Sorry, that appears to be a Crown dependency postcode, which we don't cover."
msgstr ""
@@ -2705,13 +2950,13 @@ msgstr ""
#: perllib/FixMyStreet/Geocode/Google.pm:74
#: perllib/FixMyStreet/Geocode/OSM.pm:66
msgid "Sorry, we could not find that location."
-msgstr ""
+msgstr "Diese Adresse wurde nicht gefunden."
#: perllib/FixMyStreet/Geocode/Bing.pm:53
#: perllib/FixMyStreet/Geocode/Google.pm:69
-#: perllib/FixMyStreet/Geocode/Zurich.pm:82
+#: perllib/FixMyStreet/Geocode/Zurich.pm:87
msgid "Sorry, we could not parse that location. Please try again."
-msgstr ""
+msgstr "Diese Adresse wurde nicht gefunden."
#: templates/web/fiksgatami/footer.html:16
#: templates/web/fiksgatami/nn/footer.html:16
@@ -2731,28 +2976,41 @@ msgid "Start month:"
msgstr ""
#: templates/web/bromley/report/display.html:78
-#: templates/web/default/admin/list_flagged.html:18
+#: templates/web/default/admin/flagged.html:18
#: templates/web/default/admin/list_updates.html:6
-#: templates/web/default/admin/search_reports.html:21
+#: templates/web/default/admin/reports.html:21
#: templates/web/fixmystreet/report/update-form.html:26
msgid "State"
-msgstr ""
+msgstr "Status"
-#: templates/web/default/admin/report_edit.html:17
-#: templates/web/default/admin/update_edit.html:18
+#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/update_edit.html:21
#: templates/web/default/report/update-form.html:28
+#: templates/web/zurich/admin/report_edit-sdm.html:35
+#: templates/web/zurich/admin/report_edit.html:64
+#: templates/web/zurich/admin/update_edit.html:17
msgid "State:"
-msgstr ""
+msgstr "Status:"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1038
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1092
#: templates/web/default/admin/stats.html:1
msgid "Stats"
msgstr ""
+#: templates/web/zurich/admin/index-dm.html:25
+#: templates/web/zurich/admin/index-sdm.html:23
+#: templates/web/zurich/admin/reports.html:17
+msgid "Status"
+msgstr ""
+
#: templates/web/default/report/updates.html:9
msgid "Still open, via questionnaire, %s"
msgstr ""
+#: templates/web/zurich/admin/index-dm.html:27
+msgid "Subdivision/Body"
+msgstr "FB/Externe"
+
#: templates/web/bromley/report/new/fill_in_details_form.html:48
#: templates/web/fixmystreet/contact/index.html:79
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:60
@@ -2762,6 +3020,7 @@ msgstr "Titel"
#: templates/web/default/admin/report_edit.html:13
#: templates/web/default/contact/index.html:83
#: templates/web/default/report/new/fill_in_details_form.html:52
+#: templates/web/zurich/admin/report_edit.html:28
msgid "Subject:"
msgstr "Titel:"
@@ -2775,26 +3034,40 @@ msgstr "Titel:"
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:152
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:177
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:222
-#: templates/web/zurich/report/new/fill_in_details_form.html:128
+#: templates/web/zurich/report/new/fill_in_details_form.html:111
msgid "Submit"
msgstr "Abschicken"
-#: templates/web/default/admin/report_edit.html:57
-#: templates/web/default/admin/update_edit.html:51
-#: templates/web/default/admin/user_edit.html:20
+#: templates/web/default/admin/report_edit.html:62
+#: templates/web/default/admin/update_edit.html:54
+#: templates/web/default/admin/user-form.html:17
+#: templates/web/zurich/admin/report_edit-sdm.html:45
+#: templates/web/zurich/admin/report_edit.html:162
+#: templates/web/zurich/admin/update_edit.html:38
msgid "Submit changes"
-msgstr ""
+msgstr "&Auml;nderungen speichern"
#: templates/web/default/questionnaire/index.html:112
#: templates/web/fixmystreet/questionnaire/index.html:105
msgid "Submit questionnaire"
msgstr ""
+#: templates/web/zurich/admin/header.html:1
+#: templates/web/zurich/admin/header.html:6
+#: templates/web/zurich/admin/index-dm.html:23
+#: templates/web/zurich/admin/index-dm.html:6
+#: templates/web/zurich/admin/index-sdm.html:21
+#: templates/web/zurich/admin/report_edit.html:67
+#: templates/web/zurich/admin/reports.html:15
+#: templates/web/zurich/report/banner.html:9
+msgid "Submitted"
+msgstr "Erfasst"
+
#: templates/web/bromley/report/display.html:44
#: templates/web/default/alert/updates.html:17
#: templates/web/default/report/display.html:38
#: templates/web/fixmystreet/alert/updates.html:23
-#: templates/web/fixmystreet/report/display.html:56
+#: templates/web/fixmystreet/report/display.html:64
msgid "Subscribe"
msgstr ""
@@ -2808,8 +3081,12 @@ msgstr ""
msgid "Subscribe to an alert based upon what baranagay you&rsquo;re in:"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1031
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1085
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:132
#: templates/web/default/admin/index.html:1
+#: templates/web/zurich/admin/index-dm.html:1
+#: templates/web/zurich/admin/index-sdm.html:1
+#: templates/web/zurich/admin/index.html:1 templates/web/zurich/header.html:56
msgid "Summary"
msgstr "Zusammenfassung"
@@ -2818,10 +3095,12 @@ msgstr "Zusammenfassung"
#: templates/web/fiksgatami/nn/reports/index.html:1
#: templates/web/fiksgatami/reports/index.html:1
#: templates/web/fixmybarangay/reports/index.html:1
+#: templates/web/zurich/reports/index.html:0
+#: templates/web/zurich/reports/index.html:4
msgid "Summary reports"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1035
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1089
msgid "Survey"
msgstr ""
@@ -2830,20 +3109,21 @@ msgid "Survey Results"
msgstr ""
#: templates/web/default/admin/list_updates.html:14
+#: templates/web/zurich/admin/list_updates.html:7
msgid "Text"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:20
+#: templates/web/default/admin/body.html:18
msgid "Text only version"
msgstr ""
-#: templates/web/default/admin/update_edit.html:13
+#: templates/web/default/admin/update_edit.html:14
+#: templates/web/zurich/admin/update_edit.html:12
msgid "Text:"
msgstr ""
#: templates/web/default/tokens/confirm_update.html:7
#: templates/web/default/tokens/confirm_update.html:8
-#, fuzzy
msgid ""
"Thank you &mdash; you can <a href=\"%s\">view your updated problem</a> on "
"the site."
@@ -2907,7 +3187,7 @@ msgid ""
"reported a problem to a council before?"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Photo.pm:189
+#: perllib/FixMyStreet/App/Controller/Photo.pm:186
msgid ""
"That image doesn't appear to have uploaded correctly (%s), please try again."
msgstr ""
@@ -2917,26 +3197,27 @@ msgid ""
"That location does not appear to be covered by a council; perhaps it is "
"offshore or outside the country. Please try again."
msgstr ""
+"Sie k&ouml;nnen M&auml;ngel nur innerhalb der Stadt Z&uuml;rich melden. "
+"Verwenden Sie daf&uuml;r die Adressuche."
#: perllib/FixMyStreet/App/Controller/Location.pm:121
msgid "That location does not appear to be in the UK; please try again."
msgstr ""
#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:63
-#: perllib/FixMyStreet/Cobrand/UK.pm:82
+#: perllib/FixMyStreet/Cobrand/UK.pm:86
msgid "That postcode was not recognised, sorry."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:616
+#: perllib/FixMyStreet/App/Controller/Admin.pm:641
msgid "That problem will now be resent."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report.pm:98
-#, fuzzy
+#: perllib/FixMyStreet/App/Controller/Report.pm:117
msgid "That report cannot be viewed on FixMyStreet."
msgstr "Diese Meldung wurde von Fix My Z&uuml;rich entfernt."
-#: perllib/FixMyStreet/App/Controller/Report.pm:92
+#: perllib/FixMyStreet/App/Controller/Report.pm:111
msgid "That report has been removed from FixMyStreet."
msgstr "Diese Meldung wurde von Fix My Z&uuml;rich entfernt."
@@ -2967,8 +3248,8 @@ msgid ""
"the attribute is defined in the Open311 v2 specification."
msgstr ""
-#: templates/web/default/auth/token.html:21
-#: templates/web/default/email_sent.html:22
+#: templates/web/default/auth/token.html:22
+#: templates/web/default/email_sent.html:6
msgid ""
"The confirmation email <strong>may</strong> take a few minutes to arrive "
"&mdash; <em>please</em> be patient."
@@ -2997,8 +3278,7 @@ msgid ""
msgstr ""
#: perllib/FixMyStreet/App/Controller/Dashboard.pm:60
-#: perllib/FixMyStreet/App/Controller/Reports.pm:43
-#: perllib/FixMyStreet/App/Controller/Reports.pm:74
+#: perllib/FixMyStreet/App/Controller/Reports.pm:67
msgid "The error was: %s"
msgstr ""
@@ -3084,19 +3364,18 @@ msgstr ""
#: templates/web/default/report/new/councils_text_some.html:11
#: templates/web/default/report/new/fill_in_details_form.html:17
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:12
-#: templates/web/zurich/report/new/fill_in_details_form.html:12
msgid ""
"The subject and details of the problem will be public, plus your name if you "
"give us permission."
msgstr ""
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:271
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:272
msgid ""
"The user could not locate the problem on a map, but to see the area around "
"the location they entered"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Reports.pm:71
+#: perllib/FixMyStreet/App/Controller/Reports.pm:64
msgid ""
"There was a problem showing the All Reports page. Please try again later."
msgstr ""
@@ -3105,7 +3384,7 @@ msgstr ""
msgid "There was a problem showing this page. Please try again later."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:736
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:740
#: perllib/FixMyStreet/App/Controller/Report/Update.pm:134
#: templates/web/default/auth/general.html:23
#: templates/web/fixmystreet/auth/general.html:24
@@ -3114,6 +3393,8 @@ msgid ""
"remember your password, or do not have one, please fill in the &lsquo;sign "
"in by email&rsquo; section of the form."
msgstr ""
+"Ihre E-Mail/Passwort Kombination war ung&uuml;ltig. Bitte versuchen Sie es "
+"erneut oder wenden Sie sich an den Administrator."
#: perllib/FixMyStreet/App/Controller/Alert.pm:355
msgid ""
@@ -3153,8 +3434,8 @@ msgid ""
"it if you're not the correct council to deal with the issue."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:868
-#: perllib/FixMyStreet/Cobrand/UK.pm:54
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:874
+#: perllib/FixMyStreet/Cobrand/UK.pm:58
msgid "This information is required"
msgstr "Diese Information wird ben&ouml;tigt"
@@ -3213,6 +3494,10 @@ msgstr "Dieser Mangel ist in Bearbeitung"
msgid "This problem is old and of unknown status."
msgstr "Dieses Problem ist alt und hat einen unbekannten Status"
+#: templates/web/zurich/report/_main.html:14
+msgid "This report is awaiting moderation."
+msgstr "&Uuml;berpr&uuml;fung ausstehend"
+
#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:86
msgid "This report is currently marked as closed."
msgstr ""
@@ -3225,18 +3510,18 @@ msgstr ""
msgid "This report is currently marked as open."
msgstr ""
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:264
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:265
msgid ""
"This web page also contains a photo of the problem, provided by the user."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1034
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1088
#: templates/web/default/admin/timeline.html:1
msgid "Timeline"
msgstr ""
-#: templates/web/default/admin/list_flagged.html:10
-#: templates/web/default/admin/search_reports.html:13
+#: templates/web/default/admin/flagged.html:10
+#: templates/web/default/admin/reports.html:13
msgid "Title"
msgstr "Titel"
@@ -3253,13 +3538,12 @@ msgid ""
msgstr ""
#: templates/web/default/alert/index.html:27
-#, fuzzy
msgid ""
"To find out what local alerts we have for you, please enter your postcode or "
"street name and area"
msgstr "Geben Sie eine Adresse an"
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:270
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:271
msgid "To view a map of the precise location of this issue"
msgstr ""
@@ -3270,13 +3554,13 @@ msgstr ""
msgid "Total"
msgstr "Total"
-#: perllib/FixMyStreet/App/Controller/Reports.pm:42
-msgid "Unable to look up areas in MaPit. Please try again later."
-msgstr ""
+#: templates/web/default/js/translation_strings.html:23
+msgid "Try again"
+msgstr "Erneut versuchen"
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:21
-#: templates/web/default/admin/update_edit.html:19
+#: templates/web/default/admin/report_edit.html:26
+#: templates/web/default/admin/update_edit.html:22
+#: templates/web/zurich/admin/update_edit.html:18
msgid "Unconfirmed"
msgstr "Unbest&auml;tigt"
@@ -3288,12 +3572,17 @@ msgstr "Unbekannt"
msgid "Unknown alert type"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report.pm:87
+#: templates/web/default/js/translation_strings.html:33
+msgid "Unknown error"
+msgstr "Unbekannter Fehler"
+
+#: perllib/FixMyStreet/App/Controller/Report.pm:106
msgid "Unknown problem ID"
msgstr ""
#: templates/web/bromley/report/display.html:66
#: templates/web/fixmystreet/report/update-form.html:19
+#, fuzzy
msgid "Update"
msgstr "Beschreibung"
@@ -3311,6 +3600,11 @@ msgstr ""
msgid "Update below added by %s at %s"
msgstr ""
+#: templates/web/default/admin/body-form.html:77
+#: templates/web/zurich/admin/body-form.html:47
+msgid "Update body"
+msgstr "Beschreibung"
+
#: templates/web/default/admin/index.html:30
msgid "Update breakdown by state"
msgstr ""
@@ -3319,19 +3613,20 @@ msgstr ""
msgid "Update by {{name}}"
msgstr ""
-#: templates/web/default/admin/update_edit.html:33
+#: templates/web/default/admin/update_edit.html:36
+#: templates/web/zurich/admin/update_edit.html:25
msgid "Update changed problem state to %s"
msgstr ""
-#: templates/web/default/admin/update_edit.html:35
+#: templates/web/default/admin/update_edit.html:38
msgid "Update marked problem as fixed"
msgstr ""
-#: templates/web/default/admin/update_edit.html:37
+#: templates/web/default/admin/update_edit.html:40
msgid "Update reopened problem"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:68
+#: templates/web/default/admin/body.html:65
msgid "Update statuses"
msgstr ""
@@ -3339,17 +3634,28 @@ msgstr ""
msgid "Update:"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:708
-#: perllib/FixMyStreet/App/Controller/Admin.pm:839
-#: perllib/FixMyStreet/App/Controller/Admin.pm:899
+#: templates/web/zurich/admin/index-dm.html:24
+#: templates/web/zurich/admin/index-sdm.html:22
+#: templates/web/zurich/admin/reports.html:16
+msgid "Updated"
+msgstr "Aktualisiert"
+
+#: perllib/FixMyStreet/App/Controller/Admin.pm:733
+#: perllib/FixMyStreet/App/Controller/Admin.pm:867
+#: perllib/FixMyStreet/App/Controller/Admin.pm:918
+#: perllib/FixMyStreet/App/Controller/Admin.pm:957
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:322
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:377
msgid "Updated!"
-msgstr ""
+msgstr "Aktualisiert!"
#: templates/web/default/admin/list_updates.html:1
#: templates/web/default/report/update.html:3
#: templates/web/fixmystreet/report/update.html:3
+#: templates/web/zurich/admin/list_updates.html:1
+#: templates/web/zurich/report/updates.html:2
msgid "Updates"
-msgstr ""
+msgstr "Antwort"
#: db/alert_types.pl:5 db/alert_types.pl:6
msgid "Updates on {{title}}"
@@ -3364,28 +3670,33 @@ msgstr ""
msgid "Updates to this problem, FixMyStreet"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1191
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1251
msgid "User flag removed"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1163
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1223
msgid "User flagged"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1036
-#: templates/web/default/admin/list_flagged.html:30
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1090
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:147
+#: templates/web/default/admin/flagged.html:30
+#: templates/web/zurich/header.html:68
msgid "Users"
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:315
-#: perllib/FixMyStreet/App/Controller/Admin.pm:345
+#: perllib/FixMyStreet/App/Controller/Admin.pm:346
+#: perllib/FixMyStreet/App/Controller/Admin.pm:376
msgid "Values updated"
msgstr ""
#: templates/web/default/admin/report_edit.html:12
#: templates/web/default/admin/update_edit.html:12
+#: templates/web/zurich/admin/report_edit-sdm.html:13
+#: templates/web/zurich/admin/report_edit.html:19
+#: templates/web/zurich/admin/update_edit.html:10
msgid "View report on site"
-msgstr ""
+msgstr "Meldung auf der Webseite betrachten"
#: templates/web/default/reports/body.html:18
msgid "View reports by ward"
@@ -3422,6 +3733,8 @@ msgid ""
"We found more than one match for that location. We show up to ten matches, "
"please try a different search if yours is not here."
msgstr ""
+"Ihre Anfrage ergab mehr als eine m&ouml;gliche Adresse. Die ersten zehn "
+"Treffer werden unten aufgelistet."
#: templates/web/default/auth/token.html:19
msgid "We have sent you an email containing a link to confirm your account."
@@ -3443,11 +3756,11 @@ msgstr "Ihr E-Mail wird nie angezeigt"
#: templates/web/bromley/report/new/fill_in_details_form.html:179
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:144
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:211
-#: templates/web/zurich/report/new/fill_in_details_form.html:114
+#: templates/web/zurich/report/new/fill_in_details_form.html:96
msgid "We never show your email address or phone number."
msgstr "Ihre E-Mail Adresse oder Telefonnummer werden nie angezeigt"
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:351
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:350
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 "
@@ -3490,17 +3803,18 @@ msgid ""
"send an email to <a href='mailto:%s'>%s</a>:"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:45
-#: templates/web/default/admin/council_edit.html:69
+#: templates/web/default/admin/body.html:43
+#: templates/web/default/admin/body_edit.html:82
+#: templates/web/zurich/admin/body.html:17
msgid "When edited"
msgstr "Wann editiert"
-#: templates/web/default/admin/list_flagged.html:19
-#: templates/web/default/admin/search_reports.html:22
+#: templates/web/default/admin/flagged.html:19
+#: templates/web/default/admin/reports.html:22
msgid "When sent"
msgstr "Wann gesendet"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:611
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:618
msgid "Whole block of empty flats"
msgstr ""
@@ -3535,7 +3849,7 @@ msgstr ""
#: templates/web/default/report/new/notes.html:8
#: templates/web/fixmybarangay/report/new/notes.html:8
-#: templates/web/fixmystreet/report/new/notes.html:7
+#: templates/web/fixmystreet/report/new/notes.html:8
msgid ""
"Writing your message entirely in block capitals makes it hard to read, as "
"does a lack of punctuation."
@@ -3547,18 +3861,18 @@ msgstr ""
msgid "Year"
msgstr "Jahr"
-#: templates/web/default/admin/council_contacts.html:52
-#: templates/web/default/admin/council_contacts.html:53
-#: templates/web/default/admin/council_contacts.html:54
-#: templates/web/default/admin/council_edit.html:5
+#: templates/web/default/admin/body.html:50
+#: templates/web/default/admin/body.html:51
+#: templates/web/default/admin/body.html:52
+#: templates/web/default/admin/body_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:27
-#: templates/web/default/admin/report_edit.html:41
-#: templates/web/default/admin/search_users.html:23
-#: templates/web/default/admin/update_edit.html:15
+#: templates/web/default/admin/problem_row.html:21
+#: templates/web/default/admin/report_edit.html:32
+#: templates/web/default/admin/report_edit.html:46
+#: templates/web/default/admin/update_edit.html:18
+#: templates/web/default/admin/users.html:26
#: templates/web/default/questionnaire/creator_fixed.html:14
#: templates/web/default/questionnaire/index.html:105
#: templates/web/default/questionnaire/index.html:66
@@ -3594,12 +3908,21 @@ msgid ""
"reports\">show all councils</a>."
msgstr ""
+#: templates/web/default/tokens/confirm_problem.html:19
+#: templates/web/default/tokens/confirm_problem.html:21
+#: templates/web/zurich/tokens/confirm_problem.html:5
+#: templates/web/zurich/tokens/confirm_problem.html:8
+msgid "You can <a href=\"%s%s\">view the problem on this site</a>."
+msgstr ""
+"Danke! Sie k&ouml;nnen Ihre aktualisierte Meldung <a href=\"%s%s\">auf der "
+"Webseite anschauen</a>"
+
#: templates/web/emptyhomes/reports/body.html:66
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:16
+#: templates/web/default/report/new/councils_text_none.html:11
+#: templates/web/default/report/new/councils_text_none.html:13
#: templates/web/default/report/new/councils_text_some.html:20
#: templates/web/default/report/new/councils_text_some.html:22
msgid ""
@@ -3607,6 +3930,10 @@ msgid ""
"and emailing it to us at <a href='mailto:%s'>%s</a>."
msgstr ""
+#: templates/web/default/js/translation_strings.html:30
+msgid "You declined; please fill in the box above"
+msgstr "Nicht freigeschaltet; Bitte geben Sie eine Adresse an"
+
#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:38
msgid ""
"You have already answered this questionnaire. If you have a question, please "
@@ -3618,7 +3945,7 @@ msgstr ""
#: templates/web/default/report/new/fill_in_details_form.html:93
#: templates/web/fixmystreet/questionnaire/index.html:87
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:99
-#: templates/web/zurich/report/new/fill_in_details_form.html:93
+#: templates/web/zurich/report/new/fill_in_details_form.html:75
msgid ""
"You have already attached a photo to this report, attaching another one will "
"replace it."
@@ -3633,25 +3960,30 @@ msgid ""
msgstr ""
#: templates/web/default/auth/sign_out.html:3
-#: templates/web/fixmybarangay/auth/sign_out.html:3
+#: templates/web/zurich/auth/sign_out.html:3
msgid "You have been signed out"
-msgstr ""
+msgstr "Sie haben sich abgemeldet"
#: templates/web/bromley/report/new/fill_in_details_form.html:25
#: templates/web/default/report/new/fill_in_details_form.html:7
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:28
-#: templates/web/zurich/report/new/fill_in_details_form.html:28
+#: templates/web/zurich/report/new/fill_in_details_form.html:13
msgid ""
"You have located the problem at the point marked with a green pin on the "
"map. If this is not the correct location, simply click on the map again. "
msgstr ""
-"Der gr&uuml;ne lokalisiert Ihre Meldung auf der Karte. Falls dieser Ort "
-"nicht stimmt, kann der Pin verschoben werden."
+"Der gr&uuml;ne Punkt lokalisiert Ihre Meldung auf der Karte. Falls dieser "
+"Ort nicht stimmt, kann der Pin verschoben werden."
#: templates/web/default/tokens/confirm_alert.html:7
msgid "You have successfully confirmed your alert."
msgstr ""
+#: templates/web/zurich/tokens/confirm_problem.html:5
+#: templates/web/zurich/tokens/confirm_problem.html:6
+msgid "You have successfully confirmed your email address."
+msgstr "Sie haben Ihre Meldung erfolgreich best&auml;tigt"
+
#: templates/web/default/tokens/confirm_problem.html:14
#: templates/web/default/tokens/confirm_problem.html:15
msgid "You have successfully confirmed your problem"
@@ -3672,20 +4004,20 @@ msgstr ""
msgid "You have successfully deleted your alert."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:743
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:747
#: perllib/FixMyStreet/App/Controller/Report/Update.pm:140
msgid ""
"You have successfully signed in; please check and confirm your details are "
"accurate:"
msgstr ""
-#: templates/web/default/email_sent.html:26
-msgid ""
-"You must now click the link in the email we've just sent you &mdash; if you "
-"do not, %s."
+#: templates/web/default/email_sent.html:13
+msgid "You must now click the link in the email we've just sent you."
msgstr ""
+"Sie k&ouml;nnen Ihre Meldung best&auml;tigen, indem Sie auf den Link im E-"
+"Mail klicken."
-#: templates/web/default/admin/report_edit.html:35
+#: templates/web/default/admin/report_edit.html:40
msgid "You really want to resend?"
msgstr ""
@@ -3703,13 +4035,13 @@ msgstr ""
#: templates/web/fixmystreet/alert/updates.html:19
#: templates/web/fixmystreet/alert/updates.html:22
#: templates/web/fixmystreet/contact/index.html:72
-#: templates/web/fixmystreet/report/display.html:53
-#: templates/web/fixmystreet/report/display.html:55
+#: templates/web/fixmystreet/report/display.html:61
+#: templates/web/fixmystreet/report/display.html:63
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:115
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:157
-#: templates/web/zurich/report/new/fill_in_details_form.html:106
+#: templates/web/zurich/report/new/fill_in_details_form.html:88
msgid "Your email"
-msgstr "Ihre E-Mail Adresse"
+msgstr "E-Mail Adresse"
#: templates/web/bromley/report/display.html:130
#: templates/web/fixmystreet/auth/general.html:26
@@ -3731,12 +4063,10 @@ msgstr "Ihre E-Mail:"
#: templates/web/bromley/report/display.html:193
#: templates/web/bromley/report/new/fill_in_details_form.html:117
#: templates/web/bromley/report/new/fill_in_details_form.html:164
-#, fuzzy
msgid "Your first name"
msgstr "Ihr Name"
#: templates/web/fixmystreet/report/updates-sidebar-notes.html:5
-#, fuzzy
msgid ""
"Your information will only be used in accordance with our <a href=\"/privacy"
"\">privacy policy</a>"
@@ -3747,7 +4077,6 @@ msgstr ""
#: templates/web/bromley/report/display.html:199
#: templates/web/bromley/report/new/fill_in_details_form.html:123
#: templates/web/bromley/report/new/fill_in_details_form.html:170
-#, fuzzy
msgid "Your last name"
msgstr "Ihr Name"
@@ -3756,7 +4085,7 @@ msgstr "Ihr Name"
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:124
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:202
#: templates/web/fixmystreet/report/update-form.html:138
-#: templates/web/zurich/report/new/fill_in_details_form.html:122
+#: templates/web/zurich/report/new/fill_in_details_form.html:104
msgid "Your name"
msgstr "Ihr Name"
@@ -3783,7 +4112,7 @@ msgstr "Ihr Passwort wurde ge&auml;ndert"
#: templates/web/bromley/report/new/fill_in_details_form.html:184
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:149
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:216
-#: templates/web/zurich/report/new/fill_in_details_form.html:125
+#: templates/web/zurich/report/new/fill_in_details_form.html:107
msgid "Your phone number"
msgstr "Ihre Telefonnummer"
@@ -3819,24 +4148,27 @@ msgstr ""
msgid "council"
msgstr ""
-#: perllib/FixMyStreet/DB/Result/Problem.pm:608
+#: perllib/FixMyStreet/DB/Result/Problem.pm:625
msgid "council ref:&nbsp;%s"
msgstr ""
-#: templates/web/default/admin/report_edit.html:15
+#: templates/web/default/admin/report_edit.html:19
+#: templates/web/zurich/admin/report_edit-sdm.html:21
+#: templates/web/zurich/admin/report_edit.html:39
msgid "didn't use map"
msgstr "hat Karte nicht verwendet"
#: templates/web/default/alert/index.html:33
#: templates/web/fixmystreet/around/postcode_form.html:20
msgid "e.g. ‘%s’ or ‘%s’"
-msgstr ""
+msgstr "z.B. ‘%s’ oder ‘%s’"
#: templates/web/default/admin/index.html:15
+#: templates/web/zurich/admin/index.html:5
msgid "from %d different users"
msgstr ""
-#: perllib/Utils.pm:267
+#: perllib/Utils.pm:268
msgid "less than a minute"
msgstr "weniger als einer Minute"
@@ -3848,7 +4180,7 @@ msgstr ""
msgid "marked as fixed"
msgstr "als gel&ouml;st markiert"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:113
+#: perllib/FixMyStreet/App/Controller/Admin.pm:128
#: templates/web/default/admin/questionnaire.html:15
#: templates/web/default/admin/questionnaire.html:16
msgid "n/a"
@@ -3860,15 +4192,21 @@ msgstr ""
msgid "or"
msgstr "oder"
-#: templates/web/default/js/validation_strings.html:21
+#: templates/web/default/js/translation_strings.html:21
msgid "or locate me automatically"
msgstr "oder automatisch lokalisieren"
-#: templates/web/default/admin/report_edit.html:15
-msgid "originally entered"
-msgstr ""
+#: templates/web/default/admin/report_edit.html:18
+#: templates/web/zurich/admin/report_edit-sdm.html:16
+#: templates/web/zurich/admin/report_edit-sdm.html:20
+#: templates/web/zurich/admin/report_edit.html:24
+#: templates/web/zurich/admin/report_edit.html:32
+#: templates/web/zurich/admin/report_edit.html:38
+#, fuzzy
+msgid "originally entered: &ldquo;%s&rdquo;"
+msgstr "urspr&uuml;nglich eingegeben"
-#: templates/web/default/admin/report_edit.html:16
+#: templates/web/default/admin/report_edit.html:21
msgid "other areas:"
msgstr ""
@@ -3880,7 +4218,7 @@ msgstr ""
#: templates/web/bromley/header.html:65
#: templates/web/fixmybarangay/header.html:65
#: templates/web/fixmystreet/header.html:50
-#: templates/web/stevenage/header.html:98 templates/web/zurich/header.html:48
+#: templates/web/stevenage/header.html:98 templates/web/zurich/footer.html:12
msgid "sign out"
msgstr "ausloggen"
@@ -3890,32 +4228,35 @@ msgstr "ausloggen"
#: templates/web/default/report/new/fill_in_details_form.html:14
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:6
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:9
-#: templates/web/zurich/report/new/fill_in_details_form.html:6
-#: templates/web/zurich/report/new/fill_in_details_form.html:9
msgid "the local council"
msgstr ""
#: templates/web/default/report/_main.html:6
+#: templates/web/zurich/report/_main.html:5
msgid "there is no pin shown as the user did not use the map"
msgstr ""
+"Es wird keine Stecknadel angezeigt, da der User die Karte nicht ben&uuml;tzt "
+"hat"
#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:332
msgid "this type of local problem"
msgstr ""
-#: perllib/Utils.pm:241
+#: perllib/Utils.pm:240
msgid "today"
msgstr "heute"
-#: templates/web/default/admin/report_edit.html:15
+#: templates/web/default/admin/report_edit.html:19
+#: templates/web/zurich/admin/report_edit-sdm.html:21
+#: templates/web/zurich/admin/report_edit.html:39
msgid "used map"
-msgstr ""
+msgstr "Karte verwendet"
-#: templates/web/default/admin/update_edit.html:26
+#: templates/web/default/admin/update_edit.html:29
msgid "user is from same council as problem - %d"
msgstr ""
-#: templates/web/default/admin/update_edit.html:29
+#: templates/web/default/admin/update_edit.html:32
msgid "user is problem owner"
msgstr ""
@@ -3926,51 +4267,21 @@ msgstr ""
msgid "ward"
msgstr ""
-#: templates/web/default/email_sent.html:15
-#: templates/web/default/email_sent.html:3
-msgid "we'll hang on to your alert while you're checking your email."
-msgstr ""
-
-#: templates/web/default/email_sent.html:3
-#: templates/web/default/email_sent.html:7
-msgid "we'll hang on to your problem report while you're checking your email."
-msgstr ""
-
-#: templates/web/default/email_sent.html:11
-#: templates/web/default/email_sent.html:3
-msgid "we'll hang on to your update while you're checking your email."
-msgstr ""
-
-#: templates/web/default/email_sent.html:14
-#: templates/web/default/email_sent.html:3
-msgid "your alert will not be activated"
-msgstr ""
-
-#: templates/web/default/email_sent.html:3
-#: templates/web/default/email_sent.html:6
-msgid "your problem will not be posted"
-msgstr ""
-
-#: templates/web/default/email_sent.html:10
-#: templates/web/default/email_sent.html:3
-msgid "your update will not be posted"
-msgstr ""
-
#: templates/web/emptyhomes/front/stats.html:17
#, perl-format
msgid "<big>%s</big> report recently"
msgid_plural "<big>%s</big> reports recently"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "<big>%s</big> Meldung in letzter Zeit"
+msgstr[1] "<big>%s</big> Meldungen in letzter Zeit"
-#: perllib/Utils.pm:286
+#: perllib/Utils.pm:287
#, perl-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d Stunde"
msgstr[1] "%d Stunden"
-#: perllib/Utils.pm:288
+#: perllib/Utils.pm:289
#, perl-format
msgid "%d minute"
msgid_plural "%d minutes"
@@ -3991,7 +4302,7 @@ msgid_plural ""
"We do not yet have details for the councils that cover this location."
msgstr[0] ""
-#: perllib/Utils.pm:282
+#: perllib/Utils.pm:283
#, perl-format
msgid "%d week"
msgid_plural "%d weeks"
@@ -4009,8 +4320,8 @@ msgstr[1] "<big>%s</big> Meldungen in der letzten Woche"
#, perl-format
msgid "<big>%s</big> fixed in past month"
msgid_plural "<big>%s</big> fixed in past month"
-msgstr[0] "<big>%s</big> bearbeiteter Mangel im letzten Monat"
-msgstr[1] "<big>%s</big> bearbeitete M&auml;ngel im letzten Monat"
+msgstr[0] "<big>%s</big> bearbeitete Meldung im letzten Monat"
+msgstr[1] "<big>%s</big> bearbeitete Meldungen im letzten Monat"
#: templates/web/default/report/new/councils_text_some.html:14
#, perl-format
@@ -4023,15 +4334,29 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: perllib/Utils.pm:284
+#: perllib/Utils.pm:285
#, perl-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d Tag"
msgstr[1] "%d Tage"
-#~ msgid "All"
-#~ msgstr "Alle"
+#, fuzzy
+#~ msgid "Reported at %s"
+#~ msgstr "Gemeldet von %s um %s"
+
+#~ msgid "*unknown*"
+#~ msgstr "*unbekannt*"
+
+#, fuzzy
+#~ msgid "Problem ID"
+#~ msgstr "Meldung"
+
+#~ msgid "All confirmed"
+#~ msgstr "Alle best&auml;tigten"
+
+#~ msgid "No info at all"
+#~ msgstr "Keine Informationen"
#~ msgid "the map was not used so pin location may be inaccurate"
#~ msgstr ""
diff --git a/locale/nb_NO.UTF-8/LC_MESSAGES/FixMyStreet.po b/locale/nb_NO.UTF-8/LC_MESSAGES/FixMyStreet.po
index db0887cd7..863ce67ca 100644
--- a/locale/nb_NO.UTF-8/LC_MESSAGES/FixMyStreet.po
+++ b/locale/nb_NO.UTF-8/LC_MESSAGES/FixMyStreet.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: FixMyStreet\n"
"Report-Msgid-Bugs-To: matthew@mysociety.org\n"
-"POT-Creation-Date: 2012-12-10 13:18+0000\n"
+"POT-Creation-Date: 2013-01-31 15:59+0000\n"
"PO-Revision-Date: 2012-09-14 00:22+0100\n"
"Last-Translator: Anders Einar Hilden <hildenae@gmail.com>\n"
"Language-Team: Norwegian Bokmål <i18n-nb@lister.ping.uio.no>\n"
@@ -22,21 +22,21 @@ msgstr ""
"X-Generator: KBabel 1.11.4\n"
"X-Poedit-Basepath: ../../../\n"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:560
+#: perllib/FixMyStreet/DB/Result/Problem.pm:579
#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:339
msgid " and "
msgstr " og "
#: templates/web/default/tokens/confirm_problem.html:14
-#: templates/web/default/tokens/confirm_problem.html:18
+#: templates/web/default/tokens/confirm_problem.html:17
msgid " and <strong>we will now send it to the council</strong>"
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:17
-#: templates/web/default/report/new/councils_text_all.html:3
+#: templates/web/default/report/new/councils_text_all.html:11
+#: templates/web/default/report/new/councils_text_all.html:18
+#: templates/web/default/report/new/councils_text_all.html:4
+#: templates/web/default/report/new/councils_text_none.html:11
#: 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
@@ -44,7 +44,7 @@ msgstr " og <strong>vi sender det nå til administrasjonen</strong>"
msgid " or "
msgstr " eller "
-#: templates/web/default/admin/council_list.html:17
+#: templates/web/default/admin/bodies.html:31
msgid "%d addresses"
msgstr "%d adresser"
@@ -53,10 +53,11 @@ msgid "%d confirmed alerts, %d unconfirmed"
msgstr "%d bekreftede varsler, %d ubekreftede"
#: templates/web/default/admin/index.html:19
+#: templates/web/zurich/admin/index.html:6
msgid "%d council contacts &ndash; %d confirmed, %d unconfirmed"
msgstr "%d administrasjonskontakter &ndash; %d bekreftet, %d ubekreftet"
-#: templates/web/default/admin/council_list.html:27
+#: templates/web/default/admin/edit-league.html:5
msgid "%d edits by %s"
msgstr "%d redigeringer av %s"
@@ -79,32 +80,49 @@ msgstr ""
msgid "%s - Summary reports"
msgstr "%s - oppsummeringsrapporter"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:610
+#: perllib/FixMyStreet/DB/Result/Problem.pm:627
msgid "%s ref:&nbsp;%s"
msgstr "%s ref:&nbsp;%s"
-#: perllib/FixMyStreet/Cobrand/UK.pm:279 perllib/FixMyStreet/Cobrand/UK.pm:291
+#: perllib/FixMyStreet/Cobrand/UK.pm:275 perllib/FixMyStreet/Cobrand/UK.pm:287
msgid "%s ward, %s"
msgstr "%s bydel, %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:496
+#: perllib/FixMyStreet/DB/Result/Problem.pm:512
msgid "%s, reported anonymously at %s"
msgstr "%s, rapportert anonymt %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:498
+#: perllib/FixMyStreet/DB/Result/Problem.pm:514
msgid "%s, reported by %s at %s"
msgstr "%s, rapportert av %s %s"
-#: perllib/FixMyStreet/Cobrand/UK.pm:306 perllib/FixMyStreet/Cobrand/UK.pm:318
+#: perllib/FixMyStreet/Cobrand/UK.pm:302 perllib/FixMyStreet/Cobrand/UK.pm:314
msgid "%s, within %s ward"
msgstr "%s, innefor bydel %s"
-#: templates/web/default/email_sent.html:28
-msgid "(Don't worry &mdash; %s)"
-msgstr "(Ingen grunn til bekymring &mdash; %s)"
+#: templates/web/default/email_sent.html:29
+#, fuzzy
+msgid ""
+"(Don't worry &mdash; we'll hang on to your alert while you're checking your "
+"email.)"
+msgstr "vi tar vare på ditt varsel mens du sjekker din e-post."
+
+#: templates/web/default/email_sent.html:25
+#, fuzzy
+msgid ""
+"(Don't worry &mdash; we'll hang on to your problem report while you're "
+"checking your email.)"
+msgstr "vi tar vare på rapporten din mens du sjekker e-post."
+
+#: templates/web/default/email_sent.html:27
+#, fuzzy
+msgid ""
+"(Don't worry &mdash; we'll hang on to your update while you're checking your "
+"email.)"
+msgstr "vi tar vare på din oppdatering mens du sjekker din e-post."
#: templates/web/default/admin/report_blocks.html:11
-#: templates/web/default/admin/search_users.html:23
+#: templates/web/default/admin/users.html:26
msgid "(Email in abuse table)"
msgstr "(Epost i misbrukstabellen)"
@@ -120,13 +138,15 @@ msgstr "(alternativt kan RSS-strømmen tilpasses, innenfor"
#: templates/web/default/around/around_map_list_items.html:12
#: templates/web/default/around/on_map_list_items.html:9
-#: templates/web/fixmystreet/report/_item.html:23
+#: templates/web/fixmystreet/report/_item.html:20
+#: templates/web/zurich/report/_item.html:19
msgid "(closed)"
msgstr "(lukket)"
#: templates/web/default/around/around_map_list_items.html:10
#: templates/web/default/around/on_map_list_items.html:7
-#: templates/web/fixmystreet/report/_item.html:21
+#: templates/web/fixmystreet/report/_item.html:18
+#: templates/web/zurich/report/_item.html:17
msgid "(fixed)"
msgstr "(løst)"
@@ -136,18 +156,18 @@ msgid "(like graffiti, fly tipping, broken paving slabs, or street lighting)"
msgstr "(som tagging, søppel, hull i veien, eller ødelagte gatelys)"
#: templates/web/default/reports/_list-entry.html:4
-#: templates/web/fixmystreet/report/_item.html:17
+#: templates/web/fixmystreet/report/_item.html:14
msgid "(not sent to council)"
msgstr "(ikke rapportert til administrasjonen)"
#: templates/web/default/report/new/fill_in_details_form.html:217
-#: templates/web/zurich/report/new/fill_in_details_form.html:118
+#: templates/web/zurich/report/new/fill_in_details_form.html:100
msgid "(optional)"
msgstr "(valgfritt)"
# Denne teksten er lite forklarende
#: templates/web/default/reports/_list-entry.html:2
-#: templates/web/fixmystreet/report/_item.html:16
+#: templates/web/fixmystreet/report/_item.html:13
msgid "(sent to both)"
msgstr "(sendt til begge)"
@@ -159,27 +179,17 @@ msgstr "(vi viser aldri din e-postadresse eller telefonnummer)"
msgid "(we never show your email)"
msgstr "(vi viser aldri din e-postadresse)"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:285
-msgid "*unknown*"
-msgstr "*ukjent*"
-
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:628
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:656
-#: perllib/FixMyStreet/DB/Result/Problem.pm:353
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:635
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:663
+#: perllib/FixMyStreet/DB/Result/Problem.pm:362
msgid "-- Pick a category --"
msgstr "-- Velg en kategori --"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:608
-#: perllib/FixMyStreet/DB/Result/Problem.pm:359
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:615
+#: perllib/FixMyStreet/DB/Result/Problem.pm:368
msgid "-- Pick a property type --"
msgstr "-- Velg en eiendomsstype --"
-# Trenger kontekst for bedre oversettelse
-#: templates/web/default/tokens/confirm_problem.html:14
-#: templates/web/default/tokens/confirm_problem.html:22
-msgid ". You can <a href=\"%s%s\">view the problem on this site</a>."
-msgstr ". Du kan <a href=\"%s\">lese om problemet på denne siden</a>."
-
#: templates/web/default/report/_support.html:3
msgid "1 supporter"
msgstr ""
@@ -303,6 +313,7 @@ msgstr ""
"dette steget</a>.</small>"
#: templates/web/default/admin/index.html:14
+#: templates/web/zurich/admin/index.html:4
msgid "<strong>%d</strong> live problems"
msgstr "<strong>%d</strong> aktive problemer"
@@ -348,10 +359,21 @@ msgstr "<strong>Ja</strong> Jeg har et passord"
msgid "About us"
msgstr "Om oss"
-#: templates/web/default/admin/council_contacts.html:72
+#: templates/web/default/admin/bodies.html:45
+#: templates/web/default/admin/body-form.html:77
+#: templates/web/zurich/admin/body-form.html:47
+msgid "Add body"
+msgstr ""
+
+#: templates/web/default/admin/body.html:69
+#: templates/web/zurich/admin/body.html:30
msgid "Add new category"
msgstr "Legg til ny kategori"
+#: templates/web/default/admin/users.html:35
+msgid "Add user"
+msgstr ""
+
#: templates/web/default/my/my.html:56 templates/web/fixmystreet/my/my.html:60
msgid "Added %s"
msgstr "La til %s"
@@ -376,13 +398,10 @@ msgstr "Send meg varsel ved fremtidige oppdateringer"
#: templates/web/default/reports/index.html:3
#: templates/web/fixmybarangay/reports/index.html:3
+#: templates/web/zurich/reports/index.html:12
msgid "All Reports"
msgstr "Alle rapporter"
-#: templates/web/default/admin/council_list.html:44
-msgid "All confirmed"
-msgstr "Alle bekreftet"
-
#: templates/web/barnet/footer.html:20 templates/web/bromley/footer.html:21
#: templates/web/bromley/header.html:77 templates/web/default/footer.html:11
#: templates/web/fiksgatami/footer.html:7
@@ -390,7 +409,9 @@ msgstr "Alle bekreftet"
#: templates/web/fixmybarangay/footer.html:20
#: templates/web/fixmystreet/footer.html:49
#: templates/web/reading/footer.html:8 templates/web/stevenage/footer.html:43
-#: templates/web/zurich/footer.html:12
+#: templates/web/zurich/admin/index-dm.html:12
+#: templates/web/zurich/footer.html:19
+#: templates/web/zurich/nav_over_content.html:6
msgid "All reports"
msgstr "Alle rapporter"
@@ -403,16 +424,16 @@ msgstr "%srapporter mellom %s og %s"
msgid "All the information you provide here will be sent to"
msgstr "All informasjonen du har lagt inn her vil bli sendt til"
-#: templates/web/default/report/new/councils_text_all.html:10
-#: templates/web/default/report/new/councils_text_all.html:12
+#: templates/web/default/report/new/councils_text_all.html:11
+#: templates/web/default/report/new/councils_text_all.html:13
msgid ""
"All the information you provide here will be sent to <strong>%s</strong> or "
"<strong>Roads Service</strong>."
msgstr ""
"All informasjon du legger inn her vil bli sendt til <strong>%s</strong>."
-#: templates/web/default/report/new/councils_text_all.html:3
-#: templates/web/default/report/new/councils_text_all.html:5
+#: templates/web/default/report/new/councils_text_all.html:4
+#: templates/web/default/report/new/councils_text_all.html:6
msgid ""
"All the information you provide here will be sent to <strong>%s</strong> or "
"a relevant local body such as <strong>TfL</strong>, via the London Report-It "
@@ -424,14 +445,12 @@ msgstr ""
#: templates/web/bromley/report/new/fill_in_details_form.html:4
#: templates/web/bromley/report/new/fill_in_details_form.html:6
-#: templates/web/default/report/new/councils_text_all.html:17
-#: templates/web/default/report/new/councils_text_all.html:19
+#: templates/web/default/report/new/councils_text_all.html:18
+#: templates/web/default/report/new/councils_text_all.html:20
#: templates/web/default/report/new/fill_in_details_form.html:11
#: templates/web/default/report/new/fill_in_details_form.html:13
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:6
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:8
-#: templates/web/zurich/report/new/fill_in_details_form.html:6
-#: templates/web/zurich/report/new/fill_in_details_form.html:8
msgid ""
"All the information you provide here will be sent to <strong>%s</strong>."
msgstr ""
@@ -454,14 +473,14 @@ msgstr ""
msgid "An update marked this problem as fixed."
msgstr "En oppdatering markerte dette problemet som fikset."
-#: templates/web/default/admin/list_flagged.html:15
+#: templates/web/default/admin/flagged.html:15
#: templates/web/default/admin/list_updates.html:10
-#: templates/web/default/admin/search_reports.html:18
+#: templates/web/default/admin/reports.html:18
msgid "Anonymous"
msgstr "Anonym"
-#: templates/web/default/admin/report_edit.html:26
-#: templates/web/default/admin/update_edit.html:14
+#: templates/web/default/admin/report_edit.html:31
+#: templates/web/default/admin/update_edit.html:17
msgid "Anonymous:"
msgstr "Anonym:"
@@ -483,6 +502,29 @@ msgstr "Er du en utvikler?"
msgid "Are you from a council?"
msgstr "Der du fra den lokale administrasjonen?"
+#: templates/web/default/admin/body-form.html:19
+#: templates/web/zurich/admin/body-form.html:25
+msgid "Area covered"
+msgstr ""
+
+#: templates/web/zurich/admin/report_edit.html:99
+msgid "Assign to different category:"
+msgstr ""
+
+#: templates/web/zurich/admin/report_edit.html:108
+msgid "Assign to external body:"
+msgstr ""
+
+#: templates/web/zurich/admin/report_edit.html:140
+#: templates/web/zurich/admin/report_edit.html:87
+msgid "Assign to subdivision:"
+msgstr ""
+
+#: templates/web/zurich/report/updates.html:11
+#, fuzzy
+msgid "Assigned to %s"
+msgstr "Logget inn som %s"
+
#: templates/web/default/open311/index.html:17
msgid ""
"At most %d requests are returned in each query. The returned requests are "
@@ -497,6 +539,15 @@ msgstr ""
msgid "At the moment only searching for and looking at reports work."
msgstr "For øyeblikket er det kun søk etter og å se på rapporter som fungerer."
+#: perllib/FixMyStreet/DB/Result/Problem.pm:317
+#: templates/web/zurich/report/_item.html:9
+msgid "Awaiting moderation"
+msgstr ""
+
+#: templates/web/default/js/translation_strings.html:26
+msgid "Back"
+msgstr ""
+
#: templates/web/default/admin/report_blocks.html:11
msgid "Ban email address"
msgstr "Bannlys epostadresse"
@@ -507,10 +558,22 @@ msgid ""
"whom the report is sent."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1032
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1086
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:140
+#: templates/web/default/admin/bodies.html:1
+#: templates/web/zurich/header.html:63
msgid "Bodies"
msgstr ""
+#: templates/web/default/admin/reports.html:16
+#: templates/web/default/admin/users.html:14
+msgid "Body"
+msgstr ""
+
+#: templates/web/default/admin/user-form.html:7
+msgid "Body:"
+msgstr ""
+
#: templates/web/fiksgatami/footer.html:16
#: templates/web/fiksgatami/nn/footer.html:16
msgid ""
@@ -531,15 +594,20 @@ msgstr ""
"Hvis du ikke kan se kartet, <a href='%s' rel='nofollow'>hopp over dette "
"steget</a>."
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:631
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:658
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:638
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:665
#: templates/web/bromley/report/new/fill_in_details_form.html:68
-#: templates/web/default/admin/council_contacts.html:37
+#: templates/web/default/admin/bodies.html:11
+#: templates/web/default/admin/body.html:35
+#: templates/web/default/admin/flagged.html:14
#: 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/reports.html:17
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:74
-#: templates/web/zurich/report/new/fill_in_details_form.html:68
+#: templates/web/zurich/admin/body.html:13
+#: templates/web/zurich/admin/index-dm.html:22
+#: templates/web/zurich/admin/index-sdm.html:20
+#: templates/web/zurich/admin/reports.html:14
+#: templates/web/zurich/report/new/fill_in_details_form.html:50
msgid "Category"
msgstr "Kategori"
@@ -547,10 +615,13 @@ msgstr "Kategori"
msgid "Category fix rate for problems > 4 weeks old"
msgstr "Løsningsrate fordelt på kategori for problemer > 4 uker gamle"
-#: templates/web/default/admin/council_contacts.html:78
-#: templates/web/default/admin/council_edit.html:23
-#: templates/web/default/admin/report_edit.html:25
+#: templates/web/default/admin/body.html:75
+#: templates/web/default/admin/body_edit.html:23
+#: templates/web/default/admin/report_edit.html:30
#: templates/web/default/report/new/fill_in_details_form.html:67
+#: templates/web/zurich/admin/body.html:36
+#: templates/web/zurich/admin/report_edit-sdm.html:23
+#: templates/web/zurich/admin/report_edit.html:98
msgid "Category:"
msgstr "Kategori:"
@@ -564,15 +635,14 @@ msgstr "Kategori: %s"
msgid "Change Password"
msgstr "Bytt passord"
-#: templates/web/default/js/validation_strings.html:22
+#: templates/web/default/js/translation_strings.html:39
#: templates/web/fixmystreet/around/_report_banner.html:2
msgid "Click map to report a problem"
msgstr "Klikk i kartet for å rapportere et problem"
#: templates/web/bromley/report/display.html:80
#: templates/web/bromley/report/display.html:82
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:20
+#: templates/web/default/admin/report_edit.html:25
#: templates/web/default/dashboard/index.html:138
#: templates/web/default/dashboard/index.html:140
#: templates/web/default/report/update-form.html:30
@@ -580,10 +650,16 @@ msgstr "Klikk i kartet for å rapportere et problem"
#: templates/web/fixmystreet/report/banner.html:15
#: templates/web/fixmystreet/report/update-form.html:28
#: templates/web/fixmystreet/report/update-form.html:30
+#: templates/web/zurich/admin/header.html:1
+#: templates/web/zurich/admin/header.html:10
+#: templates/web/zurich/admin/header.html:12
+#: templates/web/zurich/admin/report_edit.html:75
+#: templates/web/zurich/admin/report_edit.html:77
+#: templates/web/zurich/report/banner.html:13
msgid "Closed"
msgstr "Lukket"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:695
+#: perllib/FixMyStreet/DB/Result/Problem.pm:720
msgid "Closed by council"
msgstr "(ikke rapportert til administrasjonen)"
@@ -591,7 +667,7 @@ msgstr "(ikke rapportert til administrasjonen)"
msgid "Closed reports"
msgstr "Fiksede rapporter"
-#: templates/web/default/admin/problem_row.html:25
+#: templates/web/default/admin/problem_row.html:27
msgid "Closed:"
msgstr "Lukket:"
@@ -600,48 +676,38 @@ msgstr "Lukket:"
msgid "Closest nearby problems <small>(within&nbsp;%skm)</small>"
msgstr "De nærmeste problemene <small>(innenfor&nbsp;%skm)</small>"
-#: templates/web/default/admin/report_edit.html:15
+#: templates/web/default/admin/report_edit.html:17
+#: templates/web/zurich/admin/report_edit-sdm.html:19
+#: templates/web/zurich/admin/report_edit.html:37
msgid "Co-ordinates:"
msgstr "Koordinater:"
-#: templates/web/default/admin/list_flagged.html:16
+#: templates/web/default/admin/flagged.html:16
#: templates/web/default/admin/list_updates.html:13
-#: templates/web/default/admin/search_reports.html:19
+#: templates/web/default/admin/reports.html:19
msgid "Cobrand"
msgstr "Merkevaresamarbeid"
-#: templates/web/default/admin/report_edit.html:39
-#: templates/web/default/admin/update_edit.html:41
+#: templates/web/default/admin/report_edit.html:44
+#: templates/web/default/admin/update_edit.html:44
msgid "Cobrand data:"
msgstr "Merkevaresamarbeidsdata:"
-#: templates/web/default/admin/report_edit.html:38
-#: templates/web/default/admin/update_edit.html:40
+#: templates/web/default/admin/report_edit.html:43
+#: templates/web/default/admin/update_edit.html:43
msgid "Cobrand:"
msgstr "Merkevaresamarbeid:"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:365
-msgid "Configuration updated"
-msgstr "Oppsett oppdatert"
-
-#: perllib/FixMyStreet/App/Controller/Admin.pm:380
+#: perllib/FixMyStreet/App/Controller/Admin.pm:395
msgid "Configuration updated - contacts will be generated automatically later"
msgstr "Oppsett oppdatert - kontakter vil bli generert automatisk senere"
-#: templates/web/default/admin/council_edit.html:34
+#: templates/web/default/admin/body_edit.html:47
#, fuzzy
msgid "Configure Endpoint"
msgstr "Sett opp Open311"
-#: templates/web/default/admin/council_contacts.html:168
-msgid "Configure Open311"
-msgstr "Sett opp Open311"
-
-#: templates/web/default/admin/council_contacts.html:116
-msgid "Configure Open311 integration"
-msgstr "Sett opp Open311-integrasjon"
-
-#: templates/web/default/admin/council_contacts.html:46
+#: templates/web/default/admin/body.html:44
msgid "Confirm"
msgstr "Bekreft"
@@ -665,13 +731,17 @@ msgstr ""
#: templates/web/emptyhomes/tokens/confirm_problem.html:3
#: templates/web/southampton/tokens/confirm_problem.html:1
#: templates/web/southampton/tokens/confirm_problem.html:3
+#: templates/web/zurich/tokens/confirm_problem.html:1
+#: templates/web/zurich/tokens/confirm_problem.html:3
msgid "Confirmation"
msgstr "Bekreftelse"
-#: templates/web/default/admin/council_contacts.html:39
-#: templates/web/default/admin/council_contacts.html:88
-#: templates/web/default/admin/council_edit.html:28
-#: templates/web/default/admin/council_edit.html:71
+#: templates/web/default/admin/body.html:37
+#: templates/web/default/admin/body.html:85
+#: templates/web/default/admin/body_edit.html:32
+#: templates/web/default/admin/body_edit.html:84
+#: templates/web/zurich/admin/report_edit-sdm.html:26
+#: templates/web/zurich/admin/report_edit.html:43
msgid "Confirmed"
msgstr "Bekreftet"
@@ -680,8 +750,8 @@ msgstr "Bekreftet"
msgid "Confirmed reports between %s and %s"
msgstr "%srapporter mellom %s og %s"
-#: templates/web/default/admin/problem_row.html:23
-#: templates/web/default/admin/report_edit.html:34
+#: templates/web/default/admin/problem_row.html:25
+#: templates/web/default/admin/report_edit.html:39
msgid "Confirmed:"
msgstr "Bekreftet:"
@@ -710,36 +780,30 @@ msgstr "Kontakt oss"
msgid "Contact the team"
msgstr "Kontakt prosjektgruppen"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1159
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1187
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1219
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1247
msgid "Could not find user"
msgstr "Kunne ikke finne bruker"
-#: templates/web/default/admin/list_flagged.html:13
+#: templates/web/default/js/translation_strings.html:31
+msgid "Could not look up location"
+msgstr ""
+
+#: templates/web/default/admin/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"
-#: templates/web/default/admin/council_list.html:1
-msgid "Council contacts"
-msgstr "Administrasjonskontakter"
-
-#: templates/web/default/admin/council_contacts.html:1
-#: templates/web/default/admin/council_edit.html:1
+#: templates/web/default/admin/body.html:1
+#: templates/web/default/admin/body_edit.html:1
+#: templates/web/zurich/admin/body.html:1
msgid "Council contacts for %s"
msgstr "Administrasjonskontakter for %s"
#: templates/web/default/admin/stats.html:84
-#: templates/web/default/admin/user_edit.html:12
msgid "Council:"
msgstr "Administrasjon:"
-#: templates/web/default/admin/council_list.html:36
-msgid "Councils"
-msgstr "Administrasjoner"
-
#: templates/web/default/admin/stats.html:12
#: templates/web/default/admin/stats.html:32
msgid "Count"
@@ -749,18 +813,23 @@ msgstr "Antall"
msgid "Create a report"
msgstr "Lag en rapport"
-#: templates/web/default/admin/council_contacts.html:107
+#: templates/web/default/admin/body.html:103
+#: templates/web/zurich/admin/body.html:53
msgid "Create category"
msgstr "Lag kategori"
-#: templates/web/default/admin/list_flagged.html:17
+#: templates/web/default/admin/flagged.html:17
#: templates/web/default/admin/list_updates.html:9
-#: templates/web/default/admin/search_reports.html:20
+#: templates/web/default/admin/reports.html:20
+#: templates/web/zurich/admin/list_updates.html:6
msgid "Created"
msgstr "Opprettet"
-#: templates/web/default/admin/report_edit.html:33
-#: templates/web/default/admin/update_edit.html:42
+#: templates/web/default/admin/report_edit.html:38
+#: templates/web/default/admin/update_edit.html:45
+#: templates/web/zurich/admin/report_edit-sdm.html:28
+#: templates/web/zurich/admin/report_edit.html:46
+#: templates/web/zurich/admin/update_edit.html:29
msgid "Created:"
msgstr "Opprettet:"
@@ -768,38 +837,44 @@ msgstr "Opprettet:"
msgid "Current state"
msgstr "Gjeldende tilstand"
-#: templates/web/default/admin/council_list.html:40
-msgid "Currently has 1+ deleted"
-msgstr "For tiden har 1+ slettet"
-
#: templates/web/default/dashboard/index.html:5
#: templates/web/default/dashboard/index.html:7
msgid "Dashboard"
msgstr "Oversikt"
-#: templates/web/default/admin/council_contacts.html:40
-#: templates/web/default/admin/council_contacts.html:91
-#: templates/web/default/admin/council_edit.html:29
-#: templates/web/default/admin/council_edit.html:72
+#: templates/web/default/admin/body.html:38
+#: templates/web/default/admin/body.html:88
+#: templates/web/default/admin/body_edit.html:37
+#: templates/web/default/admin/body_edit.html:85
msgid "Deleted"
msgstr "Slettet"
+#: templates/web/zurich/admin/index-dm.html:21
+#: templates/web/zurich/admin/index-sdm.html:19
+#: templates/web/zurich/admin/reports.html:13
+msgid "Description"
+msgstr ""
+
#: templates/web/bromley/report/new/fill_in_details_form.html:54
+#: templates/web/default/js/translation_strings.html:28
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:66
-#: templates/web/zurich/report/new/fill_in_details_form.html:60
+#: templates/web/zurich/report/new/fill_in_details_form.html:42
msgid "Details"
msgstr "Detaljer"
#: templates/web/default/admin/report_edit.html:14
#: templates/web/default/report/new/fill_in_details_form.html:61
+#: templates/web/zurich/admin/report_edit-sdm.html:14
+#: templates/web/zurich/admin/report_edit.html:22
+#: templates/web/zurich/admin/report_edit.html:29
msgid "Details:"
msgstr "Detaljer:"
-#: templates/web/default/admin/council_contacts.html:41
+#: templates/web/default/admin/body.html:39
msgid "Devolved"
msgstr ""
-#: templates/web/default/admin/council_list.html:23
+#: templates/web/default/admin/edit-league.html:1
msgid "Diligency prize league table"
msgstr "Arbeidshester"
@@ -821,16 +896,25 @@ msgid "Don&rsquo;t know"
msgstr "Vet ikke"
#: templates/web/default/admin/list_updates.html:35
-#: templates/web/default/admin/problem_row.html:29
-#: templates/web/default/admin/search_users.html:24
+#: templates/web/default/admin/problem_row.html:31
+#: templates/web/default/admin/users.html:28
+#: templates/web/zurich/admin/problem_row.html:35
msgid "Edit"
msgstr "Rediger"
+#: templates/web/default/admin/body.html:112
+#: templates/web/zurich/admin/body.html:64
+msgid "Edit body details"
+msgstr ""
+
#: templates/web/default/admin/report_edit.html:1
+#: templates/web/zurich/admin/report_edit-sdm.html:1
+#: templates/web/zurich/admin/report_edit.html:4
msgid "Editing problem %d"
msgstr "Rediger problem %d"
#: templates/web/default/admin/update_edit.html:1
+#: templates/web/zurich/admin/update_edit.html:1
msgid "Editing update %d"
msgstr "Redigerer oppdatering %d"
@@ -838,28 +922,31 @@ msgstr "Redigerer oppdatering %d"
msgid "Editing user %d"
msgstr "Redigerer bruker %d"
-#: templates/web/default/admin/council_edit.html:73
+#: templates/web/default/admin/body_edit.html:86
msgid "Editor"
msgstr "Oppdatert av"
#: templates/web/bromley/report/display.html:126
-#: templates/web/default/admin/council_contacts.html:38
-#: templates/web/default/admin/council_edit.html:70
-#: templates/web/default/admin/list_flagged.html:12
-#: templates/web/default/admin/list_flagged.html:35
+#: templates/web/default/admin/bodies.html:9
+#: templates/web/default/admin/body.html:36
+#: templates/web/default/admin/body_edit.html:83
+#: templates/web/default/admin/flagged.html:12
+#: templates/web/default/admin/flagged.html:35
#: templates/web/default/admin/list_updates.html:8
-#: templates/web/default/admin/search_reports.html:15
-#: templates/web/default/admin/search_users.html:13
+#: templates/web/default/admin/reports.html:15
+#: templates/web/default/admin/users.html:13
#: templates/web/fixmystreet/auth/general.html:20
#: templates/web/fixmystreet/report/update-form.html:74
+#: templates/web/zurich/admin/body-form.html:9
+#: templates/web/zurich/admin/body.html:14
msgid "Email"
msgstr "E-post"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1135
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1195
msgid "Email added to abuse list"
msgstr "Epost lagt til misbruksliste"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1132
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1192
msgid "Email already in abuse list"
msgstr "Epost allerede i misbrukslisten"
@@ -871,25 +958,28 @@ msgstr "Send meg e-post om lokale problemer"
msgid "Email me updates"
msgstr "Send meg oppdateringer"
-#: templates/web/default/admin/council_contacts.html:83
-#: 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/admin/body.html:80
+#: templates/web/default/admin/body_edit.html:26
+#: templates/web/default/admin/report_edit.html:36
+#: templates/web/default/admin/update_edit.html:27
+#: templates/web/default/admin/user-form.html:6
#: templates/web/default/alert/updates.html:13
#: templates/web/default/report/display.html:34
+#: templates/web/zurich/admin/body.html:41
+#: templates/web/zurich/admin/report_edit-sdm.html:25
+#: templates/web/zurich/admin/report_edit.html:42
msgid "Email:"
msgstr "E-post:"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:610
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:617
msgid "Empty flat or maisonette"
msgstr "Tom leilighet"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:609
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:616
msgid "Empty house or bungalow"
msgstr "Tomt hus eller bungalow"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:612
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:619
msgid "Empty office or other commercial"
msgstr "Tomt kontor eller forretningsbygg"
@@ -897,11 +987,11 @@ msgstr "Tomt kontor eller forretningsbygg"
msgid "Empty property details form"
msgstr "Tom eiendom detaljskjema"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:613
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:620
msgid "Empty pub or bar"
msgstr "Tom pub eller bar"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:614
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:621
msgid "Empty public building - school, hospital, etc."
msgstr "Tom offentlig bygning - skole, sykehos, etc."
@@ -917,8 +1007,13 @@ msgstr "Slutt-dag:"
msgid "End month:"
msgstr "Sluttmåned:"
+#: templates/web/default/admin/body-form.html:40
+#, fuzzy
+msgid "Endpoint"
+msgstr "Sett opp Open311"
+
# Kan "Oppgi" være bedre?
-#: perllib/FixMyStreet/Cobrand/Zurich.pm:9
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:25
#, fuzzy
msgid "Enter a Z&uuml;rich street name"
msgstr "Skriv inn et veinavn og sted"
@@ -974,8 +1069,8 @@ msgstr "Legg inn detaljer om problemet"
msgid "Error"
msgstr "Feil"
-#: templates/web/default/admin/council_contacts.html:13
-#: templates/web/default/admin/council_edit.html:18
+#: templates/web/default/admin/body.html:11
+#: templates/web/default/admin/body_edit.html:18
msgid "Example postcode %s"
msgstr "Eksempel-postnummer %s"
@@ -983,7 +1078,7 @@ msgstr "Eksempel-postnummer %s"
msgid "Examples:"
msgstr "Eksempler:"
-#: templates/web/default/admin/report_edit.html:40
+#: templates/web/default/admin/report_edit.html:45
msgid "Extra data:"
msgstr "Ekstra data:"
@@ -996,6 +1091,12 @@ msgstr ""
"Klarte ikke å sende melding. Vennligst prøv igjen senere eller <a href="
"\"mailto:%s\">send oss en e-post</a>."
+#: templates/web/zurich/admin/index-dm.html:32
+#: templates/web/zurich/admin/index-sdm.html:29
+#, fuzzy
+msgid "Filter report list"
+msgstr "Fiksede rapporter"
+
#: templates/web/bromley/report/display.html:189
#: templates/web/bromley/report/new/fill_in_details_form.html:113
#: templates/web/bromley/report/new/fill_in_details_form.html:160
@@ -1054,8 +1155,7 @@ msgstr ""
#: templates/web/bromley/report/display.html:80
#: templates/web/bromley/report/display.html:82
#: templates/web/default/admin/index.html:36
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:20
+#: templates/web/default/admin/report_edit.html:25
#: templates/web/default/dashboard/index.html:138
#: templates/web/default/dashboard/index.html:140
#: templates/web/default/report/update-form.html:30
@@ -1066,13 +1166,11 @@ msgstr ""
msgid "Fixed"
msgstr "Løst"
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:21
+#: templates/web/default/admin/report_edit.html:26
msgid "Fixed - Council"
msgstr "Løst - Administrasjon"
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:21
+#: templates/web/default/admin/report_edit.html:26
msgid "Fixed - User"
msgstr "Løst - Bruker"
@@ -1080,7 +1178,7 @@ msgstr "Løst - Bruker"
msgid "Fixed reports"
msgstr "Fiksede rapporter"
-#: templates/web/default/admin/problem_row.html:24
+#: templates/web/default/admin/problem_row.html:26
msgid "Fixed:"
msgstr "Løst:"
@@ -1088,13 +1186,13 @@ msgstr "Løst:"
msgid "Flag user"
msgstr "Flag bruker"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1037
-#: templates/web/default/admin/search_users.html:15
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1091
+#: templates/web/default/admin/users.html:16
msgid "Flagged"
msgstr "Flagget:"
-#: templates/web/default/admin/report_edit.html:42
-#: templates/web/default/admin/user_edit.html:18
+#: templates/web/default/admin/report_edit.html:47
+#: templates/web/default/admin/user-form.html:14
msgid "Flagged:"
msgstr "Flagget:"
@@ -1104,7 +1202,7 @@ msgstr "Flagget:"
msgid "Follow a ward link to view only reports within that ward."
msgstr "Følg en bydelslenke for å kun se rapporter innenfor den bydelen."
-#: templates/web/default/admin/report_edit.html:16
+#: templates/web/default/admin/report_edit.html:21
msgid "For council(s):"
msgstr "For administrasjon(ene):"
@@ -1122,7 +1220,7 @@ msgstr "Ditt passord"
#: templates/web/fixmybarangay/faq/faq-en-gb.html:1
#: templates/web/fixmystreet/faq/faq-en-gb.html:1
#: templates/web/fixmystreet/static/privacy.html:1
-#: templates/web/zurich/faq/faq-de.html:1
+#: templates/web/zurich/faq/faq-de-ch.html:1
msgid "Frequently Asked Questions"
msgstr "Ofte spurte spørsmål"
@@ -1135,7 +1233,7 @@ msgid "GeoRSS on Google Maps"
msgstr "GeoRSS på Google Maps"
#: templates/web/bromley/report/display.html:30
-#: templates/web/fixmystreet/report/display.html:31
+#: templates/web/fixmystreet/report/display.html:38
msgid "Get updates"
msgstr "Få oppdateringer"
@@ -1162,11 +1260,12 @@ msgstr "Gi meg en RSS-strøm"
msgid "Go"
msgstr "Fortsett"
-#: templates/web/default/admin/report_edit.html:41
+#: templates/web/default/admin/report_edit.html:46
msgid "Going to send questionnaire?"
msgstr "Skal det sendes spørreskjema?"
#: templates/web/default/admin/index.html:24
+#: templates/web/zurich/admin/index.html:11
msgid "Graph of problem creation by status over time"
msgstr "Graf over problemoppretting fordelt på status over tid"
@@ -1198,7 +1297,8 @@ msgstr ""
#: templates/web/fixmybarangay/footer.html:24
#: templates/web/fixmystreet/footer.html:53
#: templates/web/reading/footer.html:10 templates/web/stevenage/footer.html:47
-#: templates/web/zurich/footer.html:14
+#: templates/web/zurich/footer.html:21
+#: templates/web/zurich/nav_over_content.html:8
msgid "Help"
msgstr "Hjelp"
@@ -1212,34 +1312,45 @@ msgstr ""
#: templates/web/bromley/header.html:99
#: templates/web/fixmybarangay/header.html:64
#: templates/web/fixmystreet/header.html:49
-#: templates/web/stevenage/header.html:97 templates/web/zurich/header.html:47
+#: templates/web/stevenage/header.html:97 templates/web/zurich/footer.html:11
msgid "Hi %s"
msgstr "Hei, %s"
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:21
-#: templates/web/default/admin/update_edit.html:19
+#: templates/web/default/admin/report_edit.html:26
+#: templates/web/default/admin/update_edit.html:22
+#: templates/web/zurich/admin/header.html:1
+#: templates/web/zurich/admin/header.html:11
+#: templates/web/zurich/admin/report_edit.html:70
+#: templates/web/zurich/admin/update_edit.html:18
msgid "Hidden"
msgstr "Skjul"
-#: templates/web/default/around/display_location.html:63
+#: templates/web/default/around/display_location.html:66
msgid "Hide old"
msgstr "Skjul gamle"
-#: templates/web/default/around/display_location.html:58
+#: templates/web/default/around/display_location.html:61
msgid "Hide pins"
msgstr "Skjul nåler"
-#: templates/web/default/admin/council_edit.html:66
+#: templates/web/default/admin/body_edit.html:79
msgid "History"
msgstr "Historie"
+#: templates/web/default/js/translation_strings.html:25
+msgid "Home"
+msgstr ""
+
#: templates/web/default/index-steps.html:1
#: templates/web/emptyhomes/index.html:53
msgid "How to report a problem"
msgstr "Hvordan rapportere et problem"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:648
+#: templates/web/default/js/translation_strings.html:27
+msgid "How to send successful reports"
+msgstr ""
+
+#: perllib/FixMyStreet/App/Controller/Admin.pm:670
msgid "I am afraid you cannot confirm unconfirmed reports."
msgstr "Jeg er redd du ikke kan bekrefte ubekreftede rapporter."
@@ -1255,7 +1366,7 @@ 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:235
+#: perllib/FixMyStreet/App/Controller/Tokens.pm:257
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"
@@ -1263,14 +1374,33 @@ msgstr ""
"Jeg er redd vi ikke kunne verifisere den referansen. Hvis du kopierte "
"webadressen fra en e-post, sjekk at du har kopiert den korrekt.\n"
-#: templates/web/default/admin/list_flagged.html:9
+#: templates/web/default/admin/flagged.html:9
#: templates/web/default/admin/list_updates.html:5
-#: templates/web/default/admin/search_reports.html:12
+#: templates/web/default/admin/reports.html:12
+#: templates/web/zurich/admin/index-dm.html:20
+#: templates/web/zurich/admin/index-sdm.html:18
+#: templates/web/zurich/admin/list_updates.html:5
+#: templates/web/zurich/admin/reports.html:12
msgid "ID"
msgstr "ID"
-#: templates/web/default/report/new/councils_text_none.html:11
-#: templates/web/default/report/new/councils_text_none.html:12
+#: templates/web/default/email_sent.html:19
+#, fuzzy
+msgid "If you do not, your alert will not be activated."
+msgstr "ditt varsel vil ikke bli aktivert"
+
+#: templates/web/default/email_sent.html:15
+#, fuzzy
+msgid "If you do not, your problem will not be posted."
+msgstr "vil ditt problem ikke bli publisert"
+
+#: templates/web/default/email_sent.html:17
+#, fuzzy
+msgid "If you do not, your update will not be posted."
+msgstr "din oppdatering vil ikke bli publisert"
+
+#: templates/web/default/report/new/councils_text_none.html:8
+#: templates/web/default/report/new/councils_text_none.html:9
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."
@@ -1290,8 +1420,8 @@ msgstr ""
"inn din rapport, slik at vi kan vise administrasjonen aktiviteten i deres "
"område."
-#: templates/web/default/auth/token.html:23
-#: templates/web/default/email_sent.html:24
+#: templates/web/default/auth/token.html:25
+#: templates/web/default/email_sent.html:9
msgid ""
"If you use web-based email or have 'junk mail' filters, you may wish to "
"check your bulk/spam mail folders: sometimes, our messages are marked that "
@@ -1320,19 +1450,6 @@ msgstr "Ugyldig ID"
msgid "Illegal feed selection"
msgstr "Ugyldig valg av feed"
-#: templates/web/bromley/report/display.html:80
-#: templates/web/bromley/report/display.html:82
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:20
-#: templates/web/default/dashboard/index.html:138
-#: templates/web/default/dashboard/index.html:140
-#: templates/web/default/report/update-form.html:30
-#: templates/web/default/report/update-form.html:32
-#: templates/web/fixmystreet/report/update-form.html:28
-#: templates/web/fixmystreet/report/update-form.html:30
-msgid "In Progress"
-msgstr "Under arbeid"
-
#: templates/web/default/open311/index.html:21
msgid ""
"In addition, the following attributes that are not part of the Open311 v2 "
@@ -1345,38 +1462,60 @@ msgstr ""
"del av description), interface_used, comment_count, requestor_name (kun "
"tilstede hvis innsender tillot at navnet kunne vises på dette nettstedet)."
+#: templates/web/bromley/report/display.html:80
+#: templates/web/bromley/report/display.html:82
+#: templates/web/default/admin/report_edit.html:25
+#: templates/web/default/dashboard/index.html:138
+#: templates/web/default/dashboard/index.html:140
+#: templates/web/default/report/update-form.html:30
+#: templates/web/default/report/update-form.html:32
#: templates/web/fixmystreet/report/banner.html:19
+#: templates/web/fixmystreet/report/update-form.html:28
+#: templates/web/fixmystreet/report/update-form.html:30
+#: templates/web/zurich/admin/header.html:1
+#: templates/web/zurich/admin/header.html:8
+#: templates/web/zurich/admin/report_edit.html:79
+#: templates/web/zurich/report/banner.html:15
msgid "In progress"
msgstr "Under arbeid"
+#: templates/web/zurich/admin/report_edit.html:118
+#, fuzzy
+msgid "Include reporter personal details"
+msgstr "Legg inn opplysninger om problemet"
+
#: templates/web/default/admin/stats.html:76
msgid "Include unconfirmed reports"
msgstr "Inkluder ubekreftede problemer"
-#: perllib/FixMyStreet/App/Controller/Open311.pm:356
+#: perllib/FixMyStreet/App/Controller/Open311.pm:348
msgid "Incorrect has_photo value \"%s\""
msgstr "Feil has_photo-verdi \"%s\""
-#: perllib/FixMyStreet/App/Controller/Open311.pm:341
+#: templates/web/zurich/admin/report_edit-sdm.html:37
+#: templates/web/zurich/admin/report_edit.html:61
+msgid "Internal notes:"
+msgstr ""
+
+#: perllib/FixMyStreet/App/Controller/Open311.pm:333
msgid "Invalid agency_responsible value %s"
msgstr "Ugyldig agency_responsible-verdi %s"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:952
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1006
msgid "Invalid end date"
msgstr "Ugyldig slutt-dato"
-#: perllib/FixMyStreet/App/Controller/Open311.pm:432
+#: perllib/FixMyStreet/App/Controller/Open311.pm:424
msgid "Invalid format %s specified."
msgstr "Ugyldig format %s oppgitt."
-#: perllib/FixMyStreet/App/Controller/Admin.pm:942
+#: perllib/FixMyStreet/App/Controller/Admin.pm:996
msgid "Invalid start date"
msgstr "Ugyldig startdato"
#: templates/web/bromley/report/display.html:80
#: templates/web/bromley/report/display.html:81
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:19
+#: templates/web/default/admin/report_edit.html:24
#: templates/web/default/dashboard/index.html:138
#: templates/web/default/dashboard/index.html:139
#: templates/web/default/report/update-form.html:30
@@ -1416,27 +1555,28 @@ msgstr "Husk min innlogging på denne datamaskinen"
msgid "Last Name"
msgstr "Etternavn"
-#: templates/web/default/admin/council_contacts.html:42
+#: templates/web/default/admin/body.html:40
+#: templates/web/zurich/admin/body.html:15
msgid "Last editor"
msgstr "Sist redigert av"
-#: templates/web/default/admin/report_edit.html:36
+#: templates/web/default/admin/report_edit.html:41
msgid "Last update:"
msgstr "Siste oppdatering:"
-#: templates/web/default/admin/problem_row.html:26
+#: templates/web/default/admin/problem_row.html:28
msgid "Last&nbsp;update:"
msgstr "Siste&nbsp;oppdatering:"
-#: templates/web/default/admin/council_contacts.html:16
-#: templates/web/default/admin/council_contacts.html:18
+#: templates/web/default/admin/body.html:14
+#: templates/web/default/admin/body.html:16
msgid "List all reported problems"
msgstr "List alle rapporterte problemer"
#: templates/web/bromley/report/new/fill_in_details_form.html:69
#: templates/web/default/report/new/fill_in_details_form.html:68
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:75
-#: templates/web/zurich/report/new/fill_in_details_form.html:69
+#: templates/web/zurich/report/new/fill_in_details_form.html:51
msgid "Loading..."
msgstr "Laster..."
@@ -1479,6 +1619,10 @@ msgstr "Lokale varsler"
msgid "Locate the problem on a map of the area"
msgstr "Lokaliser problemet på kartet over området"
+#: templates/web/default/js/translation_strings.html:37
+msgid "MAP"
+msgstr ""
+
#: perllib/FixMyStreet/Map/OSM.pm:44
msgid ""
"Map &copy; <a id=\"osm_link\" href=\"http://www.openstreetmap.org/"
@@ -1497,7 +1641,7 @@ msgstr "Melding"
msgid "Message:"
msgstr "Melding:"
-#: perllib/FixMyStreet/App/Controller/Open311.pm:440
+#: perllib/FixMyStreet/App/Controller/Open311.pm:432
msgid "Missing jurisdiction_id"
msgstr "Mangler jurisdiction_id"
@@ -1509,11 +1653,13 @@ msgstr "Måned"
msgid "More problems nearby"
msgstr "Flere problemer i nærheten"
-#: templates/web/default/admin/list_flagged.html:11
-#: templates/web/default/admin/list_flagged.html:34
+#: templates/web/default/admin/bodies.html:7
+#: templates/web/default/admin/body-form.html:4
+#: templates/web/default/admin/flagged.html:11
+#: templates/web/default/admin/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/admin/reports.html:14
+#: templates/web/default/admin/users.html:12
#: templates/web/default/reports/index.html:15
#: templates/web/emptyhomes/reports/index.html:10
#: templates/web/fiksgatami/nn/reports/index.html:9
@@ -1523,13 +1669,16 @@ msgstr "Flere problemer i nærheten"
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:120
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:197
#: templates/web/fixmystreet/report/update-form.html:134
-#: templates/web/zurich/report/new/fill_in_details_form.html:118
+#: templates/web/zurich/admin/body-form.html:4
+#: templates/web/zurich/report/new/fill_in_details_form.html:100
msgid "Name"
msgstr "Navn"
-#: templates/web/default/admin/report_edit.html:30
-#: templates/web/default/admin/update_edit.html:23
-#: templates/web/default/admin/user_edit.html:10
+#: templates/web/default/admin/report_edit.html:35
+#: templates/web/default/admin/update_edit.html:26
+#: templates/web/default/admin/user-form.html:5
+#: templates/web/zurich/admin/report_edit-sdm.html:24
+#: templates/web/zurich/admin/report_edit.html:41
msgid "Name:"
msgstr "Navn:"
@@ -1547,7 +1696,7 @@ msgstr ""
"Nærmeste navngitte vei til nålen plassert på kartet (automatisk generert ved "
"hjelp av OpenStreetMap): %s%s"
-#: perllib/FixMyStreet/Cobrand/UK.pm:152
+#: perllib/FixMyStreet/Cobrand/UK.pm:148
msgid ""
"Nearest postcode to the pin placed on the map (automatically generated): %s "
"(%sm away)"
@@ -1564,7 +1713,7 @@ msgstr ""
"Nærmeste vei til nålen plassert på kartet (automatisk generert ved hjelp av "
"Bing Maps): %s"
-#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:265
+#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:267
msgid ""
"Nearest road to the pin placed on the map (automatically generated by Bing "
"Maps): %s\n"
@@ -1574,7 +1723,7 @@ msgstr ""
"Bing Maps) er: %s\n"
"\n"
-#: templates/web/default/email_sent.html:20
+#: templates/web/default/email_sent.html:3
msgid "Nearly Done! Now check your email..."
msgstr "Nesten ferdig! Nå må du sjekke e-posten din..."
@@ -1583,7 +1732,12 @@ msgstr "Nesten ferdig! Nå må du sjekke e-posten din..."
msgid "New <br>problems"
msgstr "Nye <br>problemer"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:320
+#: perllib/FixMyStreet/App/Controller/Admin.pm:249
+#, fuzzy
+msgid "New body added"
+msgstr "Ny kategorikontakt lagt til"
+
+#: perllib/FixMyStreet/App/Controller/Admin.pm:351
msgid "New category contact added"
msgstr "Ny kategorikontakt lagt til"
@@ -1621,6 +1775,11 @@ msgstr "Nye problemer i {{COUNCIL}} på FiksGataMi"
msgid "New problems within {{NAME}}'s boundary on FixMyStreet"
msgstr "Nye rapporter innenfor grensen til {{NAME}} på FiksGataMi"
+#: templates/web/zurich/admin/index-sdm.html:4
+#, fuzzy
+msgid "New reports"
+msgstr "Åpne rapporter"
+
#: db/alert_types_eha.pl:23
msgid ""
"New reports for {{COUNCIL}} within {{WARD}} ward on reportemptyhomes.com"
@@ -1647,23 +1806,28 @@ msgstr "Nye rapporter innenfor grensen til {{NAME}} på reportemptyhomes.com"
msgid "New state"
msgstr "Ny tilstand"
+#: templates/web/zurich/admin/report_edit-sdm.html:40
+#, fuzzy
+msgid "New update:"
+msgstr "Få oppdateringer"
+
#: templates/web/fiksgatami/front/news.html:9
#: templates/web/fiksgatami/nn/front/news.html:9
#: templates/web/fixmystreet/front/news.html:8
msgid "New!"
msgstr "Ny!"
-#: templates/web/default/admin/council_contacts.html:52
-#: templates/web/default/admin/council_contacts.html:53
-#: templates/web/default/admin/council_contacts.html:54
-#: templates/web/default/admin/council_edit.html:4
+#: templates/web/default/admin/body.html:50
+#: templates/web/default/admin/body.html:51
+#: templates/web/default/admin/body.html:52
+#: templates/web/default/admin/body_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:28
-#: templates/web/default/admin/report_edit.html:41
-#: templates/web/default/admin/update_edit.html:16
+#: templates/web/default/admin/problem_row.html:21
+#: templates/web/default/admin/report_edit.html:33
+#: templates/web/default/admin/report_edit.html:46
+#: templates/web/default/admin/update_edit.html:19
#: templates/web/default/questionnaire/creator_fixed.html:16
#: templates/web/default/questionnaire/index.html:107
#: templates/web/default/questionnaire/index.html:68
@@ -1672,30 +1836,34 @@ msgstr "Ny!"
msgid "No"
msgstr "Nei"
+#: templates/web/default/admin/user-form.html:8
+msgid "No body"
+msgstr ""
+
#: templates/web/default/admin/stats.html:85
-#: templates/web/default/admin/user_edit.html:13
msgid "No council"
msgstr "Ingen administrasjon"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:336
+#: perllib/FixMyStreet/DB/Result/Problem.pm:345
msgid "No council selected"
msgstr "Ingen administrasjon er valgt"
-#: templates/web/default/admin/council_list.html:32
+#: templates/web/default/admin/edit-league.html:10
msgid "No edits have yet been made."
msgstr "Ingenting endringer har blitt gjort."
-#: templates/web/default/admin/list_flagged.html:26
+#: templates/web/default/admin/flagged.html:26
msgid "No flagged problems found"
msgstr "Ingen flaggede problemer ble funnet"
-#: templates/web/default/admin/list_flagged.html:47
+#: templates/web/default/admin/flagged.html:47
msgid "No flagged users found"
msgstr "Ingen flaggede brukere ble funnet"
-#: templates/web/default/admin/council_list.html:38
-msgid "No info at all"
-msgstr "Helt uten informasjon"
+#: templates/web/zurich/admin/report_edit-sdm.html:46
+#, fuzzy
+msgid "No further updates"
+msgstr "Dine oppdateringer"
#: templates/web/default/around/around_map_list_items.html:17
#: templates/web/fixmystreet/around/around_map_list_items.html:8
@@ -1707,19 +1875,28 @@ msgstr "Ingen problemer ble funnet."
msgid "No problems have been reported yet."
msgstr "Ingen problemer er rapportert"
+#: templates/web/default/js/translation_strings.html:32
+msgid "No result returned"
+msgstr ""
+
#: templates/web/default/report/_support.html:3
msgid "No supporters"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:57
+#: templates/web/default/admin/body.html:55
msgid "Non Public"
msgstr ""
-#: templates/web/default/admin/council_list.html:5
-#: templates/web/default/admin/report_edit.html:16
+#: templates/web/default/admin/report_edit.html:21
+#: templates/web/zurich/admin/report_edit-sdm.html:27
+#: templates/web/zurich/admin/report_edit.html:45
msgid "None"
msgstr "Ingen"
+#: templates/web/zurich/admin/report_edit-sdm.html:10
+msgid "Not for my subdivision"
+msgstr ""
+
#: templates/web/default/admin/questionnaire.html:6
msgid "Not reported before"
msgstr "Ikke rapportert tidligere"
@@ -1729,8 +1906,9 @@ msgstr "Ikke rapportert tidligere"
msgid "Not reported to council"
msgstr "Ikke rapportert til administrasjonen"
-#: templates/web/default/admin/council_contacts.html:43
-#: templates/web/default/admin/council_edit.html:74
+#: templates/web/default/admin/body.html:41
+#: templates/web/default/admin/body_edit.html:87
+#: templates/web/zurich/admin/body.html:16
msgid "Note"
msgstr "Merk"
@@ -1744,8 +1922,9 @@ msgstr ""
"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:95
-#: templates/web/default/admin/council_edit.html:32
+#: templates/web/default/admin/body.html:92
+#: templates/web/default/admin/body_edit.html:44
+#: templates/web/zurich/admin/body.html:47
msgid "Note:"
msgstr "Merk:"
@@ -1770,6 +1949,10 @@ 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?"
+#: templates/web/default/js/translation_strings.html:36
+msgid "OK"
+msgstr ""
+
#: templates/web/default/report/display.html:21
#: templates/web/default/report/update.html:16
msgid "Offensive? Unsuitable? Tell us"
@@ -1812,11 +1995,16 @@ msgid "Older problems"
msgstr "Eldre problemer"
#: templates/web/bromley/report/display.html:80
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/update_edit.html:19
+#: templates/web/default/admin/report_edit.html:23
+#: templates/web/default/admin/update_edit.html:22
#: templates/web/default/dashboard/index.html:138
#: templates/web/default/report/update-form.html:30
#: templates/web/fixmystreet/report/update-form.html:28
+#: templates/web/zurich/admin/header.html:1
+#: templates/web/zurich/admin/header.html:7
+#: templates/web/zurich/admin/report_edit.html:68
+#: templates/web/zurich/admin/update_edit.html:18
+#: templates/web/zurich/report/banner.html:11
msgid "Open"
msgstr "Åpen"
@@ -1850,13 +2038,13 @@ msgstr ""
"Eller du kan abonnere på varsel basert på bydel eller administrasjon du "
"hører inn under:"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:1006
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:656
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:657
-#: perllib/FixMyStreet/DB/Result/Problem.pm:505
-#: perllib/FixMyStreet/DB/Result/Problem.pm:515
-#: perllib/FixMyStreet/DB/Result/Problem.pm:525
-#: perllib/FixMyStreet/DB/Result/Problem.pm:537
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:1023
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:663
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:664
+#: perllib/FixMyStreet/DB/Result/Problem.pm:521
+#: perllib/FixMyStreet/DB/Result/Problem.pm:531
+#: perllib/FixMyStreet/DB/Result/Problem.pm:541
+#: perllib/FixMyStreet/DB/Result/Problem.pm:553
#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:331
#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:340
msgid "Other"
@@ -1879,8 +2067,12 @@ msgstr "Eier"
msgid "Page Not Found"
msgstr "Fant ikke siden"
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:21
+#: templates/web/default/admin/body-form.html:9
+#: templates/web/zurich/admin/body-form.html:15
+msgid "Parent"
+msgstr ""
+
+#: templates/web/default/admin/report_edit.html:26
msgid "Partial"
msgstr "Delvis"
@@ -1900,13 +2092,15 @@ msgstr "Passord:"
#: templates/web/bromley/report/new/fill_in_details_form.html:183
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:148
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:215
-#: templates/web/zurich/report/new/fill_in_details_form.html:124
+#: templates/web/zurich/report/new/fill_in_details_form.html:106
msgid "Phone number (optional)"
msgstr "Telefonnummer (valgfritt)"
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:262
-#: templates/web/default/admin/report_edit.html:32
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:263
+#: templates/web/default/admin/report_edit.html:37
#: templates/web/default/report/new/fill_in_details_form.html:215
+#: templates/web/zurich/admin/report_edit-sdm.html:27
+#: templates/web/zurich/admin/report_edit.html:45
msgid "Phone:"
msgstr "Telefon:"
@@ -1914,7 +2108,7 @@ msgstr "Telefon:"
#: templates/web/bromley/report/new/fill_in_details_form.html:104
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:92
#: templates/web/fixmystreet/report/update-form.html:57
-#: templates/web/zurich/report/new/fill_in_details_form.html:86
+#: templates/web/zurich/report/new/fill_in_details_form.html:68
msgid "Photo"
msgstr "Bilde"
@@ -1929,16 +2123,23 @@ msgstr "Bilde:"
msgid "Photos of recent nearby reports"
msgstr "Bilder av nye problemer i nærheten"
+#: templates/web/default/js/translation_strings.html:24
+msgid "Place pin on map"
+msgstr ""
+
#: templates/web/bromley/report/display.html:80
#: templates/web/bromley/report/display.html:81
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:19
+#: templates/web/default/admin/report_edit.html:24
#: templates/web/default/dashboard/index.html:138
#: templates/web/default/dashboard/index.html:139
#: templates/web/default/report/update-form.html:30
#: templates/web/default/report/update-form.html:31
#: templates/web/fixmystreet/report/update-form.html:28
#: templates/web/fixmystreet/report/update-form.html:29
+#: templates/web/zurich/admin/header.html:1
+#: templates/web/zurich/admin/header.html:9
+#: templates/web/zurich/admin/index-dm.html:9
+#: templates/web/zurich/admin/report_edit.html:69
msgid "Planned"
msgstr "Planlagt"
@@ -1951,7 +2152,7 @@ msgstr ""
"som har blitt lagt inn."
#: templates/web/default/report/new/notes.html:6
-#: templates/web/fixmystreet/report/new/notes.html:5
+#: templates/web/fixmystreet/report/new/notes.html:6
msgid "Please be polite, concise and to the point."
msgstr "Vær høflig, poengtert og kortfattet."
@@ -1971,16 +2172,16 @@ 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:822
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:829
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:848
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:891
-#: perllib/FixMyStreet/DB/Result/Problem.pm:355
-#: templates/web/default/js/validation_strings.html:9
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:828
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:835
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:854
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:897
+#: perllib/FixMyStreet/DB/Result/Problem.pm:364
+#: templates/web/default/js/translation_strings.html:9
msgid "Please choose a category"
msgstr "Velg en kategori"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:361
+#: perllib/FixMyStreet/DB/Result/Problem.pm:370
msgid "Please choose a property type"
msgstr "Velg en type egenskap"
@@ -2006,7 +2207,7 @@ msgstr ""
"vennligst <a href=\"/\">gå til forsiden</a> og følg instruksjonene."
#: templates/web/default/report/new/notes.html:7
-#: templates/web/fixmystreet/report/new/notes.html:6
+#: templates/web/fixmystreet/report/new/notes.html:7
#, fuzzy
msgid ""
"Please do not be abusive&nbsp;&mdash; abusing your council devalues the "
@@ -2015,8 +2216,8 @@ msgstr ""
"Ikke vær ufin &mdash; å kjefte på din administrasjon skader verdien av "
"tjenesten for alle brukerne."
-#: perllib/FixMyStreet/DB/Result/Comment.pm:146
-#: templates/web/default/js/validation_strings.html:2
+#: perllib/FixMyStreet/DB/Result/Comment.pm:147
+#: templates/web/default/js/translation_strings.html:2
msgid "Please enter a message"
msgstr "Vennligst legg til en melding"
@@ -2026,14 +2227,14 @@ msgid "Please enter a password"
msgstr "Skriv inn et passord"
#: perllib/FixMyStreet/App/Controller/Contact.pm:97
-#: perllib/FixMyStreet/DB/Result/Problem.pm:330
-#: templates/web/default/js/validation_strings.html:3
+#: perllib/FixMyStreet/DB/Result/Problem.pm:339
+#: templates/web/default/js/translation_strings.html:3
msgid "Please enter a subject"
msgstr "Vennligst legg inn et emne"
-#: perllib/FixMyStreet/DB/Result/User.pm:104
-#: templates/web/default/js/validation_strings.html:12
-#: templates/web/default/js/validation_strings.html:16
+#: perllib/FixMyStreet/DB/Result/User.pm:115
+#: templates/web/default/js/translation_strings.html:12
+#: templates/web/default/js/translation_strings.html:16
msgid "Please enter a valid email"
msgstr "Legg til en gyldig e-post"
@@ -2042,17 +2243,17 @@ 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:333
-#: templates/web/default/js/validation_strings.html:4
+#: perllib/FixMyStreet/DB/Result/Problem.pm:342
+#: templates/web/default/js/translation_strings.html:4
msgid "Please enter some details"
msgstr "Legg inn opplysninger om problemet"
#: perllib/FixMyStreet/App/Controller/Contact.pm:96
-#: perllib/FixMyStreet/DB/Result/User.pm:101
+#: perllib/FixMyStreet/DB/Result/User.pm:112
#: templates/web/default/auth/general.html:13
#: templates/web/default/auth/general.html:8
-#: templates/web/default/js/validation_strings.html:11
-#: templates/web/default/js/validation_strings.html:15
+#: templates/web/default/js/translation_strings.html:11
+#: templates/web/default/js/translation_strings.html:15
#: templates/web/fixmystreet/auth/general.html:14
#: templates/web/fixmystreet/auth/general.html:9
msgid "Please enter your email"
@@ -2060,16 +2261,16 @@ msgstr "Legg inn din e-post"
#: templates/web/bromley/report/new/fill_in_details_form.html:149
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:161
-#: templates/web/zurich/report/new/fill_in_details_form.html:110
+#: templates/web/zurich/report/new/fill_in_details_form.html:92
msgid "Please enter your email address"
msgstr "Vennligst tast inn din e-postadresse"
-#: templates/web/default/js/validation_strings.html:19
+#: templates/web/default/js/translation_strings.html:19
msgid "Please enter your first name"
msgstr "Vennligst tast inn ditt fornavn"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:348
-#: templates/web/default/js/validation_strings.html:7
+#: perllib/FixMyStreet/DB/Result/Problem.pm:357
+#: templates/web/default/js/translation_strings.html:7
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 below"
@@ -2079,21 +2280,28 @@ msgstr ""
"under"
#: perllib/FixMyStreet/App/Controller/Contact.pm:95
-#: perllib/FixMyStreet/DB/Result/Comment.pm:143
-#: perllib/FixMyStreet/DB/Result/Problem.pm:341
-#: perllib/FixMyStreet/DB/Result/User.pm:97
-#: templates/web/default/js/validation_strings.html:6
+#: perllib/FixMyStreet/DB/Result/Comment.pm:144
+#: perllib/FixMyStreet/DB/Result/Problem.pm:350
+#: perllib/FixMyStreet/DB/Result/User.pm:108
+#: templates/web/default/js/translation_strings.html:6
msgid "Please enter your name"
msgstr "Legg inn ditt navn"
-#: templates/web/default/js/validation_strings.html:20
+#: templates/web/default/js/translation_strings.html:20
msgid "Please enter your second name"
msgstr "Vennligst tast inn ditt mellomnavn"
-#: templates/web/default/js/validation_strings.html:18
+#: templates/web/default/js/translation_strings.html:18
msgid "Please enter your title"
msgstr "Vennligst legg inn din tittel"
+#: templates/web/default/auth/sign_out.html:5
+#: templates/web/zurich/auth/sign_out.html:5
+msgid ""
+"Please feel free to <a href=\"%s\">sign in again</a>, or go back to the <a "
+"href=\"/\">front page</a>."
+msgstr ""
+
#: templates/web/emptyhomes/report/new/fill_in_details_text.html:1
msgid ""
"Please fill in details of the empty property below, saying what type of\n"
@@ -2150,14 +2358,14 @@ msgstr ""
"vært der, en beskrivelse (og et bilde av problemet hvis du har et), osv."
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:70
-#: templates/web/zurich/report/new/fill_in_details_form.html:64
+#: templates/web/zurich/report/new/fill_in_details_form.html:46
msgid "Please fill in details of the problem."
msgstr "Vennligst fyll ut detaljer om problemet."
#: templates/web/bromley/report/new/fill_in_details_form.html:28
#: templates/web/default/report/new/fill_in_details_form.html:27
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:35
-#: templates/web/zurich/report/new/fill_in_details_form.html:35
+#: templates/web/zurich/report/new/fill_in_details_form.html:20
msgid ""
"Please fill in the form below with details of the problem, and describe the "
"location as precisely as possible in the details box."
@@ -2200,7 +2408,7 @@ msgstr ""
#: templates/web/bromley/report/new/fill_in_details_form.html:23
#: templates/web/default/report/new/fill_in_details_form.html:5
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:26
-#: templates/web/zurich/report/new/fill_in_details_form.html:26
+#: templates/web/zurich/report/new/fill_in_details_form.html:11
msgid ""
"Please note your report has <strong>not yet been sent</strong>. Choose a "
"category and add further information below, then submit."
@@ -2248,11 +2456,11 @@ 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/Photo.pm:175
+#: perllib/FixMyStreet/App/Controller/Photo.pm:172
msgid "Please upload a JPEG image only"
msgstr "Vennligst last opp kun JPEG-bilder"
-#: perllib/FixMyStreet/App/Controller/Photo.pm:182
+#: perllib/FixMyStreet/App/Controller/Photo.pm:179
msgid "Please upload a JPEG image only\n"
msgstr "Vennligst last opp kun JPEG eller JPG-bilder\n"
@@ -2291,9 +2499,9 @@ msgstr "Lagt inn av %s (<strong>%s</strong>) %s"
msgid "Posted by %s at %s"
msgstr "Sendt inn av %s %s"
-#: templates/web/default/admin/council_contacts.html:100
-#: templates/web/default/admin/council_edit.html:30
-#: templates/web/default/admin/report_edit.html:43
+#: templates/web/default/admin/body.html:97
+#: templates/web/default/admin/body_edit.html:40
+#: templates/web/default/admin/report_edit.html:48
msgid "Private"
msgstr ""
@@ -2314,10 +2522,11 @@ msgid "Problem %s sent to council %s"
msgstr "Problem %s sendt til administrasjon %s"
#: templates/web/default/admin/index.html:28
+#: templates/web/zurich/admin/index.html:15
msgid "Problem breakdown by state"
msgstr "Tilstandsfordeling av problemer"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:849
+#: perllib/FixMyStreet/App/Controller/Admin.pm:877
msgid "Problem marked as open."
msgstr "Problem markert som åpent."
@@ -2325,7 +2534,7 @@ msgstr "Problem markert som åpent."
msgid "Problem state change based on survey results"
msgstr "Problemtilstandsendring basert på spørreundersøkelsesresultater"
-#: templates/web/default/admin/list_flagged.html:5
+#: templates/web/default/admin/flagged.html:5
msgid "Problems"
msgstr "Problemer"
@@ -2335,7 +2544,7 @@ msgstr "Problemer i dette området"
#: templates/web/bromley/report/display.html:31
#: templates/web/fixmystreet/around/tabbed_lists.html:4
-#: templates/web/fixmystreet/report/display.html:35
+#: templates/web/fixmystreet/report/display.html:43
msgid "Problems nearby"
msgstr "Problemer i nærheten"
@@ -2352,15 +2561,15 @@ 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:612
+#: perllib/FixMyStreet/Cobrand/Default.pm:600
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:95
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:162
-#: perllib/FixMyStreet/Cobrand/UK.pm:231
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:155
+#: perllib/FixMyStreet/Cobrand/UK.pm:227
msgid "Problems within %s"
msgstr "Problemer innenfor %s"
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:103
-#: perllib/FixMyStreet/Cobrand/UK.pm:245
+#: perllib/FixMyStreet/Cobrand/UK.pm:241
msgid "Problems within %s ward"
msgstr "Problemer innenfor %s bydel"
@@ -2380,7 +2589,7 @@ 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"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:616
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:623
msgid "Property type:"
msgstr "Type egenskap:"
@@ -2417,11 +2626,23 @@ msgstr ""
"for deg å rapportere problemer, legge inn oppdateringer og holde oversikt "
"over dine rapporter"
-#: templates/web/default/admin/council_contacts.html:44
-#: templates/web/default/admin/council_contacts.html:57
+#: templates/web/default/admin/body.html:42
+#: templates/web/default/admin/body.html:55
msgid "Public"
msgstr ""
+#: templates/web/zurich/admin/report_edit.html:150
+msgid "Public response:"
+msgstr ""
+
+#: templates/web/zurich/admin/report_edit.html:57
+msgid "Publish photo"
+msgstr ""
+
+#: templates/web/zurich/admin/report_edit.html:160
+msgid "Publish the response"
+msgstr ""
+
#: templates/web/default/questionnaire/completed.html:1
#: templates/web/default/questionnaire/completed.html:2
#: templates/web/default/questionnaire/index.html:0
@@ -2454,27 +2675,27 @@ msgstr "Spørreskjema fylt inn av feilrapportøren"
#: templates/web/default/reports/_rss.html:1
#: templates/web/fixmystreet/alert/_list.html:22
#: templates/web/fixmystreet/alert/updates.html:9
-#: templates/web/fixmystreet/report/display.html:49
+#: templates/web/fixmystreet/report/display.html:57
msgid "RSS feed"
msgstr "RSS-strøm"
-#: perllib/FixMyStreet/Cobrand/UK.pm:274 perllib/FixMyStreet/Cobrand/UK.pm:286
+#: perllib/FixMyStreet/Cobrand/UK.pm:270 perllib/FixMyStreet/Cobrand/UK.pm:282
msgid "RSS feed for %s"
msgstr "RSS-strøm for %s"
-#: perllib/FixMyStreet/Cobrand/UK.pm:280 perllib/FixMyStreet/Cobrand/UK.pm:292
+#: perllib/FixMyStreet/Cobrand/UK.pm:276 perllib/FixMyStreet/Cobrand/UK.pm:288
msgid "RSS feed for %s ward, %s"
msgstr "RSS-strøm for %s bydel, %s"
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:178
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:186
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:196
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:204
-#: perllib/FixMyStreet/Cobrand/UK.pm:300 perllib/FixMyStreet/Cobrand/UK.pm:312
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:171
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:179
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:189
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:197
+#: perllib/FixMyStreet/Cobrand/UK.pm:296 perllib/FixMyStreet/Cobrand/UK.pm:308
msgid "RSS feed of %s"
msgstr "RSS-strøm fra %s"
-#: perllib/FixMyStreet/Cobrand/UK.pm:305 perllib/FixMyStreet/Cobrand/UK.pm:317
+#: perllib/FixMyStreet/Cobrand/UK.pm:301 perllib/FixMyStreet/Cobrand/UK.pm:313
msgid "RSS feed of %s, within %s ward"
msgstr "RSS-strøm av %s, innenfor %s bydel"
@@ -2487,15 +2708,15 @@ 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:613
+#: perllib/FixMyStreet/Cobrand/Default.pm:601
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:96
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:161
-#: perllib/FixMyStreet/Cobrand/UK.pm:238
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:154
+#: perllib/FixMyStreet/Cobrand/UK.pm:234
msgid "RSS feed of problems within %s"
msgstr "RSS-strøm for problemer innenfor %s"
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:102
-#: perllib/FixMyStreet/Cobrand/UK.pm:244
+#: perllib/FixMyStreet/Cobrand/UK.pm:240
msgid "RSS feed of problems within %s ward"
msgstr "RSS-strøm for problemer innenfor %s bydel"
@@ -2507,7 +2728,7 @@ msgstr "RSS-strøm med nylige lokale problemer"
#: templates/web/bromley/report/display.html:37
#: templates/web/default/report/display.html:42
#: templates/web/fixmystreet/alert/updates.html:9
-#: templates/web/fixmystreet/report/display.html:49
+#: templates/web/fixmystreet/report/display.html:57
msgid "RSS feed of updates to this problem"
msgstr "RSS-strøm med oppdateringer for dette problemet"
@@ -2515,7 +2736,7 @@ msgstr "RSS-strøm med oppdateringer for dette problemet"
#: templates/web/default/alert/updates.html:9
#: templates/web/default/report/display.html:33
#: templates/web/fixmystreet/alert/updates.html:14
-#: templates/web/fixmystreet/report/display.html:51
+#: templates/web/fixmystreet/report/display.html:59
msgid "Receive email when updates are left on this problem."
msgstr "Motta e-post når det er oppdateringer på dette problemet"
@@ -2540,7 +2761,7 @@ msgid "Recently reported problems"
msgstr "Nylig meldte problemer"
#: templates/web/default/report/new/notes.html:9
-#: templates/web/fixmystreet/report/new/notes.html:8
+#: templates/web/fixmystreet/report/new/notes.html:10
msgid ""
"Remember that FixMyStreet is primarily for reporting physical problems that "
"can be fixed. If your problem is not appropriate for submission via this "
@@ -2562,8 +2783,9 @@ msgstr ""
msgid "Remove flag"
msgstr "Fjern flagg"
-#: templates/web/default/admin/report_edit.html:54
-#: templates/web/default/admin/update_edit.html:48
+#: templates/web/default/admin/report_edit.html:59
+#: templates/web/default/admin/update_edit.html:51
+#: templates/web/zurich/admin/update_edit.html:35
msgid "Remove photo (can't be undone!)"
msgstr "Fjern bilde (kan ikke gjøres om!)"
@@ -2577,12 +2799,13 @@ msgstr "Rapporter tomme hjem"
#: templates/web/fiksgatami/nn/footer.html:5
#: templates/web/fixmystreet/footer.html:45
#: templates/web/reading/footer.html:6 templates/web/stevenage/footer.html:39
-#: templates/web/zurich/footer.html:10
+#: templates/web/zurich/footer.html:17
+#: templates/web/zurich/nav_over_content.html:4
msgid "Report a problem"
msgstr "Rapporter et problem"
#: templates/web/bromley/report/display.html:28
-#: templates/web/fixmystreet/report/display.html:29
+#: templates/web/fixmystreet/report/display.html:35
msgid "Report abuse"
msgstr "Rapporter misbruk"
@@ -2590,7 +2813,7 @@ msgstr "Rapporter misbruk"
msgid "Report empty properties"
msgstr "Rapporter tomme hjem"
-#: perllib/FixMyStreet/App/Controller/Rss.pm:286
+#: perllib/FixMyStreet/App/Controller/Rss.pm:295
msgid "Report on %s"
msgstr "Rapport på %s"
@@ -2609,7 +2832,7 @@ msgstr "Rapportert %s"
msgid "Reported %s, to %s"
msgstr "Rapportert %s, til %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:520
+#: perllib/FixMyStreet/DB/Result/Problem.pm:536
#: templates/web/default/contact/index.html:45
#: templates/web/fixmystreet/contact/index.html:46
msgid "Reported anonymously at %s"
@@ -2621,37 +2844,43 @@ msgstr "Rapportert anonymt %s"
msgid "Reported before"
msgstr "Rapportert tidligere"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:512
+#: perllib/FixMyStreet/DB/Result/Problem.pm:528
msgid "Reported by %s anonymously at %s"
msgstr "Publisert av %s anonymt %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:543
+#: perllib/FixMyStreet/DB/Result/Problem.pm:559
#: templates/web/default/contact/index.html:47
#: templates/web/fixmystreet/contact/index.html:48
msgid "Reported by %s at %s"
msgstr "Publisert av %s %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:534
+#: perllib/FixMyStreet/DB/Result/Problem.pm:550
msgid "Reported by %s by %s at %s"
msgstr "Rapporter av %s av %s %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:508
+#: perllib/FixMyStreet/DB/Result/Problem.pm:524
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:528
+#: perllib/FixMyStreet/DB/Result/Problem.pm:544
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:516
+#: templates/web/zurich/report/_main.html:2
+#, fuzzy
+msgid "Reported in the %s category"
+msgstr "Rapportert i kategorien %s av %s %s"
+
+#: perllib/FixMyStreet/DB/Result/Problem.pm:532
msgid "Reported in the %s category anonymously at %s"
msgstr "Rapportert i kategorien %s anonymt %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:538
+#: perllib/FixMyStreet/DB/Result/Problem.pm:554
msgid "Reported in the %s category by %s at %s"
msgstr "Rapportert i kategorien %s av %s %s"
#: templates/web/default/around/around_index.html:1
+#: templates/web/default/js/translation_strings.html:35
#: templates/web/default/report/new/fill_in_details.html:0
#: templates/web/default/report/new/fill_in_details.html:3
#: templates/web/default/report/new/fill_in_details_form.html:1
@@ -2663,19 +2892,35 @@ msgstr "Rapportert i kategorien %s av %s %s"
msgid "Reporting a problem"
msgstr "Legger til et problem"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1033
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1087
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:133
+#: templates/web/zurich/header.html:59
#, fuzzy
msgid "Reports"
msgstr "Alle rapporter"
+#: templates/web/zurich/admin/index-sdm.html:7
+#, fuzzy
+msgid "Reports awaiting approval"
+msgstr "Legger til et problem"
+
#: templates/web/default/around/tabbed_lists.html:3
msgid "Reports on and around the map"
msgstr "Problemer i og rundt kartet"
-#: templates/web/default/admin/report_edit.html:35
+#: templates/web/zurich/admin/index-sdm.html:10
+#, fuzzy
+msgid "Reports published"
+msgstr "Rapporter misbruk"
+
+#: templates/web/default/admin/report_edit.html:40
msgid "Resend report"
msgstr "Send rapport på nytt"
+#: templates/web/default/js/translation_strings.html:22
+msgid "Right place?"
+msgstr ""
+
#: perllib/FixMyStreet/Geocode/OSM.pm:173
msgid ""
"Road operator for this named road (derived from road reference number and "
@@ -2688,24 +2933,51 @@ msgstr ""
msgid "Road operator for this named road (from OpenStreetMap): %s"
msgstr "Veioperatør for denne navngitte veien (fra OpenStreetMap): %s"
-#: templates/web/default/admin/council_edit.html:63
+#: templates/web/default/admin/report_edit.html:55
+#: templates/web/zurich/admin/report_edit.html:53
+msgid "Rotate Left"
+msgstr ""
+
+#: templates/web/default/admin/report_edit.html:56
+#: templates/web/zurich/admin/report_edit.html:54
+msgid "Rotate Right"
+msgstr ""
+
+#: templates/web/default/admin/body_edit.html:76
msgid "Save changes"
msgstr "Lagre endringer"
-#: templates/web/default/admin/list_flagged.html:1
-#: templates/web/default/admin/search_reports.html:1
+#: templates/web/default/admin/flagged.html:1
+#: templates/web/default/admin/reports.html:1
+#: templates/web/zurich/admin/reports.html:1
msgid "Search Reports"
msgstr "Søk i rapporter"
-#: templates/web/default/admin/search_users.html:1
+#: templates/web/default/admin/users.html:1
msgid "Search Users"
msgstr "Søk i brukere"
-#: templates/web/default/admin/search_reports.html:5
-#: templates/web/default/admin/search_users.html:5
+#: templates/web/zurich/header.html:73
+#, fuzzy
+msgid "Search reports"
+msgstr "Søk i rapporter"
+
+#: templates/web/default/admin/reports.html:5
+#: templates/web/default/admin/users.html:5
+#: templates/web/zurich/admin/reports.html:5
msgid "Search:"
msgstr "Søk:"
+#: templates/web/default/admin/body-form.html:11
+#: templates/web/zurich/admin/body-form.html:17
+msgid "Select a body"
+msgstr ""
+
+#: templates/web/default/admin/body-form.html:21
+#: templates/web/zurich/admin/body-form.html:27
+msgid "Select an area"
+msgstr ""
+
#: templates/web/default/alert/_list.html:8
#: templates/web/fixmystreet/alert/_list.html:10
msgid ""
@@ -2715,19 +2987,19 @@ 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:623
+#: perllib/FixMyStreet/DB/Result/Problem.pm:640
msgid "Sent to %s %s later"
msgstr "Sendt til %s %s senere"
-#: templates/web/default/admin/report_edit.html:35
+#: templates/web/default/admin/report_edit.html:40
msgid "Sent:"
msgstr "Sendt:"
-#: templates/web/default/admin/report_edit.html:37
+#: templates/web/default/admin/report_edit.html:42
msgid "Service:"
msgstr "Tjeneste:"
-#: templates/web/fixmystreet/report/display.html:33
+#: templates/web/fixmystreet/report/display.html:41
msgid "Share"
msgstr ""
@@ -2763,11 +3035,11 @@ msgstr ""
msgid "Show my name publicly"
msgstr "Vis mitt navn offentlig"
-#: templates/web/default/around/display_location.html:65
+#: templates/web/default/around/display_location.html:68
msgid "Show old"
msgstr "Vis gamle"
-#: templates/web/default/around/display_location.html:56
+#: templates/web/default/around/display_location.html:59
msgid "Show pins"
msgstr "Vis nåler"
@@ -2778,7 +3050,7 @@ msgstr "Vis nåler"
#: templates/web/fixmystreet/auth/general.html:42
#: templates/web/fixmystreet/auth/general.html:62
#: templates/web/fixmystreet/header.html:53
-#: templates/web/stevenage/header.html:101 templates/web/zurich/header.html:51
+#: templates/web/stevenage/header.html:101
msgid "Sign in"
msgstr "Logg inn"
@@ -2797,9 +3069,9 @@ msgstr "Logg inn eller opprett en konto"
#: templates/web/emptyhomes/header.html:41
#: templates/web/fiksgatami/header.html:22
#: templates/web/fiksgatami/nn/header.html:22
-#: templates/web/fixmybarangay/auth/sign_out.html:1
#: templates/web/lichfielddc/header.html:177
#: templates/web/reading/header.html:33
+#: templates/web/zurich/auth/sign_out.html:1
msgid "Sign out"
msgstr "Logg ut"
@@ -2828,11 +3100,7 @@ msgstr "Noen bilder av nylig meldte problemer"
msgid "Some text to localize"
msgstr "Noe tekst å oversette"
-#: templates/web/default/admin/council_list.html:42
-msgid "Some unconfirmeds"
-msgstr "Noen ubekreftede"
-
-#: perllib/FixMyStreet/Cobrand/UK.pm:89
+#: perllib/FixMyStreet/Cobrand/UK.pm:93
msgid ""
"Sorry, that appears to be a Crown dependency postcode, which we don't cover."
msgstr ""
@@ -2854,7 +3122,7 @@ msgstr "Beklager, vi kunne ikke finne det stedet."
#: perllib/FixMyStreet/Geocode/Bing.pm:53
#: perllib/FixMyStreet/Geocode/Google.pm:69
-#: perllib/FixMyStreet/Geocode/Zurich.pm:82
+#: perllib/FixMyStreet/Geocode/Zurich.pm:87
msgid "Sorry, we could not parse that location. Please try again."
msgstr "Beklager, vi kunne ikke tolke den posisjonen. Vennligst prøv på nytt."
@@ -2876,28 +3144,42 @@ msgid "Start month:"
msgstr "Startmåned:"
#: templates/web/bromley/report/display.html:78
-#: templates/web/default/admin/list_flagged.html:18
+#: templates/web/default/admin/flagged.html:18
#: templates/web/default/admin/list_updates.html:6
-#: templates/web/default/admin/search_reports.html:21
+#: templates/web/default/admin/reports.html:21
#: templates/web/fixmystreet/report/update-form.html:26
msgid "State"
msgstr "Tilstand"
-#: templates/web/default/admin/report_edit.html:17
-#: templates/web/default/admin/update_edit.html:18
+#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/update_edit.html:21
#: templates/web/default/report/update-form.html:28
+#: templates/web/zurich/admin/report_edit-sdm.html:35
+#: templates/web/zurich/admin/report_edit.html:64
+#: templates/web/zurich/admin/update_edit.html:17
msgid "State:"
msgstr "Tilstand:"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1038
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1092
#: templates/web/default/admin/stats.html:1
msgid "Stats"
msgstr "Statistikk"
+#: templates/web/zurich/admin/index-dm.html:25
+#: templates/web/zurich/admin/index-sdm.html:23
+#: templates/web/zurich/admin/reports.html:17
+#, fuzzy
+msgid "Status"
+msgstr "Statistikk"
+
#: templates/web/default/report/updates.html:9
msgid "Still open, via questionnaire, %s"
msgstr "Fortsatt åpen via spørreskjema, %s"
+#: templates/web/zurich/admin/index-dm.html:27
+msgid "Subdivision/Body"
+msgstr ""
+
#: templates/web/bromley/report/new/fill_in_details_form.html:48
#: templates/web/fixmystreet/contact/index.html:79
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:60
@@ -2907,6 +3189,7 @@ msgstr "Emne"
#: templates/web/default/admin/report_edit.html:13
#: templates/web/default/contact/index.html:83
#: templates/web/default/report/new/fill_in_details_form.html:52
+#: templates/web/zurich/admin/report_edit.html:28
msgid "Subject:"
msgstr "Emne:"
@@ -2920,13 +3203,16 @@ msgstr "Emne:"
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:152
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:177
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:222
-#: templates/web/zurich/report/new/fill_in_details_form.html:128
+#: templates/web/zurich/report/new/fill_in_details_form.html:111
msgid "Submit"
msgstr "Send inn"
-#: templates/web/default/admin/report_edit.html:57
-#: templates/web/default/admin/update_edit.html:51
-#: templates/web/default/admin/user_edit.html:20
+#: templates/web/default/admin/report_edit.html:62
+#: templates/web/default/admin/update_edit.html:54
+#: templates/web/default/admin/user-form.html:17
+#: templates/web/zurich/admin/report_edit-sdm.html:45
+#: templates/web/zurich/admin/report_edit.html:162
+#: templates/web/zurich/admin/update_edit.html:38
msgid "Submit changes"
msgstr "Send inn endringer"
@@ -2935,11 +3221,23 @@ msgstr "Send inn endringer"
msgid "Submit questionnaire"
msgstr "Send inn spørreskjema"
+#: templates/web/zurich/admin/header.html:1
+#: templates/web/zurich/admin/header.html:6
+#: templates/web/zurich/admin/index-dm.html:23
+#: templates/web/zurich/admin/index-dm.html:6
+#: templates/web/zurich/admin/index-sdm.html:21
+#: templates/web/zurich/admin/report_edit.html:67
+#: templates/web/zurich/admin/reports.html:15
+#: templates/web/zurich/report/banner.html:9
+#, fuzzy
+msgid "Submitted"
+msgstr "Send inn"
+
#: templates/web/bromley/report/display.html:44
#: templates/web/default/alert/updates.html:17
#: templates/web/default/report/display.html:38
#: templates/web/fixmystreet/alert/updates.html:23
-#: templates/web/fixmystreet/report/display.html:56
+#: templates/web/fixmystreet/report/display.html:64
msgid "Subscribe"
msgstr "Abonner"
@@ -2956,8 +3254,12 @@ msgstr ""
"Eller du kan abonnere på varsel basert på bydel eller administrasjon du "
"hører inn under:"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1031
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1085
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:132
#: templates/web/default/admin/index.html:1
+#: templates/web/zurich/admin/index-dm.html:1
+#: templates/web/zurich/admin/index-sdm.html:1
+#: templates/web/zurich/admin/index.html:1 templates/web/zurich/header.html:56
msgid "Summary"
msgstr "Oppsummering"
@@ -2966,10 +3268,12 @@ msgstr "Oppsummering"
#: templates/web/fiksgatami/nn/reports/index.html:1
#: templates/web/fiksgatami/reports/index.html:1
#: templates/web/fixmybarangay/reports/index.html:1
+#: templates/web/zurich/reports/index.html:0
+#: templates/web/zurich/reports/index.html:4
msgid "Summary reports"
msgstr "Oppsummeringsrapporter"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1035
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1089
#, fuzzy
msgid "Survey"
msgstr "Resultater fra spørreundersøkelsen"
@@ -2979,14 +3283,16 @@ msgid "Survey Results"
msgstr "Resultater fra spørreundersøkelsen"
#: templates/web/default/admin/list_updates.html:14
+#: templates/web/zurich/admin/list_updates.html:7
msgid "Text"
msgstr "Tekst"
-#: templates/web/default/admin/council_contacts.html:20
+#: templates/web/default/admin/body.html:18
msgid "Text only version"
msgstr "Tekst-versjon"
-#: templates/web/default/admin/update_edit.html:13
+#: templates/web/default/admin/update_edit.html:14
+#: templates/web/zurich/admin/update_edit.html:12
msgid "Text:"
msgstr "Tekst:"
@@ -3068,7 +3374,7 @@ 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?"
-#: perllib/FixMyStreet/App/Controller/Photo.pm:189
+#: perllib/FixMyStreet/App/Controller/Photo.pm:186
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."
@@ -3087,20 +3393,20 @@ msgid "That location does not appear to be in the UK; please try again."
msgstr "Det stedet virker ikke å være i Storbritannia. Vennligst prøv igjen."
#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:63
-#: perllib/FixMyStreet/Cobrand/UK.pm:82
+#: perllib/FixMyStreet/Cobrand/UK.pm:86
msgid "That postcode was not recognised, sorry."
msgstr "Det postnummeret ble ikke gjenkjent, beklager."
-#: perllib/FixMyStreet/App/Controller/Admin.pm:616
+#: perllib/FixMyStreet/App/Controller/Admin.pm:641
msgid "That problem will now be resent."
msgstr "Det problemet vil nå bli sendt på nytt."
-#: perllib/FixMyStreet/App/Controller/Report.pm:98
+#: perllib/FixMyStreet/App/Controller/Report.pm:117
#, fuzzy
msgid "That report cannot be viewed on FixMyStreet."
msgstr "Den rapporten har blitt fjernet fra FiksGataMi."
-#: perllib/FixMyStreet/App/Controller/Report.pm:92
+#: perllib/FixMyStreet/App/Controller/Report.pm:111
msgid "That report has been removed from FixMyStreet."
msgstr "Den rapporten har blitt fjernet fra FiksGataMi."
@@ -3134,8 +3440,8 @@ msgstr ""
"administrasjonene som mottok problemrapporten, noe som ikke helt stemmer med "
"hvordan atributten er definert i Open311 v2-spesifikasjonen."
-#: templates/web/default/auth/token.html:21
-#: templates/web/default/email_sent.html:22
+#: templates/web/default/auth/token.html:22
+#: templates/web/default/email_sent.html:6
msgid ""
"The confirmation email <strong>may</strong> take a few minutes to arrive "
"&mdash; <em>please</em> be patient."
@@ -3171,8 +3477,7 @@ msgstr ""
"Detaljene om ditt problem er tilgjengelig på høyre kant av denne siden."
#: perllib/FixMyStreet/App/Controller/Dashboard.pm:60
-#: perllib/FixMyStreet/App/Controller/Reports.pm:43
-#: perllib/FixMyStreet/App/Controller/Reports.pm:74
+#: perllib/FixMyStreet/App/Controller/Reports.pm:67
msgid "The error was: %s"
msgstr "Feilen var: %s"
@@ -3268,7 +3573,6 @@ msgstr "Den enkleste meldingen er vår geografiske:"
#: templates/web/default/report/new/councils_text_some.html:11
#: templates/web/default/report/new/fill_in_details_form.html:17
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:12
-#: templates/web/zurich/report/new/fill_in_details_form.html:12
msgid ""
"The subject and details of the problem will be public, plus your name if you "
"give us permission."
@@ -3276,7 +3580,7 @@ msgstr ""
"Tittelen og detaljene for problemet vil bli offentlig, pluss navnet ditt\n"
"hvis du gir oss tillatelse til det."
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:271
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:272
msgid ""
"The user could not locate the problem on a map, but to see the area around "
"the location they entered"
@@ -3284,7 +3588,7 @@ msgstr ""
"Brukeren kunne ikke plassere problemet på et kart, men sjekk området rundt "
"stedet de skrev inn"
-#: perllib/FixMyStreet/App/Controller/Reports.pm:71
+#: perllib/FixMyStreet/App/Controller/Reports.pm:64
msgid ""
"There was a problem showing the All Reports page. Please try again later."
msgstr ""
@@ -3295,7 +3599,7 @@ msgstr ""
msgid "There was a problem showing this page. Please try again later."
msgstr "Det var problemer med å vise denne siden. Vennligst prøv igjen senere."
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:736
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:740
#: perllib/FixMyStreet/App/Controller/Report/Update.pm:134
#: templates/web/default/auth/general.html:23
#: templates/web/fixmystreet/auth/general.html:24
@@ -3359,8 +3663,8 @@ msgstr ""
"snill å ignorere e-posten hvis dere ikke er korrekt administrasjon for å "
"håndtere denne saken."
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:868
-#: perllib/FixMyStreet/Cobrand/UK.pm:54
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:874
+#: perllib/FixMyStreet/Cobrand/UK.pm:58
msgid "This information is required"
msgstr "Denne informasjonen er påkrevd"
@@ -3426,6 +3730,11 @@ msgstr "Dette problemet er under arbeid"
msgid "This problem is old and of unknown status."
msgstr "Dette problemet er gammel og med ukjent status."
+#: templates/web/zurich/report/_main.html:14
+#, fuzzy
+msgid "This report is awaiting moderation."
+msgstr "Denne rapporten er for tiden markert som åpen."
+
#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:86
msgid "This report is currently marked as closed."
msgstr "Denne rapporten er for tiden markert som lukket."
@@ -3438,19 +3747,19 @@ msgstr "Denne rapporten er for tiden markert som fikset."
msgid "This report is currently marked as open."
msgstr "Denne rapporten er for tiden markert som åpen."
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:264
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:265
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:1034
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1088
#: templates/web/default/admin/timeline.html:1
msgid "Timeline"
msgstr "Tidslinje"
-#: templates/web/default/admin/list_flagged.html:10
-#: templates/web/default/admin/search_reports.html:13
+#: templates/web/default/admin/flagged.html:10
+#: templates/web/default/admin/reports.html:13
msgid "Title"
msgstr "Tittel"
@@ -3475,7 +3784,7 @@ msgid ""
msgstr ""
"Du finner lokale problemer ved å søke på ditt postnummer, veinavn eller sted"
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:270
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:271
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."
@@ -3486,13 +3795,13 @@ msgstr "For å se en kart med en mer presis plassering for dette problemet."
msgid "Total"
msgstr "Totalt"
-#: perllib/FixMyStreet/App/Controller/Reports.pm:42
-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/js/translation_strings.html:23
+msgid "Try again"
+msgstr ""
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:21
-#: templates/web/default/admin/update_edit.html:19
+#: templates/web/default/admin/report_edit.html:26
+#: templates/web/default/admin/update_edit.html:22
+#: templates/web/zurich/admin/update_edit.html:18
msgid "Unconfirmed"
msgstr "Ubekreftet"
@@ -3504,7 +3813,12 @@ msgstr "Ukjent"
msgid "Unknown alert type"
msgstr "Ukjent varsel-type"
-#: perllib/FixMyStreet/App/Controller/Report.pm:87
+#: templates/web/default/js/translation_strings.html:33
+#, fuzzy
+msgid "Unknown error"
+msgstr "Ukjent"
+
+#: perllib/FixMyStreet/App/Controller/Report.pm:106
msgid "Unknown problem ID"
msgstr "Ukjent problem-Id"
@@ -3527,6 +3841,12 @@ msgstr "Oppdateringen under lagt inn anonymt %s"
msgid "Update below added by %s at %s"
msgstr "Oppdateringen under lagt til av %s %s"
+#: templates/web/default/admin/body-form.html:77
+#: templates/web/zurich/admin/body-form.html:47
+#, fuzzy
+msgid "Update body"
+msgstr "Oppdatert!"
+
#: templates/web/default/admin/index.html:30
msgid "Update breakdown by state"
msgstr "Tilstandsfordeling for oppdateringer"
@@ -3535,19 +3855,20 @@ msgstr "Tilstandsfordeling for oppdateringer"
msgid "Update by {{name}}"
msgstr "Oppdatert av {{name}}"
-#: templates/web/default/admin/update_edit.html:33
+#: templates/web/default/admin/update_edit.html:36
+#: templates/web/zurich/admin/update_edit.html:25
msgid "Update changed problem state to %s"
msgstr "En oppdatering endret problemets status til %s"
-#: templates/web/default/admin/update_edit.html:35
+#: templates/web/default/admin/update_edit.html:38
msgid "Update marked problem as fixed"
msgstr "En oppdatering markerte dette problemet som fikset."
-#: templates/web/default/admin/update_edit.html:37
+#: templates/web/default/admin/update_edit.html:40
msgid "Update reopened problem"
msgstr "En oppdatering gjennåpnet problemet"
-#: templates/web/default/admin/council_contacts.html:68
+#: templates/web/default/admin/body.html:65
msgid "Update statuses"
msgstr "Oppdater tilstanden"
@@ -3555,15 +3876,27 @@ msgstr "Oppdater tilstanden"
msgid "Update:"
msgstr "Oppdatering:"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:708
-#: perllib/FixMyStreet/App/Controller/Admin.pm:839
-#: perllib/FixMyStreet/App/Controller/Admin.pm:899
+#: templates/web/zurich/admin/index-dm.html:24
+#: templates/web/zurich/admin/index-sdm.html:22
+#: templates/web/zurich/admin/reports.html:16
+#, fuzzy
+msgid "Updated"
+msgstr "Oppdatert!"
+
+#: perllib/FixMyStreet/App/Controller/Admin.pm:733
+#: perllib/FixMyStreet/App/Controller/Admin.pm:867
+#: perllib/FixMyStreet/App/Controller/Admin.pm:918
+#: perllib/FixMyStreet/App/Controller/Admin.pm:957
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:322
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:377
msgid "Updated!"
msgstr "Oppdatert!"
#: templates/web/default/admin/list_updates.html:1
#: templates/web/default/report/update.html:3
#: templates/web/fixmystreet/report/update.html:3
+#: templates/web/zurich/admin/list_updates.html:1
+#: templates/web/zurich/report/updates.html:2
msgid "Updates"
msgstr "Oppdateringer"
@@ -3580,26 +3913,31 @@ msgstr "Oppdateringer av {{title}}"
msgid "Updates to this problem, FixMyStreet"
msgstr "Oppdateringer til dette problemet, FiksGataMi"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1191
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1251
msgid "User flag removed"
msgstr "Brukerflagg fjernet"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1163
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1223
msgid "User flagged"
msgstr "Bruker flagget"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1036
-#: templates/web/default/admin/list_flagged.html:30
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1090
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:147
+#: templates/web/default/admin/flagged.html:30
+#: templates/web/zurich/header.html:68
msgid "Users"
msgstr "Brukere"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:315
-#: perllib/FixMyStreet/App/Controller/Admin.pm:345
+#: perllib/FixMyStreet/App/Controller/Admin.pm:346
+#: perllib/FixMyStreet/App/Controller/Admin.pm:376
msgid "Values updated"
msgstr "Verdier oppdatert"
#: templates/web/default/admin/report_edit.html:12
#: templates/web/default/admin/update_edit.html:12
+#: templates/web/zurich/admin/report_edit-sdm.html:13
+#: templates/web/zurich/admin/report_edit.html:19
+#: templates/web/zurich/admin/update_edit.html:10
msgid "View report on site"
msgstr "Se rapport på nettstedet"
@@ -3664,11 +4002,11 @@ msgstr "Vi viser aldri din e-postadresse"
#: templates/web/bromley/report/new/fill_in_details_form.html:179
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:144
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:211
-#: templates/web/zurich/report/new/fill_in_details_form.html:114
+#: templates/web/zurich/report/new/fill_in_details_form.html:96
msgid "We never show your email address or phone number."
msgstr "Vi viser aldri din e-postadresse eller ditt telefonnummer"
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:351
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:350
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 "
@@ -3720,17 +4058,18 @@ 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:45
-#: templates/web/default/admin/council_edit.html:69
+#: templates/web/default/admin/body.html:43
+#: templates/web/default/admin/body_edit.html:82
+#: templates/web/zurich/admin/body.html:17
msgid "When edited"
msgstr "Når redigert"
-#: templates/web/default/admin/list_flagged.html:19
-#: templates/web/default/admin/search_reports.html:22
+#: templates/web/default/admin/flagged.html:19
+#: templates/web/default/admin/reports.html:22
msgid "When sent"
msgstr "Når sendt"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:611
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:618
msgid "Whole block of empty flats"
msgstr "Hel blokk med tomme leiligheter"
@@ -3775,7 +4114,7 @@ msgstr ""
#: templates/web/default/report/new/notes.html:8
#: templates/web/fixmybarangay/report/new/notes.html:8
-#: templates/web/fixmystreet/report/new/notes.html:7
+#: templates/web/fixmystreet/report/new/notes.html:8
msgid ""
"Writing your message entirely in block capitals makes it hard to read, as "
"does a lack of punctuation."
@@ -3787,18 +4126,18 @@ msgstr ""
msgid "Year"
msgstr "År"
-#: templates/web/default/admin/council_contacts.html:52
-#: templates/web/default/admin/council_contacts.html:53
-#: templates/web/default/admin/council_contacts.html:54
-#: templates/web/default/admin/council_edit.html:5
+#: templates/web/default/admin/body.html:50
+#: templates/web/default/admin/body.html:51
+#: templates/web/default/admin/body.html:52
+#: templates/web/default/admin/body_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:27
-#: templates/web/default/admin/report_edit.html:41
-#: templates/web/default/admin/search_users.html:23
-#: templates/web/default/admin/update_edit.html:15
+#: templates/web/default/admin/problem_row.html:21
+#: templates/web/default/admin/report_edit.html:32
+#: templates/web/default/admin/report_edit.html:46
+#: templates/web/default/admin/update_edit.html:18
+#: templates/web/default/admin/users.html:26
#: templates/web/default/questionnaire/creator_fixed.html:14
#: templates/web/default/questionnaire/index.html:105
#: templates/web/default/questionnaire/index.html:66
@@ -3840,12 +4179,20 @@ msgstr ""
"Du kan <a href=\"%s\">se alle rapporter for administrasjonen</a> eller <a "
"href=\"/reports\">se alle administrasjonene</a>."
+# Trenger kontekst for bedre oversettelse
+#: templates/web/default/tokens/confirm_problem.html:19
+#: templates/web/default/tokens/confirm_problem.html:21
+#: templates/web/zurich/tokens/confirm_problem.html:5
+#: templates/web/zurich/tokens/confirm_problem.html:8
+msgid "You can <a href=\"%s%s\">view the problem on this site</a>."
+msgstr "Du kan <a href=\"%s\">lese om problemet på denne siden</a>."
+
#: templates/web/emptyhomes/reports/body.html:66
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:16
+#: templates/web/default/report/new/councils_text_none.html:11
+#: templates/web/default/report/new/councils_text_none.html:13
#: templates/web/default/report/new/councils_text_some.html:20
#: templates/web/default/report/new/councils_text_some.html:22
msgid ""
@@ -3855,6 +4202,10 @@ msgstr ""
"Du kan hjelpe oss ved å finne en kontakt-e-post for lokale problemer i %s, "
"og sende den via e-post til oss på <a href='mailto:%s'>%s</a>."
+#: templates/web/default/js/translation_strings.html:30
+msgid "You declined; please fill in the box above"
+msgstr ""
+
#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:38
msgid ""
"You have already answered this questionnaire. If you have a question, please "
@@ -3869,7 +4220,7 @@ msgstr ""
#: templates/web/default/report/new/fill_in_details_form.html:93
#: templates/web/fixmystreet/questionnaire/index.html:87
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:99
-#: templates/web/zurich/report/new/fill_in_details_form.html:93
+#: templates/web/zurich/report/new/fill_in_details_form.html:75
msgid ""
"You have already attached a photo to this report, attaching another one will "
"replace it."
@@ -3888,14 +4239,14 @@ msgstr ""
"annet vil bytte ut dette."
#: templates/web/default/auth/sign_out.html:3
-#: templates/web/fixmybarangay/auth/sign_out.html:3
+#: templates/web/zurich/auth/sign_out.html:3
msgid "You have been signed out"
msgstr "Du er allerede logget ut"
#: templates/web/bromley/report/new/fill_in_details_form.html:25
#: templates/web/default/report/new/fill_in_details_form.html:7
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:28
-#: templates/web/zurich/report/new/fill_in_details_form.html:28
+#: templates/web/zurich/report/new/fill_in_details_form.html:13
msgid ""
"You have located the problem at the point marked with a green pin on the "
"map. If this is not the correct location, simply click on the map again. "
@@ -3907,6 +4258,12 @@ msgstr ""
msgid "You have successfully confirmed your alert."
msgstr "Du har nå lykkes med å bekrefte ditt varsel."
+#: templates/web/zurich/tokens/confirm_problem.html:5
+#: templates/web/zurich/tokens/confirm_problem.html:6
+#, fuzzy
+msgid "You have successfully confirmed your email address."
+msgstr "Du har nå lykkes med å bekrefte ditt varsel."
+
#: templates/web/default/tokens/confirm_problem.html:14
#: templates/web/default/tokens/confirm_problem.html:15
msgid "You have successfully confirmed your problem"
@@ -3930,7 +4287,7 @@ 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:743
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:747
#: perllib/FixMyStreet/App/Controller/Report/Update.pm:140
msgid ""
"You have successfully signed in; please check and confirm your details are "
@@ -3939,15 +4296,14 @@ msgstr ""
"Du har lykkes med å logge inn. Vennligst sjekk og bekreft at dine detaljer "
"er korrekte:"
-#: templates/web/default/email_sent.html:26
-msgid ""
-"You must now click the link in the email we've just sent you &mdash; if you "
-"do not, %s."
+#: templates/web/default/email_sent.html:13
+#, fuzzy
+msgid "You must now click the link in the email we've just sent you."
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:35
+#: templates/web/default/admin/report_edit.html:40
msgid "You really want to resend?"
msgstr "Ønsker du virkelig å sende på nytt?"
@@ -3965,11 +4321,11 @@ msgstr "Dine rapporter"
#: templates/web/fixmystreet/alert/updates.html:19
#: templates/web/fixmystreet/alert/updates.html:22
#: templates/web/fixmystreet/contact/index.html:72
-#: templates/web/fixmystreet/report/display.html:53
-#: templates/web/fixmystreet/report/display.html:55
+#: templates/web/fixmystreet/report/display.html:61
+#: templates/web/fixmystreet/report/display.html:63
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:115
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:157
-#: templates/web/zurich/report/new/fill_in_details_form.html:106
+#: templates/web/zurich/report/new/fill_in_details_form.html:88
msgid "Your email"
msgstr "Din e-post"
@@ -4015,7 +4371,7 @@ msgstr "Ditt etternavn"
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:124
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:202
#: templates/web/fixmystreet/report/update-form.html:138
-#: templates/web/zurich/report/new/fill_in_details_form.html:122
+#: templates/web/zurich/report/new/fill_in_details_form.html:104
msgid "Your name"
msgstr "Ditt navn"
@@ -4042,7 +4398,7 @@ msgstr "Ditt passord har blitt endret"
#: templates/web/bromley/report/new/fill_in_details_form.html:184
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:149
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:216
-#: templates/web/zurich/report/new/fill_in_details_form.html:125
+#: templates/web/zurich/report/new/fill_in_details_form.html:107
msgid "Your phone number"
msgstr "Ditt telefonnummer"
@@ -4078,12 +4434,14 @@ msgstr "av %s"
msgid "council"
msgstr "administrasjon"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:608
+#: perllib/FixMyStreet/DB/Result/Problem.pm:625
#, fuzzy
msgid "council ref:&nbsp;%s"
msgstr "%s ref:&nbsp;%s"
-#: templates/web/default/admin/report_edit.html:15
+#: templates/web/default/admin/report_edit.html:19
+#: templates/web/zurich/admin/report_edit-sdm.html:21
+#: templates/web/zurich/admin/report_edit.html:39
msgid "didn't use map"
msgstr "brukte ikke kart"
@@ -4093,10 +4451,11 @@ msgid "e.g. ‘%s’ or ‘%s’"
msgstr "for eksempel «%s» eller «%s»"
#: templates/web/default/admin/index.html:15
+#: templates/web/zurich/admin/index.html:5
msgid "from %d different users"
msgstr "fra %d forskjellige brukere"
-#: perllib/Utils.pm:267
+#: perllib/Utils.pm:268
msgid "less than a minute"
msgstr "mindre enn et minutt"
@@ -4108,7 +4467,7 @@ msgstr "markert som %s"
msgid "marked as fixed"
msgstr "markert som fikset"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:113
+#: perllib/FixMyStreet/App/Controller/Admin.pm:128
#: templates/web/default/admin/questionnaire.html:15
#: templates/web/default/admin/questionnaire.html:16
msgid "n/a"
@@ -4120,15 +4479,21 @@ msgstr "n/a"
msgid "or"
msgstr "eller"
-#: templates/web/default/js/validation_strings.html:21
+#: templates/web/default/js/translation_strings.html:21
msgid "or locate me automatically"
msgstr ""
-#: templates/web/default/admin/report_edit.html:15
-msgid "originally entered"
+#: templates/web/default/admin/report_edit.html:18
+#: templates/web/zurich/admin/report_edit-sdm.html:16
+#: templates/web/zurich/admin/report_edit-sdm.html:20
+#: templates/web/zurich/admin/report_edit.html:24
+#: templates/web/zurich/admin/report_edit.html:32
+#: templates/web/zurich/admin/report_edit.html:38
+#, fuzzy
+msgid "originally entered: &ldquo;%s&rdquo;"
msgstr "søkte etter"
-#: templates/web/default/admin/report_edit.html:16
+#: templates/web/default/admin/report_edit.html:21
msgid "other areas:"
msgstr "andre områder:"
@@ -4140,7 +4505,7 @@ msgstr "åpnet på nytt"
#: templates/web/bromley/header.html:65
#: templates/web/fixmybarangay/header.html:65
#: templates/web/fixmystreet/header.html:50
-#: templates/web/stevenage/header.html:98 templates/web/zurich/header.html:48
+#: templates/web/stevenage/header.html:98 templates/web/zurich/footer.html:12
msgid "sign out"
msgstr "logg ut"
@@ -4150,12 +4515,11 @@ msgstr "logg ut"
#: templates/web/default/report/new/fill_in_details_form.html:14
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:6
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:9
-#: templates/web/zurich/report/new/fill_in_details_form.html:6
-#: templates/web/zurich/report/new/fill_in_details_form.html:9
msgid "the local council"
msgstr "den lokale administrasjonen"
#: templates/web/default/report/_main.html:6
+#: templates/web/zurich/report/_main.html:5
msgid "there is no pin shown as the user did not use the map"
msgstr ""
@@ -4163,19 +4527,21 @@ msgstr ""
msgid "this type of local problem"
msgstr "denne type lokalt problem"
-#: perllib/Utils.pm:241
+#: perllib/Utils.pm:240
msgid "today"
msgstr "idag"
-#: templates/web/default/admin/report_edit.html:15
+#: templates/web/default/admin/report_edit.html:19
+#: templates/web/zurich/admin/report_edit-sdm.html:21
+#: templates/web/zurich/admin/report_edit.html:39
msgid "used map"
msgstr "brukte kart"
-#: templates/web/default/admin/update_edit.html:26
+#: templates/web/default/admin/update_edit.html:29
msgid "user is from same council as problem - %d"
msgstr "bruker er fra samme administrasjon som problemet - %d"
-#: templates/web/default/admin/update_edit.html:29
+#: templates/web/default/admin/update_edit.html:32
msgid "user is problem owner"
msgstr "bruker er eier av problemet"
@@ -4186,36 +4552,6 @@ msgstr "bruker er eier av problemet"
msgid "ward"
msgstr "bydel"
-#: templates/web/default/email_sent.html:15
-#: templates/web/default/email_sent.html:3
-msgid "we'll hang on to your alert while you're checking your email."
-msgstr "vi tar vare på ditt varsel mens du sjekker din e-post."
-
-#: templates/web/default/email_sent.html:3
-#: templates/web/default/email_sent.html:7
-msgid "we'll hang on to your problem report while you're checking your email."
-msgstr "vi tar vare på rapporten din mens du sjekker e-post."
-
-#: templates/web/default/email_sent.html:11
-#: templates/web/default/email_sent.html:3
-msgid "we'll hang on to your update while you're checking your email."
-msgstr "vi tar vare på din oppdatering mens du sjekker din e-post."
-
-#: templates/web/default/email_sent.html:14
-#: templates/web/default/email_sent.html:3
-msgid "your alert will not be activated"
-msgstr "ditt varsel vil ikke bli aktivert"
-
-#: templates/web/default/email_sent.html:3
-#: templates/web/default/email_sent.html:6
-msgid "your problem will not be posted"
-msgstr "vil ditt problem ikke bli publisert"
-
-#: templates/web/default/email_sent.html:10
-#: templates/web/default/email_sent.html:3
-msgid "your update will not be posted"
-msgstr "din oppdatering vil ikke bli publisert"
-
#: templates/web/emptyhomes/front/stats.html:17
#, perl-format
msgid "<big>%s</big> report recently"
@@ -4223,19 +4559,19 @@ msgid_plural "<big>%s</big> reports recently"
msgstr[0] "<big>%s</big> rapportert<br>nylig"
msgstr[1] "<big>%s</big> rapportert<br>nylig"
-#: perllib/Utils.pm:286
-#, fuzzy, perl-format
+#: perllib/Utils.pm:287
+#, perl-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d time"
-msgstr[1] "%d time"
+msgstr[1] "%d timer"
-#: perllib/Utils.pm:288
-#, fuzzy, perl-format
+#: perllib/Utils.pm:289
+#, perl-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d minutt"
-msgstr[1] "%d minutt"
+msgstr[1] "%d minutter"
#: templates/web/default/front/stats.html:29
#, perl-format
@@ -4254,12 +4590,12 @@ msgstr[0] ""
msgstr[1] ""
"Vi har ennå ikke detaljer for administrasjonene som dekker dette stedet."
-#: perllib/Utils.pm:282
-#, fuzzy, perl-format
+#: perllib/Utils.pm:283
+#, perl-format
msgid "%d week"
msgid_plural "%d weeks"
msgstr[0] "%d uke"
-msgstr[1] "%d uke"
+msgstr[1] "%d uker"
#: templates/web/emptyhomes/front/stats.html:12
#, perl-format
@@ -4290,12 +4626,68 @@ msgstr[1] ""
"Vi har ennå <strong>ikke</strong> detaljene for de andre administrasjonene "
"som dekker dette stedet."
-#: perllib/Utils.pm:284
-#, fuzzy, perl-format
+#: perllib/Utils.pm:285
+#, perl-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d dag"
-msgstr[1] "%d dag"
+msgstr[1] "%d dager"
+
+#~ msgid "(Don't worry &mdash; %s)"
+#~ msgstr "(Ingen grunn til bekymring &mdash; %s)"
+
+#, fuzzy
+#~ msgid ""
+#~ "All the information you provide here will be sent to <strong>Stadt "
+#~ "Zürich</strong>."
+#~ msgstr ""
+#~ "All informasjonen du har lagt inn her vil bli sendt til <strong>%s</"
+#~ "strong>."
+
+#, fuzzy
+#~ msgid "Reported at %s"
+#~ msgstr "Rapportert %s"
+
+#~ msgid "*unknown*"
+#~ msgstr "*ukjent*"
+
+#, fuzzy
+#~ msgid "Problem ID"
+#~ msgstr "Problem"
+
+#~ msgid "All confirmed"
+#~ msgstr "Alle bekreftet"
+
+#~ msgid "Configuration updated"
+#~ msgstr "Oppsett oppdatert"
+
+#~ msgid "Configure Open311"
+#~ msgstr "Sett opp Open311"
+
+#~ msgid "Configure Open311 integration"
+#~ msgstr "Sett opp Open311-integrasjon"
+
+#~ msgid "Council contacts"
+#~ msgstr "Administrasjonskontakter"
+
+#~ msgid "Councils"
+#~ msgstr "Administrasjoner"
+
+#~ msgid "Currently has 1+ deleted"
+#~ msgstr "For tiden har 1+ slettet"
+
+#~ msgid "In Progress"
+#~ msgstr "Under arbeid"
+
+#~ msgid "No info at all"
+#~ msgstr "Helt uten informasjon"
+
+#~ msgid "Some unconfirmeds"
+#~ msgstr "Noen ubekreftede"
+
+#~ 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."
#~ msgid "FixMyStreet administration"
#~ msgstr "Fiksgatami-administrasjon"
@@ -4316,21 +4708,6 @@ msgstr[1] "%d dag"
#~ "Ikke vær ufin &mdash; å kjefte på din administrasjon skader verdien av "
#~ "tjenesten for alle brukerne."
-#~ msgid "%d days"
-#~ msgstr "%d dager"
-
-#~ msgid "%d hours"
-#~ msgstr "%d timer"
-
-#~ msgid "%d minutes"
-#~ msgstr "%d minutter"
-
-#~ msgid "%d weeks"
-#~ msgstr "%d uker"
-
-#~ msgid "All"
-#~ msgstr "Alle"
-
#~ 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"
@@ -4362,16 +4739,6 @@ msgstr[1] "%d dag"
#~ "Du finner lokale problemer ved å søke på ditt postnummer, veinavn eller "
#~ "sted"
-#~ msgid "We do not currently cover Northern Ireland, I'm afraid."
-#~ msgstr "Vi dekker desverre ikke Nord-Irland."
-
-#, fuzzy
-#~ msgid "<strong>Yes</strong>, I have a password"
-#~ msgstr "<strong>Ja</strong>, jeg har et passord:"
-
-#~ msgid "<strong>Yes</strong>, I have a password:"
-#~ msgstr "<strong>Ja</strong>, jeg har et passord:"
-
#~ msgid ""
#~ "<a href=\"http://www.mysociety.org/\"><img id=\"logo\" width=\"133\" "
#~ "height=\"26\" src=\"/i/mysociety-dark.png\" alt=\"View mySociety.org"
@@ -4423,10 +4790,3 @@ msgstr[1] "%d dag"
#~ 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/locale/nn_NO.UTF-8/LC_MESSAGES/FixMyStreet.po b/locale/nn_NO.UTF-8/LC_MESSAGES/FixMyStreet.po
index e8b2ee555..a180daeb3 100644
--- a/locale/nn_NO.UTF-8/LC_MESSAGES/FixMyStreet.po
+++ b/locale/nn_NO.UTF-8/LC_MESSAGES/FixMyStreet.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 1.0\n"
"Report-Msgid-Bugs-To: matthew@mysociety.org\n"
-"POT-Creation-Date: 2012-12-10 13:18+0000\n"
+"POT-Creation-Date: 2013-01-31 15:59+0000\n"
"PO-Revision-Date: 2011-12-08 10:56+0100\n"
"Last-Translator: Anders Einar Hilden <hildenae@gmail.com>\n"
"Language-Team: Norwegian Nynorsk <i18n-nn@lister.ping.uio.no>\n"
@@ -21,21 +21,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:560
+#: perllib/FixMyStreet/DB/Result/Problem.pm:579
#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:339
msgid " and "
msgstr " og "
#: templates/web/default/tokens/confirm_problem.html:14
-#: templates/web/default/tokens/confirm_problem.html:18
+#: templates/web/default/tokens/confirm_problem.html:17
msgid " and <strong>we will now send it to the council</strong>"
msgstr " og <strong>vi sender det no til administrasjonen</strong>"
-#: templates/web/default/report/new/councils_text_all.html:10
-#: templates/web/default/report/new/councils_text_all.html:17
-#: templates/web/default/report/new/councils_text_all.html:3
+#: templates/web/default/report/new/councils_text_all.html:11
+#: templates/web/default/report/new/councils_text_all.html:18
+#: templates/web/default/report/new/councils_text_all.html:4
+#: templates/web/default/report/new/councils_text_none.html:11
#: 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
@@ -43,7 +43,7 @@ msgstr " og <strong>vi sender det no til administrasjonen</strong>"
msgid " or "
msgstr " eller "
-#: templates/web/default/admin/council_list.html:17
+#: templates/web/default/admin/bodies.html:31
msgid "%d addresses"
msgstr "%d adresser"
@@ -52,10 +52,11 @@ msgid "%d confirmed alerts, %d unconfirmed"
msgstr "%d stadfesta varsel, %d ikkje stadfesta"
#: templates/web/default/admin/index.html:19
+#: templates/web/zurich/admin/index.html:6
msgid "%d council contacts &ndash; %d confirmed, %d unconfirmed"
msgstr "%d administrasjonskontaktar &ndash; %d stadfesta, %d ikkje stadfesta"
-#: templates/web/default/admin/council_list.html:27
+#: templates/web/default/admin/edit-league.html:5
msgid "%d edits by %s"
msgstr "%d redigeringar av %s"
@@ -78,32 +79,49 @@ msgstr ""
msgid "%s - Summary reports"
msgstr "%s – oppsummeringsrapportar"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:610
+#: perllib/FixMyStreet/DB/Result/Problem.pm:627
msgid "%s ref:&nbsp;%s"
msgstr ""
-#: perllib/FixMyStreet/Cobrand/UK.pm:279 perllib/FixMyStreet/Cobrand/UK.pm:291
+#: perllib/FixMyStreet/Cobrand/UK.pm:275 perllib/FixMyStreet/Cobrand/UK.pm:287
msgid "%s ward, %s"
msgstr "%s bydel, %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:496
+#: perllib/FixMyStreet/DB/Result/Problem.pm:512
msgid "%s, reported anonymously at %s"
msgstr "%s, rapportert anonymt %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:498
+#: perllib/FixMyStreet/DB/Result/Problem.pm:514
msgid "%s, reported by %s at %s"
msgstr "%s, rapportert av %s %s"
-#: perllib/FixMyStreet/Cobrand/UK.pm:306 perllib/FixMyStreet/Cobrand/UK.pm:318
+#: perllib/FixMyStreet/Cobrand/UK.pm:302 perllib/FixMyStreet/Cobrand/UK.pm:314
msgid "%s, within %s ward"
msgstr "%s, innanfor bydelen %s"
-#: templates/web/default/email_sent.html:28
-msgid "(Don't worry &mdash; %s)"
-msgstr "(Ingen grunn til å uroa seg &mdash; %s)"
+#: templates/web/default/email_sent.html:29
+#, fuzzy
+msgid ""
+"(Don't worry &mdash; we'll hang on to your alert while you're checking your "
+"email.)"
+msgstr "vi tek vare på varselet ditt medan du sjekkar e-posten din."
+
+#: templates/web/default/email_sent.html:25
+#, fuzzy
+msgid ""
+"(Don't worry &mdash; we'll hang on to your problem report while you're "
+"checking your email.)"
+msgstr "vi tek vare på rapporten din medan du sjekkar e-posten din."
+
+#: templates/web/default/email_sent.html:27
+#, fuzzy
+msgid ""
+"(Don't worry &mdash; we'll hang on to your update while you're checking your "
+"email.)"
+msgstr "vi tek vare på oppdateringa di medan du sjekkar e-posten din."
#: templates/web/default/admin/report_blocks.html:11
-#: templates/web/default/admin/search_users.html:23
+#: templates/web/default/admin/users.html:26
msgid "(Email in abuse table)"
msgstr "(Epost i misbruktabellen)"
@@ -119,14 +137,16 @@ msgstr "(alternativt kan RSS-straumen tilpassast, innanfor"
#: templates/web/default/around/around_map_list_items.html:12
#: templates/web/default/around/on_map_list_items.html:9
-#: templates/web/fixmystreet/report/_item.html:23
+#: templates/web/fixmystreet/report/_item.html:20
+#: templates/web/zurich/report/_item.html:19
#, fuzzy
msgid "(closed)"
msgstr "Lukka"
#: templates/web/default/around/around_map_list_items.html:10
#: templates/web/default/around/on_map_list_items.html:7
-#: templates/web/fixmystreet/report/_item.html:21
+#: templates/web/fixmystreet/report/_item.html:18
+#: templates/web/zurich/report/_item.html:17
msgid "(fixed)"
msgstr "(løyst)"
@@ -136,17 +156,17 @@ msgid "(like graffiti, fly tipping, broken paving slabs, or street lighting)"
msgstr "(som tagging, søppel, hol i vegen, eller øydelagte gatelys)"
#: templates/web/default/reports/_list-entry.html:4
-#: templates/web/fixmystreet/report/_item.html:17
+#: templates/web/fixmystreet/report/_item.html:14
msgid "(not sent to council)"
msgstr "(ikkje rapportert til administrasjonen)"
#: templates/web/default/report/new/fill_in_details_form.html:217
-#: templates/web/zurich/report/new/fill_in_details_form.html:118
+#: templates/web/zurich/report/new/fill_in_details_form.html:100
msgid "(optional)"
msgstr "(valfritt)"
#: templates/web/default/reports/_list-entry.html:2
-#: templates/web/fixmystreet/report/_item.html:16
+#: templates/web/fixmystreet/report/_item.html:13
msgid "(sent to both)"
msgstr "(sendt til begge)"
@@ -158,27 +178,17 @@ msgstr "(vi viser aldri e-postadressa di eller telefonnummeret ditt)"
msgid "(we never show your email)"
msgstr "(vi viser aldri e-postadressa di)"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:285
-msgid "*unknown*"
-msgstr "*ukjent*"
-
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:628
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:656
-#: perllib/FixMyStreet/DB/Result/Problem.pm:353
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:635
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:663
+#: perllib/FixMyStreet/DB/Result/Problem.pm:362
msgid "-- Pick a category --"
msgstr "-- Vel ein kategori --"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:608
-#: perllib/FixMyStreet/DB/Result/Problem.pm:359
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:615
+#: perllib/FixMyStreet/DB/Result/Problem.pm:368
msgid "-- Pick a property type --"
msgstr "-- Vel ein eigedomstype --"
-#: templates/web/default/tokens/confirm_problem.html:14
-#: templates/web/default/tokens/confirm_problem.html:22
-#, fuzzy
-msgid ". You can <a href=\"%s%s\">view the problem on this site</a>."
-msgstr ". Du kan <a href=\"%s\">lesa om problemet på portalen</a>."
-
#: templates/web/default/report/_support.html:3
msgid "1 supporter"
msgstr ""
@@ -303,6 +313,7 @@ msgstr ""
"dette steget</a>.</small>"
#: templates/web/default/admin/index.html:14
+#: templates/web/zurich/admin/index.html:4
msgid "<strong>%d</strong> live problems"
msgstr "<strong>%d</strong> aktive problem"
@@ -352,10 +363,21 @@ msgstr "<strong>Ja</strong>, eg har eit passord:"
msgid "About us"
msgstr "Om oss"
-#: templates/web/default/admin/council_contacts.html:72
+#: templates/web/default/admin/bodies.html:45
+#: templates/web/default/admin/body-form.html:77
+#: templates/web/zurich/admin/body-form.html:47
+msgid "Add body"
+msgstr ""
+
+#: templates/web/default/admin/body.html:69
+#: templates/web/zurich/admin/body.html:30
msgid "Add new category"
msgstr "Legg til ny kategori"
+#: templates/web/default/admin/users.html:35
+msgid "Add user"
+msgstr ""
+
#: templates/web/default/my/my.html:56 templates/web/fixmystreet/my/my.html:60
msgid "Added %s"
msgstr "La til %s"
@@ -380,14 +402,11 @@ msgstr "Send meg varsel ved framtidige oppdateringar"
#: templates/web/default/reports/index.html:3
#: templates/web/fixmybarangay/reports/index.html:3
+#: templates/web/zurich/reports/index.html:12
#, fuzzy
msgid "All Reports"
msgstr "Alle rapportar"
-#: templates/web/default/admin/council_list.html:44
-msgid "All confirmed"
-msgstr "Alle stadfesta"
-
#: templates/web/barnet/footer.html:20 templates/web/bromley/footer.html:21
#: templates/web/bromley/header.html:77 templates/web/default/footer.html:11
#: templates/web/fiksgatami/footer.html:7
@@ -395,7 +414,9 @@ msgstr "Alle stadfesta"
#: templates/web/fixmybarangay/footer.html:20
#: templates/web/fixmystreet/footer.html:49
#: templates/web/reading/footer.html:8 templates/web/stevenage/footer.html:43
-#: templates/web/zurich/footer.html:12
+#: templates/web/zurich/admin/index-dm.html:12
+#: templates/web/zurich/footer.html:19
+#: templates/web/zurich/nav_over_content.html:6
msgid "All reports"
msgstr "Alle rapportar"
@@ -408,8 +429,8 @@ msgstr "%srapportar mellom %s og %s"
msgid "All the information you provide here will be sent to"
msgstr "All informasjonen du har lagt inn her vil sendast til"
-#: templates/web/default/report/new/councils_text_all.html:10
-#: templates/web/default/report/new/councils_text_all.html:12
+#: templates/web/default/report/new/councils_text_all.html:11
+#: templates/web/default/report/new/councils_text_all.html:13
#, fuzzy
msgid ""
"All the information you provide here will be sent to <strong>%s</strong> or "
@@ -418,8 +439,8 @@ msgstr ""
"All informasjonen du har lagt inn her vil sendast til <strong>%s</strong>."
# TfL? skal ikkje det omsetjast? --KBU
-#: templates/web/default/report/new/councils_text_all.html:3
-#: templates/web/default/report/new/councils_text_all.html:5
+#: templates/web/default/report/new/councils_text_all.html:4
+#: templates/web/default/report/new/councils_text_all.html:6
msgid ""
"All the information you provide here will be sent to <strong>%s</strong> or "
"a relevant local body such as <strong>TfL</strong>, via the London Report-It "
@@ -431,14 +452,12 @@ msgstr ""
#: templates/web/bromley/report/new/fill_in_details_form.html:4
#: templates/web/bromley/report/new/fill_in_details_form.html:6
-#: templates/web/default/report/new/councils_text_all.html:17
-#: templates/web/default/report/new/councils_text_all.html:19
+#: templates/web/default/report/new/councils_text_all.html:18
+#: templates/web/default/report/new/councils_text_all.html:20
#: templates/web/default/report/new/fill_in_details_form.html:11
#: templates/web/default/report/new/fill_in_details_form.html:13
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:6
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:8
-#: templates/web/zurich/report/new/fill_in_details_form.html:6
-#: templates/web/zurich/report/new/fill_in_details_form.html:8
msgid ""
"All the information you provide here will be sent to <strong>%s</strong>."
msgstr ""
@@ -460,14 +479,14 @@ msgstr ""
msgid "An update marked this problem as fixed."
msgstr "Ei oppdatering markerte dette problemet som løyst."
-#: templates/web/default/admin/list_flagged.html:15
+#: templates/web/default/admin/flagged.html:15
#: templates/web/default/admin/list_updates.html:10
-#: templates/web/default/admin/search_reports.html:18
+#: templates/web/default/admin/reports.html:18
msgid "Anonymous"
msgstr "Anonym"
-#: templates/web/default/admin/report_edit.html:26
-#: templates/web/default/admin/update_edit.html:14
+#: templates/web/default/admin/report_edit.html:31
+#: templates/web/default/admin/update_edit.html:17
msgid "Anonymous:"
msgstr "Anonym:"
@@ -489,6 +508,29 @@ msgstr ""
msgid "Are you from a council?"
msgstr "den lokale administrasjonen"
+#: templates/web/default/admin/body-form.html:19
+#: templates/web/zurich/admin/body-form.html:25
+msgid "Area covered"
+msgstr ""
+
+#: templates/web/zurich/admin/report_edit.html:99
+msgid "Assign to different category:"
+msgstr ""
+
+#: templates/web/zurich/admin/report_edit.html:108
+msgid "Assign to external body:"
+msgstr ""
+
+#: templates/web/zurich/admin/report_edit.html:140
+#: templates/web/zurich/admin/report_edit.html:87
+msgid "Assign to subdivision:"
+msgstr ""
+
+#: templates/web/zurich/report/updates.html:11
+#, fuzzy
+msgid "Assigned to %s"
+msgstr "Logga inn som %s"
+
#: templates/web/default/open311/index.html:17
msgid ""
"At most %d requests are returned in each query. The returned requests are "
@@ -503,6 +545,15 @@ msgstr ""
msgid "At the moment only searching for and looking at reports work."
msgstr "For augneblunken går det berre an å søkja etter og å sjå på rapportar."
+#: perllib/FixMyStreet/DB/Result/Problem.pm:317
+#: templates/web/zurich/report/_item.html:9
+msgid "Awaiting moderation"
+msgstr ""
+
+#: templates/web/default/js/translation_strings.html:26
+msgid "Back"
+msgstr ""
+
#: templates/web/default/admin/report_blocks.html:11
msgid "Ban email address"
msgstr "Bannlys e-postadresse"
@@ -513,10 +564,22 @@ msgid ""
"whom the report is sent."
msgstr ""
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1032
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1086
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:140
+#: templates/web/default/admin/bodies.html:1
+#: templates/web/zurich/header.html:63
msgid "Bodies"
msgstr ""
+#: templates/web/default/admin/reports.html:16
+#: templates/web/default/admin/users.html:14
+msgid "Body"
+msgstr ""
+
+#: templates/web/default/admin/user-form.html:7
+msgid "Body:"
+msgstr ""
+
#: templates/web/fiksgatami/footer.html:16
#: templates/web/fiksgatami/nn/footer.html:16
msgid ""
@@ -538,15 +601,20 @@ msgstr ""
"<small>Viss du ikkje kan sjå kartet, <a href='%s' rel='nofollow'>hopp over "
"dette steget</a>.</small>"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:631
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:658
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:638
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:665
#: templates/web/bromley/report/new/fill_in_details_form.html:68
-#: templates/web/default/admin/council_contacts.html:37
+#: templates/web/default/admin/bodies.html:11
+#: templates/web/default/admin/body.html:35
+#: templates/web/default/admin/flagged.html:14
#: 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/reports.html:17
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:74
-#: templates/web/zurich/report/new/fill_in_details_form.html:68
+#: templates/web/zurich/admin/body.html:13
+#: templates/web/zurich/admin/index-dm.html:22
+#: templates/web/zurich/admin/index-sdm.html:20
+#: templates/web/zurich/admin/reports.html:14
+#: templates/web/zurich/report/new/fill_in_details_form.html:50
msgid "Category"
msgstr "Kategori"
@@ -554,10 +622,13 @@ msgstr "Kategori"
msgid "Category fix rate for problems > 4 weeks old"
msgstr "Løysingsrate fordelt på kategori for problem > 4 veker gamle"
-#: templates/web/default/admin/council_contacts.html:78
-#: templates/web/default/admin/council_edit.html:23
-#: templates/web/default/admin/report_edit.html:25
+#: templates/web/default/admin/body.html:75
+#: templates/web/default/admin/body_edit.html:23
+#: templates/web/default/admin/report_edit.html:30
#: templates/web/default/report/new/fill_in_details_form.html:67
+#: templates/web/zurich/admin/body.html:36
+#: templates/web/zurich/admin/report_edit-sdm.html:23
+#: templates/web/zurich/admin/report_edit.html:98
msgid "Category:"
msgstr "Kategori:"
@@ -571,7 +642,7 @@ msgstr "Kategori: %s"
msgid "Change Password"
msgstr "Byt passord"
-#: templates/web/default/js/validation_strings.html:22
+#: templates/web/default/js/translation_strings.html:39
#: templates/web/fixmystreet/around/_report_banner.html:2
#, fuzzy
msgid "Click map to report a problem"
@@ -579,8 +650,7 @@ msgstr "Korleis rapportera eit problem"
#: templates/web/bromley/report/display.html:80
#: templates/web/bromley/report/display.html:82
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:20
+#: templates/web/default/admin/report_edit.html:25
#: templates/web/default/dashboard/index.html:138
#: templates/web/default/dashboard/index.html:140
#: templates/web/default/report/update-form.html:30
@@ -588,11 +658,17 @@ msgstr "Korleis rapportera eit problem"
#: templates/web/fixmystreet/report/banner.html:15
#: templates/web/fixmystreet/report/update-form.html:28
#: templates/web/fixmystreet/report/update-form.html:30
+#: templates/web/zurich/admin/header.html:1
+#: templates/web/zurich/admin/header.html:10
+#: templates/web/zurich/admin/header.html:12
+#: templates/web/zurich/admin/report_edit.html:75
+#: templates/web/zurich/admin/report_edit.html:77
+#: templates/web/zurich/report/banner.html:13
msgid "Closed"
msgstr "Lukka"
# skal det vera forskjellig tyding frå engelsken her? --KBU
-#: perllib/FixMyStreet/DB/Result/Problem.pm:695
+#: perllib/FixMyStreet/DB/Result/Problem.pm:720
msgid "Closed by council"
msgstr "(ikkje rapportert til administrasjonen)"
@@ -600,7 +676,7 @@ msgstr "(ikkje rapportert til administrasjonen)"
msgid "Closed reports"
msgstr "Lukka rapportar"
-#: templates/web/default/admin/problem_row.html:25
+#: templates/web/default/admin/problem_row.html:27
msgid "Closed:"
msgstr "Lukka:"
@@ -609,48 +685,38 @@ msgstr "Lukka:"
msgid "Closest nearby problems <small>(within&nbsp;%skm)</small>"
msgstr "Dei næraste problema <small>(innanfor&nbsp;%skm)</small>"
-#: templates/web/default/admin/report_edit.html:15
+#: templates/web/default/admin/report_edit.html:17
+#: templates/web/zurich/admin/report_edit-sdm.html:19
+#: templates/web/zurich/admin/report_edit.html:37
msgid "Co-ordinates:"
msgstr "Koordinatar:"
-#: templates/web/default/admin/list_flagged.html:16
+#: templates/web/default/admin/flagged.html:16
#: templates/web/default/admin/list_updates.html:13
-#: templates/web/default/admin/search_reports.html:19
+#: templates/web/default/admin/reports.html:19
msgid "Cobrand"
msgstr "Merkevaresamarbeid"
-#: templates/web/default/admin/report_edit.html:39
-#: templates/web/default/admin/update_edit.html:41
+#: templates/web/default/admin/report_edit.html:44
+#: templates/web/default/admin/update_edit.html:44
msgid "Cobrand data:"
msgstr "Data om merkevaresamarbeid:"
-#: templates/web/default/admin/report_edit.html:38
-#: templates/web/default/admin/update_edit.html:40
+#: templates/web/default/admin/report_edit.html:43
+#: templates/web/default/admin/update_edit.html:43
msgid "Cobrand:"
msgstr "Merkevaresamarbeid:"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:365
-msgid "Configuration updated"
-msgstr "Oppsett oppdatert"
-
-#: perllib/FixMyStreet/App/Controller/Admin.pm:380
+#: perllib/FixMyStreet/App/Controller/Admin.pm:395
msgid "Configuration updated - contacts will be generated automatically later"
msgstr "Oppsett oppdatert - kontaktar vil genererast automatisk seinare"
-#: templates/web/default/admin/council_edit.html:34
+#: templates/web/default/admin/body_edit.html:47
#, fuzzy
msgid "Configure Endpoint"
msgstr "Sett opp Open311"
-#: templates/web/default/admin/council_contacts.html:168
-msgid "Configure Open311"
-msgstr "Sett opp Open311"
-
-#: templates/web/default/admin/council_contacts.html:116
-msgid "Configure Open311 integration"
-msgstr "Sett opp Open311-integrasjon"
-
-#: templates/web/default/admin/council_contacts.html:46
+#: templates/web/default/admin/body.html:44
msgid "Confirm"
msgstr "Stadfest"
@@ -674,13 +740,17 @@ msgstr ""
#: templates/web/emptyhomes/tokens/confirm_problem.html:3
#: templates/web/southampton/tokens/confirm_problem.html:1
#: templates/web/southampton/tokens/confirm_problem.html:3
+#: templates/web/zurich/tokens/confirm_problem.html:1
+#: templates/web/zurich/tokens/confirm_problem.html:3
msgid "Confirmation"
msgstr "Stadfesting"
-#: templates/web/default/admin/council_contacts.html:39
-#: templates/web/default/admin/council_contacts.html:88
-#: templates/web/default/admin/council_edit.html:28
-#: templates/web/default/admin/council_edit.html:71
+#: templates/web/default/admin/body.html:37
+#: templates/web/default/admin/body.html:85
+#: templates/web/default/admin/body_edit.html:32
+#: templates/web/default/admin/body_edit.html:84
+#: templates/web/zurich/admin/report_edit-sdm.html:26
+#: templates/web/zurich/admin/report_edit.html:43
msgid "Confirmed"
msgstr "Stadfesta"
@@ -689,8 +759,8 @@ msgstr "Stadfesta"
msgid "Confirmed reports between %s and %s"
msgstr "%srapportar mellom %s og %s"
-#: templates/web/default/admin/problem_row.html:23
-#: templates/web/default/admin/report_edit.html:34
+#: templates/web/default/admin/problem_row.html:25
+#: templates/web/default/admin/report_edit.html:39
msgid "Confirmed:"
msgstr "Stadfesta:"
@@ -719,36 +789,30 @@ msgstr "Kontakt oss"
msgid "Contact the team"
msgstr "Kontakt prosjektgruppa"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1159
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1187
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1219
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1247
msgid "Could not find user"
msgstr "Kunne ikkje finna brukaren"
-#: templates/web/default/admin/list_flagged.html:13
+#: templates/web/default/js/translation_strings.html:31
+msgid "Could not look up location"
+msgstr ""
+
+#: templates/web/default/admin/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"
-#: templates/web/default/admin/council_list.html:1
-msgid "Council contacts"
-msgstr "Administrasjonskontaktar"
-
-#: templates/web/default/admin/council_contacts.html:1
-#: templates/web/default/admin/council_edit.html:1
+#: templates/web/default/admin/body.html:1
+#: templates/web/default/admin/body_edit.html:1
+#: templates/web/zurich/admin/body.html:1
msgid "Council contacts for %s"
msgstr "Administrasjonskontaktar for %s"
#: templates/web/default/admin/stats.html:84
-#: templates/web/default/admin/user_edit.html:12
msgid "Council:"
msgstr "Administrasjon:"
-#: templates/web/default/admin/council_list.html:36
-msgid "Councils"
-msgstr "Administrasjonar"
-
#: templates/web/default/admin/stats.html:12
#: templates/web/default/admin/stats.html:32
msgid "Count"
@@ -758,18 +822,23 @@ msgstr "Mengd"
msgid "Create a report"
msgstr "Lag ein rapport"
-#: templates/web/default/admin/council_contacts.html:107
+#: templates/web/default/admin/body.html:103
+#: templates/web/zurich/admin/body.html:53
msgid "Create category"
msgstr "Lag kategori"
-#: templates/web/default/admin/list_flagged.html:17
+#: templates/web/default/admin/flagged.html:17
#: templates/web/default/admin/list_updates.html:9
-#: templates/web/default/admin/search_reports.html:20
+#: templates/web/default/admin/reports.html:20
+#: templates/web/zurich/admin/list_updates.html:6
msgid "Created"
msgstr "Oppretta"
-#: templates/web/default/admin/report_edit.html:33
-#: templates/web/default/admin/update_edit.html:42
+#: templates/web/default/admin/report_edit.html:38
+#: templates/web/default/admin/update_edit.html:45
+#: templates/web/zurich/admin/report_edit-sdm.html:28
+#: templates/web/zurich/admin/report_edit.html:46
+#: templates/web/zurich/admin/update_edit.html:29
msgid "Created:"
msgstr "Oppretta:"
@@ -777,39 +846,45 @@ msgstr "Oppretta:"
msgid "Current state"
msgstr "Gjeldande tilstand"
-#: templates/web/default/admin/council_list.html:40
-msgid "Currently has 1+ deleted"
-msgstr "For tida har 1+ sletta"
-
#: templates/web/default/dashboard/index.html:5
#: templates/web/default/dashboard/index.html:7
msgid "Dashboard"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:40
-#: templates/web/default/admin/council_contacts.html:91
-#: templates/web/default/admin/council_edit.html:29
-#: templates/web/default/admin/council_edit.html:72
+#: templates/web/default/admin/body.html:38
+#: templates/web/default/admin/body.html:88
+#: templates/web/default/admin/body_edit.html:37
+#: templates/web/default/admin/body_edit.html:85
msgid "Deleted"
msgstr "Sletta"
+#: templates/web/zurich/admin/index-dm.html:21
+#: templates/web/zurich/admin/index-sdm.html:19
+#: templates/web/zurich/admin/reports.html:13
+msgid "Description"
+msgstr ""
+
#: templates/web/bromley/report/new/fill_in_details_form.html:54
+#: templates/web/default/js/translation_strings.html:28
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:66
-#: templates/web/zurich/report/new/fill_in_details_form.html:60
+#: templates/web/zurich/report/new/fill_in_details_form.html:42
#, fuzzy
msgid "Details"
msgstr "Detaljar:"
#: templates/web/default/admin/report_edit.html:14
#: templates/web/default/report/new/fill_in_details_form.html:61
+#: templates/web/zurich/admin/report_edit-sdm.html:14
+#: templates/web/zurich/admin/report_edit.html:22
+#: templates/web/zurich/admin/report_edit.html:29
msgid "Details:"
msgstr "Detaljar:"
-#: templates/web/default/admin/council_contacts.html:41
+#: templates/web/default/admin/body.html:39
msgid "Devolved"
msgstr ""
-#: templates/web/default/admin/council_list.html:23
+#: templates/web/default/admin/edit-league.html:1
msgid "Diligency prize league table"
msgstr "Arbeidshestar"
@@ -831,16 +906,25 @@ msgid "Don&rsquo;t know"
msgstr "Veit ikkje"
#: templates/web/default/admin/list_updates.html:35
-#: templates/web/default/admin/problem_row.html:29
-#: templates/web/default/admin/search_users.html:24
+#: templates/web/default/admin/problem_row.html:31
+#: templates/web/default/admin/users.html:28
+#: templates/web/zurich/admin/problem_row.html:35
msgid "Edit"
msgstr "Rediger"
+#: templates/web/default/admin/body.html:112
+#: templates/web/zurich/admin/body.html:64
+msgid "Edit body details"
+msgstr ""
+
#: templates/web/default/admin/report_edit.html:1
+#: templates/web/zurich/admin/report_edit-sdm.html:1
+#: templates/web/zurich/admin/report_edit.html:4
msgid "Editing problem %d"
msgstr "Rediger problem %d"
#: templates/web/default/admin/update_edit.html:1
+#: templates/web/zurich/admin/update_edit.html:1
msgid "Editing update %d"
msgstr "Redigerer oppdatering %d"
@@ -848,28 +932,31 @@ msgstr "Redigerer oppdatering %d"
msgid "Editing user %d"
msgstr "Redigerer brukar %d"
-#: templates/web/default/admin/council_edit.html:73
+#: templates/web/default/admin/body_edit.html:86
msgid "Editor"
msgstr "Oppdatert av"
#: templates/web/bromley/report/display.html:126
-#: templates/web/default/admin/council_contacts.html:38
-#: templates/web/default/admin/council_edit.html:70
-#: templates/web/default/admin/list_flagged.html:12
-#: templates/web/default/admin/list_flagged.html:35
+#: templates/web/default/admin/bodies.html:9
+#: templates/web/default/admin/body.html:36
+#: templates/web/default/admin/body_edit.html:83
+#: templates/web/default/admin/flagged.html:12
+#: templates/web/default/admin/flagged.html:35
#: templates/web/default/admin/list_updates.html:8
-#: templates/web/default/admin/search_reports.html:15
-#: templates/web/default/admin/search_users.html:13
+#: templates/web/default/admin/reports.html:15
+#: templates/web/default/admin/users.html:13
#: templates/web/fixmystreet/auth/general.html:20
#: templates/web/fixmystreet/report/update-form.html:74
+#: templates/web/zurich/admin/body-form.html:9
+#: templates/web/zurich/admin/body.html:14
msgid "Email"
msgstr "E-post"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1135
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1195
msgid "Email added to abuse list"
msgstr "E-post lagd til misbrukliste"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1132
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1192
msgid "Email already in abuse list"
msgstr "E-post allereie i misbruklista"
@@ -881,25 +968,28 @@ msgstr "Send meg e-post om lokale problem"
msgid "Email me updates"
msgstr "Send meg oppdateringar"
-#: templates/web/default/admin/council_contacts.html:83
-#: 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/admin/body.html:80
+#: templates/web/default/admin/body_edit.html:26
+#: templates/web/default/admin/report_edit.html:36
+#: templates/web/default/admin/update_edit.html:27
+#: templates/web/default/admin/user-form.html:6
#: templates/web/default/alert/updates.html:13
#: templates/web/default/report/display.html:34
+#: templates/web/zurich/admin/body.html:41
+#: templates/web/zurich/admin/report_edit-sdm.html:25
+#: templates/web/zurich/admin/report_edit.html:42
msgid "Email:"
msgstr "E-post:"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:610
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:617
msgid "Empty flat or maisonette"
msgstr "Tom leilegheit"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:609
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:616
msgid "Empty house or bungalow"
msgstr "Tomt hus eller bungalow"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:612
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:619
msgid "Empty office or other commercial"
msgstr "Tomt kontor eller forretningsbygg"
@@ -907,11 +997,11 @@ msgstr "Tomt kontor eller forretningsbygg"
msgid "Empty property details form"
msgstr "Tom eigedom detaljskjema"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:613
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:620
msgid "Empty pub or bar"
msgstr "Tom pub eller bar"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:614
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:621
msgid "Empty public building - school, hospital, etc."
msgstr "Tom offentleg bygning – skule, sjukehus, osb."
@@ -927,7 +1017,12 @@ msgstr "Sluttdag:"
msgid "End month:"
msgstr "Sluttmånad:"
-#: perllib/FixMyStreet/Cobrand/Zurich.pm:9
+#: templates/web/default/admin/body-form.html:40
+#, fuzzy
+msgid "Endpoint"
+msgstr "Sett opp Open311"
+
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:25
#, fuzzy
msgid "Enter a Z&uuml;rich street name"
msgstr "Skriv inn postnummer i nærleiken, eller vegnamn og stad"
@@ -985,8 +1080,8 @@ msgstr "Legg inn detaljar om problemet"
msgid "Error"
msgstr "Feil"
-#: templates/web/default/admin/council_contacts.html:13
-#: templates/web/default/admin/council_edit.html:18
+#: templates/web/default/admin/body.html:11
+#: templates/web/default/admin/body_edit.html:18
msgid "Example postcode %s"
msgstr "Postnummerdøme %s"
@@ -994,7 +1089,7 @@ msgstr "Postnummerdøme %s"
msgid "Examples:"
msgstr "Døme:"
-#: templates/web/default/admin/report_edit.html:40
+#: templates/web/default/admin/report_edit.html:45
#, fuzzy
msgid "Extra data:"
msgstr "Data om merkevaresamarbeid:"
@@ -1008,6 +1103,12 @@ msgstr ""
"Klarte ikkje å senda meldinga. Ver venleg og prøv igjen seinare eller <a "
"href=\"mailto:%s\">send oss ein e-post</a>."
+#: templates/web/zurich/admin/index-dm.html:32
+#: templates/web/zurich/admin/index-sdm.html:29
+#, fuzzy
+msgid "Filter report list"
+msgstr "Løyste rapportar"
+
#: templates/web/bromley/report/display.html:189
#: templates/web/bromley/report/new/fill_in_details_form.html:113
#: templates/web/bromley/report/new/fill_in_details_form.html:160
@@ -1068,8 +1169,7 @@ msgstr ""
#: templates/web/bromley/report/display.html:80
#: templates/web/bromley/report/display.html:82
#: templates/web/default/admin/index.html:36
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:20
+#: templates/web/default/admin/report_edit.html:25
#: templates/web/default/dashboard/index.html:138
#: templates/web/default/dashboard/index.html:140
#: templates/web/default/report/update-form.html:30
@@ -1080,13 +1180,11 @@ msgstr ""
msgid "Fixed"
msgstr "Løyst"
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:21
+#: templates/web/default/admin/report_edit.html:26
msgid "Fixed - Council"
msgstr "Løyst – Administrasjon"
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:21
+#: templates/web/default/admin/report_edit.html:26
msgid "Fixed - User"
msgstr "Løyst – Brukar"
@@ -1094,7 +1192,7 @@ msgstr "Løyst – Brukar"
msgid "Fixed reports"
msgstr "Løyste rapportar"
-#: templates/web/default/admin/problem_row.html:24
+#: templates/web/default/admin/problem_row.html:26
msgid "Fixed:"
msgstr "Løyst:"
@@ -1102,13 +1200,13 @@ msgstr "Løyst:"
msgid "Flag user"
msgstr "Flagg brukar"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1037
-#: templates/web/default/admin/search_users.html:15
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1091
+#: templates/web/default/admin/users.html:16
msgid "Flagged"
msgstr "Flagga:"
-#: templates/web/default/admin/report_edit.html:42
-#: templates/web/default/admin/user_edit.html:18
+#: templates/web/default/admin/report_edit.html:47
+#: templates/web/default/admin/user-form.html:14
msgid "Flagged:"
msgstr "Flagga:"
@@ -1118,7 +1216,7 @@ msgstr "Flagga:"
msgid "Follow a ward link to view only reports within that ward."
msgstr "Følg ei bydellenkje for å berre sjå rapportar innanfor den bydelen."
-#: templates/web/default/admin/report_edit.html:16
+#: templates/web/default/admin/report_edit.html:21
msgid "For council(s):"
msgstr "For administrasjon(ane):"
@@ -1136,7 +1234,7 @@ msgstr "Rapportane dine"
#: templates/web/fixmybarangay/faq/faq-en-gb.html:1
#: templates/web/fixmystreet/faq/faq-en-gb.html:1
#: templates/web/fixmystreet/static/privacy.html:1
-#: templates/web/zurich/faq/faq-de.html:1
+#: templates/web/zurich/faq/faq-de-ch.html:1
msgid "Frequently Asked Questions"
msgstr "Ofte spurde spurnader"
@@ -1149,7 +1247,7 @@ msgid "GeoRSS on Google Maps"
msgstr "GeoRSS på Google Maps"
#: templates/web/bromley/report/display.html:30
-#: templates/web/fixmystreet/report/display.html:31
+#: templates/web/fixmystreet/report/display.html:38
#, fuzzy
msgid "Get updates"
msgstr "Siste oppdatering:"
@@ -1179,11 +1277,12 @@ msgstr "Gje meg ein RSS-straum"
msgid "Go"
msgstr "Hald fram"
-#: templates/web/default/admin/report_edit.html:41
+#: templates/web/default/admin/report_edit.html:46
msgid "Going to send questionnaire?"
msgstr "Skal spørjeskjemaet sendast?"
#: templates/web/default/admin/index.html:24
+#: templates/web/zurich/admin/index.html:11
msgid "Graph of problem creation by status over time"
msgstr "Graf over problemoppretting fordelt på status over tid"
@@ -1215,7 +1314,8 @@ msgstr ""
#: templates/web/fixmybarangay/footer.html:24
#: templates/web/fixmystreet/footer.html:53
#: templates/web/reading/footer.html:10 templates/web/stevenage/footer.html:47
-#: templates/web/zurich/footer.html:14
+#: templates/web/zurich/footer.html:21
+#: templates/web/zurich/nav_over_content.html:8
msgid "Help"
msgstr "Hjelp"
@@ -1228,34 +1328,45 @@ msgstr "Her er dei ulike typane lokale problemvarsel for &laquo;%s&raquo;."
#: templates/web/bromley/header.html:99
#: templates/web/fixmybarangay/header.html:64
#: templates/web/fixmystreet/header.html:49
-#: templates/web/stevenage/header.html:97 templates/web/zurich/header.html:47
+#: templates/web/stevenage/header.html:97 templates/web/zurich/footer.html:11
msgid "Hi %s"
msgstr ""
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:21
-#: templates/web/default/admin/update_edit.html:19
+#: templates/web/default/admin/report_edit.html:26
+#: templates/web/default/admin/update_edit.html:22
+#: templates/web/zurich/admin/header.html:1
+#: templates/web/zurich/admin/header.html:11
+#: templates/web/zurich/admin/report_edit.html:70
+#: templates/web/zurich/admin/update_edit.html:18
msgid "Hidden"
msgstr "Skjult"
-#: templates/web/default/around/display_location.html:63
+#: templates/web/default/around/display_location.html:66
msgid "Hide old"
msgstr ""
-#: templates/web/default/around/display_location.html:58
+#: templates/web/default/around/display_location.html:61
msgid "Hide pins"
msgstr "Skjul nåler"
-#: templates/web/default/admin/council_edit.html:66
+#: templates/web/default/admin/body_edit.html:79
msgid "History"
msgstr "Historie"
+#: templates/web/default/js/translation_strings.html:25
+msgid "Home"
+msgstr ""
+
#: templates/web/default/index-steps.html:1
#: templates/web/emptyhomes/index.html:53
msgid "How to report a problem"
msgstr "Korleis rapportera eit problem"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:648
+#: templates/web/default/js/translation_strings.html:27
+msgid "How to send successful reports"
+msgstr ""
+
+#: perllib/FixMyStreet/App/Controller/Admin.pm:670
msgid "I am afraid you cannot confirm unconfirmed reports."
msgstr "Eg er redd du ikkje kan stadfesta ustadfesta rapportar."
@@ -1271,7 +1382,7 @@ msgstr ""
"Eg er redd vi ikkje kunne verifisera den referansen, då det er for lenge "
"sidan rapporten vart laga."
-#: perllib/FixMyStreet/App/Controller/Tokens.pm:235
+#: perllib/FixMyStreet/App/Controller/Tokens.pm:257
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"
@@ -1279,14 +1390,33 @@ msgstr ""
"Eg er redd vi ikkje kunne verifisera den referansen. Viss du kopierte "
"nettadressa frå ein e-post, sjekk at du har kopiert ho korrekt.\n"
-#: templates/web/default/admin/list_flagged.html:9
+#: templates/web/default/admin/flagged.html:9
#: templates/web/default/admin/list_updates.html:5
-#: templates/web/default/admin/search_reports.html:12
+#: templates/web/default/admin/reports.html:12
+#: templates/web/zurich/admin/index-dm.html:20
+#: templates/web/zurich/admin/index-sdm.html:18
+#: templates/web/zurich/admin/list_updates.html:5
+#: templates/web/zurich/admin/reports.html:12
msgid "ID"
msgstr "ID"
-#: templates/web/default/report/new/councils_text_none.html:11
-#: templates/web/default/report/new/councils_text_none.html:12
+#: templates/web/default/email_sent.html:19
+#, fuzzy
+msgid "If you do not, your alert will not be activated."
+msgstr "varselet ditt vil ikkje aktiverast"
+
+#: templates/web/default/email_sent.html:15
+#, fuzzy
+msgid "If you do not, your problem will not be posted."
+msgstr "vil problemet ditt ikkje publiserast"
+
+#: templates/web/default/email_sent.html:17
+#, fuzzy
+msgid "If you do not, your update will not be posted."
+msgstr "oppdateringa di vil ikkje publiserast"
+
+#: templates/web/default/report/new/councils_text_none.html:8
+#: templates/web/default/report/new/councils_text_none.html:9
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."
@@ -1306,8 +1436,8 @@ msgstr ""
"sender inn rapporten din, slik at vi kan visa administrasjonen aktiviteten i "
"området ditt."
-#: templates/web/default/auth/token.html:23
-#: templates/web/default/email_sent.html:24
+#: templates/web/default/auth/token.html:25
+#: templates/web/default/email_sent.html:9
msgid ""
"If you use web-based email or have 'junk mail' filters, you may wish to "
"check your bulk/spam mail folders: sometimes, our messages are marked that "
@@ -1336,19 +1466,6 @@ msgstr "Ugyldig ID"
msgid "Illegal feed selection"
msgstr "Ugyldig val av straum"
-#: templates/web/bromley/report/display.html:80
-#: templates/web/bromley/report/display.html:82
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:20
-#: templates/web/default/dashboard/index.html:138
-#: templates/web/default/dashboard/index.html:140
-#: templates/web/default/report/update-form.html:30
-#: templates/web/default/report/update-form.html:32
-#: templates/web/fixmystreet/report/update-form.html:28
-#: templates/web/fixmystreet/report/update-form.html:30
-msgid "In Progress"
-msgstr "Under arbeid"
-
#: templates/web/default/open311/index.html:21
msgid ""
"In addition, the following attributes that are not part of the Open311 v2 "
@@ -1361,39 +1478,61 @@ msgstr ""
"av description), interface_used, comment_count, requestor_name (berre "
"tilstades viss innsendar tillét at namnet kunne visast på denne nettstaden)."
+#: templates/web/bromley/report/display.html:80
+#: templates/web/bromley/report/display.html:82
+#: templates/web/default/admin/report_edit.html:25
+#: templates/web/default/dashboard/index.html:138
+#: templates/web/default/dashboard/index.html:140
+#: templates/web/default/report/update-form.html:30
+#: templates/web/default/report/update-form.html:32
#: templates/web/fixmystreet/report/banner.html:19
+#: templates/web/fixmystreet/report/update-form.html:28
+#: templates/web/fixmystreet/report/update-form.html:30
+#: templates/web/zurich/admin/header.html:1
+#: templates/web/zurich/admin/header.html:8
+#: templates/web/zurich/admin/report_edit.html:79
+#: templates/web/zurich/report/banner.html:15
#, fuzzy
msgid "In progress"
msgstr "Under arbeid"
+#: templates/web/zurich/admin/report_edit.html:118
+#, fuzzy
+msgid "Include reporter personal details"
+msgstr "Ver venleg og legg inn opplysningar om problemet"
+
#: templates/web/default/admin/stats.html:76
msgid "Include unconfirmed reports"
msgstr "Inkluder ikkje-stadfesta problem"
-#: perllib/FixMyStreet/App/Controller/Open311.pm:356
+#: perllib/FixMyStreet/App/Controller/Open311.pm:348
msgid "Incorrect has_photo value \"%s\""
msgstr "Feil has_photo-verdi «%s»"
-#: perllib/FixMyStreet/App/Controller/Open311.pm:341
+#: templates/web/zurich/admin/report_edit-sdm.html:37
+#: templates/web/zurich/admin/report_edit.html:61
+msgid "Internal notes:"
+msgstr ""
+
+#: perllib/FixMyStreet/App/Controller/Open311.pm:333
msgid "Invalid agency_responsible value %s"
msgstr "Ugyldig agency_responsible-verdi %s"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:952
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1006
msgid "Invalid end date"
msgstr "Ugyldig slutt-dato"
-#: perllib/FixMyStreet/App/Controller/Open311.pm:432
+#: perllib/FixMyStreet/App/Controller/Open311.pm:424
msgid "Invalid format %s specified."
msgstr "Ugyldig format %s oppgjeve."
-#: perllib/FixMyStreet/App/Controller/Admin.pm:942
+#: perllib/FixMyStreet/App/Controller/Admin.pm:996
msgid "Invalid start date"
msgstr "Ugyldig startdato"
#: templates/web/bromley/report/display.html:80
#: templates/web/bromley/report/display.html:81
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:19
+#: templates/web/default/admin/report_edit.html:24
#: templates/web/default/dashboard/index.html:138
#: templates/web/default/dashboard/index.html:139
#: templates/web/default/report/update-form.html:30
@@ -1434,27 +1573,28 @@ msgstr "Hugs mi innlogging på denne datamaskina"
msgid "Last Name"
msgstr "Siste oppdatering:"
-#: templates/web/default/admin/council_contacts.html:42
+#: templates/web/default/admin/body.html:40
+#: templates/web/zurich/admin/body.html:15
msgid "Last editor"
msgstr "Sist redigert av"
-#: templates/web/default/admin/report_edit.html:36
+#: templates/web/default/admin/report_edit.html:41
msgid "Last update:"
msgstr "Siste oppdatering:"
-#: templates/web/default/admin/problem_row.html:26
+#: templates/web/default/admin/problem_row.html:28
msgid "Last&nbsp;update:"
msgstr "Siste&nbsp;oppdatering:"
-#: templates/web/default/admin/council_contacts.html:16
-#: templates/web/default/admin/council_contacts.html:18
+#: templates/web/default/admin/body.html:14
+#: templates/web/default/admin/body.html:16
msgid "List all reported problems"
msgstr "Vis alle rapporterte problem"
#: templates/web/bromley/report/new/fill_in_details_form.html:69
#: templates/web/default/report/new/fill_in_details_form.html:68
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:75
-#: templates/web/zurich/report/new/fill_in_details_form.html:69
+#: templates/web/zurich/report/new/fill_in_details_form.html:51
msgid "Loading..."
msgstr "Lastar …"
@@ -1497,6 +1637,10 @@ msgstr "Lokale varsel"
msgid "Locate the problem on a map of the area"
msgstr "Lokaliser problemet på kartet over området"
+#: templates/web/default/js/translation_strings.html:37
+msgid "MAP"
+msgstr ""
+
#: perllib/FixMyStreet/Map/OSM.pm:44
msgid ""
"Map &copy; <a id=\"osm_link\" href=\"http://www.openstreetmap.org/"
@@ -1516,7 +1660,7 @@ msgstr "Melding:"
msgid "Message:"
msgstr "Melding:"
-#: perllib/FixMyStreet/App/Controller/Open311.pm:440
+#: perllib/FixMyStreet/App/Controller/Open311.pm:432
msgid "Missing jurisdiction_id"
msgstr "Manglar jurisdiction_id"
@@ -1528,11 +1672,13 @@ msgstr "Månad"
msgid "More problems nearby"
msgstr "Fleire problem i nærleiken"
-#: templates/web/default/admin/list_flagged.html:11
-#: templates/web/default/admin/list_flagged.html:34
+#: templates/web/default/admin/bodies.html:7
+#: templates/web/default/admin/body-form.html:4
+#: templates/web/default/admin/flagged.html:11
+#: templates/web/default/admin/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/admin/reports.html:14
+#: templates/web/default/admin/users.html:12
#: templates/web/default/reports/index.html:15
#: templates/web/emptyhomes/reports/index.html:10
#: templates/web/fiksgatami/nn/reports/index.html:9
@@ -1542,13 +1688,16 @@ msgstr "Fleire problem i nærleiken"
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:120
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:197
#: templates/web/fixmystreet/report/update-form.html:134
-#: templates/web/zurich/report/new/fill_in_details_form.html:118
+#: templates/web/zurich/admin/body-form.html:4
+#: templates/web/zurich/report/new/fill_in_details_form.html:100
msgid "Name"
msgstr "Namn"
-#: templates/web/default/admin/report_edit.html:30
-#: templates/web/default/admin/update_edit.html:23
-#: templates/web/default/admin/user_edit.html:10
+#: templates/web/default/admin/report_edit.html:35
+#: templates/web/default/admin/update_edit.html:26
+#: templates/web/default/admin/user-form.html:5
+#: templates/web/zurich/admin/report_edit-sdm.html:24
+#: templates/web/zurich/admin/report_edit.html:41
msgid "Name:"
msgstr "Namn:"
@@ -1566,7 +1715,7 @@ msgstr ""
"Næraste namngjevne veg til nålen plassert på kartet (automatisk generert ved "
"hjelp av OpenStreetMap): %s%s"
-#: perllib/FixMyStreet/Cobrand/UK.pm:152
+#: perllib/FixMyStreet/Cobrand/UK.pm:148
msgid ""
"Nearest postcode to the pin placed on the map (automatically generated): %s "
"(%sm away)"
@@ -1583,7 +1732,7 @@ msgstr ""
"Næraste veg til nålen plassert på karta (automatisk generert ved hjelp av "
"Bing Maps): %s"
-#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:265
+#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:267
#, fuzzy
msgid ""
"Nearest road to the pin placed on the map (automatically generated by Bing "
@@ -1593,7 +1742,7 @@ msgstr ""
"Næraste veg til nålen plassert på karta (automatisk generert ved hjelp av "
"Bing Maps): %s"
-#: templates/web/default/email_sent.html:20
+#: templates/web/default/email_sent.html:3
msgid "Nearly Done! Now check your email..."
msgstr "Nesten ferdig! No må du sjekka e-posten din …"
@@ -1603,7 +1752,12 @@ msgstr "Nesten ferdig! No må du sjekka e-posten din …"
msgid "New <br>problems"
msgstr "Nye problem"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:320
+#: perllib/FixMyStreet/App/Controller/Admin.pm:249
+#, fuzzy
+msgid "New body added"
+msgstr "Ny kategorikontakt lagt til"
+
+#: perllib/FixMyStreet/App/Controller/Admin.pm:351
msgid "New category contact added"
msgstr "Ny kategorikontakt lagt til"
@@ -1641,6 +1795,11 @@ msgstr "Nye problem i {{COUNCIL}} på FiksGataMi"
msgid "New problems within {{NAME}}'s boundary on FixMyStreet"
msgstr "Nye rapportar innanfor grensa til {{NAME}} på FiksGataMi"
+#: templates/web/zurich/admin/index-sdm.html:4
+#, fuzzy
+msgid "New reports"
+msgstr "Opne rapportar"
+
#: db/alert_types_eha.pl:23
msgid ""
"New reports for {{COUNCIL}} within {{WARD}} ward on reportemptyhomes.com"
@@ -1667,23 +1826,28 @@ msgstr "Nye rapportar innanfor grensa til {{NAME}} på reportemptyhomes.com"
msgid "New state"
msgstr "Ny tilstand"
+#: templates/web/zurich/admin/report_edit-sdm.html:40
+#, fuzzy
+msgid "New update:"
+msgstr "Siste oppdatering:"
+
#: templates/web/fiksgatami/front/news.html:9
#: templates/web/fiksgatami/nn/front/news.html:9
#: templates/web/fixmystreet/front/news.html:8
msgid "New!"
msgstr "Ny!"
-#: templates/web/default/admin/council_contacts.html:52
-#: templates/web/default/admin/council_contacts.html:53
-#: templates/web/default/admin/council_contacts.html:54
-#: templates/web/default/admin/council_edit.html:4
+#: templates/web/default/admin/body.html:50
+#: templates/web/default/admin/body.html:51
+#: templates/web/default/admin/body.html:52
+#: templates/web/default/admin/body_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:28
-#: templates/web/default/admin/report_edit.html:41
-#: templates/web/default/admin/update_edit.html:16
+#: templates/web/default/admin/problem_row.html:21
+#: templates/web/default/admin/report_edit.html:33
+#: templates/web/default/admin/report_edit.html:46
+#: templates/web/default/admin/update_edit.html:19
#: templates/web/default/questionnaire/creator_fixed.html:16
#: templates/web/default/questionnaire/index.html:107
#: templates/web/default/questionnaire/index.html:68
@@ -1692,30 +1856,34 @@ msgstr "Ny!"
msgid "No"
msgstr "Nei"
+#: templates/web/default/admin/user-form.html:8
+msgid "No body"
+msgstr ""
+
#: templates/web/default/admin/stats.html:85
-#: templates/web/default/admin/user_edit.html:13
msgid "No council"
msgstr "Ingen administrasjon"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:336
+#: perllib/FixMyStreet/DB/Result/Problem.pm:345
msgid "No council selected"
msgstr "Ingen administrasjon er vald"
-#: templates/web/default/admin/council_list.html:32
+#: templates/web/default/admin/edit-league.html:10
msgid "No edits have yet been made."
msgstr "Ingen endringar er gjort."
-#: templates/web/default/admin/list_flagged.html:26
+#: templates/web/default/admin/flagged.html:26
msgid "No flagged problems found"
msgstr "Fann ingen flagga problem"
-#: templates/web/default/admin/list_flagged.html:47
+#: templates/web/default/admin/flagged.html:47
msgid "No flagged users found"
msgstr "Fann ingen flagga brukarar"
-#: templates/web/default/admin/council_list.html:38
-msgid "No info at all"
-msgstr "Heilt utan informasjon"
+#: templates/web/zurich/admin/report_edit-sdm.html:46
+#, fuzzy
+msgid "No further updates"
+msgstr "Oppdateringane dine"
#: templates/web/default/around/around_map_list_items.html:17
#: templates/web/fixmystreet/around/around_map_list_items.html:8
@@ -1727,19 +1895,28 @@ msgstr "Fann ingen problem."
msgid "No problems have been reported yet."
msgstr "Ingen problem er rapporterte"
+#: templates/web/default/js/translation_strings.html:32
+msgid "No result returned"
+msgstr ""
+
#: templates/web/default/report/_support.html:3
msgid "No supporters"
msgstr ""
-#: templates/web/default/admin/council_contacts.html:57
+#: templates/web/default/admin/body.html:55
msgid "Non Public"
msgstr ""
-#: templates/web/default/admin/council_list.html:5
-#: templates/web/default/admin/report_edit.html:16
+#: templates/web/default/admin/report_edit.html:21
+#: templates/web/zurich/admin/report_edit-sdm.html:27
+#: templates/web/zurich/admin/report_edit.html:45
msgid "None"
msgstr "Ingen"
+#: templates/web/zurich/admin/report_edit-sdm.html:10
+msgid "Not for my subdivision"
+msgstr ""
+
#: templates/web/default/admin/questionnaire.html:6
msgid "Not reported before"
msgstr "Ikkje rapportert tidlegare"
@@ -1749,8 +1926,9 @@ msgstr "Ikkje rapportert tidlegare"
msgid "Not reported to council"
msgstr "Ikkje rapportert til administrasjonen"
-#: templates/web/default/admin/council_contacts.html:43
-#: templates/web/default/admin/council_edit.html:74
+#: templates/web/default/admin/body.html:41
+#: templates/web/default/admin/body_edit.html:87
+#: templates/web/zurich/admin/body.html:16
msgid "Note"
msgstr "Merk"
@@ -1764,8 +1942,9 @@ msgstr ""
"var oppretta. Det treng vera den same månaden som rapporten var stadfesta, "
"så tala kan hoppa litt opp og ned."
-#: templates/web/default/admin/council_contacts.html:95
-#: templates/web/default/admin/council_edit.html:32
+#: templates/web/default/admin/body.html:92
+#: templates/web/default/admin/body_edit.html:44
+#: templates/web/zurich/admin/body.html:47
msgid "Note:"
msgstr "Merk:"
@@ -1791,6 +1970,10 @@ msgstr "På tide å registrera oppdateringa di, har du eit FiksGataMi-passord?"
msgid "Now to submit your update&hellip; do you have a FixMyStreet password?"
msgstr "På tide å registrera oppdateringa di, har du eit FiksGataMi-passord?"
+#: templates/web/default/js/translation_strings.html:36
+msgid "OK"
+msgstr ""
+
#: templates/web/default/report/display.html:21
#: templates/web/default/report/update.html:16
msgid "Offensive? Unsuitable? Tell us"
@@ -1836,11 +2019,16 @@ msgid "Older problems"
msgstr "Eldre problem"
#: templates/web/bromley/report/display.html:80
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/update_edit.html:19
+#: templates/web/default/admin/report_edit.html:23
+#: templates/web/default/admin/update_edit.html:22
#: templates/web/default/dashboard/index.html:138
#: templates/web/default/report/update-form.html:30
#: templates/web/fixmystreet/report/update-form.html:28
+#: templates/web/zurich/admin/header.html:1
+#: templates/web/zurich/admin/header.html:7
+#: templates/web/zurich/admin/report_edit.html:68
+#: templates/web/zurich/admin/update_edit.html:18
+#: templates/web/zurich/report/banner.html:11
msgid "Open"
msgstr "Opne"
@@ -1874,13 +2062,13 @@ msgstr ""
"Eller du kan abonnera på varsel basert på bydel eller administrasjon du "
"høyrer til under:"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:1006
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:656
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:657
-#: perllib/FixMyStreet/DB/Result/Problem.pm:505
-#: perllib/FixMyStreet/DB/Result/Problem.pm:515
-#: perllib/FixMyStreet/DB/Result/Problem.pm:525
-#: perllib/FixMyStreet/DB/Result/Problem.pm:537
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:1023
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:663
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:664
+#: perllib/FixMyStreet/DB/Result/Problem.pm:521
+#: perllib/FixMyStreet/DB/Result/Problem.pm:531
+#: perllib/FixMyStreet/DB/Result/Problem.pm:541
+#: perllib/FixMyStreet/DB/Result/Problem.pm:553
#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:331
#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:340
msgid "Other"
@@ -1903,8 +2091,12 @@ msgstr "Eigar"
msgid "Page Not Found"
msgstr "Fann ikkje sida"
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:21
+#: templates/web/default/admin/body-form.html:9
+#: templates/web/zurich/admin/body-form.html:15
+msgid "Parent"
+msgstr ""
+
+#: templates/web/default/admin/report_edit.html:26
msgid "Partial"
msgstr "Delvis"
@@ -1925,14 +2117,16 @@ msgstr "Passord:"
#: templates/web/bromley/report/new/fill_in_details_form.html:183
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:148
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:215
-#: templates/web/zurich/report/new/fill_in_details_form.html:124
+#: templates/web/zurich/report/new/fill_in_details_form.html:106
#, fuzzy
msgid "Phone number (optional)"
msgstr "(valfritt)"
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:262
-#: templates/web/default/admin/report_edit.html:32
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:263
+#: templates/web/default/admin/report_edit.html:37
#: templates/web/default/report/new/fill_in_details_form.html:215
+#: templates/web/zurich/admin/report_edit-sdm.html:27
+#: templates/web/zurich/admin/report_edit.html:45
msgid "Phone:"
msgstr "Telefon:"
@@ -1940,7 +2134,7 @@ msgstr "Telefon:"
#: templates/web/bromley/report/new/fill_in_details_form.html:104
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:92
#: templates/web/fixmystreet/report/update-form.html:57
-#: templates/web/zurich/report/new/fill_in_details_form.html:86
+#: templates/web/zurich/report/new/fill_in_details_form.html:68
#, fuzzy
msgid "Photo"
msgstr "Bilete:"
@@ -1956,16 +2150,23 @@ msgstr "Bilete:"
msgid "Photos of recent nearby reports"
msgstr "Bilete av nye problem i nærleiken"
+#: templates/web/default/js/translation_strings.html:24
+msgid "Place pin on map"
+msgstr ""
+
#: templates/web/bromley/report/display.html:80
#: templates/web/bromley/report/display.html:81
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:19
+#: templates/web/default/admin/report_edit.html:24
#: templates/web/default/dashboard/index.html:138
#: templates/web/default/dashboard/index.html:139
#: templates/web/default/report/update-form.html:30
#: templates/web/default/report/update-form.html:31
#: templates/web/fixmystreet/report/update-form.html:28
#: templates/web/fixmystreet/report/update-form.html:29
+#: templates/web/zurich/admin/header.html:1
+#: templates/web/zurich/admin/header.html:9
+#: templates/web/zurich/admin/index-dm.html:9
+#: templates/web/zurich/admin/report_edit.html:69
msgid "Planned"
msgstr "Planlagt"
@@ -1977,7 +2178,7 @@ msgid ""
msgstr "Ver venleg og sjå over oppdateringane som er lagt inn."
#: templates/web/default/report/new/notes.html:6
-#: templates/web/fixmystreet/report/new/notes.html:5
+#: templates/web/fixmystreet/report/new/notes.html:6
msgid "Please be polite, concise and to the point."
msgstr "Ver høfleg, poengtert og kortfatta."
@@ -1997,16 +2198,16 @@ msgstr "Ver venleg og sjekk e-posten du oppgav"
msgid "Please check your email address is correct"
msgstr "Ver venleg og sjekk at du har skrive ei gyldig e-postadresse"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:822
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:829
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:848
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:891
-#: perllib/FixMyStreet/DB/Result/Problem.pm:355
-#: templates/web/default/js/validation_strings.html:9
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:828
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:835
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:854
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:897
+#: perllib/FixMyStreet/DB/Result/Problem.pm:364
+#: templates/web/default/js/translation_strings.html:9
msgid "Please choose a category"
msgstr "Vel ein kategori"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:361
+#: perllib/FixMyStreet/DB/Result/Problem.pm:370
msgid "Please choose a property type"
msgstr "Vel ein type eigenskap"
@@ -2029,7 +2230,7 @@ msgstr ""
"til forsida</a> og følg instruksjonane."
#: templates/web/default/report/new/notes.html:7
-#: templates/web/fixmystreet/report/new/notes.html:6
+#: templates/web/fixmystreet/report/new/notes.html:7
#, fuzzy
msgid ""
"Please do not be abusive&nbsp;&mdash; abusing your council devalues the "
@@ -2038,8 +2239,8 @@ msgstr ""
"Ikkje ver ufin &mdash; å kjefta på administrasjonen din skader verdet av "
"tenesta for alle brukarane."
-#: perllib/FixMyStreet/DB/Result/Comment.pm:146
-#: templates/web/default/js/validation_strings.html:2
+#: perllib/FixMyStreet/DB/Result/Comment.pm:147
+#: templates/web/default/js/translation_strings.html:2
msgid "Please enter a message"
msgstr "Ver venleg og skriv ei melding"
@@ -2049,14 +2250,14 @@ msgid "Please enter a password"
msgstr "Skriv inn eit passord"
#: perllib/FixMyStreet/App/Controller/Contact.pm:97
-#: perllib/FixMyStreet/DB/Result/Problem.pm:330
-#: templates/web/default/js/validation_strings.html:3
+#: perllib/FixMyStreet/DB/Result/Problem.pm:339
+#: templates/web/default/js/translation_strings.html:3
msgid "Please enter a subject"
msgstr "Ver venleg og legg inn eit emne"
-#: perllib/FixMyStreet/DB/Result/User.pm:104
-#: templates/web/default/js/validation_strings.html:12
-#: templates/web/default/js/validation_strings.html:16
+#: perllib/FixMyStreet/DB/Result/User.pm:115
+#: templates/web/default/js/translation_strings.html:12
+#: templates/web/default/js/translation_strings.html:16
msgid "Please enter a valid email"
msgstr "Ver venleg og legg til ein gyldig e-post"
@@ -2065,17 +2266,17 @@ msgstr "Ver venleg og legg til ein gyldig e-post"
msgid "Please enter a valid email address"
msgstr "Ver venleg og legg inn e-postadressa di"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:333
-#: templates/web/default/js/validation_strings.html:4
+#: perllib/FixMyStreet/DB/Result/Problem.pm:342
+#: templates/web/default/js/translation_strings.html:4
msgid "Please enter some details"
msgstr "Ver venleg og legg inn opplysningar om problemet"
#: perllib/FixMyStreet/App/Controller/Contact.pm:96
-#: perllib/FixMyStreet/DB/Result/User.pm:101
+#: perllib/FixMyStreet/DB/Result/User.pm:112
#: templates/web/default/auth/general.html:13
#: templates/web/default/auth/general.html:8
-#: templates/web/default/js/validation_strings.html:11
-#: templates/web/default/js/validation_strings.html:15
+#: templates/web/default/js/translation_strings.html:11
+#: templates/web/default/js/translation_strings.html:15
#: templates/web/fixmystreet/auth/general.html:14
#: templates/web/fixmystreet/auth/general.html:9
msgid "Please enter your email"
@@ -2083,18 +2284,18 @@ msgstr "Ver venleg og legg inn e-posten din"
#: templates/web/bromley/report/new/fill_in_details_form.html:149
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:161
-#: templates/web/zurich/report/new/fill_in_details_form.html:110
+#: templates/web/zurich/report/new/fill_in_details_form.html:92
#, fuzzy
msgid "Please enter your email address"
msgstr "Ver venleg og legg inn e-posten din"
-#: templates/web/default/js/validation_strings.html:19
+#: templates/web/default/js/translation_strings.html:19
#, fuzzy
msgid "Please enter your first name"
msgstr "Ver venleg og legg inn namnet ditt"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:348
-#: templates/web/default/js/validation_strings.html:7
+#: perllib/FixMyStreet/DB/Result/Problem.pm:357
+#: templates/web/default/js/translation_strings.html:7
#, fuzzy
msgid ""
"Please enter your full name, councils need this information – if you do not "
@@ -2105,23 +2306,30 @@ msgstr ""
"visast."
#: perllib/FixMyStreet/App/Controller/Contact.pm:95
-#: perllib/FixMyStreet/DB/Result/Comment.pm:143
-#: perllib/FixMyStreet/DB/Result/Problem.pm:341
-#: perllib/FixMyStreet/DB/Result/User.pm:97
-#: templates/web/default/js/validation_strings.html:6
+#: perllib/FixMyStreet/DB/Result/Comment.pm:144
+#: perllib/FixMyStreet/DB/Result/Problem.pm:350
+#: perllib/FixMyStreet/DB/Result/User.pm:108
+#: templates/web/default/js/translation_strings.html:6
msgid "Please enter your name"
msgstr "Ver venleg og legg inn namnet ditt"
-#: templates/web/default/js/validation_strings.html:20
+#: templates/web/default/js/translation_strings.html:20
#, fuzzy
msgid "Please enter your second name"
msgstr "Ver venleg og legg inn namnet ditt"
-#: templates/web/default/js/validation_strings.html:18
+#: templates/web/default/js/translation_strings.html:18
#, fuzzy
msgid "Please enter your title"
msgstr "Ver venleg og legg inn e-posten din"
+#: templates/web/default/auth/sign_out.html:5
+#: templates/web/zurich/auth/sign_out.html:5
+msgid ""
+"Please feel free to <a href=\"%s\">sign in again</a>, or go back to the <a "
+"href=\"/\">front page</a>."
+msgstr ""
+
#: templates/web/emptyhomes/report/new/fill_in_details_text.html:1
msgid ""
"Please fill in details of the empty property below, saying what type of\n"
@@ -2176,7 +2384,7 @@ msgstr ""
"skildring (og eit bilete av problemet viss du har eit), osb."
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:70
-#: templates/web/zurich/report/new/fill_in_details_form.html:64
+#: templates/web/zurich/report/new/fill_in_details_form.html:46
#, fuzzy
msgid "Please fill in details of the problem."
msgstr "Ver venleg og fyll ut detaljar om problemet under."
@@ -2184,7 +2392,7 @@ msgstr "Ver venleg og fyll ut detaljar om problemet under."
#: templates/web/bromley/report/new/fill_in_details_form.html:28
#: templates/web/default/report/new/fill_in_details_form.html:27
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:35
-#: templates/web/zurich/report/new/fill_in_details_form.html:35
+#: templates/web/zurich/report/new/fill_in_details_form.html:20
msgid ""
"Please fill in the form below with details of the problem, and describe the "
"location as precisely as possible in the details box."
@@ -2226,7 +2434,7 @@ msgstr ""
#: templates/web/bromley/report/new/fill_in_details_form.html:23
#: templates/web/default/report/new/fill_in_details_form.html:5
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:26
-#: templates/web/zurich/report/new/fill_in_details_form.html:26
+#: templates/web/zurich/report/new/fill_in_details_form.html:11
msgid ""
"Please note your report has <strong>not yet been sent</strong>. Choose a "
"category and add further information below, then submit."
@@ -2274,11 +2482,11 @@ msgstr "Ver venleg og oppgje om dette problemet har vorte fiksa eller ikkje"
msgid "Please take a look at the updates that have been left."
msgstr "Ver venleg og sjå over oppdateringane som er lagt inn."
-#: perllib/FixMyStreet/App/Controller/Photo.pm:175
+#: perllib/FixMyStreet/App/Controller/Photo.pm:172
msgid "Please upload a JPEG image only"
msgstr "Ver venleg og berre last opp JPEG-bilete"
-#: perllib/FixMyStreet/App/Controller/Photo.pm:182
+#: perllib/FixMyStreet/App/Controller/Photo.pm:179
#, fuzzy
msgid "Please upload a JPEG image only\n"
msgstr "Ver venleg og berre last opp JPEG-bilete"
@@ -2319,9 +2527,9 @@ msgstr "Lagt inn av %s (<strong>%s</strong>) %s"
msgid "Posted by %s at %s"
msgstr "Sendt inn av %s %s"
-#: templates/web/default/admin/council_contacts.html:100
-#: templates/web/default/admin/council_edit.html:30
-#: templates/web/default/admin/report_edit.html:43
+#: templates/web/default/admin/body.html:97
+#: templates/web/default/admin/body_edit.html:40
+#: templates/web/default/admin/report_edit.html:48
msgid "Private"
msgstr ""
@@ -2342,10 +2550,11 @@ msgid "Problem %s sent to council %s"
msgstr "Problem %s sendt til administrasjon %s"
#: templates/web/default/admin/index.html:28
+#: templates/web/zurich/admin/index.html:15
msgid "Problem breakdown by state"
msgstr "Tilstandsfordeling av problem"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:849
+#: perllib/FixMyStreet/App/Controller/Admin.pm:877
msgid "Problem marked as open."
msgstr "Problem markert som ope."
@@ -2353,7 +2562,7 @@ msgstr "Problem markert som ope."
msgid "Problem state change based on survey results"
msgstr "Endring av problemtilstand basert på spørjeundersøkingsresultat"
-#: templates/web/default/admin/list_flagged.html:5
+#: templates/web/default/admin/flagged.html:5
msgid "Problems"
msgstr "Problem"
@@ -2363,7 +2572,7 @@ msgstr "Problem i dette området"
#: templates/web/bromley/report/display.html:31
#: templates/web/fixmystreet/around/tabbed_lists.html:4
-#: templates/web/fixmystreet/report/display.html:35
+#: templates/web/fixmystreet/report/display.html:43
#, fuzzy
msgid "Problems nearby"
msgstr "Fleire problem i nærleiken"
@@ -2382,15 +2591,15 @@ msgstr "Problem nyleg rapportert fiksa på FiksGataMi"
msgid "Problems within %.1fkm of this location"
msgstr "Problem innanfor %.1fkm av denne posisjonen"
-#: perllib/FixMyStreet/Cobrand/Default.pm:612
+#: perllib/FixMyStreet/Cobrand/Default.pm:600
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:95
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:162
-#: perllib/FixMyStreet/Cobrand/UK.pm:231
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:155
+#: perllib/FixMyStreet/Cobrand/UK.pm:227
msgid "Problems within %s"
msgstr "Problem innanfor %s"
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:103
-#: perllib/FixMyStreet/Cobrand/UK.pm:245
+#: perllib/FixMyStreet/Cobrand/UK.pm:241
msgid "Problems within %s ward"
msgstr "Problem innanfor %s bydel"
@@ -2409,7 +2618,7 @@ msgstr "Problem innanfor grensene av:"
msgid "Properties recently reported as put back to use on reportemptyhomes.com"
msgstr "Eigedomar nyleg rapportert som tilbake i bruk på reportemptyhomes.com"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:616
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:623
msgid "Property type:"
msgstr "Type eigenskap:"
@@ -2448,11 +2657,23 @@ msgstr ""
"enklare for deg å rapportera problem, leggja inn oppdateringar og halda "
"oversyn over rapportane dine"
-#: templates/web/default/admin/council_contacts.html:44
-#: templates/web/default/admin/council_contacts.html:57
+#: templates/web/default/admin/body.html:42
+#: templates/web/default/admin/body.html:55
msgid "Public"
msgstr ""
+#: templates/web/zurich/admin/report_edit.html:150
+msgid "Public response:"
+msgstr ""
+
+#: templates/web/zurich/admin/report_edit.html:57
+msgid "Publish photo"
+msgstr ""
+
+#: templates/web/zurich/admin/report_edit.html:160
+msgid "Publish the response"
+msgstr ""
+
#: templates/web/default/questionnaire/completed.html:1
#: templates/web/default/questionnaire/completed.html:2
#: templates/web/default/questionnaire/index.html:0
@@ -2485,27 +2706,27 @@ msgstr "Spørjeskjema fylt inn av feilrapportøren"
#: templates/web/default/reports/_rss.html:1
#: templates/web/fixmystreet/alert/_list.html:22
#: templates/web/fixmystreet/alert/updates.html:9
-#: templates/web/fixmystreet/report/display.html:49
+#: templates/web/fixmystreet/report/display.html:57
msgid "RSS feed"
msgstr "RSS-straum"
-#: perllib/FixMyStreet/Cobrand/UK.pm:274 perllib/FixMyStreet/Cobrand/UK.pm:286
+#: perllib/FixMyStreet/Cobrand/UK.pm:270 perllib/FixMyStreet/Cobrand/UK.pm:282
msgid "RSS feed for %s"
msgstr "RSS-straum for %s"
-#: perllib/FixMyStreet/Cobrand/UK.pm:280 perllib/FixMyStreet/Cobrand/UK.pm:292
+#: perllib/FixMyStreet/Cobrand/UK.pm:276 perllib/FixMyStreet/Cobrand/UK.pm:288
msgid "RSS feed for %s ward, %s"
msgstr "RSS-straum for %s bydel, %s"
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:178
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:186
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:196
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:204
-#: perllib/FixMyStreet/Cobrand/UK.pm:300 perllib/FixMyStreet/Cobrand/UK.pm:312
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:171
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:179
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:189
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:197
+#: perllib/FixMyStreet/Cobrand/UK.pm:296 perllib/FixMyStreet/Cobrand/UK.pm:308
msgid "RSS feed of %s"
msgstr "RSS-straum frå %s"
-#: perllib/FixMyStreet/Cobrand/UK.pm:305 perllib/FixMyStreet/Cobrand/UK.pm:317
+#: perllib/FixMyStreet/Cobrand/UK.pm:301 perllib/FixMyStreet/Cobrand/UK.pm:313
msgid "RSS feed of %s, within %s ward"
msgstr "RSS-straum av %s, innanfor %s bydel"
@@ -2518,15 +2739,15 @@ msgstr "RSS-straum med problem i nærleiken"
msgid "RSS feed of problems in this %s"
msgstr "RSS-straum for problem i denne %s-en"
-#: perllib/FixMyStreet/Cobrand/Default.pm:613
+#: perllib/FixMyStreet/Cobrand/Default.pm:601
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:96
-#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:161
-#: perllib/FixMyStreet/Cobrand/UK.pm:238
+#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:154
+#: perllib/FixMyStreet/Cobrand/UK.pm:234
msgid "RSS feed of problems within %s"
msgstr "RSS-straum for problem innanfor %s"
#: perllib/FixMyStreet/Cobrand/EmptyHomes.pm:102
-#: perllib/FixMyStreet/Cobrand/UK.pm:244
+#: perllib/FixMyStreet/Cobrand/UK.pm:240
msgid "RSS feed of problems within %s ward"
msgstr "RSS-straum for problem innanfor %s bydel"
@@ -2538,7 +2759,7 @@ msgstr "RSS-straum med nye lokale problem"
#: templates/web/bromley/report/display.html:37
#: templates/web/default/report/display.html:42
#: templates/web/fixmystreet/alert/updates.html:9
-#: templates/web/fixmystreet/report/display.html:49
+#: templates/web/fixmystreet/report/display.html:57
msgid "RSS feed of updates to this problem"
msgstr "RSS-straum med oppdateringar for dette problemet"
@@ -2546,7 +2767,7 @@ msgstr "RSS-straum med oppdateringar for dette problemet"
#: templates/web/default/alert/updates.html:9
#: templates/web/default/report/display.html:33
#: templates/web/fixmystreet/alert/updates.html:14
-#: templates/web/fixmystreet/report/display.html:51
+#: templates/web/fixmystreet/report/display.html:59
msgid "Receive email when updates are left on this problem."
msgstr "Motta e-post når det er oppdateringar på dette problemet"
@@ -2572,7 +2793,7 @@ msgid "Recently reported problems"
msgstr "Nyleg melde problem"
#: templates/web/default/report/new/notes.html:9
-#: templates/web/fixmystreet/report/new/notes.html:8
+#: templates/web/fixmystreet/report/new/notes.html:10
msgid ""
"Remember that FixMyStreet is primarily for reporting physical problems that "
"can be fixed. If your problem is not appropriate for submission via this "
@@ -2594,8 +2815,9 @@ msgstr ""
msgid "Remove flag"
msgstr "Fjern flagg"
-#: templates/web/default/admin/report_edit.html:54
-#: templates/web/default/admin/update_edit.html:48
+#: templates/web/default/admin/report_edit.html:59
+#: templates/web/default/admin/update_edit.html:51
+#: templates/web/zurich/admin/update_edit.html:35
msgid "Remove photo (can't be undone!)"
msgstr "Fjern bilete (kan ikkje gjerast om!)"
@@ -2609,12 +2831,13 @@ msgstr "Rapporter tomme heimar"
#: templates/web/fiksgatami/nn/footer.html:5
#: templates/web/fixmystreet/footer.html:45
#: templates/web/reading/footer.html:6 templates/web/stevenage/footer.html:39
-#: templates/web/zurich/footer.html:10
+#: templates/web/zurich/footer.html:17
+#: templates/web/zurich/nav_over_content.html:4
msgid "Report a problem"
msgstr "Rapporter eit problem"
#: templates/web/bromley/report/display.html:28
-#: templates/web/fixmystreet/report/display.html:29
+#: templates/web/fixmystreet/report/display.html:35
#, fuzzy
msgid "Report abuse"
msgstr "Rapporter eit problem"
@@ -2624,7 +2847,7 @@ msgstr "Rapporter eit problem"
msgid "Report empty properties"
msgstr "Rapporter tomme heimar"
-#: perllib/FixMyStreet/App/Controller/Rss.pm:286
+#: perllib/FixMyStreet/App/Controller/Rss.pm:295
msgid "Report on %s"
msgstr "Rapport på %s"
@@ -2643,7 +2866,7 @@ msgstr "Rapportert %s"
msgid "Reported %s, to %s"
msgstr "Rapportert %s, til %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:520
+#: perllib/FixMyStreet/DB/Result/Problem.pm:536
#: templates/web/default/contact/index.html:45
#: templates/web/fixmystreet/contact/index.html:46
msgid "Reported anonymously at %s"
@@ -2655,37 +2878,43 @@ msgstr "Rapportert anonymt %s"
msgid "Reported before"
msgstr "Rapportert tidlegare"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:512
+#: perllib/FixMyStreet/DB/Result/Problem.pm:528
msgid "Reported by %s anonymously at %s"
msgstr "Publisert av %s anonymt %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:543
+#: perllib/FixMyStreet/DB/Result/Problem.pm:559
#: templates/web/default/contact/index.html:47
#: templates/web/fixmystreet/contact/index.html:48
msgid "Reported by %s at %s"
msgstr "Publisert av %s %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:534
+#: perllib/FixMyStreet/DB/Result/Problem.pm:550
msgid "Reported by %s by %s at %s"
msgstr "Rapportert av %s av %s %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:508
+#: perllib/FixMyStreet/DB/Result/Problem.pm:524
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:528
+#: perllib/FixMyStreet/DB/Result/Problem.pm:544
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:516
+#: templates/web/zurich/report/_main.html:2
+#, fuzzy
+msgid "Reported in the %s category"
+msgstr "Rapportert i kategorien %s av %s %s"
+
+#: perllib/FixMyStreet/DB/Result/Problem.pm:532
msgid "Reported in the %s category anonymously at %s"
msgstr "Rapportert i kategorien %s anonymt %s"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:538
+#: perllib/FixMyStreet/DB/Result/Problem.pm:554
msgid "Reported in the %s category by %s at %s"
msgstr "Rapportert i kategorien %s av %s %s"
#: templates/web/default/around/around_index.html:1
+#: templates/web/default/js/translation_strings.html:35
#: templates/web/default/report/new/fill_in_details.html:0
#: templates/web/default/report/new/fill_in_details.html:3
#: templates/web/default/report/new/fill_in_details_form.html:1
@@ -2697,19 +2926,35 @@ msgstr "Rapportert i kategorien %s av %s %s"
msgid "Reporting a problem"
msgstr "Legger til eit problem"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1033
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1087
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:133
+#: templates/web/zurich/header.html:59
#, fuzzy
msgid "Reports"
msgstr "Alle rapportar"
+#: templates/web/zurich/admin/index-sdm.html:7
+#, fuzzy
+msgid "Reports awaiting approval"
+msgstr "Legger til eit problem"
+
#: templates/web/default/around/tabbed_lists.html:3
msgid "Reports on and around the map"
msgstr "Problem i og rundt kartet"
-#: templates/web/default/admin/report_edit.html:35
+#: templates/web/zurich/admin/index-sdm.html:10
+#, fuzzy
+msgid "Reports published"
+msgstr "Rapporter eit problem"
+
+#: templates/web/default/admin/report_edit.html:40
msgid "Resend report"
msgstr "Send rapport på nytt"
+#: templates/web/default/js/translation_strings.html:22
+msgid "Right place?"
+msgstr ""
+
#: perllib/FixMyStreet/Geocode/OSM.pm:173
msgid ""
"Road operator for this named road (derived from road reference number and "
@@ -2722,24 +2967,51 @@ msgstr ""
msgid "Road operator for this named road (from OpenStreetMap): %s"
msgstr "Vegoperatør for denne namngjevne vegen (frå OpenStreetMap): %s"
-#: templates/web/default/admin/council_edit.html:63
+#: templates/web/default/admin/report_edit.html:55
+#: templates/web/zurich/admin/report_edit.html:53
+msgid "Rotate Left"
+msgstr ""
+
+#: templates/web/default/admin/report_edit.html:56
+#: templates/web/zurich/admin/report_edit.html:54
+msgid "Rotate Right"
+msgstr ""
+
+#: templates/web/default/admin/body_edit.html:76
msgid "Save changes"
msgstr "Lagra endringar"
-#: templates/web/default/admin/list_flagged.html:1
-#: templates/web/default/admin/search_reports.html:1
+#: templates/web/default/admin/flagged.html:1
+#: templates/web/default/admin/reports.html:1
+#: templates/web/zurich/admin/reports.html:1
msgid "Search Reports"
msgstr "Søk i rapportar"
-#: templates/web/default/admin/search_users.html:1
+#: templates/web/default/admin/users.html:1
msgid "Search Users"
msgstr "Søk i brukarar"
-#: templates/web/default/admin/search_reports.html:5
-#: templates/web/default/admin/search_users.html:5
+#: templates/web/zurich/header.html:73
+#, fuzzy
+msgid "Search reports"
+msgstr "Søk i rapportar"
+
+#: templates/web/default/admin/reports.html:5
+#: templates/web/default/admin/users.html:5
+#: templates/web/zurich/admin/reports.html:5
msgid "Search:"
msgstr "Søk:"
+#: templates/web/default/admin/body-form.html:11
+#: templates/web/zurich/admin/body-form.html:17
+msgid "Select a body"
+msgstr ""
+
+#: templates/web/default/admin/body-form.html:21
+#: templates/web/zurich/admin/body-form.html:27
+msgid "Select an area"
+msgstr ""
+
#: templates/web/default/alert/_list.html:8
#: templates/web/fixmystreet/alert/_list.html:10
msgid ""
@@ -2749,19 +3021,19 @@ msgstr ""
"Vel kva for ein type varsel du ynskjer og klikk på knappen for ei RSS-"
"kjelde, eller skriv inn e-postadressa di for å abonnera på eit e-postvarsel."
-#: perllib/FixMyStreet/DB/Result/Problem.pm:623
+#: perllib/FixMyStreet/DB/Result/Problem.pm:640
msgid "Sent to %s %s later"
msgstr "Sendt til %s %s seinare"
-#: templates/web/default/admin/report_edit.html:35
+#: templates/web/default/admin/report_edit.html:40
msgid "Sent:"
msgstr "Sendt:"
-#: templates/web/default/admin/report_edit.html:37
+#: templates/web/default/admin/report_edit.html:42
msgid "Service:"
msgstr "Teneste:"
-#: templates/web/fixmystreet/report/display.html:33
+#: templates/web/fixmystreet/report/display.html:41
msgid "Share"
msgstr ""
@@ -2797,11 +3069,11 @@ msgstr ""
msgid "Show my name publicly"
msgstr "Vis namnet mitt offentleg"
-#: templates/web/default/around/display_location.html:65
+#: templates/web/default/around/display_location.html:68
msgid "Show old"
msgstr ""
-#: templates/web/default/around/display_location.html:56
+#: templates/web/default/around/display_location.html:59
msgid "Show pins"
msgstr "Vis nåler"
@@ -2812,7 +3084,7 @@ msgstr "Vis nåler"
#: templates/web/fixmystreet/auth/general.html:42
#: templates/web/fixmystreet/auth/general.html:62
#: templates/web/fixmystreet/header.html:53
-#: templates/web/stevenage/header.html:101 templates/web/zurich/header.html:51
+#: templates/web/stevenage/header.html:101
msgid "Sign in"
msgstr "Logg inn"
@@ -2831,9 +3103,9 @@ msgstr "Logg inn eller opprett ein konto"
#: templates/web/emptyhomes/header.html:41
#: templates/web/fiksgatami/header.html:22
#: templates/web/fiksgatami/nn/header.html:22
-#: templates/web/fixmybarangay/auth/sign_out.html:1
#: templates/web/lichfielddc/header.html:177
#: templates/web/reading/header.html:33
+#: templates/web/zurich/auth/sign_out.html:1
msgid "Sign out"
msgstr "Logg ut"
@@ -2862,11 +3134,7 @@ msgstr "Nokre bilete av nyleg melde problem"
msgid "Some text to localize"
msgstr "Noko tekst å omsetja"
-#: templates/web/default/admin/council_list.html:42
-msgid "Some unconfirmeds"
-msgstr "Nokre ustadfesta"
-
-#: perllib/FixMyStreet/Cobrand/UK.pm:89
+#: perllib/FixMyStreet/Cobrand/UK.pm:93
msgid ""
"Sorry, that appears to be a Crown dependency postcode, which we don't cover."
msgstr ""
@@ -2888,7 +3156,7 @@ msgstr "Orsak, vi kunne ikkje finna den staden."
#: perllib/FixMyStreet/Geocode/Bing.pm:53
#: perllib/FixMyStreet/Geocode/Google.pm:69
-#: perllib/FixMyStreet/Geocode/Zurich.pm:82
+#: perllib/FixMyStreet/Geocode/Zurich.pm:87
msgid "Sorry, we could not parse that location. Please try again."
msgstr ""
"Orsak, vi kunne ikkje tolka den posisjonen. Ver venleg og prøv på nytt."
@@ -2911,29 +3179,43 @@ msgid "Start month:"
msgstr "Startmånad:"
#: templates/web/bromley/report/display.html:78
-#: templates/web/default/admin/list_flagged.html:18
+#: templates/web/default/admin/flagged.html:18
#: templates/web/default/admin/list_updates.html:6
-#: templates/web/default/admin/search_reports.html:21
+#: templates/web/default/admin/reports.html:21
#: templates/web/fixmystreet/report/update-form.html:26
msgid "State"
msgstr "Tilstand"
-#: templates/web/default/admin/report_edit.html:17
-#: templates/web/default/admin/update_edit.html:18
+#: templates/web/default/admin/report_edit.html:22
+#: templates/web/default/admin/update_edit.html:21
#: templates/web/default/report/update-form.html:28
+#: templates/web/zurich/admin/report_edit-sdm.html:35
+#: templates/web/zurich/admin/report_edit.html:64
+#: templates/web/zurich/admin/update_edit.html:17
msgid "State:"
msgstr "Tilstand:"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1038
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1092
#: templates/web/default/admin/stats.html:1
msgid "Stats"
msgstr "Statistikk"
+#: templates/web/zurich/admin/index-dm.html:25
+#: templates/web/zurich/admin/index-sdm.html:23
+#: templates/web/zurich/admin/reports.html:17
+#, fuzzy
+msgid "Status"
+msgstr "Statistikk"
+
#: templates/web/default/report/updates.html:9
#, fuzzy
msgid "Still open, via questionnaire, %s"
msgstr "Skal spørjeskjemaet sendast?"
+#: templates/web/zurich/admin/index-dm.html:27
+msgid "Subdivision/Body"
+msgstr ""
+
#: templates/web/bromley/report/new/fill_in_details_form.html:48
#: templates/web/fixmystreet/contact/index.html:79
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:60
@@ -2944,6 +3226,7 @@ msgstr "Emne:"
#: templates/web/default/admin/report_edit.html:13
#: templates/web/default/contact/index.html:83
#: templates/web/default/report/new/fill_in_details_form.html:52
+#: templates/web/zurich/admin/report_edit.html:28
msgid "Subject:"
msgstr "Emne:"
@@ -2957,13 +3240,16 @@ msgstr "Emne:"
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:152
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:177
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:222
-#: templates/web/zurich/report/new/fill_in_details_form.html:128
+#: templates/web/zurich/report/new/fill_in_details_form.html:111
msgid "Submit"
msgstr "Send inn"
-#: templates/web/default/admin/report_edit.html:57
-#: templates/web/default/admin/update_edit.html:51
-#: templates/web/default/admin/user_edit.html:20
+#: templates/web/default/admin/report_edit.html:62
+#: templates/web/default/admin/update_edit.html:54
+#: templates/web/default/admin/user-form.html:17
+#: templates/web/zurich/admin/report_edit-sdm.html:45
+#: templates/web/zurich/admin/report_edit.html:162
+#: templates/web/zurich/admin/update_edit.html:38
msgid "Submit changes"
msgstr "Send inn endringar"
@@ -2972,11 +3258,23 @@ msgstr "Send inn endringar"
msgid "Submit questionnaire"
msgstr "Send inn spørjeskjema"
+#: templates/web/zurich/admin/header.html:1
+#: templates/web/zurich/admin/header.html:6
+#: templates/web/zurich/admin/index-dm.html:23
+#: templates/web/zurich/admin/index-dm.html:6
+#: templates/web/zurich/admin/index-sdm.html:21
+#: templates/web/zurich/admin/report_edit.html:67
+#: templates/web/zurich/admin/reports.html:15
+#: templates/web/zurich/report/banner.html:9
+#, fuzzy
+msgid "Submitted"
+msgstr "Send inn"
+
#: templates/web/bromley/report/display.html:44
#: templates/web/default/alert/updates.html:17
#: templates/web/default/report/display.html:38
#: templates/web/fixmystreet/alert/updates.html:23
-#: templates/web/fixmystreet/report/display.html:56
+#: templates/web/fixmystreet/report/display.html:64
msgid "Subscribe"
msgstr "Abonner"
@@ -2993,8 +3291,12 @@ msgstr ""
"Eller du kan abonnera på varsel basert på bydel eller administrasjon du "
"høyrer til under:"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1031
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1085
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:132
#: templates/web/default/admin/index.html:1
+#: templates/web/zurich/admin/index-dm.html:1
+#: templates/web/zurich/admin/index-sdm.html:1
+#: templates/web/zurich/admin/index.html:1 templates/web/zurich/header.html:56
msgid "Summary"
msgstr "Oppsummering"
@@ -3003,10 +3305,12 @@ msgstr "Oppsummering"
#: templates/web/fiksgatami/nn/reports/index.html:1
#: templates/web/fiksgatami/reports/index.html:1
#: templates/web/fixmybarangay/reports/index.html:1
+#: templates/web/zurich/reports/index.html:0
+#: templates/web/zurich/reports/index.html:4
msgid "Summary reports"
msgstr "Oppsummeringsrapportar"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1035
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1089
#, fuzzy
msgid "Survey"
msgstr "Resultat frå spørjeundersøkinga"
@@ -3016,14 +3320,16 @@ msgid "Survey Results"
msgstr "Resultat frå spørjeundersøkinga"
#: templates/web/default/admin/list_updates.html:14
+#: templates/web/zurich/admin/list_updates.html:7
msgid "Text"
msgstr "Tekst"
-#: templates/web/default/admin/council_contacts.html:20
+#: templates/web/default/admin/body.html:18
msgid "Text only version"
msgstr "Tekst-utgåve"
-#: templates/web/default/admin/update_edit.html:13
+#: templates/web/default/admin/update_edit.html:14
+#: templates/web/zurich/admin/update_edit.html:12
msgid "Text:"
msgstr "Tekst:"
@@ -3107,7 +3413,7 @@ msgstr ""
"Takk, glad for å høyra at problemet er løyst! Vi vil gjerne spørja deg om du "
"har rapportert eit problem til ein administrasjon tidlegare?"
-#: perllib/FixMyStreet/App/Controller/Photo.pm:189
+#: perllib/FixMyStreet/App/Controller/Photo.pm:186
msgid ""
"That image doesn't appear to have uploaded correctly (%s), please try again."
msgstr ""
@@ -3129,20 +3435,20 @@ msgstr ""
"Den staden synest ikkje å vera i Storbritannia. Ver venleg og prøv igjen."
#: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:63
-#: perllib/FixMyStreet/Cobrand/UK.pm:82
+#: perllib/FixMyStreet/Cobrand/UK.pm:86
msgid "That postcode was not recognised, sorry."
msgstr "Det postnummeret vart ikkje gjenkjent, orsak."
-#: perllib/FixMyStreet/App/Controller/Admin.pm:616
+#: perllib/FixMyStreet/App/Controller/Admin.pm:641
msgid "That problem will now be resent."
msgstr "Det problemet vil no sendast på nytt."
-#: perllib/FixMyStreet/App/Controller/Report.pm:98
+#: perllib/FixMyStreet/App/Controller/Report.pm:117
#, fuzzy
msgid "That report cannot be viewed on FixMyStreet."
msgstr "Den rapporten har vorte fjerna frå FiksGataMi."
-#: perllib/FixMyStreet/App/Controller/Report.pm:92
+#: perllib/FixMyStreet/App/Controller/Report.pm:111
msgid "That report has been removed from FixMyStreet."
msgstr "Den rapporten har vorte fjerna frå FiksGataMi."
@@ -3176,8 +3482,8 @@ msgstr ""
"administrasjonane som mottok problemrapporten, noko som ikkje heilt passar "
"med korleis attributten er definert i Open311 v2-spesifikasjonen."
-#: templates/web/default/auth/token.html:21
-#: templates/web/default/email_sent.html:22
+#: templates/web/default/auth/token.html:22
+#: templates/web/default/email_sent.html:6
msgid ""
"The confirmation email <strong>may</strong> take a few minutes to arrive "
"&mdash; <em>please</em> be patient."
@@ -3213,8 +3519,7 @@ msgstr ""
"Detaljane om problemet ditt er tilgjengelege på høgre kant av denne sida."
#: perllib/FixMyStreet/App/Controller/Dashboard.pm:60
-#: perllib/FixMyStreet/App/Controller/Reports.pm:43
-#: perllib/FixMyStreet/App/Controller/Reports.pm:74
+#: perllib/FixMyStreet/App/Controller/Reports.pm:67
msgid "The error was: %s"
msgstr "Feilen var: %s"
@@ -3311,7 +3616,6 @@ msgstr "Den enklaste meldinga er den geografiske:"
#: templates/web/default/report/new/councils_text_some.html:11
#: templates/web/default/report/new/fill_in_details_form.html:17
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:12
-#: templates/web/zurich/report/new/fill_in_details_form.html:12
msgid ""
"The subject and details of the problem will be public, plus your name if you "
"give us permission."
@@ -3319,7 +3623,7 @@ msgstr ""
"Tittelen og detaljane for problemet vil verta offentlege, pluss namnet ditt\n"
"viss du gjev oss lov til det."
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:271
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:272
msgid ""
"The user could not locate the problem on a map, but to see the area around "
"the location they entered"
@@ -3327,7 +3631,7 @@ msgstr ""
"Brukaren kunne ikkje plassera problemet på eit kart, men sjekk områdde rundt "
"staden dei skreiv inn"
-#: perllib/FixMyStreet/App/Controller/Reports.pm:71
+#: perllib/FixMyStreet/App/Controller/Reports.pm:64
msgid ""
"There was a problem showing the All Reports page. Please try again later."
msgstr ""
@@ -3341,7 +3645,7 @@ msgstr ""
"Det oppstod problem med å visa «Alle rapportar»-sida. Ver venleg og prøv "
"igjen seinare."
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:736
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:740
#: perllib/FixMyStreet/App/Controller/Report/Update.pm:134
#: templates/web/default/auth/general.html:23
#: templates/web/fixmystreet/auth/general.html:24
@@ -3407,8 +3711,8 @@ msgstr ""
"og ignorer e-posten viss de ikkje er korrekt administrasjon for å handtera "
"denne saka."
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:868
-#: perllib/FixMyStreet/Cobrand/UK.pm:54
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:874
+#: perllib/FixMyStreet/Cobrand/UK.pm:58
msgid "This information is required"
msgstr "Denne informasjonen er påkravd"
@@ -3474,6 +3778,11 @@ msgstr "Dette problemet er under arbeid"
msgid "This problem is old and of unknown status."
msgstr "Dette problemet er gammalt og med ukjend status."
+#: templates/web/zurich/report/_main.html:14
+#, fuzzy
+msgid "This report is awaiting moderation."
+msgstr "Denne rapporten er for tida markert som open."
+
#: perllib/FixMyStreet/DB/ResultSet/AlertType.pm:86
msgid "This report is currently marked as closed."
msgstr "Denne rapporten er for tida markert som lukka."
@@ -3486,19 +3795,19 @@ msgstr "Denne rapporten er for tida markert som fiksa."
msgid "This report is currently marked as open."
msgstr "Denne rapporten er for tida markert som open."
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:264
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:265
msgid ""
"This web page also contains a photo of the problem, provided by the user."
msgstr ""
"Denne nettsida inneheld òg eit bilete av problemet, sendt inn av brukaren."
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1034
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1088
#: templates/web/default/admin/timeline.html:1
msgid "Timeline"
msgstr "Tidslinje"
-#: templates/web/default/admin/list_flagged.html:10
-#: templates/web/default/admin/search_reports.html:13
+#: templates/web/default/admin/flagged.html:10
+#: templates/web/default/admin/reports.html:13
msgid "Title"
msgstr "Tittel"
@@ -3527,7 +3836,7 @@ msgid ""
msgstr ""
"Du finn lokale problem ved å søkja på postnummeret ditt, vegnamn eller stad:"
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:270
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:271
msgid "To view a map of the precise location of this issue"
msgstr "For å sjå eit kart med ei meir presis plassering for dette problemet"
@@ -3538,14 +3847,13 @@ msgstr "For å sjå eit kart med ei meir presis plassering for dette problemet"
msgid "Total"
msgstr "Totalt"
-#: perllib/FixMyStreet/App/Controller/Reports.pm:42
-msgid "Unable to look up areas in MaPit. Please try again later."
+#: templates/web/default/js/translation_strings.html:23
+msgid "Try again"
msgstr ""
-"Klarte ikkje slå opp område i MaPit. Ver venleg og prøv igjen seinare."
-#: templates/web/default/admin/report_edit.html:18
-#: templates/web/default/admin/report_edit.html:21
-#: templates/web/default/admin/update_edit.html:19
+#: templates/web/default/admin/report_edit.html:26
+#: templates/web/default/admin/update_edit.html:22
+#: templates/web/zurich/admin/update_edit.html:18
msgid "Unconfirmed"
msgstr "Ikkje stadfesta"
@@ -3558,7 +3866,12 @@ msgstr "*ukjent*"
msgid "Unknown alert type"
msgstr "Ukjend varsel-type"
-#: perllib/FixMyStreet/App/Controller/Report.pm:87
+#: templates/web/default/js/translation_strings.html:33
+#, fuzzy
+msgid "Unknown error"
+msgstr "*ukjent*"
+
+#: perllib/FixMyStreet/App/Controller/Report.pm:106
msgid "Unknown problem ID"
msgstr "Ukjend problem-ID"
@@ -3582,6 +3895,12 @@ msgstr "Oppdateringa under vart lagt inn anonymt %s"
msgid "Update below added by %s at %s"
msgstr "Oppdateringa under vart lagt til av %s %s"
+#: templates/web/default/admin/body-form.html:77
+#: templates/web/zurich/admin/body-form.html:47
+#, fuzzy
+msgid "Update body"
+msgstr "Oppdatert!"
+
#: templates/web/default/admin/index.html:30
msgid "Update breakdown by state"
msgstr "Tilstandsfordeling for oppdateringar"
@@ -3590,19 +3909,20 @@ msgstr "Tilstandsfordeling for oppdateringar"
msgid "Update by {{name}}"
msgstr "Oppdatert av {{name}}"
-#: templates/web/default/admin/update_edit.html:33
+#: templates/web/default/admin/update_edit.html:36
+#: templates/web/zurich/admin/update_edit.html:25
msgid "Update changed problem state to %s"
msgstr "Ei oppdatering endra problemstatusen til %s"
-#: templates/web/default/admin/update_edit.html:35
+#: templates/web/default/admin/update_edit.html:38
msgid "Update marked problem as fixed"
msgstr "Ei oppdatering markerte dette problemet som fiksa."
-#: templates/web/default/admin/update_edit.html:37
+#: templates/web/default/admin/update_edit.html:40
msgid "Update reopened problem"
msgstr "Ei oppdatering gjenopna problemet"
-#: templates/web/default/admin/council_contacts.html:68
+#: templates/web/default/admin/body.html:65
msgid "Update statuses"
msgstr "Oppdater tilstanden"
@@ -3610,15 +3930,27 @@ msgstr "Oppdater tilstanden"
msgid "Update:"
msgstr "Oppdatering:"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:708
-#: perllib/FixMyStreet/App/Controller/Admin.pm:839
-#: perllib/FixMyStreet/App/Controller/Admin.pm:899
+#: templates/web/zurich/admin/index-dm.html:24
+#: templates/web/zurich/admin/index-sdm.html:22
+#: templates/web/zurich/admin/reports.html:16
+#, fuzzy
+msgid "Updated"
+msgstr "Oppdatert!"
+
+#: perllib/FixMyStreet/App/Controller/Admin.pm:733
+#: perllib/FixMyStreet/App/Controller/Admin.pm:867
+#: perllib/FixMyStreet/App/Controller/Admin.pm:918
+#: perllib/FixMyStreet/App/Controller/Admin.pm:957
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:322
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:377
msgid "Updated!"
msgstr "Oppdatert!"
#: templates/web/default/admin/list_updates.html:1
#: templates/web/default/report/update.html:3
#: templates/web/fixmystreet/report/update.html:3
+#: templates/web/zurich/admin/list_updates.html:1
+#: templates/web/zurich/report/updates.html:2
msgid "Updates"
msgstr "Oppdateringar"
@@ -3635,26 +3967,31 @@ msgstr "Oppdateringar av {{title}}"
msgid "Updates to this problem, FixMyStreet"
msgstr "Oppdateringar til dette problemet, FiksGataMi"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1191
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1251
msgid "User flag removed"
msgstr "Brukarflagg fjerna"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1163
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1223
msgid "User flagged"
msgstr "Brukar flagga"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:1036
-#: templates/web/default/admin/list_flagged.html:30
+#: perllib/FixMyStreet/App/Controller/Admin.pm:1090
+#: perllib/FixMyStreet/Cobrand/Zurich.pm:147
+#: templates/web/default/admin/flagged.html:30
+#: templates/web/zurich/header.html:68
msgid "Users"
msgstr "Brukarar"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:315
-#: perllib/FixMyStreet/App/Controller/Admin.pm:345
+#: perllib/FixMyStreet/App/Controller/Admin.pm:346
+#: perllib/FixMyStreet/App/Controller/Admin.pm:376
msgid "Values updated"
msgstr "Verdi oppdatert"
#: templates/web/default/admin/report_edit.html:12
#: templates/web/default/admin/update_edit.html:12
+#: templates/web/zurich/admin/report_edit-sdm.html:13
+#: templates/web/zurich/admin/report_edit.html:19
+#: templates/web/zurich/admin/update_edit.html:10
msgid "View report on site"
msgstr "Sjå rapport på nettstaden"
@@ -3722,12 +4059,12 @@ msgstr "(vi viser aldri e-postadressa di)"
#: templates/web/bromley/report/new/fill_in_details_form.html:179
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:144
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:211
-#: templates/web/zurich/report/new/fill_in_details_form.html:114
+#: templates/web/zurich/report/new/fill_in_details_form.html:96
#, fuzzy
msgid "We never show your email address or phone number."
msgstr "(vi viser aldri e-postadressa di eller telefonnummeret ditt)"
-#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:351
+#: perllib/FixMyStreet/DB/ResultSet/Problem.pm:350
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 "
@@ -3780,17 +4117,18 @@ msgstr ""
"Vi ynskjer å få tilbakemelding frå deg om kva du meiner om denne tenesta. "
"Berre fyll ut skjemaet, eller send ein e-post <a href='mailto:%s'>%s</a>:"
-#: templates/web/default/admin/council_contacts.html:45
-#: templates/web/default/admin/council_edit.html:69
+#: templates/web/default/admin/body.html:43
+#: templates/web/default/admin/body_edit.html:82
+#: templates/web/zurich/admin/body.html:17
msgid "When edited"
msgstr "Når redigert"
-#: templates/web/default/admin/list_flagged.html:19
-#: templates/web/default/admin/search_reports.html:22
+#: templates/web/default/admin/flagged.html:19
+#: templates/web/default/admin/reports.html:22
msgid "When sent"
msgstr "Når sendt"
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:611
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:618
msgid "Whole block of empty flats"
msgstr "Heil blokk med tomme leilegheiter"
@@ -3834,7 +4172,7 @@ msgstr ""
#: templates/web/default/report/new/notes.html:8
#: templates/web/fixmybarangay/report/new/notes.html:8
-#: templates/web/fixmystreet/report/new/notes.html:7
+#: templates/web/fixmystreet/report/new/notes.html:8
msgid ""
"Writing your message entirely in block capitals makes it hard to read, as "
"does a lack of punctuation."
@@ -3846,18 +4184,18 @@ msgstr ""
msgid "Year"
msgstr "År"
-#: templates/web/default/admin/council_contacts.html:52
-#: templates/web/default/admin/council_contacts.html:53
-#: templates/web/default/admin/council_contacts.html:54
-#: templates/web/default/admin/council_edit.html:5
+#: templates/web/default/admin/body.html:50
+#: templates/web/default/admin/body.html:51
+#: templates/web/default/admin/body.html:52
+#: templates/web/default/admin/body_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:27
-#: templates/web/default/admin/report_edit.html:41
-#: templates/web/default/admin/search_users.html:23
-#: templates/web/default/admin/update_edit.html:15
+#: templates/web/default/admin/problem_row.html:21
+#: templates/web/default/admin/report_edit.html:32
+#: templates/web/default/admin/report_edit.html:46
+#: templates/web/default/admin/update_edit.html:18
+#: templates/web/default/admin/users.html:26
#: templates/web/default/questionnaire/creator_fixed.html:14
#: templates/web/default/questionnaire/index.html:105
#: templates/web/default/questionnaire/index.html:66
@@ -3900,12 +4238,20 @@ msgstr ""
"Du kan <a href=\"%s\">sjå alle rapportar for administrasjonen</a> eller <a "
"href=\"/reports\">sjå alle administrasjonane</a>."
+#: templates/web/default/tokens/confirm_problem.html:19
+#: templates/web/default/tokens/confirm_problem.html:21
+#: templates/web/zurich/tokens/confirm_problem.html:5
+#: templates/web/zurich/tokens/confirm_problem.html:8
+#, fuzzy
+msgid "You can <a href=\"%s%s\">view the problem on this site</a>."
+msgstr "Du kan <a href=\"%s\">lesa om problemet på portalen</a>."
+
#: templates/web/emptyhomes/reports/body.html:66
msgid "You can <a href=\"/reports\">show all councils</a>."
msgstr "Du kan <a href=\"/reports/\">sjå alle administrasjonar</a>."
-#: 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_none.html:11
+#: templates/web/default/report/new/councils_text_none.html:13
#: templates/web/default/report/new/councils_text_some.html:20
#: templates/web/default/report/new/councils_text_some.html:22
msgid ""
@@ -3915,6 +4261,10 @@ msgstr ""
"Du kan hjelpa oss ved å finna ein kontakt-e-post for lokale problem i %s, og "
"senda han via e-post til oss på <a href='mailto:%s'>%s</a>."
+#: templates/web/default/js/translation_strings.html:30
+msgid "You declined; please fill in the box above"
+msgstr ""
+
#: perllib/FixMyStreet/App/Controller/Questionnaire.pm:38
msgid ""
"You have already answered this questionnaire. If you have a question, please "
@@ -3929,7 +4279,7 @@ msgstr ""
#: templates/web/default/report/new/fill_in_details_form.html:93
#: templates/web/fixmystreet/questionnaire/index.html:87
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:99
-#: templates/web/zurich/report/new/fill_in_details_form.html:93
+#: templates/web/zurich/report/new/fill_in_details_form.html:75
msgid ""
"You have already attached a photo to this report, attaching another one will "
"replace it."
@@ -3948,14 +4298,14 @@ msgstr ""
"anna vil byta ut dette."
#: templates/web/default/auth/sign_out.html:3
-#: templates/web/fixmybarangay/auth/sign_out.html:3
+#: templates/web/zurich/auth/sign_out.html:3
msgid "You have been signed out"
msgstr "Du er allereie logga ut"
#: templates/web/bromley/report/new/fill_in_details_form.html:25
#: templates/web/default/report/new/fill_in_details_form.html:7
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:28
-#: templates/web/zurich/report/new/fill_in_details_form.html:28
+#: templates/web/zurich/report/new/fill_in_details_form.html:13
#, fuzzy
msgid ""
"You have located the problem at the point marked with a green pin on the "
@@ -3968,6 +4318,12 @@ msgstr ""
msgid "You have successfully confirmed your alert."
msgstr "Du har no stadfesta varselet ditt."
+#: templates/web/zurich/tokens/confirm_problem.html:5
+#: templates/web/zurich/tokens/confirm_problem.html:6
+#, fuzzy
+msgid "You have successfully confirmed your email address."
+msgstr "Du har no stadfesta varselet ditt."
+
#: templates/web/default/tokens/confirm_problem.html:14
#: templates/web/default/tokens/confirm_problem.html:15
msgid "You have successfully confirmed your problem"
@@ -3990,7 +4346,7 @@ msgstr "Du har oppretta varselet ditt."
msgid "You have successfully deleted your alert."
msgstr "Sletting av varselet ditt var vellukka."
-#: perllib/FixMyStreet/App/Controller/Report/New.pm:743
+#: perllib/FixMyStreet/App/Controller/Report/New.pm:747
#: perllib/FixMyStreet/App/Controller/Report/Update.pm:140
msgid ""
"You have successfully signed in; please check and confirm your details are "
@@ -3999,15 +4355,14 @@ msgstr ""
"Du har no logga inn. Ver venleg og sjekk og stadfest at detaljane dine er "
"korrekte:"
-#: templates/web/default/email_sent.html:26
-msgid ""
-"You must now click the link in the email we've just sent you &mdash; if you "
-"do not, %s."
+#: templates/web/default/email_sent.html:13
+#, fuzzy
+msgid "You must now click the link in the email we've just sent you."
msgstr ""
"Du må no opna lenkja i e-posten vi akkurat sende deg &mdash; dersom du ikkje "
"gjer det, %s"
-#: templates/web/default/admin/report_edit.html:35
+#: templates/web/default/admin/report_edit.html:40
msgid "You really want to resend?"
msgstr "Ynskjer du verkeleg å senda på nytt?"
@@ -4025,11 +4380,11 @@ msgstr "Rapportane dine"
#: templates/web/fixmystreet/alert/updates.html:19
#: templates/web/fixmystreet/alert/updates.html:22
#: templates/web/fixmystreet/contact/index.html:72
-#: templates/web/fixmystreet/report/display.html:53
-#: templates/web/fixmystreet/report/display.html:55
+#: templates/web/fixmystreet/report/display.html:61
+#: templates/web/fixmystreet/report/display.html:63
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:115
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:157
-#: templates/web/zurich/report/new/fill_in_details_form.html:106
+#: templates/web/zurich/report/new/fill_in_details_form.html:88
#, fuzzy
msgid "Your email"
msgstr "E-posten din"
@@ -4080,7 +4435,7 @@ msgstr "Namnet ditt:"
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:124
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:202
#: templates/web/fixmystreet/report/update-form.html:138
-#: templates/web/zurich/report/new/fill_in_details_form.html:122
+#: templates/web/zurich/report/new/fill_in_details_form.html:104
#, fuzzy
msgid "Your name"
msgstr "Namnet ditt:"
@@ -4109,7 +4464,7 @@ msgstr "Passordet ditt har vorte endra"
#: templates/web/bromley/report/new/fill_in_details_form.html:184
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:149
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:216
-#: templates/web/zurich/report/new/fill_in_details_form.html:125
+#: templates/web/zurich/report/new/fill_in_details_form.html:107
msgid "Your phone number"
msgstr ""
@@ -4146,11 +4501,13 @@ msgstr "av %s"
msgid "council"
msgstr "administrasjon"
-#: perllib/FixMyStreet/DB/Result/Problem.pm:608
+#: perllib/FixMyStreet/DB/Result/Problem.pm:625
msgid "council ref:&nbsp;%s"
msgstr ""
-#: templates/web/default/admin/report_edit.html:15
+#: templates/web/default/admin/report_edit.html:19
+#: templates/web/zurich/admin/report_edit-sdm.html:21
+#: templates/web/zurich/admin/report_edit.html:39
msgid "didn't use map"
msgstr "brukte ikkje kart"
@@ -4160,10 +4517,11 @@ msgid "e.g. ‘%s’ or ‘%s’"
msgstr ""
#: templates/web/default/admin/index.html:15
+#: templates/web/zurich/admin/index.html:5
msgid "from %d different users"
msgstr "frå %d ulike brukarar"
-#: perllib/Utils.pm:267
+#: perllib/Utils.pm:268
msgid "less than a minute"
msgstr "mindre enn eitt minutt"
@@ -4175,7 +4533,7 @@ msgstr "markert som %s"
msgid "marked as fixed"
msgstr "markert som løyst"
-#: perllib/FixMyStreet/App/Controller/Admin.pm:113
+#: perllib/FixMyStreet/App/Controller/Admin.pm:128
#: templates/web/default/admin/questionnaire.html:15
#: templates/web/default/admin/questionnaire.html:16
msgid "n/a"
@@ -4187,15 +4545,21 @@ msgstr "i/t"
msgid "or"
msgstr "eller"
-#: templates/web/default/js/validation_strings.html:21
+#: templates/web/default/js/translation_strings.html:21
msgid "or locate me automatically"
msgstr ""
-#: templates/web/default/admin/report_edit.html:15
-msgid "originally entered"
+#: templates/web/default/admin/report_edit.html:18
+#: templates/web/zurich/admin/report_edit-sdm.html:16
+#: templates/web/zurich/admin/report_edit-sdm.html:20
+#: templates/web/zurich/admin/report_edit.html:24
+#: templates/web/zurich/admin/report_edit.html:32
+#: templates/web/zurich/admin/report_edit.html:38
+#, fuzzy
+msgid "originally entered: &ldquo;%s&rdquo;"
msgstr "søkte etter"
-#: templates/web/default/admin/report_edit.html:16
+#: templates/web/default/admin/report_edit.html:21
msgid "other areas:"
msgstr "andre område:"
@@ -4207,7 +4571,7 @@ msgstr "opna på nytt"
#: templates/web/bromley/header.html:65
#: templates/web/fixmybarangay/header.html:65
#: templates/web/fixmystreet/header.html:50
-#: templates/web/stevenage/header.html:98 templates/web/zurich/header.html:48
+#: templates/web/stevenage/header.html:98 templates/web/zurich/footer.html:12
#, fuzzy
msgid "sign out"
msgstr "Logg ut"
@@ -4218,12 +4582,11 @@ msgstr "Logg ut"
#: templates/web/default/report/new/fill_in_details_form.html:14
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:6
#: templates/web/fixmystreet/report/new/fill_in_details_form.html:9
-#: templates/web/zurich/report/new/fill_in_details_form.html:6
-#: templates/web/zurich/report/new/fill_in_details_form.html:9
msgid "the local council"
msgstr "den lokale administrasjonen"
#: templates/web/default/report/_main.html:6
+#: templates/web/zurich/report/_main.html:5
msgid "there is no pin shown as the user did not use the map"
msgstr ""
@@ -4231,19 +4594,21 @@ msgstr ""
msgid "this type of local problem"
msgstr "denne typen lokalt problem"
-#: perllib/Utils.pm:241
+#: perllib/Utils.pm:240
msgid "today"
msgstr "i dag"
-#: templates/web/default/admin/report_edit.html:15
+#: templates/web/default/admin/report_edit.html:19
+#: templates/web/zurich/admin/report_edit-sdm.html:21
+#: templates/web/zurich/admin/report_edit.html:39
msgid "used map"
msgstr "brukte kart"
-#: templates/web/default/admin/update_edit.html:26
+#: templates/web/default/admin/update_edit.html:29
msgid "user is from same council as problem - %d"
msgstr "brukaren er frå same administrasjon som problemet – %d"
-#: templates/web/default/admin/update_edit.html:29
+#: templates/web/default/admin/update_edit.html:32
msgid "user is problem owner"
msgstr "brukaren er eigaren av problemet"
@@ -4254,36 +4619,6 @@ msgstr "brukaren er eigaren av problemet"
msgid "ward"
msgstr "bydel"
-#: templates/web/default/email_sent.html:15
-#: templates/web/default/email_sent.html:3
-msgid "we'll hang on to your alert while you're checking your email."
-msgstr "vi tek vare på varselet ditt medan du sjekkar e-posten din."
-
-#: templates/web/default/email_sent.html:3
-#: templates/web/default/email_sent.html:7
-msgid "we'll hang on to your problem report while you're checking your email."
-msgstr "vi tek vare på rapporten din medan du sjekkar e-posten din."
-
-#: templates/web/default/email_sent.html:11
-#: templates/web/default/email_sent.html:3
-msgid "we'll hang on to your update while you're checking your email."
-msgstr "vi tek vare på oppdateringa di medan du sjekkar e-posten din."
-
-#: templates/web/default/email_sent.html:14
-#: templates/web/default/email_sent.html:3
-msgid "your alert will not be activated"
-msgstr "varselet ditt vil ikkje aktiverast"
-
-#: templates/web/default/email_sent.html:3
-#: templates/web/default/email_sent.html:6
-msgid "your problem will not be posted"
-msgstr "vil problemet ditt ikkje publiserast"
-
-#: templates/web/default/email_sent.html:10
-#: templates/web/default/email_sent.html:3
-msgid "your update will not be posted"
-msgstr "oppdateringa di vil ikkje publiserast"
-
#: templates/web/emptyhomes/front/stats.html:17
#, perl-format
msgid "<big>%s</big> report recently"
@@ -4291,15 +4626,15 @@ msgid_plural "<big>%s</big> reports recently"
msgstr[0] "<big>%s</big> rapport nyleg"
msgstr[1] "<big>%s</big> rapportar nyleg"
-#: perllib/Utils.pm:286
-#, fuzzy, perl-format
+#: perllib/Utils.pm:287
+#, perl-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d time"
-msgstr[1] "%d time"
+msgstr[1] "%d timar"
-#: perllib/Utils.pm:288
-#, fuzzy, perl-format
+#: perllib/Utils.pm:289
+#, perl-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d minutt"
@@ -4322,12 +4657,12 @@ msgstr[0] ""
msgstr[1] ""
"Vi har enno ikkje detaljar for administrasjonane som dekkjer denne staden."
-#: perllib/Utils.pm:282
-#, fuzzy, perl-format
+#: perllib/Utils.pm:283
+#, perl-format
msgid "%d week"
msgid_plural "%d weeks"
msgstr[0] "%d veke"
-msgstr[1] "%d veke"
+msgstr[1] "%d veker"
#: templates/web/emptyhomes/front/stats.html:12
#, perl-format
@@ -4358,12 +4693,64 @@ msgstr[1] ""
"Vi har enno <strong>ikkje</strong> detaljane for dei andre administrasjonane "
"som dekkjer denne staden."
-#: perllib/Utils.pm:284
-#, fuzzy, perl-format
+#: perllib/Utils.pm:285
+#, perl-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d dag"
-msgstr[1] "%d dag"
+msgstr[1] "%d dager"
+
+#~ msgid "(Don't worry &mdash; %s)"
+#~ msgstr "(Ingen grunn til å uroa seg &mdash; %s)"
+
+#, fuzzy
+#~ msgid ""
+#~ "All the information you provide here will be sent to <strong>Stadt "
+#~ "Zürich</strong>."
+#~ msgstr ""
+#~ "All informasjonen du har lagt inn her vil sendast til <strong>%s</strong>."
+
+#, fuzzy
+#~ msgid "Reported at %s"
+#~ msgstr "Rapportert %s"
+
+#~ msgid "*unknown*"
+#~ msgstr "*ukjent*"
+
+#, fuzzy
+#~ msgid "Problem ID"
+#~ msgstr "Problem"
+
+#~ msgid "All confirmed"
+#~ msgstr "Alle stadfesta"
+
+#~ msgid "Configuration updated"
+#~ msgstr "Oppsett oppdatert"
+
+#~ msgid "Configure Open311"
+#~ msgstr "Sett opp Open311"
+
+#~ msgid "Configure Open311 integration"
+#~ msgstr "Sett opp Open311-integrasjon"
+
+#~ msgid "Council contacts"
+#~ msgstr "Administrasjonskontaktar"
+
+#~ msgid "Councils"
+#~ msgstr "Administrasjonar"
+
+#~ msgid "Currently has 1+ deleted"
+#~ msgstr "For tida har 1+ sletta"
+
+#~ msgid "No info at all"
+#~ msgstr "Heilt utan informasjon"
+
+#~ msgid "Some unconfirmeds"
+#~ msgstr "Nokre ustadfesta"
+
+#~ msgid "Unable to look up areas in MaPit. Please try again later."
+#~ msgstr ""
+#~ "Klarte ikkje slå opp område i MaPit. Ver venleg og prøv igjen seinare."
#~ msgid "FixMyStreet administration"
#~ msgstr "Fiksgatami-administrasjon"
@@ -4384,21 +4771,6 @@ msgstr[1] "%d dag"
#~ "Ikkje ver ufin &mdash; å kjefta på administrasjonen din skader verdet av "
#~ "tenesta for alle brukarane."
-#~ msgid "%d days"
-#~ msgstr "%d dagar"
-
-#~ msgid "%d hours"
-#~ msgstr "%d timar"
-
-#~ msgid "%d minutes"
-#~ msgstr "%d minutt"
-
-#~ msgid "%d weeks"
-#~ msgstr "%d veker"
-
-#~ msgid "All"
-#~ msgstr "Alle"
-
#~ msgid "the map was not used so pin location may be inaccurate"
#~ msgstr "karta vart ikkje brukt, så nåleposisjon kan vera unøyaktig"
@@ -4430,16 +4802,6 @@ msgstr[1] "%d dag"
#~ "Du finn lokale problem ved å søkja på postnummeret ditt, vegnamn eller "
#~ "stad:"
-#~ msgid "We do not currently cover Northern Ireland, I'm afraid."
-#~ msgstr "Vi dekkjer diverre ikkje Nord-Irland."
-
-#, fuzzy
-#~ msgid "<strong>Yes</strong>, I have a password"
-#~ msgstr "<strong>Ja</strong>, eg har eit passord:"
-
-#~ msgid "<strong>Yes</strong>, I have a password:"
-#~ msgstr "<strong>Ja</strong>, eg har eit passord:"
-
#~ msgid ""
#~ "<a href=\"http://www.mysociety.org/\"><img id=\"logo\" width=\"133\" "
#~ "height=\"26\" src=\"/i/mysociety-dark.png\" alt=\"View mySociety.org"
diff --git a/notes/cobranding.txt b/notes/cobranding.txt
index db71c87ce..bb6d8f195 100644
--- a/notes/cobranding.txt
+++ b/notes/cobranding.txt
@@ -13,7 +13,7 @@ NB: this is moderately specific to producing cobrands for UK councils
site_restriction
problems_clause
enter_postcode_text
- council_check
+ area_check
base_url
all_councils_report should return 0
disambiguate_location - see below for details on this
diff --git a/notes/states.txt b/notes/states.txt
index 70515c41b..32f9beb1a 100644
--- a/notes/states.txt
+++ b/notes/states.txt
@@ -22,7 +22,7 @@ the problem has been reported to:
Open ( a synonym for confirmed )
Investigating
Planned
- In Progress
+ In progress
Fixed
Closed
diff --git a/perllib/CronFns.pm b/perllib/CronFns.pm
index 0573b788d..6bf698d2b 100755
--- a/perllib/CronFns.pm
+++ b/perllib/CronFns.pm
@@ -34,6 +34,7 @@ sub site {
my $base_url = shift;
my $site = 'fixmystreet';
$site = 'emptyhomes' if $base_url =~ 'emptyhomes';
+ $site = 'zurich' if $base_url =~ 'zurich';
return $site;
}
diff --git a/perllib/FixMyStreet/App.pm b/perllib/FixMyStreet/App.pm
index 9c7aba9e5..b76f4d3ba 100644
--- a/perllib/FixMyStreet/App.pm
+++ b/perllib/FixMyStreet/App.pm
@@ -3,6 +3,7 @@ use Moose;
use namespace::autoclean;
use Catalyst::Runtime 5.80;
+use DateTime;
use FixMyStreet;
use FixMyStreet::Cobrand;
use Memcached;
@@ -188,6 +189,14 @@ sub setup_request {
mySociety::MaPit::configure( "http://$host/fakemapit/" );
}
+ # XXX Put in cobrand / do properly
+ if ($c->cobrand->moniker eq 'zurich') {
+ FixMyStreet::DB::Result::Problem->visible_states_add_unconfirmed();
+ DateTime->DefaultLocale( 'de_CH' );
+ } else {
+ DateTime->DefaultLocale( 'en_US' );
+ }
+
return $c;
}
diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm
index e14c7dc66..a3a241590 100644
--- a/perllib/FixMyStreet/App/Controller/Admin.pm
+++ b/perllib/FixMyStreet/App/Controller/Admin.pm
@@ -4,8 +4,9 @@ use namespace::autoclean;
BEGIN { extends 'Catalyst::Controller'; }
+use Path::Class;
use POSIX qw(strftime strcoll);
-use Digest::MD5 qw(md5_hex);
+use Digest::SHA1 qw(sha1_hex);
use mySociety::EmailUtil qw(is_valid_email);
use if !$ENV{TRAVIS}, 'Image::Magick';
@@ -23,23 +24,32 @@ Admin pages
=cut
-=head2 summary
-
-Redirect to index page. There to make the allowed pages stuff neater
-
-=cut
-
sub begin : Private {
my ( $self, $c ) = @_;
$c->uri_disposition('relative');
- if ( $c->cobrand->moniker eq 'seesomething' ) {
+ if ( $c->cobrand->moniker eq 'zurich' || $c->cobrand->moniker eq 'seesomething' ) {
$c->detach( '/auth/redirect' ) unless $c->user_exists;
- $c->detach( '/auth/redirect' ) unless $c->user->from_council;
+ $c->detach( '/auth/redirect' ) unless $c->user->from_body;
+ }
+ if ( $c->cobrand->moniker eq 'zurich' ) {
+ $c->cobrand->admin_type();
}
}
+sub auto : Private {
+ my ( $self, $c ) = @_;
+
+ $c->forward('check_page_allowed');
+}
+
+=head2 summary
+
+Redirect to index page. There to make the allowed pages stuff neater
+
+=cut
+
sub summary : Path( 'summary' ) : Args(0) {
my ( $self, $c ) = @_;
$c->go( 'index' );
@@ -54,7 +64,9 @@ Displays some summary information for the requests.
sub index : Path : Args(0) {
my ( $self, $c ) = @_;
- $c->forward('check_page_allowed');
+ if ($c->cobrand->moniker eq 'zurich' && $c->stash->{admin_type} ne 'super') {
+ return $c->cobrand->admin();
+ }
my $site_restriction = $c->cobrand->site_restriction();
@@ -124,8 +136,6 @@ sub index : Path : Args(0) {
sub timeline : Path( 'timeline' ) : Args(0) {
my ($self, $c) = @_;
- $c->forward('check_page_allowed');
-
my $site_restriction = $c->cobrand->site_restriction();
my %time;
@@ -175,8 +185,6 @@ sub timeline : Path( 'timeline' ) : Args(0) {
sub questionnaire : Path('questionnaire') : Args(0) {
my ( $self, $c ) = @_;
- $c->forward('check_page_allowed');
-
my $questionnaires = $c->model('DB::Questionnaire')->search(
{ whenanswered => { '!=', undef } },
{ group_by => [ 'ever_reported' ],
@@ -207,10 +215,10 @@ sub questionnaire : Path('questionnaire') : Args(0) {
return 1;
}
-sub council_list : Path('council_list') : Args(0) {
+sub bodies : Path('bodies') : Args(0) {
my ( $self, $c ) = @_;
- $c->forward('check_page_allowed');
+ $c->forward( 'get_token' );
my $edit_activity = $c->model('DB::ContactsHistory')->search(
undef,
@@ -224,54 +232,74 @@ sub council_list : Path('council_list') : Args(0) {
$c->stash->{edit_activity} = $edit_activity;
- # 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 $posted = $c->req->param('posted') || '';
+ if ( $posted eq 'body' ) {
+ $c->forward('check_token');
- my @councils_ids = sort { strcoll($areas->{$a}->{name}, $areas->{$b}->{name}) } keys %$areas;
- @councils_ids = $c->cobrand->filter_all_council_ids_list( @councils_ids );
+ my $params = $c->forward('body_params');
+ my $body = $c->model('DB::Body')->create( $params );
+ my $area_ids = $c->req->params->{area_ids};
+ if ($area_ids) {
+ $area_ids = [ $area_ids ] unless ref $area_ids;
+ foreach (@$area_ids) {
+ $c->model('DB::BodyArea')->create( { body => $body, area_id => $_ } );
+ }
+ }
+
+ $c->stash->{updated} = _('New body added');
+ }
+
+ $c->forward( 'fetch_all_bodies' );
+
+ # XXX For fixmystreet.com, need to exclude bodies that are covering London.
+ # But soon, this means just don't have bodies covering London.
my $contacts = $c->model('DB::Contact')->search(
undef,
{
- select => [ 'area_id', { count => 'id' }, { count => \'case when deleted then 1 else null end' },
+ select => [ 'body_id', { count => 'id' }, { count => \'case when deleted then 1 else null end' },
{ count => \'case when confirmed then 1 else null end' } ],
- as => [qw/area_id c deleted confirmed/],
- group_by => [ 'area_id' ],
+ as => [qw/body_id c deleted confirmed/],
+ group_by => [ 'body_id' ],
result_class => 'DBIx::Class::ResultClass::HashRefInflator'
}
);
- my %council_info = map { $_->{area_id} => $_ } $contacts->all;
+ my %council_info = map { $_->{body_id} => $_ } $contacts->all;
- my @no_info = grep { !$council_info{$_} } @councils_ids;
- my @one_plus_deleted = grep { $council_info{$_} && $council_info{$_}->{deleted} } @councils_ids;
- my @unconfirmeds = grep { $council_info{$_} && !$council_info{$_}->{deleted} && $council_info{$_}->{confirmed} != $council_info{$_}->{c} } @councils_ids;
- my @all_confirmed = grep { $council_info{$_} && !$council_info{$_}->{deleted} && $council_info{$_}->{confirmed} == $council_info{$_}->{c} } @councils_ids;
-
- $c->stash->{areas} = $areas;
$c->stash->{counts} = \%council_info;
- $c->stash->{no_info} = \@no_info;
- $c->stash->{one_plus_deleted} = \@one_plus_deleted;
- $c->stash->{unconfirmeds} = \@unconfirmeds;
- $c->stash->{all_confirmed} = \@all_confirmed;
+
+ $c->forward( 'body_form_dropdowns' );
return 1;
}
-sub council_contacts : Path('council_contacts') : Args(1) {
- my ( $self, $c, $area_id ) = @_;
+sub body_form_dropdowns : Private {
+ my ( $self, $c ) = @_;
- $c->forward('check_page_allowed');
+ my $areas;
+ if ($c->cobrand->moniker eq 'zurich') {
+ $areas = mySociety::MaPit::call('areas', 274456);
+ } else {
+ $areas = mySociety::MaPit::call('areas', $c->cobrand->area_types);
+ }
+ $c->stash->{areas} = [ sort { strcoll($a->{name}, $b->{name}) } values %$areas ];
- my $posted = $c->req->param('posted') || '';
- $c->stash->{area_id} = $area_id;
+ my @methods = map { $_ =~ s/FixMyStreet::SendReport:://; $_ } keys %{ FixMyStreet::SendReport->get_senders };
+ $c->stash->{send_methods} = \@methods;
+}
+
+sub body : Path('body') : Args(1) {
+ my ( $self, $c, $body_id ) = @_;
+
+ $c->stash->{body_id} = $body_id;
$c->forward( 'get_token' );
+ $c->forward( 'lookup_body' );
+ $c->forward( 'fetch_all_bodies' );
+ $c->forward( 'body_form_dropdowns' );
- if ( $posted ) {
+ if ( $c->req->param('posted') ) {
$c->log->debug( 'posted' );
$c->forward('update_contacts');
}
@@ -285,7 +313,7 @@ sub update_contacts : Private {
my ( $self, $c ) = @_;
my $posted = $c->req->param('posted');
- my $editor = $c->req->remote_user || _('*unknown*');
+ my $editor = $c->forward('get_user');
if ( $posted eq 'new' ) {
$c->forward('check_token');
@@ -297,7 +325,7 @@ sub update_contacts : Private {
my $contact = $c->model('DB::Contact')->find_or_new(
{
- area_id => $c->stash->{area_id},
+ body_id => $c->stash->{body_id},
category => $category,
}
);
@@ -331,7 +359,7 @@ sub update_contacts : Private {
my $contacts = $c->model('DB::Contact')->search(
{
- area_id => $c->stash->{area_id},
+ body_id => $c->stash->{body_id},
category => { -in => \@categories },
}
);
@@ -346,69 +374,50 @@ sub update_contacts : Private {
);
$c->stash->{updated} = _('Values updated');
- } elsif ( $posted eq 'open311' ) {
+ } elsif ( $posted eq 'body' ) {
$c->forward('check_token');
- my %params = map { $_ => $c->req->param($_) || '' } qw/open311_id endpoint jurisdiction api_key area_id send_method send_comments suppress_alerts extended_statuses comment_user_id devolved/;
-
- 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->send_method( $params{send_method} );
- $conf->send_comments( $params{send_comments} || 0);
- $conf->suppress_alerts( $params{suppress_alerts} || 0);
- $conf->comment_user_id( $params{comment_user_id} || undef );
- $conf->can_be_devolved( $params{devolved} || 0 );
- $conf->send_extended_statuses( $params{extended_statuses} || 0 );
-
- $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->send_method( $params{send_method} );
- $conf->send_comments( $params{send_comments} || 0);
- $conf->suppress_alerts( $params{suppress_alerts} || 0);
- $conf->comment_user_id( $params{comment_user_id} || undef );
- $conf->can_be_devolved( $params{devolved} || 0 );
- $conf->send_extended_statuses( $params{extended_statuses} || 0 );
-
- $conf->insert();
-
- $c->stash->{updated} = _('Configuration updated - contacts will be generated automatically later');
+ my $params = $c->forward( 'body_params' );
+ $c->stash->{body}->update( $params );
+ my @current = $c->stash->{body}->body_areas->all;
+ my %current = map { $_->area_id => 1 } @current;
+ my $area_ids = $c->req->params->{area_ids};
+ if ($area_ids) {
+ $area_ids = [ $area_ids ] unless ref $area_ids;
+ foreach (@$area_ids) {
+ $c->model('DB::BodyArea')->find_or_create( { body => $c->stash->{body}, area_id => $_ } );
+ delete $current{$_};
+ }
}
+ # Remove any others
+ $c->stash->{body}->body_areas->search( { area_id => [ keys %current ] } )->delete;
+
+ $c->stash->{updated} = _('Configuration updated - contacts will be generated automatically later');
}
}
-sub display_contacts : Private {
+sub body_params : Private {
my ( $self, $c ) = @_;
- $c->forward('setup_council_details');
-
- my $area_id = $c->stash->{area_id};
-
- my $contacts = $c->model('DB::Contact')->search(
- { area_id => $area_id },
- { order_by => ['category'] }
+ my @fields = qw/name endpoint jurisdiction api_key send_method send_comments suppress_alerts send_extended_statuses comment_user_id can_be_devolved parent/;
+ my %defaults = map { $_ => '' } @fields;
+ %defaults = ( %defaults,
+ send_comments => 0,
+ suppress_alerts => 0,
+ comment_user_id => undef,
+ send_extended_statuses => 0,
+ can_be_devolved => 0,
+ parent => undef,
);
+ my %params = map { $_ => $c->req->param($_) || $defaults{$_} } @fields;
+ return \%params;
+}
- $c->stash->{contacts} = $contacts;
-
- my @methods = map { $_ =~ s/FixMyStreet::SendReport:://; $_ } keys %{ FixMyStreet::SendReport->get_senders };
- $c->stash->{send_methods} = \@methods;
-
- my $open311 = $c->model('DB::Open311Conf')->search(
- { area_id => $area_id }
- );
+sub display_contacts : Private {
+ my ( $self, $c ) = @_;
- $c->stash->{open311} = $open311;
+ my $contacts = $c->stash->{body}->contacts->search(undef, { order_by => [ 'category' ] } );
+ $c->stash->{contacts} = $contacts;
if ( $c->req->param('text') && $c->req->param('text') == 1 ) {
$c->stash->{template} = 'admin/council_contacts.txt';
@@ -419,59 +428,52 @@ sub display_contacts : Private {
return 1;
}
-sub setup_council_details : Private {
+sub lookup_body : Private {
my ( $self, $c ) = @_;
- my $area_id = $c->stash->{area_id};
-
- my $mapit_data = mySociety::MaPit::call('area', $area_id);
-
- $c->stash->{council_name} = $mapit_data->{name};
-
- my $example_postcode = mySociety::MaPit::call('area/example_postcode', $area_id);
-
- if ($example_postcode && ! ref $example_postcode) {
- $c->stash->{example_pc} = $example_postcode;
+ my $body_id = $c->stash->{body_id};
+ my $body = $c->model('DB::Body')->find($body_id);
+ $c->detach( '/page_error_404_not_found' )
+ unless $body;
+ $c->stash->{body} = $body;
+
+ if ($body->body_areas->first) {
+ my $example_postcode = mySociety::MaPit::call('area/example_postcode', $body->body_areas->first->area_id);
+ if ($example_postcode && ! ref $example_postcode) {
+ $c->stash->{example_pc} = $example_postcode;
+ }
}
return 1;
}
-sub council_edit_all : Path('council_edit') {
- my ( $self, $c, $area_id, @category ) = @_;
+# This is for if the category name contains a '/'
+sub body_edit_all : Path('body_edit') {
+ my ( $self, $c, $body_id, @category ) = @_;
my $category = join( '/', @category );
- $c->go( 'council_edit', [ $area_id, $category ] );
+ $c->go( 'body_edit', [ $body_id, $category ] );
}
-sub council_edit : Path('council_edit') : Args(2) {
- my ( $self, $c, $area_id, $category ) = @_;
+sub body_edit : Path('body_edit') : Args(2) {
+ my ( $self, $c, $body_id, $category ) = @_;
- $c->forward('check_page_allowed');
-
- $c->stash->{area_id} = $area_id;
+ $c->stash->{body_id} = $body_id;
$c->forward( 'get_token' );
- $c->forward('setup_council_details');
-
- my $contact = $c->model('DB::Contact')->search(
- {
- area_id => $area_id,
- category => $category
- }
- )->first;
+ $c->forward( 'lookup_body' );
+ my $contact = $c->stash->{body}->contacts->search( { category => $category } )->first;
$c->stash->{contact} = $contact;
my $history = $c->model('DB::ContactsHistory')->search(
{
- area_id => $area_id,
+ body_id => $body_id,
category => $category
},
{
order_by => ['contacts_history_id']
},
);
-
$c->stash->{history} = $history;
my @methods = map { $_ =~ s/FixMyStreet::SendReport:://; $_ } keys %{ FixMyStreet::SendReport->get_senders };
@@ -480,13 +482,11 @@ sub council_edit : Path('council_edit') : Args(2) {
return 1;
}
-sub search_reports : Path('search_reports') {
+sub reports : Path('reports') {
my ( $self, $c ) = @_;
- $c->forward('check_page_allowed');
-
if (my $search = $c->req->param('search')) {
- $c->stash->{searched} = 1;
+ $c->stash->{searched} = $search;
my $site_restriction = $c->cobrand->site_restriction;
@@ -523,7 +523,7 @@ sub search_reports : Path('search_reports') {
'me.name' => { ilike => $like_search },
'me.title' => { ilike => $like_search },
detail => { ilike => $like_search },
- council => { like => $like_search },
+ bodies_str => { like => $like_search },
cobrand_data => { like => $like_search },
];
}
@@ -542,8 +542,8 @@ sub search_reports : Path('search_reports') {
# will have been turned off
$c->stash->{problems} = [ $problems->all ];
- $c->stash->{edit_council_contacts} = 1
- if ( grep {$_ eq 'councilcontacts'} keys %{$c->stash->{allowed_pages}});
+ $c->stash->{edit_body_contacts} = 1
+ if ( grep {$_ eq 'body'} keys %{$c->stash->{allowed_pages}});
if (is_valid_email($search)) {
$query = [
@@ -574,7 +574,7 @@ sub search_reports : Path('search_reports') {
-or => $query,
},
{
- -select => [ 'me.*', qw/problem.council problem.state/ ],
+ -select => [ 'me.*', qw/problem.bodies_str problem.state/ ],
prefetch => [qw/user problem/],
order_by => [\"(me.state='hidden')",\"(problem.state='hidden')",'me.created']
}
@@ -592,11 +592,7 @@ sub report_edit : Path('report_edit') : Args(1) {
my $site_restriction = $c->cobrand->site_restriction;
- my $problem = $c->cobrand->problems->search(
- {
- id => $id,
- }
- )->first;
+ my $problem = $c->cobrand->problems->search( { id => $id } )->first;
$c->detach( '/page_error_404_not_found' )
unless $problem;
@@ -604,7 +600,32 @@ sub report_edit : Path('report_edit') : Args(1) {
$c->stash->{problem} = $problem;
$c->forward('get_token');
- $c->forward('check_page_allowed');
+
+ if ( $c->req->param('rotate_photo') ) {
+ $c->forward('rotate_photo');
+ return 1;
+ }
+
+ if ( $c->cobrand->moniker eq 'zurich' ) {
+
+ FixMyStreet::Map::display_map(
+ $c,
+ latitude => $problem->latitude,
+ longitude => $problem->longitude,
+ pins => $problem->used_map
+ ? [ {
+ latitude => $problem->latitude,
+ longitude => $problem->longitude,
+ colour => 'yellow',
+ type => 'big',
+ } ]
+ : [],
+ );
+
+ my $done = $c->cobrand->admin_report_edit();
+ return if $done;
+ }
+
$c->forward('check_email_for_abuse', [ $problem->user->email ] );
$c->stash->{updates} =
@@ -633,9 +654,6 @@ sub report_edit : Path('report_edit') : Args(1) {
elsif ( $c->req->param('banuser') ) {
$c->forward('ban_user');
}
- elsif ( $c->req->param('rotate_photo') ) {
- $c->forward('rotate_photo');
- }
elsif ( $c->req->param('submit') ) {
$c->forward('check_token');
@@ -664,6 +682,7 @@ sub report_edit : Path('report_edit') : Args(1) {
|| $c->req->param('email') ne $problem->user->email
|| $c->req->param('title') ne $problem->title
|| $c->req->param('detail') ne $problem->detail
+ || ($c->req->param('body') && $c->req->param('body') ne $problem->bodies_str)
|| $flagged != $problem->flagged
|| $non_public != $problem->non_public )
{
@@ -673,8 +692,10 @@ sub report_edit : Path('report_edit') : Args(1) {
$problem->anonymous( $c->req->param('anonymous') );
$problem->title( $c->req->param('title') );
$problem->detail( $c->req->param('detail') );
- $problem->state( $c->req->param('state') );
+ $problem->state( $new_state );
$problem->name( $c->req->param('name') );
+ $problem->bodies_str( $c->req->param('body') ) if $c->req->param('body');
+
$problem->flagged( $flagged );
$problem->non_public( $non_public );
@@ -721,26 +742,22 @@ sub report_edit : Path('report_edit') : Args(1) {
return 1;
}
-sub search_users: Path('search_users') : Args(0) {
+sub users: Path('users') : Args(0) {
my ( $self, $c ) = @_;
- $c->forward('check_page_allowed');
-
if (my $search = $c->req->param('search')) {
- $c->stash->{searched} = 1;
+ $c->stash->{searched} = $search;
- my $search = $c->req->param('search');
my $isearch = '%' . $search . '%';
-
my $search_n = 0;
$search_n = int($search) if $search =~ /^\d+$/;
my $users = $c->model('DB::User')->search(
{
-or => [
- email => { ilike => $isearch },
- name => { ilike => $isearch },
- from_council => $search_n,
+ email => { ilike => $isearch },
+ name => { ilike => $isearch },
+ from_body => $search_n,
]
}
);
@@ -762,6 +779,9 @@ sub search_users: Path('search_users') : Args(0) {
}
}
+ } else {
+ $c->forward('get_token');
+ $c->forward('fetch_all_bodies');
}
return 1;
@@ -782,7 +802,6 @@ sub update_edit : Path('update_edit') : Args(1) {
unless $update;
$c->forward('get_token');
- $c->forward('check_page_allowed');
$c->stash->{update} = $update;
@@ -837,6 +856,11 @@ sub update_edit : Path('update_edit') : Args(1) {
if ( $new_state eq 'confirmed' and $old_state eq 'unconfirmed' ) {
$update->confirmed( \'ms_current_timestamp()' );
+ if ( $update->problem_state && $update->created > $update->problem->lastupdate ) {
+ $update->problem->state( $update->problem_state );
+ $update->problem->lastupdate( \'ms_current_timestamp()' );
+ $update->problem->update;
+ }
}
$update->update;
@@ -868,16 +892,44 @@ sub update_edit : Path('update_edit') : Args(1) {
return 1;
}
+sub user_add : Path('user_edit') : Args(0) {
+ my ( $self, $c ) = @_;
+
+ $c->stash->{template} = 'admin/user_edit.html';
+ $c->forward('get_token');
+ $c->forward('fetch_all_bodies');
+
+ return 1 unless $c->req->param('submit');
+
+ $c->forward('check_token');
+
+ my $user = $c->model('DB::User')->find_or_create( {
+ name => $c->req->param('name'),
+ email => $c->req->param('email'),
+ from_body => $c->req->param('body') || undef,
+ flagged => $c->req->param('flagged') || 0,
+ }, {
+ key => 'users_email_key'
+ } );
+ $c->stash->{user} = $user;
+
+ $c->forward( 'log_edit', [ $user->id, 'user', 'edit' ] );
+
+ $c->stash->{status_message} =
+ '<p><em>' . _('Updated!') . '</em></p>';
+
+ return 1;
+}
+
sub user_edit : Path('user_edit') : Args(1) {
my ( $self, $c, $id ) = @_;
- $c->forward('check_page_allowed');
$c->forward('get_token');
my $user = $c->model('DB::User')->find( { id => $id } );
$c->stash->{user} = $user;
- $c->forward('set_up_council_details');
+ $c->forward('fetch_all_bodies');
if ( $c->req->param('submit') ) {
$c->forward('check_token');
@@ -886,13 +938,15 @@ sub user_edit : Path('user_edit') : Args(1) {
if ( $user->email ne $c->req->param('email') ||
$user->name ne $c->req->param('name' ) ||
- $user->from_council != $c->req->param('council') ) {
+ ($user->from_body && $user->from_body->id ne $c->req->param('body')) ||
+ (!$user->from_body && $c->req->param('body'))
+ ) {
$edited = 1;
}
$user->name( $c->req->param('name') );
$user->email( $c->req->param('email') );
- $user->from_council( $c->req->param('council') || undef );
+ $user->from_body( $c->req->param('body') || undef );
$user->flagged( $c->req->param('flagged') || 0 );
$user->update;
@@ -907,11 +961,9 @@ sub user_edit : Path('user_edit') : Args(1) {
return 1;
}
-sub list_flagged : Path('list_flagged') : Args(0) {
+sub flagged : Path('flagged') : Args(0) {
my ( $self, $c ) = @_;
- $c->forward('check_page_allowed');
-
my $problems = $c->model('DB::Problem')->search( { flagged => 1 } );
# pass in as array ref as using same template as search_reports
@@ -928,9 +980,7 @@ sub list_flagged : Path('list_flagged') : Args(0) {
sub stats : Path('stats') : Args(0) {
my ( $self, $c ) = @_;
- $c->forward('check_page_allowed');
-
- $c->forward('set_up_council_details');
+ $c->forward('fetch_all_bodies');
if ( $c->cobrand->moniker eq 'seesomething' ) {
return $c->cobrand->admin_stats();
@@ -970,11 +1020,11 @@ sub stats : Path('stats') : Args(0) {
my $bymonth = $c->req->param('bymonth');
$c->stash->{bymonth} = $bymonth;
- my ( %council, %dates );
- $council{council} = { like => $c->req->param('council') }
- if $c->req->param('council');
+ my ( %body, %dates );
+ $body{bodies_str} = { like => $c->req->param('body') }
+ if $c->req->param('body');
- $c->stash->{selected_council} = $c->req->param('council');
+ $c->stash->{selected_body} = $c->req->param('body');
my $field = 'confirmed';
@@ -1009,7 +1059,7 @@ sub stats : Path('stats') : Args(0) {
$field => { '>=', $start_date},
$field => { '<=', $end_date + $one_day },
],
- %council,
+ %body,
%dates,
},
\%select,
@@ -1038,16 +1088,16 @@ sub set_allowed_pages : Private {
if( !$pages ) {
$pages = {
'summary' => [_('Summary'), 0],
- 'council_list' => [_('Bodies'), 1],
- 'search_reports' => [_('Reports'), 2],
+ 'bodies' => [_('Bodies'), 1],
+ 'reports' => [_('Reports'), 2],
'timeline' => [_('Timeline'), 3],
'questionnaire' => [_('Survey'), 4],
- 'search_users' => [_('Users'), 5],
- 'list_flagged' => [_('Flagged'), 6],
+ 'users' => [_('Users'), 5],
+ 'flagged' => [_('Flagged'), 6],
'stats' => [_('Stats'), 6],
'user_edit' => [undef, undef],
- 'council_contacts' => [undef, undef],
- 'council_edit' => [undef, undef],
+ 'body' => [undef, undef],
+ 'body_edit' => [undef, undef],
'report_edit' => [undef, undef],
'update_edit' => [undef, undef],
'abuse_edit' => [undef, undef],
@@ -1062,6 +1112,16 @@ sub set_allowed_pages : Private {
return 1;
}
+sub get_user : Private {
+ my ( $self, $c ) = @_;
+
+ my $user = $c->req->remote_user();
+ $user ||= ($c->user && $c->user->name);
+ $user ||= '';
+
+ return $user;
+}
+
=item get_token
Generate a token based on user and secret
@@ -1072,12 +1132,8 @@ sub get_token : Private {
my ( $self, $c ) = @_;
my $secret = $c->model('DB::Secret')->search()->first;
-
- my $user = $c->req->remote_user();
- $user ||= '';
-
- my $token = md5_hex(($user . $secret->secret));
-
+ my $user = $c->forward('get_user');
+ my $token = sha1_hex($user . $secret->secret);
$c->stash->{token} = $token;
return 1;
@@ -1104,7 +1160,7 @@ sub check_token : Private {
$c->forward( 'log_edit', [ $object_id, $object_type, $action_performed ] );
-Adds an entry into the admin_log table using the current remote_user.
+Adds an entry into the admin_log table using the current user.
=cut
@@ -1112,7 +1168,7 @@ sub log_edit : Private {
my ( $self, $c, $id, $object_type, $action ) = @_;
$c->model('DB::AdminLog')->create(
{
- admin_user => ( $c->req->remote_user() || '' ),
+ admin_user => $c->forward('get_user'),
object_type => $object_type,
action => $action,
object_id => $id,
@@ -1232,21 +1288,42 @@ sub rotate_photo : Private {
my ( $self, $c ) =@_;
my $direction = $c->req->param('rotate_photo');
-
return unless $direction =~ /Left/ or $direction =~ /Right/;
- my $photo = _rotate_image( $c->stash->{problem}->photo, $direction =~ /Left/ ? -90 : 90 );
+ my $photo = $c->stash->{problem}->photo;
+ my $file;
+
+ # If photo field contains a hash
+ if ( length($photo) == 40 ) {
+ $file = file( $c->config->{UPLOAD_DIR}, "$photo.jpeg" );
+ $photo = $file->slurp;
+ }
- if ( $photo ) {
- $c->stash->{rotated} = 1;
- $c->stash->{problem}->photo( $photo );
+ $photo = _rotate_image( $photo, $direction =~ /Left/ ? -90 : 90 );
+ return unless $photo;
+
+ my $fileid;
+ if ( !$file ) {
+ $fileid = sha1_hex($photo);
+ $file = file( $c->config->{UPLOAD_DIR}, "$fileid.jpeg" );
+ }
+
+ $c->stash->{rotated} = 1;
+
+ my $fh = $file->open('w');
+ print $fh $photo;
+ close $fh;
+
+ unlink glob FixMyStreet->path_to( 'web', 'photo', $c->stash->{problem}->id . '.*' );
+
+ if ( $fileid ) {
+ $c->stash->{problem}->photo( $fileid );
$c->stash->{problem}->update();
}
return 1;
}
-
=head2 check_page_allowed
Checks if the current catalyst action is in the list of allowed pages and
@@ -1270,16 +1347,16 @@ sub check_page_allowed : Private {
return 1;
}
-sub set_up_council_details : Private {
+sub fetch_all_bodies : Private {
my ($self, $c ) = @_;
- my $areas = mySociety::MaPit::call('areas', $c->cobrand->area_types);
-
- my @councils_ids = sort { strcoll($areas->{$a}->{name}, $areas->{$b}->{name}) } keys %$areas;
- @councils_ids = $c->cobrand->filter_all_council_ids_list( @councils_ids );
-
- $c->stash->{council_ids} = \@councils_ids;
- $c->stash->{council_details} = $areas;
+ my @bodies = $c->model('DB::Body')->all;
+ if ( $c->cobrand->moniker eq 'zurich' ) {
+ @bodies = $c->cobrand->admin_fetch_all_bodies( @bodies );
+ } else {
+ @bodies = sort { strcoll($a->name, $b->name) } @bodies;
+ }
+ $c->stash->{bodies} = \@bodies;
return 1;
}
diff --git a/perllib/FixMyStreet/App/Controller/Alert.pm b/perllib/FixMyStreet/App/Controller/Alert.pm
index 91ea61fbc..e821b7467 100644
--- a/perllib/FixMyStreet/App/Controller/Alert.pm
+++ b/perllib/FixMyStreet/App/Controller/Alert.pm
@@ -407,13 +407,13 @@ Generate the details required to display the council/ward/area RSS feeds
sub setup_council_rss_feeds : Private {
my ( $self, $c ) = @_;
- $c->stash->{council_check_action} = 'alert';
- unless ( $c->forward('/council/load_and_check_councils_and_wards') ) {
+ $c->stash->{area_check_action} = 'alert';
+ unless ( $c->forward('/council/load_and_check_areas_and_wards') ) {
$c->go('index');
}
( $c->stash->{options}, $c->stash->{reported_to_options} ) =
- $c->cobrand->council_rss_alert_options( $c->stash->{all_councils}, $c );
+ $c->cobrand->council_rss_alert_options( $c->stash->{all_areas}, $c );
return 1;
}
diff --git a/perllib/FixMyStreet/App/Controller/Around.pm b/perllib/FixMyStreet/App/Controller/Around.pm
index f2bb23350..9a754f063 100644
--- a/perllib/FixMyStreet/App/Controller/Around.pm
+++ b/perllib/FixMyStreet/App/Controller/Around.pm
@@ -44,7 +44,7 @@ sub around_index : Path : Args(0) {
unless $c->forward('/location/determine_location_from_coords')
|| $c->forward('/location/determine_location_from_pc');
- # Check to see if the spot is covered by a council - if not show an error.
+ # Check to see if the spot is covered by a area - if not show an error.
return unless $c->cobrand->moniker eq 'fixmybarangay' || $c->forward('check_location_is_acceptable');
# If we have a partial - redirect to /report/new so that it can be
@@ -192,7 +192,7 @@ sub display_location : Private {
longitude => $p->longitude,
colour => $colour,
id => $p->id,
- title => $p->title,
+ title => $p->title_safe,
}
} @$on_map_all, @$around_map;
}
@@ -212,7 +212,7 @@ sub display_location : Private {
=head2 check_location_is_acceptable
-Find the lat and lon in stash and check that they are acceptable to the council,
+Find the lat and lon in stash and check that they are acceptable to the area,
and that they are in UK (if we are in UK).
=cut
@@ -220,10 +220,10 @@ and that they are in UK (if we are in UK).
sub check_location_is_acceptable : Private {
my ( $self, $c ) = @_;
- # check that there are councils that can accept this location
- $c->stash->{council_check_action} = 'submit_problem';
- $c->stash->{remove_redundant_councils} = 1;
- return $c->forward('/council/load_and_check_councils');
+ # check that there are areas that can accept this location
+ $c->stash->{area_check_action} = 'submit_problem';
+ $c->stash->{remove_redundant_areas} = 1;
+ return $c->forward('/council/load_and_check_areas');
}
=head2 /ajax
@@ -281,6 +281,65 @@ sub ajax : Path('/ajax') {
$c->res->body($body);
}
+
+sub location_autocomplete : Path('/ajax/geocode') {
+ my ( $self, $c ) = @_;
+ $c->res->content_type('application/json; charset=utf-8');
+ unless ( $c->req->param('term') ) {
+ $c->res->status(404);
+ $c->res->body('');
+ return;
+ }
+ # we want the match even if there's no ambiguity, so recommendation doesn't
+ # disappear when it's the last choice being offered in the autocomplete.
+ $c->stash->{allow_single_geocode_match_strings} = 1;
+ return $self->_geocode( $c, $c->req->param('term') );
+}
+
+sub location_lookup : Path('/ajax/lookup_location') {
+ my ( $self, $c ) = @_;
+ $c->res->content_type('application/json; charset=utf-8');
+ unless ( $c->req->param('term') ) {
+ $c->res->status(404);
+ $c->res->body('');
+ return;
+ }
+
+ return $self->_geocode( $c, $c->req->param('term') );
+}
+
+sub _geocode : Private {
+ my ( $self, $c, $term ) = @_;
+
+ my ( $lat, $long, $suggestions ) =
+ FixMyStreet::Geocode::lookup( $c->req->param('term'), $c );
+
+ my ($response, @addresses);
+
+ if ( $lat && $long ) {
+ $response = { latitude => $lat, longitude => $long };
+ } else {
+ if ( ref($suggestions) eq 'ARRAY' ) {
+ foreach (@$suggestions) {
+ push @addresses, decode_utf8($_->{address});
+ }
+ $response = { suggestions => \@addresses };
+ } else {
+ $response = { error => $suggestions };
+ }
+ }
+
+ if ( $c->stash->{allow_single_geocode_match_strings} ) {
+ $response = \@addresses;
+ }
+
+ my $body = JSON->new->utf8(1)->encode(
+ $response
+ );
+ $c->res->body($body);
+
+}
+
__PACKAGE__->meta->make_immutable;
1;
diff --git a/perllib/FixMyStreet/App/Controller/Auth.pm b/perllib/FixMyStreet/App/Controller/Auth.pm
index 3dc25dedf..f4d6d86e4 100644
--- a/perllib/FixMyStreet/App/Controller/Auth.pm
+++ b/perllib/FixMyStreet/App/Controller/Auth.pm
@@ -31,7 +31,7 @@ sub general : Path : Args(0) {
my $req = $c->req;
$c->detach( 'redirect_on_signin', [ $req->param('r') ] )
- if $c->user && $req->param('r');
+ if $c->user && $req->param('r') && $req->param('r') !~ /admin/;
# all done unless we have a form posted to us
return unless $req->method eq 'POST';
diff --git a/perllib/FixMyStreet/App/Controller/Council.pm b/perllib/FixMyStreet/App/Controller/Council.pm
index cb9e78421..5d95c2538 100644
--- a/perllib/FixMyStreet/App/Controller/Council.pm
+++ b/perllib/FixMyStreet/App/Controller/Council.pm
@@ -14,34 +14,34 @@ Catalyst Controller.
=head1 METHODS
-=head2 load_and_check_councils_and_wards
+=head2 load_and_check_areas_and_wards
-Try to load councils and wards for this location and check that we have at least one. If
-there are no councils then return false.
+Try to load areas and wards for this location and check that we have at least one. If
+there are no areas then return false.
=cut
-sub load_and_check_councils_and_wards : Private {
+sub load_and_check_areas_and_wards : Private {
my ( $self, $c ) = @_;
my $area_types = [ @{$c->cobrand->area_types}, @{$c->cobrand->area_types_children} ];
$c->stash->{area_types} = $area_types;
- $c->forward('load_and_check_councils');
+ $c->forward('load_and_check_areas');
}
-=head2 load_and_check_councils
+=head2 load_and_check_areas
-Try to load councils for this location and check that we have at least one. If
-there are no councils then return false.
+Try to load areas for this location and check that we have at least one. If
+there are no areas then return false.
=cut
-sub load_and_check_councils : Private {
+sub load_and_check_areas : Private {
my ( $self, $c ) = @_;
my $latitude = $c->stash->{latitude};
my $longitude = $c->stash->{longitude};
- # Look up councils and do checks for the point we've got
+ # Look up areas and do checks for the point we've got
my $area_types;
if ( $c->stash->{area_types} and scalar @{ $c->stash->{area_types} } ) {
$area_types = $c->stash->{area_types};
@@ -52,49 +52,49 @@ sub load_and_check_councils : Private {
my $short_latitude = Utils::truncate_coordinate($latitude);
my $short_longitude = Utils::truncate_coordinate($longitude);
- my $all_councils;
+ my $all_areas;
if ( $c->stash->{fetch_all_areas} ) {
my %area_types = map { $_ => 1 } @$area_types;
- my $all_areas =
+ $all_areas =
mySociety::MaPit::call( 'point', "4326/$short_longitude,$short_latitude" );
- $c->stash->{all_areas} = $all_areas;
- $all_councils = {
+ $c->stash->{all_areas_mapit} = $all_areas;
+ $all_areas = {
map { $_ => $all_areas->{$_} }
grep { $area_types{ $all_areas->{$_}->{type} } }
keys %$all_areas
};
} else {
- $all_councils =
+ $all_areas =
mySociety::MaPit::call( 'point', "4326/$short_longitude,$short_latitude",
type => $area_types );
}
- if ($all_councils->{error}) {
- $c->stash->{location_error} = $all_councils->{error};
+ if ($all_areas->{error}) {
+ $c->stash->{location_error} = $all_areas->{error};
return;
}
# Let cobrand do a check
my ( $success, $error_msg ) =
- $c->cobrand->council_check( { all_councils => $all_councils },
- $c->stash->{council_check_action} );
+ $c->cobrand->area_check( { all_areas => $all_areas },
+ $c->stash->{area_check_action} );
if ( !$success ) {
$c->stash->{location_error} = $error_msg;
return;
}
# edit hash in-place
- $c->cobrand->remove_redundant_councils($all_councils) if $c->stash->{remove_redundant_councils};
+ $c->cobrand->remove_redundant_areas($all_areas) if $c->stash->{remove_redundant_areas};
- # If we don't have any councils we can't accept the report
- if ( !scalar keys %$all_councils ) {
+ # If we don't have any areas we can't accept the report
+ if ( !scalar keys %$all_areas ) {
$c->stash->{location_error} = _('That location does not appear to be covered by a council; perhaps it is offshore or outside the country. Please try again.');
return;
}
- # all good if we have some councils left
- $c->stash->{all_councils} = $all_councils;
- $c->stash->{all_council_names} =
- [ map { $_->{name} } values %$all_councils ];
+ # all good if we have some areas left
+ $c->stash->{all_areas} = $all_areas;
+ $c->stash->{all_area_names} =
+ [ map { $_->{name} } values %$all_areas ];
return 1;
}
diff --git a/perllib/FixMyStreet/App/Controller/Dashboard.pm b/perllib/FixMyStreet/App/Controller/Dashboard.pm
index 17fd8b867..028b9aadd 100644
--- a/perllib/FixMyStreet/App/Controller/Dashboard.pm
+++ b/perllib/FixMyStreet/App/Controller/Dashboard.pm
@@ -29,7 +29,7 @@ sub example : Local : Args(0) {
}
# TODO Set up manual version of what the below would do
- #$c->forward( '/report/new/setup_categories_and_councils' );
+ #$c->forward( '/report/new/setup_categories_and_bodies' );
# See if we've had anything from the dropdowns - perhaps vary results if so
$c->stash->{ward} = $c->req->param('ward');
@@ -74,9 +74,9 @@ sub check_page_allowed : Private {
$c->detach( '/auth/redirect' ) unless $c->user_exists;
$c->detach( '/page_error_404_not_found' )
- unless $c->user_exists && $c->user->from_council;
+ unless $c->user_exists && $c->user->from_body;
- return $c->user->from_council;
+ return $c->user->from_body;
}
=head2 index
@@ -88,20 +88,23 @@ Show the dashboard table.
sub index : Path : Args(0) {
my ( $self, $c ) = @_;
- my $council = $c->forward('check_page_allowed');
+ my $body = $c->forward('check_page_allowed');
# Set up the data for the dropdowns
- my $council_detail = mySociety::MaPit::call('area', $council );
+ # Just take the first area ID we find
+ my $area_id = $body->body_areas->first->area_id;
+
+ my $council_detail = mySociety::MaPit::call('area', $area_id );
$c->stash->{council} = $council_detail;
- my $children = mySociety::MaPit::call('area/children', $council,
+ my $children = mySociety::MaPit::call('area/children', $area_id,
type => $c->cobrand->area_types_children,
);
$c->stash->{children} = $children;
- $c->stash->{all_councils} = { $council => $council_detail };
- $c->forward( '/report/new/setup_categories_and_councils' );
+ $c->stash->{all_areas} = { $area_id => $council_detail };
+ $c->forward( '/report/new/setup_categories_and_bodies' );
# See if we've had anything from the dropdowns
@@ -109,7 +112,7 @@ sub index : Path : Args(0) {
$c->stash->{category} = $c->req->param('category');
my %where = (
- council => $council, # XXX This will break in a two tier council. Restriction needs looking at...
+ bodies_str => $body->id, # XXX Does this break in a two tier council? Restriction needs looking at...
'problem.state' => [ FixMyStreet::DB::Result::Problem->visible_states() ],
);
$where{areas} = { 'like', '%,' . $c->stash->{ward} . ',%' }
diff --git a/perllib/FixMyStreet/App/Controller/JS.pm b/perllib/FixMyStreet/App/Controller/JS.pm
index d7847af75..483c3c2cc 100755
--- a/perllib/FixMyStreet/App/Controller/JS.pm
+++ b/perllib/FixMyStreet/App/Controller/JS.pm
@@ -11,13 +11,13 @@ FixMyStreet::App::Controller::JS - Catalyst Controller
=head1 DESCRIPTION
JS Catalyst Controller. To return a language-dependent list
-of validation strings.
+of translation strings.
=head1 METHODS
=cut
-sub validation_strings : LocalRegex('^validation_strings\.(.*?)\.js$') : Args(0) {
+sub translation_strings : LocalRegex('^translation_strings\.(.*?)\.js$') : Args(0) {
my ( $self, $c ) = @_;
my $lang = $c->req->captures->[0];
$c->cobrand->set_lang_and_domain( $lang, 1 );
diff --git a/perllib/FixMyStreet/App/Controller/JSON.pm b/perllib/FixMyStreet/App/Controller/JSON.pm
index f3607341a..1a7c1915b 100644
--- a/perllib/FixMyStreet/App/Controller/JSON.pm
+++ b/perllib/FixMyStreet/App/Controller/JSON.pm
@@ -92,7 +92,7 @@ sub problems : Local {
my @problems = $c->cobrand->problems->search( $query, {
order_by => { -asc => 'confirmed' },
columns => [
- 'id', 'title', 'council', 'category',
+ 'id', 'title', 'bodies_str', 'category',
'detail', 'name', 'anonymous', 'confirmed',
'whensent', 'service',
'latitude', 'longitude', 'used_map',
@@ -100,23 +100,13 @@ sub problems : Local {
]
} );
- my @councils;
foreach my $problem (@problems) {
$problem->name( '' ) if $problem->anonymous == 1;
$problem->service( 'Web interface' ) if $problem->service eq '';
- if ($problem->council) {
- (my $council = $problem->council) =~ s/\|.*//g;
- my @council_ids = split /,/, $council;
- push(@councils, @council_ids);
- $problem->council( \@council_ids );
- }
- }
- @councils = uniq @councils;
- my $areas_info = mySociety::MaPit::call('areas', \@councils);
- foreach my $problem (@problems) {
- if ($problem->council) {
- my @council_names = map { $areas_info->{$_}->{name} } @{$problem->council} ;
- $problem->council( join(' and ', @council_names) );
+ my $bodies = $problem->bodies;
+ if (keys %$bodies) {
+ my @body_names = map { $_->name } values %$bodies;
+ $problem->bodies_str( join(' and ', @body_names) );
}
}
diff --git a/perllib/FixMyStreet/App/Controller/Open311.pm b/perllib/FixMyStreet/App/Controller/Open311.pm
index 3382c0cea..7b8cb649f 100644
--- a/perllib/FixMyStreet/App/Controller/Open311.pm
+++ b/perllib/FixMyStreet/App/Controller/Open311.pm
@@ -164,12 +164,12 @@ sub get_services : Private {
if ($lat || $lon) {
my $area_types = $c->cobrand->area_types;
- my $all_councils = mySociety::MaPit::call('point',
+ my $all_areas = mySociety::MaPit::call('point',
"4326/$lon,$lat",
type => $area_types);
$categories = $categories->search( {
- area_id => [ keys %$all_councils ],
- } );
+ 'body_areas.area_id' => [ keys %$all_areas ],
+ }, { join => { 'body' => 'body_areas' } } );
}
my @categories = $categories->search( undef, {
@@ -223,19 +223,11 @@ sub output_requests : Private {
);
my @problemlist;
- my @councils;
while ( my $problem = $problems->next ) {
my $id = $problem->id;
$problem->service( 'Web interface' ) unless $problem->service;
- if ($problem->council) {
- (my $council = $problem->council) =~ s/\|.*//g;
- my @council_ids = split(/,/, $council);
- push(@councils, @council_ids);
- $problem->council( \@council_ids );
- }
-
$problem->state( $statusmap{$problem->state} );
my $request =
@@ -256,7 +248,7 @@ sub output_requests : Private {
'service_code' => [ $problem->category ],
'service_name' => [ $problem->category ],
# 'service_notice' => [ {} ],
- 'agency_responsible' => $problem->council , # FIXME Not according to Open311 v2
+ 'agency_responsible' => $problem->bodies , # FIXME Not according to Open311 v2
# 'zipcode' => [ {} ],
'interface_used' => [ $problem->service ], # Not in Open311 v2
};
@@ -288,12 +280,12 @@ sub output_requests : Private {
}
push(@problemlist, $request);
}
- my $areas_info = mySociety::MaPit::call('areas', \@councils);
+
foreach my $request (@problemlist) {
if ($request->{agency_responsible}) {
- my @council_names = map { $areas_info->{$_}->{name} } @{$request->{agency_responsible}} ;
+ my @body_names = map { $_->name } values %{$request->{agency_responsible}} ;
$request->{agency_responsible} =
- [ {'recipient' => [ @council_names ] } ];
+ [ {'recipient' => [ @body_names ] } ];
}
}
$c->forward( 'format_output', [ {
@@ -319,7 +311,7 @@ sub get_requests : Private {
service_request_id => [ '=', 'id' ],
service_code => [ '=', 'category' ],
status => [ 'IN', 'state' ],
- agency_responsible => [ '~', 'council' ],
+ agency_responsible => [ '~', 'bodies_str' ],
interface_used => [ '=', 'service' ],
has_photo => [ '=', 'photo' ],
);
diff --git a/perllib/FixMyStreet/App/Controller/Photo.pm b/perllib/FixMyStreet/App/Controller/Photo.pm
index fa4baf045..279623922 100644
--- a/perllib/FixMyStreet/App/Controller/Photo.pm
+++ b/perllib/FixMyStreet/App/Controller/Photo.pm
@@ -102,10 +102,7 @@ sub output : Private {
File::Path::make_path( FixMyStreet->path_to( 'web', 'photo', 'c' )->stringify );
File::Slurp::write_file( FixMyStreet->path_to( 'web', $c->req->path )->stringify, \$photo );
- my $dt = DateTime->now()->add( years => 1 );
-
$c->res->content_type( 'image/jpeg' );
- $c->res->header( 'expires', DateTime::Format::HTTP->format_datetime( $dt ) );
$c->res->body( $photo );
}
diff --git a/perllib/FixMyStreet/App/Controller/Report.pm b/perllib/FixMyStreet/App/Controller/Report.pm
index ef966a8a8..460ccaec5 100644
--- a/perllib/FixMyStreet/App/Controller/Report.pm
+++ b/perllib/FixMyStreet/App/Controller/Report.pm
@@ -51,6 +51,25 @@ sub display : Path('') : Args(1) {
return $c->res->redirect( $c->uri_for($1), 301 );
}
+ $c->forward( '_display', [ $id ] );
+}
+
+=head2 ajax
+
+Return JSON formatted details of a report
+
+=cut
+
+sub ajax : Path('ajax') : Args(1) {
+ my ( $self, $c, $id ) = @_;
+
+ $c->stash->{ajax} = 1;
+ $c->forward( '_display', [ $id ] );
+}
+
+sub _display : Private {
+ my ( $self, $c, $id ) = @_;
+
$c->forward( 'load_problem_or_display_error', [ $id ] );
$c->forward( 'load_updates' );
$c->forward( 'format_problem_for_display' );
@@ -66,7 +85,7 @@ sub support : Path('support') : Args(0) {
? $c->uri_for( '/report', $id )
: $c->uri_for('/');
- if ( $id && $c->cobrand->can_support_problems && $c->user && $c->user->from_council ) {
+ if ( $id && $c->cobrand->can_support_problems && $c->user && $c->user->from_body ) {
$c->forward( 'load_problem_or_display_error', [ $id ] );
$c->stash->{problem}->update( { interest_count => \'interest_count +1' } );
}
@@ -83,7 +102,7 @@ sub load_problem_or_display_error : Private {
: $c->cobrand->problems->find( { id => $id } );
# check that the problem is suitable to show.
- if ( !$problem || $problem->state eq 'unconfirmed' || $problem->state eq 'partial' ) {
+ if ( !$problem || ($problem->state eq 'unconfirmed' && !$c->cobrand->show_unconfirmed_reports) || $problem->state eq 'partial' ) {
$c->detach( '/page_error_404_not_found', [ _('Unknown problem ID') ] );
}
elsif ( $problem->state eq 'hidden' ) {
@@ -147,10 +166,19 @@ sub format_problem_for_display : Private {
$c->stash->{add_alert} = 1;
}
- $c->stash->{extra_name_info} = $problem->council && $problem->council eq '2482' ? 1 : 0;
+ $c->stash->{extra_name_info} = $problem->bodies_str && $problem->bodies_str eq '2482' ? 1 : 0;
$c->forward('generate_map_tags');
+ if ( $c->stash->{ajax} ) {
+ $c->res->content_type('application/json; charset=utf-8');
+ my $content = JSON->new->utf8(1)->encode(
+ $problem->as_hashref( $c )
+ );
+ $c->res->body( $content );
+ return 1;
+ }
+
return 1;
}
@@ -187,11 +215,10 @@ sub delete :Local :Args(1) {
return $c->res->redirect($uri) unless $c->user_exists;
- my $council = $c->user->obj->from_council;
- return $c->res->redirect($uri) unless $council;
+ my $body = $c->user->obj->from_body;
+ return $c->res->redirect($uri) unless $body;
- my %councils = map { $_ => 1 } @{$p->councils};
- return $c->res->redirect($uri) unless $councils{$council};
+ return $c->res->redirect($uri) unless $p->bodies->{$body};
$p->state('hidden');
$p->lastupdate( \'ms_current_timestamp()' );
diff --git a/perllib/FixMyStreet/App/Controller/Report/New.pm b/perllib/FixMyStreet/App/Controller/Report/New.pm
index 9194f5318..687e54fbe 100644
--- a/perllib/FixMyStreet/App/Controller/Report/New.pm
+++ b/perllib/FixMyStreet/App/Controller/Report/New.pm
@@ -89,7 +89,7 @@ sub report_new : Path : Args(0) {
# create a problem from the submitted details
$c->stash->{template} = "report/new/fill_in_details.html";
- $c->forward('setup_categories_and_councils');
+ $c->forward('setup_categories_and_bodies');
$c->forward('generate_map');
$c->forward('check_for_category');
@@ -119,7 +119,7 @@ sub report_new_ajax : Path('mobile') : Args(0) {
return 1;
}
- $c->forward('setup_categories_and_councils');
+ $c->forward('setup_categories_and_bodies');
$c->forward('process_user');
$c->forward('process_report');
$c->forward('/photo/process_photo');
@@ -147,7 +147,7 @@ sub report_new_ajax : Path('mobile') : Args(0) {
} else {
$c->stash->{token_url} = $c->uri_for_email( '/P', $token->token );
$c->send_email( 'problem-confirm.txt', {
- to => [ [ $report->user->email, $report->name ] ],
+ to => [ $report->name ? [ $report->user->email, $report->name ] : $report->user->email ],
} );
$c->stash->{ json_response } = { success => 1 };
}
@@ -180,7 +180,7 @@ sub report_form_ajax : Path('ajax') : Args(0) {
return;
}
- $c->forward('setup_categories_and_councils');
+ $c->forward('setup_categories_and_bodies');
# render templates to get the html
my $category = $c->render_fragment( 'report/new/category.html');
@@ -216,7 +216,7 @@ sub category_extras_ajax : Path('category_extras') : Args(0) {
$c->res->body($body);
return 1;
}
- $c->forward('setup_categories_and_councils');
+ $c->forward('setup_categories_and_bodies');
my $category_extra = '';
if ( $c->stash->{category_extras}->{ $c->req->param('category') } && @{ $c->stash->{category_extras}->{ $c->req->param('category') } } >= 1 ) {
@@ -569,27 +569,34 @@ sub determine_location_from_report : Private {
return;
}
-=head2 setup_categories_and_councils
+=head2 setup_categories_and_bodies
-Look up categories for this council or councils
+Look up categories for the relevant body or bodies.
=cut
-sub setup_categories_and_councils : Private {
+sub setup_categories_and_bodies : Private {
my ( $self, $c ) = @_;
- my $all_councils = $c->stash->{all_councils};
- my $first_council = ( values %$all_councils )[0];
+ my $all_areas = $c->stash->{all_areas};
+ my $first_area = ( values %$all_areas )[0];
+
+ my @bodies = $c->model('DB::Body')->search(
+ { 'body_areas.area_id' => [ keys %$all_areas ] },
+ { join => 'body_areas' }
+ )->all;
+ my %bodies = map { $_->id => $_ } @bodies;
+ my $first_body = ( values %bodies )[0];
my @contacts #
= $c #
->model('DB::Contact') #
->not_deleted #
- ->search( { area_id => [ keys %$all_councils ] } ) #
+ ->search( { body_id => [ keys %bodies ] } )
->all;
# variables to populate
- my %area_ids_to_list = (); # Areas with categories assigned
+ my %bodies_to_list = (); # Bodies 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
@@ -599,9 +606,9 @@ sub setup_categories_and_councils : Private {
# FIXME - implement in cobrand
if ( $c->cobrand->moniker eq 'emptyhomes' ) {
- # add all areas found to the list
+ # add all bodies found to the list
foreach (@contacts) {
- $area_ids_to_list{ $_->area_id } = 1;
+ $bodies_to_list{ $_->body_id } = 1;
}
# set our own categories
@@ -616,11 +623,11 @@ sub setup_categories_and_councils : Private {
);
$category_label = _('Property type:');
- } elsif ($first_council->{id} != COUNCIL_ID_BROMLEY && $first_council->{type} eq 'LBO') {
+ } elsif ($first_area->{id} != COUNCIL_ID_BROMLEY && $first_area->{type} eq 'LBO') {
- $area_ids_to_list{ $first_council->{id} } = 1;
+ $bodies_to_list{ $first_body->id } = 1;
my @local_categories;
- if ($first_council->{id} == COUNCIL_ID_BARNET) {
+ if ($first_area->{id} == COUNCIL_ID_BARNET) {
@local_categories = sort keys %{ Utils::barnet_categories() }
} else {
@local_categories = sort keys %{ Utils::london_categories() }
@@ -639,7 +646,7 @@ sub setup_categories_and_councils : Private {
my %seen;
foreach my $contact (@contacts) {
- $area_ids_to_list{ $contact->area_id } = 1;
+ $bodies_to_list{ $contact->body_id } = 1;
unless ( $seen{$contact->category} ) {
push @category_options, $contact->category;
@@ -661,24 +668,21 @@ sub setup_categories_and_councils : Private {
}
# put results onto stash for display
- $c->stash->{area_ids_to_list} = [ keys %area_ids_to_list ];
+ $c->stash->{bodies} = \%bodies;
+ $c->stash->{all_body_names} = [ map { $_->name } values %bodies ];
+ $c->stash->{bodies_to_list} = [ keys %bodies_to_list ];
$c->stash->{category_label} = $category_label;
$c->stash->{category_options} = \@category_options;
$c->stash->{category_extras} = \%category_extras;
$c->stash->{non_public_categories} = \%non_public_categories;
$c->stash->{category_extras_json} = encode_json \%category_extras;
- $c->stash->{extra_name_info} = $first_council->{id} == COUNCIL_ID_BROMLEY ? 1 : 0;
-
- my @missing_details_councils =
- grep { !$area_ids_to_list{$_} } #
- keys %$all_councils;
+ $c->stash->{extra_name_info} = $first_area->{id} == COUNCIL_ID_BROMLEY ? 1 : 0;
- my @missing_details_council_names =
- map { $all_councils->{$_}->{name} } #
- @missing_details_councils;
+ my @missing_details_bodies = grep { !$bodies_to_list{$_->id} } values %bodies;
+ my @missing_details_body_names = map { $_->name } @missing_details_bodies;
- $c->stash->{missing_details_councils} = \@missing_details_councils;
- $c->stash->{missing_details_council_names} = \@missing_details_council_names;
+ $c->stash->{missing_details_bodies} = \@missing_details_bodies;
+ $c->stash->{missing_details_body_names} = \@missing_details_body_names;
}
=head2 check_form_submitted
@@ -820,60 +824,62 @@ sub process_report : Private {
$report->subcategory( $params{subcategory} );
- my $areas = $c->stash->{all_areas};
+ my $areas = $c->stash->{all_areas_mapit};
$report->areas( ',' . join( ',', sort keys %$areas ) . ',' );
# From earlier in the process.
- my $councils = $c->stash->{all_councils};
- my $first_council = ( values %$councils )[0];
+ $areas = $c->stash->{all_areas};
+ my $bodies = $c->stash->{bodies};
+ my $first_area = ( values %$areas )[0];
+ my $first_body = ( values %$bodies )[0];
if ( $c->cobrand->moniker eq 'emptyhomes' ) {
- $councils = join( ',', @{ $c->stash->{area_ids_to_list} } ) || -1;
- $report->council( $councils );
+ $bodies = join( ',', @{ $c->stash->{bodies_to_list} } ) || -1;
+ $report->bodies_str( $bodies );
- } elsif ( $first_council->{id} == COUNCIL_ID_BARNET ) {
+ } elsif ( $first_area->{id} == COUNCIL_ID_BARNET ) {
unless ( exists Utils::barnet_categories()->{ $report->category } ) {
$c->stash->{field_errors}->{category} = _('Please choose a category');
}
- $report->council( $first_council->{id} );
+ $report->bodies_str( $first_body->id );
- } elsif ( $first_council->{id} != COUNCIL_ID_BROMLEY && $first_council->{type} eq 'LBO') {
+ } elsif ( $first_area->{id} != COUNCIL_ID_BROMLEY && $first_area->{type} eq 'LBO') {
unless ( Utils::london_categories()->{ $report->category } ) {
$c->stash->{field_errors}->{category} = _('Please choose a category');
}
- $report->council( $first_council->{id} );
+ $report->bodies_str( $first_body->id );
} elsif ( $report->category ) {
- # FIXME All contacts were fetched in setup_categories_and_councils,
+ # FIXME All contacts were fetched in setup_categories_and_bodies,
# so can this DB call also be avoided?
my @contacts = $c-> #
model('DB::Contact') #
->not_deleted #
->search(
{
- area_id => [ keys %$councils ],
+ body_id => [ keys %$bodies ],
category => $report->category
}
)->all;
unless ( @contacts ) {
$c->stash->{field_errors}->{category} = _('Please choose a category');
- $report->council( -1 );
+ $report->bodies_str( -1 );
return 1;
}
- # construct the council string:
- # 'x,x' - x are council IDs that have this category
- # 'x,x|y,y' - x are council IDs that have this category, y council IDs with *no* contact
- my $council_string = join( ',', map { $_->area_id } @contacts );
- $council_string .=
- '|' . join( ',', @{ $c->stash->{missing_details_councils} } )
- if $council_string && @{ $c->stash->{missing_details_councils} };
- $report->council($council_string);
+ # construct the bodies string:
+ # 'x,x' - x are body IDs that have this category
+ # 'x,x|y' - x are body IDs that have this category, y body IDs with *no* contact
+ my $body_string = join( ',', map { $_->body_id } @contacts );
+ $body_string .=
+ '|' . join( ',', map { $_->id } @{ $c->stash->{missing_details_bodies} } )
+ if $body_string && @{ $c->stash->{missing_details_bodies} };
+ $report->bodies_str($body_string);
my @extra = ();
my $metas = $contacts[0]->extra;
@@ -895,13 +901,13 @@ sub process_report : Private {
$report->non_public( 1 );
}
- $c->cobrand->process_extras( $c, $contacts[0]->area_id, \@extra );
+ $c->cobrand->process_extras( $c, $contacts[0]->body_id, \@extra );
if ( @extra ) {
$c->stash->{report_meta} = { map { $_->{name} => $_ } @extra };
$report->extra( \@extra );
}
- } elsif ( @{ $c->stash->{area_ids_to_list} } ) {
+ } elsif ( @{ $c->stash->{bodies_to_list} } ) {
# There was an area with categories, but we've not been given one. Bail.
$c->stash->{field_errors}->{category} = _('Please choose a category');
@@ -910,7 +916,7 @@ sub process_report : Private {
# If we're here, we've been submitted somewhere
# where we have no contact information at all.
- $report->council( -1 );
+ $report->bodies_str( -1 );
}
@@ -944,6 +950,8 @@ sub check_for_errors : Private {
if ( $c->cobrand->moniker eq 'zurich' ) {
delete $field_errors{title};
delete $field_errors{name};
+ my $report = $c->stash->{report};
+ $report->title( Utils::cleanup_text( substr($report->detail, 0, 25) ) );
}
# FIXME: need to check for required bromley fields here
@@ -1006,8 +1014,10 @@ sub save_user_and_report : Private {
$c->log->info($report->user->id . ' created for this report');
}
elsif ( $c->user && $report->user->id == $c->user->id ) {
+ # Logged in and matches, so instantly confirm (except Zurich, with no confirmation)
$report->user->update();
- $report->confirm;
+ $report->confirm
+ unless $c->cobrand->moniker eq 'zurich';
$c->log->info($report->user->id . ' is logged in for this report');
}
else {
@@ -1032,7 +1042,7 @@ sub save_user_and_report : Private {
$report->category( _('Other') ) unless $report->category;
# Set unknown to DB unknown
- $report->council( undef ) if $report->council eq '-1';
+ $report->bodies_str( undef ) if $report->bodies_str eq '-1';
# if there is a Message Manager message ID, pass it back to the client view
if ($c->cobrand->moniker eq 'fixmybarangay' && $c->req->param('external_source_id')=~/^\d+$/) {
@@ -1113,7 +1123,7 @@ sub redirect_or_confirm_creation : Private {
$c->forward( 'create_reporter_alert' );
my $report_uri;
- if ( $c->cobrand->moniker eq 'fixmybarangay' && $c->user->from_council && $c->stash->{external_source_id}) {
+ if ( $c->cobrand->moniker eq 'fixmybarangay' && $c->user->from_body && $c->stash->{external_source_id}) {
$report_uri = $c->uri_for( '/report', $report->id, undef, { external_source_id => $c->stash->{external_source_id} } );
} elsif ( $c->cobrand->never_confirm_reports && $report->non_public ) {
$c->log->info( 'cobrand was set to always confirm reports and report was non public, success page showed');
@@ -1138,7 +1148,7 @@ sub redirect_or_confirm_creation : Private {
} );
$c->stash->{token_url} = $c->uri_for_email( '/P', $token->token );
$c->send_email( 'problem-confirm.txt', {
- to => [ [ $report->user->email, $report->name ] ],
+ to => [ $report->name ? [ $report->user->email, $report->name ] : $report->user->email ],
} );
# tell user that they've been sent an email
diff --git a/perllib/FixMyStreet/App/Controller/Report/Update.pm b/perllib/FixMyStreet/App/Controller/Report/Update.pm
index 5e0d9f388..dbfd57e78 100644
--- a/perllib/FixMyStreet/App/Controller/Report/Update.pm
+++ b/perllib/FixMyStreet/App/Controller/Report/Update.pm
@@ -76,7 +76,7 @@ sub update_problem : Private {
$problem->state('confirmed');
}
- if ( $c->cobrand->can_support_problems && $c->user && $c->user->from_council && $c->req->param('external_source_id') ) {
+ if ( $c->cobrand->can_support_problems && $c->user && $c->user->from_body && $c->req->param('external_source_id') ) {
$problem->interest_count( \'interest_count + 1' );
}
@@ -201,7 +201,7 @@ sub process_update : Private {
if ( $params{state} ) {
$params{state} = 'fixed - council'
- if $params{state} eq 'fixed' && $c->user && $c->user->belongs_to_council( $update->problem->council );
+ if $params{state} eq 'fixed' && $c->user && $c->user->belongs_to_body( $update->problem->bodies_str );
$update->problem_state( $params{state} );
} else {
# we do this so we have a record of the state of the problem at this point
@@ -223,7 +223,7 @@ sub process_update : Private {
my @extra; # Next function fills this, but we don't need it here.
# This is just so that the error checkign for these extra fields runs.
# TODO Use extra here as it is used on reports.
- $c->cobrand->process_extras( $c, $update->problem->council, \@extra );
+ $c->cobrand->process_extras( $c, $update->problem->bodies_str, \@extra );
if ( $c->req->param('fms_extra_title') ) {
my %extras = ();
@@ -261,7 +261,7 @@ sub check_for_errors : Private {
# they have to be an authority user to update the state
if ( $c->req->param('state') ) {
my $error = 0;
- $error = 1 unless $c->user && $c->user->belongs_to_council( $c->stash->{update}->problem->council );
+ $error = 1 unless $c->user && $c->user->belongs_to_body( $c->stash->{update}->problem->bodies_str );
my $state = $c->req->param('state');
$state = 'fixed - council' if $state eq 'fixed';
diff --git a/perllib/FixMyStreet/App/Controller/Reports.pm b/perllib/FixMyStreet/App/Controller/Reports.pm
index 1fcbfbd72..781dee698 100644
--- a/perllib/FixMyStreet/App/Controller/Reports.pm
+++ b/perllib/FixMyStreet/App/Controller/Reports.pm
@@ -5,6 +5,7 @@ use namespace::autoclean;
use File::Slurp;
use List::MoreUtils qw(zip);
use POSIX qw(strcoll);
+use RABX;
use mySociety::MaPit;
BEGIN { extends 'Catalyst::Controller'; }
@@ -30,34 +31,26 @@ Show the summary page of all reports.
sub index : Path : Args(0) {
my ( $self, $c ) = @_;
- # Fetch all areas of the types we're interested in
- my $areas_info;
- eval {
- my $area_types = $c->cobrand->area_types;
- $areas_info = mySociety::MaPit::call('areas', $area_types,
- min_generation => $c->cobrand->area_min_generation
+ # Zurich goes straight to map page, with all reports
+ if ( $c->cobrand->moniker eq 'zurich' ) {
+ $c->forward( 'load_and_group_problems' );
+ my $pins = $c->stash->{pins};
+ $c->stash->{page} = 'reports';
+ FixMyStreet::Map::display_map(
+ $c,
+ latitude => @$pins ? $pins->[0]{latitude} : 0,
+ longitude => @$pins ? $pins->[0]{longitude} : 0,
+ area => 274456,
+ pins => $pins,
+ any_zoom => 1,
);
- };
- if ($@) {
- $c->stash->{message} = _("Unable to look up areas in MaPit. Please try again later.") . ' ' .
- sprintf(_('The error was: %s'), $@);
- $c->stash->{template} = 'errors/generic.html';
- return;
+ return 1;
}
- # For each area, add its link and perhaps alter its name if we need to for
- # places with the same name.
- foreach (values %$areas_info) {
- $_->{url} = $c->uri_for( '/reports/' . $c->cobrand->short_name( $_, $areas_info ) );
- if ($_->{parent_area} && $_->{url} =~ /,|%2C/) {
- $_->{name} .= ', ' . $areas_info->{$_->{parent_area}}{name};
- }
- }
-
- $c->stash->{areas_info} = $areas_info;
- my @keys = sort { strcoll($areas_info->{$a}{name}, $areas_info->{$b}{name}) } keys %$areas_info;
- @keys = $c->cobrand->filter_all_council_ids_list( @keys );
- $c->stash->{areas_info_sorted} = [ map { $areas_info->{$_} } @keys ];
+ # Fetch all areas of the types we're interested in
+ my @bodies = $c->model('DB::Body')->all;
+ @bodies = sort { strcoll($a->name, $b->name) } @bodies;
+ $c->stash->{bodies} = \@bodies;
eval {
my $data = File::Slurp::read_file(
@@ -99,21 +92,20 @@ Show the summary page for a particular ward.
=cut
sub ward : Path : Args(2) {
- my ( $self, $c, $council, $ward ) = @_;
+ my ( $self, $c, $body, $ward ) = @_;
- $c->forward( 'body_check', [ $council ] );
+ $c->forward( 'body_check', [ $body ] );
$c->forward( 'ward_check', [ $ward ] )
if $ward;
- $c->forward( 'load_parent' );
- $c->forward( 'check_canonical_url', [ $council ] );
+ $c->forward( 'check_canonical_url', [ $body ] );
$c->forward( 'load_and_group_problems' );
- my $council_short = $c->cobrand->short_name( $c->stash->{council}, $c->stash->{areas_info} );
- $c->stash->{rss_url} = '/rss/reports/' . $council_short;
+ my $body_short = $c->cobrand->short_name( $c->stash->{body} );
+ $c->stash->{rss_url} = '/rss/reports/' . $body_short;
$c->stash->{rss_url} .= '/' . $c->cobrand->short_name( $c->stash->{ward} )
if $c->stash->{ward};
- $c->stash->{council_url} = '/reports/' . $council_short;
+ $c->stash->{body_url} = '/reports/' . $body_short;
$c->stash->{stats} = $c->cobrand->get_report_stats();
@@ -123,7 +115,7 @@ sub ward : Path : Args(2) {
my %map_params = (
latitude => @$pins ? $pins->[0]{latitude} : 0,
longitude => @$pins ? $pins->[0]{longitude} : 0,
- area => $c->stash->{ward} ? $c->stash->{ward}->{id} : $c->stash->{council}->{id},
+ area => $c->stash->{ward} ? $c->stash->{ward}->{id} : [ keys %{$c->stash->{body}->areas} ],
any_zoom => 1,
);
if ( $c->cobrand->moniker eq 'emptyhomes' ) {
@@ -139,64 +131,121 @@ sub ward : Path : Args(2) {
$c->cobrand->tweak_all_reports_map( $c );
# List of wards
- # Ignore external_body special council thing
- unless ($c->stash->{ward} || !$c->stash->{council}->{id}) {
- my $children = mySociety::MaPit::call('area/children', [ $c->stash->{council}->{id} ],
+ # Ignore external_body special body thing
+ unless ($c->stash->{ward} || !$c->stash->{body}->id) {
+ my $children = mySociety::MaPit::call('area/children', [ $c->stash->{body}->body_areas->first->area_id ],
type => $c->cobrand->area_types_children,
);
- foreach (values %$children) {
- $_->{url} = $c->uri_for( $c->stash->{council_url}
- . '/' . $c->cobrand->short_name( $_ )
- );
+ unless ($children->{error}) {
+ foreach (values %$children) {
+ $_->{url} = $c->uri_for( $c->stash->{body_url}
+ . '/' . $c->cobrand->short_name( $_ )
+ );
+ }
+ $c->stash->{children} = $children;
}
- $c->stash->{children} = $children;
}
}
-sub rss_body : Regex('^rss/(reports|area)$') : Args(1) {
- my ( $self, $c, $body ) = @_;
- $c->detach( 'rss_ward', [ $body ] );
+sub rss_area : Path('/rss/area') : Args(1) {
+ my ( $self, $c, $area ) = @_;
+ $c->detach( 'rss_area_ward', [ $area ] );
}
-sub rss_ward : Regex('^rss/(reports|area)$') : Args(2) {
- my ( $self, $c, $council, $ward ) = @_;
-
- my ( $rss ) = $c->req->captures->[0];
+sub rss_area_ward : Path('/rss/area') : Args(2) {
+ my ( $self, $c, $area, $ward ) = @_;
$c->stash->{rss} = 1;
- $c->forward( 'body_check', [ $council ] );
- $c->forward( 'ward_check', [ $ward ] ) if $ward;
+ # area_check
+
+ $area =~ s/\+/ /g;
+ $area =~ s/\.html//;
- if ($rss eq 'area' && $c->stash->{council}{type} ne 'DIS' && $c->stash->{council}{type} ne 'CTY') {
- # Two possibilites are the same for one-tier councils, so redirect one to the other
- $c->detach( 'redirect_area' );
+ # If we're passed an ID number (don't think this is used anywhere, it
+ # certainly shouldn't be), just look that up on mapit and redirect
+ if ($area =~ /^\d+$/) {
+ my $council = mySociety::MaPit::call('area', $area);
+ $c->detach( 'redirect_index') if $council->{error};
+ $c->stash->{body} = $council;
+ $c->detach( 'redirect_body' );
+ }
+
+ # We must now have a string to check on mapit
+ my $areas = mySociety::MaPit::call( 'areas', $area,
+ type => $c->cobrand->area_types,
+ );
+
+ if (keys %$areas == 1) {
+ ($c->stash->{area}) = values %$areas;
+ } else {
+ foreach (keys %$areas) {
+ if (lc($areas->{$_}->{name}) eq lc($area) || $areas->{$_}->{name} =~ /^\Q$area\E (Borough|City|District|County) Council$/i) {
+ $c->stash->{area} = $areas->{$_};
+ }
+ }
}
- my $url = $c->cobrand->short_name( $c->stash->{council} );
- $url .= '/' . $c->cobrand->short_name( $c->stash->{ward} ) if $c->stash->{ward};
+ $c->forward( 'ward_check', [ $ward ] ) if $ward;
+
+ my $url = $c->cobrand->short_name( $c->stash->{area} );
+ $url .= '/' . $c->cobrand->short_name( $c->stash->{ward} ) if $c->stash->{ward};
$c->stash->{qs} = "/$url";
- if ( $rss eq 'area' && $c->stash->{ward} ) {
+ if ($c->stash->{area}{type} ne 'DIS' && $c->stash->{area}{type} ne 'CTY') {
+ # UK-specific types - two possibilites are the same for one-tier councils, so redirect one to the other
+ # With bodies, this should presumably redirect if only one body covers
+ # the area, and then it will need that body's name (rather than
+ # assuming as now it is the same as the area)
+ $c->stash->{body} = $c->stash->{area};
+ $c->detach( 'redirect_body' );
+ }
+
+ $c->stash->{type} = 'area_problems';
+ if ( $c->stash->{ward} ) {
# All problems within a particular ward
- $c->stash->{type} = 'area_problems';
$c->stash->{title_params} = { NAME => $c->stash->{ward}{name} };
$c->stash->{db_params} = [ $c->stash->{ward}->{id} ];
- } elsif ( $rss eq 'area' ) {
- # Problems within a particular council
- $c->stash->{type} = 'area_problems';
- $c->stash->{title_params} = { NAME => $c->stash->{council}{name} };
- $c->stash->{db_params} = [ $c->stash->{council}->{id} ];
- } elsif ($c->stash->{ward}) {
+ } else {
+ # Problems within a particular area
+ $c->stash->{title_params} = { NAME => $c->stash->{area}->{name} };
+ $c->stash->{db_params} = [ $c->stash->{area}->{id} ];
+ }
+
+ # Send on to the RSS generation
+ $c->forward( '/rss/output' );
+
+}
+
+sub rss_body : Path('/rss/reports') : Args(1) {
+ my ( $self, $c, $body ) = @_;
+ $c->detach( 'rss_ward', [ $body ] );
+}
+
+sub rss_ward : Path('/rss/reports') : Args(2) {
+ my ( $self, $c, $body, $ward ) = @_;
+
+ $c->stash->{rss} = 1;
+
+ $c->forward( 'body_check', [ $body ] );
+ $c->forward( 'ward_check', [ $ward ] ) if $ward;
+
+ my $url = $c->cobrand->short_name( $c->stash->{body} );
+ $url .= '/' . $c->cobrand->short_name( $c->stash->{ward} ) if $c->stash->{ward};
+ $c->stash->{qs} = "/$url";
+
+ if ($c->stash->{ward}) {
# Problems sent to a council, restricted to a ward
$c->stash->{type} = 'ward_problems';
- $c->stash->{title_params} = { COUNCIL => $c->stash->{council}{name}, WARD => $c->stash->{ward}{name} };
- $c->stash->{db_params} = [ $c->stash->{council}->{id}, $c->stash->{ward}->{id} ];
+ $c->stash->{title_params} = { COUNCIL => $c->stash->{body}->name, WARD => $c->stash->{ward}{name} };
+ $c->stash->{db_params} = [ $c->stash->{body}->id, $c->stash->{ward}->{id} ];
} else {
# Problems sent to a council
$c->stash->{type} = 'council_problems';
- $c->stash->{title_params} = { COUNCIL => $c->stash->{council}{name} };
- $c->stash->{db_params} = [ $c->stash->{council}->{id}, $c->stash->{council}->{id} ];
+ $c->stash->{title_params} = { COUNCIL => $c->stash->{body}->name };
+ # XXX This looks up in both bodies_str and areas, but is only using body ID.
+ # This will not work properly in any install where body IDs are not === area IDs.
+ $c->stash->{db_params} = [ $c->stash->{body}->id, $c->stash->{body}->id ];
}
# Send on to the RSS generation
@@ -205,60 +254,56 @@ sub rss_ward : Regex('^rss/(reports|area)$') : Args(2) {
=head2 body_check
-This action checks the council or external_body name (or code) given in a URI
-exists, is valid and so on. If it is, it stores the area or body in the stash,
-otherwise it redirects to the all reports page.
+This action checks the body name (or code) given in a URI exists, is valid and
+so on. If it is, it stores the body in the stash, otherwise it redirects to the
+all reports page.
=cut
sub body_check : Private {
- my ( $self, $c, $q_council ) = @_;
+ my ( $self, $c, $q_body ) = @_;
- $q_council =~ s/\+/ /g;
- $q_council =~ s/\.html//;
+ $q_body =~ s/\+/ /g;
+ $q_body =~ s/\.html//;
# Check cobrand specific incantations - e.g. ONS codes for UK,
# Oslo/ kommunes sharing a name in Norway
- return if $c->cobrand->reports_body_check( $c, $q_council );
+ return if $c->cobrand->reports_body_check( $c, $q_body );
# If we're passed an ID number (don't think this is used anywhere, it
# certainly shouldn't be), just look that up on MaPit and redirect
- if ($q_council =~ /^\d+$/) {
- my $council = mySociety::MaPit::call('area', $q_council);
- $c->detach( 'redirect_index') if $council->{error};
- $c->stash->{council} = $council;
- $c->detach( 'redirect_area' );
+ if ($q_body =~ /^\d+$/) {
+ my $area = mySociety::MaPit::call('area', $q_body);
+ $c->detach( 'redirect_index') if $area->{error};
+ $c->stash->{body} = $area;
+ $c->detach( 'redirect_body' );
}
if ( $c->cobrand->reports_by_body ) {
- my $problem = $c->cobrand->problems->search({ 'lower(me.external_body)' => lc $q_council }, { columns => [ 'external_body' ], rows => 1 })->single;
+ my $problem = $c->cobrand->problems->search({ 'lower(me.external_body)' => lc $q_body }, { columns => [ 'external_body' ], rows => 1 })->single;
if ( $problem ) {
- # If external_body, put as a council with ID 0 for the moment.
- $c->stash->{council} = { id => 0, name => $problem->external_body };
+ # If external_body, put as a body with ID 0 for the moment.
+ $c->stash->{body} = $c->model('DB::Body')->new( { id => 0, name => $problem->external_body } );
return;
}
}
# We must now have a string to check
- my $area_types = $c->cobrand->area_types;
- my $areas = mySociety::MaPit::call( 'areas', $q_council,
- type => $area_types,
- min_generation => $c->cobrand->area_min_generation
- );
+ my @bodies = $c->model('DB::Body')->search( { name => { -like => "$q_body%" } } )->all;
- if (keys %$areas == 1) {
- ($c->stash->{council}) = values %$areas;
+ if (@bodies == 1) {
+ $c->stash->{body} = $bodies[0];
return;
} else {
- foreach (keys %$areas) {
- if (lc($areas->{$_}->{name}) eq lc($q_council) || $areas->{$_}->{name} =~ /^\Q$q_council\E (Borough|City|District|County) Council$/i) {
- $c->stash->{council} = $areas->{$_};
+ foreach (@bodies) {
+ if (lc($_->name) eq lc($q_body) || $_->name =~ /^\Q$q_body\E (Borough|City|District|County) Council$/i) {
+ $c->stash->{body} = $_;
return;
}
}
}
- # No result, bad council name.
+ # No result, bad body name.
$c->detach( 'redirect_index' );
}
@@ -266,7 +311,7 @@ sub body_check : Private {
This action checks the ward name from a URI exists and is part of the right
parent, already found with body_check. It either stores the ward Area if
-okay, or redirects to the council page if bad.
+okay, or redirects to the body page if bad.
=cut
@@ -277,48 +322,41 @@ sub ward_check : Private {
$ward =~ s/\.html//;
$ward =~ s{_}{/}g;
- my $council = $c->stash->{council};
+ # Could be from RSS area, or body...
+ my $parent_id;
+ if ( $c->stash->{body} ) {
+ $parent_id = $c->stash->{body}->body_areas->first->area_id;
+ } else {
+ $parent_id = $c->stash->{area}->{id};
+ }
my $qw = mySociety::MaPit::call('areas', $ward,
type => $c->cobrand->area_types_children,
- min_generation => $c->cobrand->area_min_generation
);
foreach my $area (sort { $a->{name} cmp $b->{name} } values %$qw) {
- if ($area->{parent_area} == $council->{id}) {
+ if ($area->{parent_area} == $parent_id) {
$c->stash->{ward} = $area;
return;
}
}
# Given a false ward name
- $c->detach( 'redirect_area' );
-}
-
-sub load_parent : Private {
- my ( $self, $c ) = @_;
-
- my $council = $c->stash->{council};
- my $areas_info;
- if ($council->{parent_area}) {
- $c->stash->{areas_info} = mySociety::MaPit::call('areas', [ $council->{id}, $council->{parent_area} ])
- } else {
- $c->stash->{areas_info} = { $council->{id} => $council };
- }
+ $c->detach( 'redirect_body' );
}
=head2 check_canonical_url
-Given an already found (case-insensitively) council, check what URL
+Given an already found (case-insensitively) body, check what URL
we are at and redirect accordingly if different.
=cut
sub check_canonical_url : Private {
- my ( $self, $c, $q_council ) = @_;
+ my ( $self, $c, $q_body ) = @_;
- my $council_short = $c->cobrand->short_name( $c->stash->{council}, $c->stash->{areas_info} );
- my $url_short = URI::Escape::uri_escape_utf8($q_council);
+ my $body_short = $c->cobrand->short_name( $c->stash->{body} );
+ my $url_short = URI::Escape::uri_escape_utf8($q_body);
$url_short =~ s/%2B/+/g;
- $c->detach( 'redirect_area' ) unless $council_short eq $url_short;
+ $c->detach( 'redirect_body' ) unless $body_short eq $url_short;
}
sub load_and_group_problems : Private {
@@ -332,69 +370,57 @@ sub load_and_group_problems : Private {
};
if ($c->stash->{ward}) {
$where->{areas} = { 'like', '%,' . $c->stash->{ward}->{id} . ',%' };
- $where->{council} = [
+ $where->{bodies_str} = [
undef,
- $c->stash->{council}->{id},
- { 'like', $c->stash->{council}->{id} . ',%' },
- { 'like', '%,' . $c->stash->{council}->{id} },
+ $c->stash->{body}->id,
+ { 'like', $c->stash->{body}->id . ',%' },
+ { 'like', '%,' . $c->stash->{body}->id },
];
- } elsif ($c->stash->{council} && $c->stash->{council}->{id} == 0) {
+ } elsif ($c->stash->{body} && $c->stash->{body}->id == 0) {
# A proxy for an external_body
- $where->{'lower(external_body)'} = lc $c->stash->{council}->{name};
- } elsif ($c->stash->{council}) {
- $where->{areas} = { 'like', '%,' . $c->stash->{council}->{id} . ',%' };
- $where->{council} = [
- undef,
- $c->stash->{council}->{id},
- { 'like', $c->stash->{council}->{id} . ',%' },
- { 'like', '%,' . $c->stash->{council}->{id} },
+ $where->{'lower(external_body)'} = lc $c->stash->{body}->name;
+ } elsif ($c->stash->{body}) {
+ # XXX FixMyStreet used to have the following line so that reports not
+ # currently sent anywhere could still be listed in the appropriate
+ # (body/area), as they were the same. Now they're not, not sure if
+ # there's a way to do this easily.
+ #$where->{areas} = { 'like', '%,' . $c->stash->{body}->id . ',%' };
+ $where->{bodies_str} = [
+ # undef,
+ $c->stash->{body}->id,
+ { 'like', $c->stash->{body}->id . ',%' },
+ { 'like', '%,' . $c->stash->{body}->id },
];
}
my $problems = $c->cobrand->problems->search(
$where,
{
- columns => [
- 'id', 'council', 'state', 'areas', 'latitude', 'longitude', 'title', 'cobrand',
- #{ duration => { extract => "epoch from current_timestamp-lastupdate" } },
- #{ age => { extract => "epoch from current_timestamp-confirmed" } },
- { confirmed => { extract => 'epoch from confirmed' } },
- { whensent => { extract => 'epoch from whensent' } },
- { lastupdate => { extract => 'epoch from lastupdate' } },
- { photo => 'photo is not null' },
- ],
order_by => { -desc => 'lastupdate' },
rows => $c->cobrand->reports_per_page,
}
)->page( $page );
$c->stash->{pager} = $problems->pager;
- $problems = $problems->cursor; # Raw DB cursor for speed
my ( %problems, @pins );
- my $re_councils = join('|', keys %{$c->stash->{areas_info}});
- my @cols = ( 'id', 'council', 'state', 'areas', 'latitude', 'longitude', 'title', 'cobrand', 'confirmed', 'whensent', 'lastupdate', 'photo' );
- while ( my @problem = $problems->next ) {
- my %problem = zip @cols, @problem;
- $problem{is_fixed} = FixMyStreet::DB::Result::Problem->fixed_states()->{$problem{state}};
- $c->log->debug( $problem{'cobrand'} . ', cobrand is ' . $c->cobrand->moniker );
- if ( !$c->stash->{council}->{id} ) {
+ while ( my $problem = $problems->next ) {
+ $c->log->debug( $problem->cobrand . ', cobrand is ' . $c->cobrand->moniker );
+ if ( !$c->stash->{body} || !$c->stash->{body}->id ) {
# An external_body entry
- add_row( \%problem, 0, \%problems, \@pins );
+ add_row( $c, $problem, 0, \%problems, \@pins );
next;
}
- if ( !$problem{council} ) {
- # Problem was not sent to any council, add to possible councils
- $problem{councils} = 0;
- while ($problem{areas} =~ /,($re_councils)(?=,)/g) {
- add_row( \%problem, $1, \%problems, \@pins );
+ if ( !$problem->bodies_str ) {
+ # Problem was not sent to any body, add to all possible areas XXX
+ while ($problem->areas =~ /,(\d+)(?=,)/g) {
+ add_row( $c, $problem, $1, \%problems, \@pins );
}
} else {
- # Add to councils it was sent to
- (my $council = $problem{council}) =~ s/\|.*$//;
- my @council = split( /,/, $council );
- $problem{councils} = scalar @council;
- foreach ( @council ) {
- next if $_ != $c->stash->{council}->{id};
- add_row( \%problem, $_, \%problems, \@pins );
+ # Add to bodies it was sent to
+ # XXX Assumes body ID matches "council ID"
+ my $bodies = $problem->bodies_str_ids;
+ foreach ( @$bodies ) {
+ next if $_ != $c->stash->{body}->id;
+ add_row( $c, $problem, $_, \%problems, \@pins );
}
}
}
@@ -413,26 +439,26 @@ sub redirect_index : Private {
$c->res->redirect( $c->uri_for($url) );
}
-sub redirect_area : Private {
+sub redirect_body : Private {
my ( $self, $c ) = @_;
my $url = '';
$url .= "/rss" if $c->stash->{rss};
$url .= '/reports';
- $url .= '/' . $c->cobrand->short_name( $c->stash->{council}, $c->stash->{areas_info} );
+ $url .= '/' . $c->cobrand->short_name( $c->stash->{body} );
$url .= '/' . $c->cobrand->short_name( $c->stash->{ward} )
if $c->stash->{ward};
$c->res->redirect( $c->uri_for($url) );
}
sub add_row {
- my ( $problem, $council, $problems, $pins ) = @_;
- push @{$problems->{$council}}, $problem;
+ my ( $c, $problem, $body, $problems, $pins ) = @_;
+ push @{$problems->{$body}}, $problem;
push @$pins, {
- latitude => $problem->{latitude},
- longitude => $problem->{longitude},
- colour => 'yellow', # FixMyStreet::DB::Result::Problem->fixed_states()->{$problem->{state}} ? 'green' : 'red',
- id => $problem->{id},
- title => $problem->{title},
+ latitude => $problem->latitude,
+ longitude => $problem->longitude,
+ colour => $c->cobrand->pin_colour( $problem, 'reports' ),
+ id => $problem->id,
+ title => $problem->title_safe,
};
}
diff --git a/perllib/FixMyStreet/App/Controller/Rss.pm b/perllib/FixMyStreet/App/Controller/Rss.pm
index baaa3b927..90ab7ad41 100755
--- a/perllib/FixMyStreet/App/Controller/Rss.pm
+++ b/perllib/FixMyStreet/App/Controller/Rss.pm
@@ -241,6 +241,15 @@ sub add_row : Private {
$row->{name} = 'anonymous' if $row->{anonymous} || !$row->{name};
my $pubDate;
+ if ($row->{created}) {
+ $row->{created} =~ /^(\d\d\d\d)-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d)/;
+ $pubDate = mySociety::Locale::in_gb_locale {
+ strftime("%a, %d %b %Y %H:%M:%S %z", $6, $5, $4, $3, $2-1, $1-1900, -1, -1, 0)
+ };
+ $row->{created} = strftime("%e %B", $6, $5, $4, $3, $2-1, $1-1900, -1, -1, 0);
+ $row->{created} =~ s/^\s+//;
+ $row->{created} =~ s/^(\d+)/ordinal($1)/e if $c->stash->{lang_code} eq 'en-gb';
+ }
if ($row->{confirmed}) {
$row->{confirmed} =~ /^(\d\d\d\d)-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d)/;
$pubDate = mySociety::Locale::in_gb_locale {
@@ -257,7 +266,7 @@ sub add_row : Private {
my $hashref_restriction = $c->cobrand->site_restriction;
my $base_url = $c->cobrand->base_url;
- if ( $hashref_restriction && $hashref_restriction->{council} && $row->{council} && $row->{council} ne $hashref_restriction->{council} ) {
+ if ( $hashref_restriction && $hashref_restriction->{bodies_str} && $row->{bodies_str} && $row->{bodies_str} ne $hashref_restriction->{bodies_str} ) {
$base_url = $c->config->{BASE_URL};
}
my $url = $base_url . $link;
diff --git a/perllib/FixMyStreet/App/Controller/Tokens.pm b/perllib/FixMyStreet/App/Controller/Tokens.pm
index 03dc69b00..740822876 100644
--- a/perllib/FixMyStreet/App/Controller/Tokens.pm
+++ b/perllib/FixMyStreet/App/Controller/Tokens.pm
@@ -53,6 +53,28 @@ sub confirm_problem : Path('/P') {
return;
}
+ # For Zurich, email confirmation simply sets a flag, it does not change the
+ # problem state, log in, or anything else
+ if ($c->cobrand->moniker eq 'zurich') {
+ my $extra = { %{ $problem->extra || {} } };
+ $extra->{email_confirmed} = 1;
+ $problem->update( {
+ extra => $extra,
+ confirmed => \'ms_current_timestamp()',
+ } );
+
+ $c->stash->{report} = $c->stash->{problem};
+ $c->forward( '/report/new/create_reporter_alert' );
+
+ 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->update;
+ }
+
+ return 1;
+ }
+
# We have a problem - confirm it if needed!
my $old_state = $problem->state;
$problem->update(
diff --git a/perllib/FixMyStreet/App/View/Web.pm b/perllib/FixMyStreet/App/View/Web.pm
index 42878be37..febeaf3c1 100644
--- a/perllib/FixMyStreet/App/View/Web.pm
+++ b/perllib/FixMyStreet/App/View/Web.pm
@@ -18,7 +18,7 @@ __PACKAGE__->config(
ENCODING => 'utf8',
render_die => 1,
expose_methods => [
- 'loc', 'nget', 'tprintf', 'display_crosssell_advert', 'prettify_epoch',
+ 'loc', 'nget', 'tprintf', 'display_crosssell_advert', 'prettify_dt',
'add_links', 'version',
],
FILTERS => {
@@ -92,20 +92,20 @@ sub display_crosssell_advert {
return CrossSell::display_advert( $c, $email, $name, %data );
}
-=head2 Utils::prettify_epoch
+=head2 Utils::prettify_dt
- [% pretty = prettify_epoch( $epoch, $short_bool ) %]
+ [% pretty = prettify_dt( $dt, $short_bool ) %]
-Return a pretty version of the epoch.
+Return a pretty version of the DateTime object.
$short_bool = 1; # 16:02, 29 Mar 2011
$short_bool = 0; # 16:02, Tuesday 29 March 2011
=cut
-sub prettify_epoch {
+sub prettify_dt {
my ( $self, $c, $epoch, $short_bool ) = @_;
- return Utils::prettify_epoch( $epoch, $short_bool );
+ return Utils::prettify_dt( $epoch, $short_bool );
}
=head2 add_links
diff --git a/perllib/FixMyStreet/Cobrand/Default.pm b/perllib/FixMyStreet/Cobrand/Default.pm
index 11851c5a1..963c8a6ad 100644
--- a/perllib/FixMyStreet/Cobrand/Default.pm
+++ b/perllib/FixMyStreet/Cobrand/Default.pm
@@ -476,14 +476,14 @@ sub format_postcode {
return $postcode;
}
-=head2 council_check
+=head2 area_check
-Paramters are COUNCILS, QUERY, CONTEXT. Return a boolean indicating whether
-COUNCILS pass any extra checks. CONTEXT is where we are on the site.
+Paramters are AREAS, QUERY, CONTEXT. Return a boolean indicating whether
+AREAS pass any extra checks. CONTEXT is where we are on the site.
=cut
-sub council_check { return ( 1, '' ); }
+sub area_check { return ( 1, '' ); }
=head2 all_councils_report
@@ -526,7 +526,7 @@ Show the problem creation graph in the admin interface
sub admin_show_creation_graph { 1 }
-=head2 area_types, area_min_generation
+=head2 area_types
The MaPit types this site handles
@@ -534,7 +534,6 @@ The MaPit types this site handles
sub area_types { FixMyStreet->config('MAPIT_TYPES') || [ 'ZZZ' ] }
sub area_types_children { FixMyStreet->config('MAPIT_TYPES_CHILDREN') || [] }
-sub area_min_generation { '' }
=head2 contact_name, contact_email
@@ -556,39 +555,28 @@ sub email_host {
return 1;
}
-=item remove_redundant_councils
+=item remove_redundant_areas
-Remove councils whose reports go to another council
+Remove areas whose reports go to another area (XXX)
=cut
-sub remove_redundant_councils {
+sub remove_redundant_areas {
my $self = shift;
- my $all_councils = shift;
-}
-
-=item filter_all_council_ids_list
-
-Removes any council IDs that we don't need from an array and returns the
-filtered array
-
-=cut
-
-sub filter_all_council_ids_list {
- my $self = shift;
- return @_;
+ my $all_areas = shift;
}
=item short_name
-Remove extra information from council names for tidy URIs
+Remove extra information from body names for tidy URIs
=cut
sub short_name {
my $self = shift;
- my ($area, $info) = @_;
- my $name = $area->{name};
+ my ($area) = @_;
+
+ my $name = $area->{name} || $area->name;
$name = URI::Escape::uri_escape_utf8($name);
$name =~ s/%20/+/g;
return $name;
@@ -615,10 +603,10 @@ Generate a set of options for council rss alerts.
=cut
sub council_rss_alert_options {
- my ( $self, $all_councils, $c ) = @_;
+ my ( $self, $all_areas, $c ) = @_;
my ( @options, @reported_to_options );
- foreach (values %$all_councils) {
+ foreach (values %$all_areas) {
$_->{short_name} = $self->short_name( $_ );
( $_->{id_name} = $_->{short_name} ) =~ tr/+/_/;
push @options, {
@@ -662,31 +650,26 @@ Get stats to display on the council reports page
sub get_report_stats { return 0; }
-sub get_council_sender {
- my ( $self, $area_id, $area_info, $category ) = @_;
+sub get_body_sender {
+ my ( $self, $body, $category ) = @_;
- my $send_method;
-
- my $council_config = FixMyStreet::App->model("DB::Open311conf")->search( { area_id => $area_id } )->first;
- $send_method = $council_config->send_method if $council_config;
-
- if ( $council_config && $council_config->can_be_devolved ) {
+ if ( $body->can_be_devolved ) {
# look up via category
- my $config = FixMyStreet::App->model("DB::Contact")->search( { area_id => $area_id, category => $category } )->first;
+ my $config = FixMyStreet::App->model("DB::Contact")->search( { body_id => $body->id, category => $category } )->first;
if ( $config->send_method ) {
return { method => $config->send_method, config => $config };
} else {
- return { method => $send_method, config => $council_config };
+ return { method => $body->send_method, config => $body };
}
- } elsif ( $send_method ) {
- return { method => $send_method, config => $council_config };
+ } elsif ( $body->send_method ) {
+ return { method => $body->send_method, config => $body };
}
- return $self->_fallback_council_sender( $area_id, $area_info, $category );
+ return $self->_fallback_body_sender( $body, $category );
}
-sub _fallback_council_sender {
- my ( $self, $area_id, $area_info, $category ) = @_;
+sub _fallback_body_sender {
+ my ( $self, $body, $category ) = @_;
return { method => 'Email' };
};
@@ -699,7 +682,7 @@ sub example_places {
=head2 only_authed_can_create
-If true, only users with the from_council flag set are able to create reports.
+If true, only users with the from_body flag set are able to create reports.
=cut
@@ -810,5 +793,16 @@ a name key
sub anonymous_account { undef; }
+=head2 show_unconfirmed_reports
+
+Whether reports in state 'unconfirmed' should still be shown on the public site.
+(They're always included in the admin interface.)
+
+=cut
+
+sub show_unconfirmed_reports {
+ 0;
+}
+
1;
diff --git a/perllib/FixMyStreet/Cobrand/FiksGataMi.pm b/perllib/FixMyStreet/Cobrand/FiksGataMi.pm
index 6bec115dd..5e90db038 100644
--- a/perllib/FixMyStreet/Cobrand/FiksGataMi.pm
+++ b/perllib/FixMyStreet/Cobrand/FiksGataMi.pm
@@ -100,33 +100,26 @@ sub guess_road_operator {
return '';
}
-sub remove_redundant_councils {
+sub remove_redundant_areas {
my $self = shift;
- my $all_councils = shift;
+ my $all_areas = shift;
# Oslo is both a kommune and a fylke, we only want to show it once
- delete $all_councils->{301} #
- if $all_councils->{3};
-}
-
-sub filter_all_council_ids_list {
- my $self = shift;
- my @all_councils_ids = @_;
-
- # as above we only want to show Oslo once
- return grep { $_ != 301 } @all_councils_ids;
+ delete $all_areas->{301}
+ if $all_areas->{3};
}
sub short_name {
my $self = shift;
my ($area, $info) = @_;
- if ($area->{name} =~ /^(Os|Nes|V\xe5ler|Sande|B\xf8|Her\xf8y)$/) {
+ my $name = $area->{name} || $area->name;
+
+ if ($name =~ /^(Os|Nes|V\xe5ler|Sande|B\xf8|Her\xf8y)$/) {
my $parent = $info->{$area->{parent_area}}->{name};
- return URI::Escape::uri_escape_utf8("$area->{name}, $parent");
+ return URI::Escape::uri_escape_utf8("$name, $parent");
}
- my $name = $area->{name};
$name =~ s/ & / and /;
$name = URI::Escape::uri_escape_utf8($name);
$name =~ s/%20/+/g;
diff --git a/perllib/FixMyStreet/Cobrand/LichfieldDC.pm b/perllib/FixMyStreet/Cobrand/LichfieldDC.pm
index 31d5bf987..6a534fc18 100644
--- a/perllib/FixMyStreet/Cobrand/LichfieldDC.pm
+++ b/perllib/FixMyStreet/Cobrand/LichfieldDC.pm
@@ -13,7 +13,7 @@ sub is_two_tier { return 1; }
# Different to councils parent due to this being a two-tier council. If we get
# more, this can be genericised in the parent.
sub problems_clause {
- return { council => { like => '%2434%' } };
+ return { bodies_str => { like => '%2434%' } };
}
# FIXME - need to double check this is all correct
diff --git a/perllib/FixMyStreet/Cobrand/Oxfordshire.pm b/perllib/FixMyStreet/Cobrand/Oxfordshire.pm
index 9aa054020..62550e626 100644
--- a/perllib/FixMyStreet/Cobrand/Oxfordshire.pm
+++ b/perllib/FixMyStreet/Cobrand/Oxfordshire.pm
@@ -18,7 +18,7 @@ sub base_url {
# Different to councils parent due to this being a two-tier council. If we get
# more, this can be genericised in the parent.
sub problems_clause {
- return { council => { like => '%2237%' } };
+ return { bodies_str => { like => '%2237%' } };
}
sub path_to_web_templates {
diff --git a/perllib/FixMyStreet/Cobrand/SeeSomething.pm b/perllib/FixMyStreet/Cobrand/SeeSomething.pm
index dc28156dc..88d5f6b78 100644
--- a/perllib/FixMyStreet/Cobrand/SeeSomething.pm
+++ b/perllib/FixMyStreet/Cobrand/SeeSomething.pm
@@ -14,12 +14,12 @@ sub site_title { return 'See Something, Say Something'; }
sub site_restriction {
my $self = shift;
- return { council => { IN => $self->council_id } };
+ return { bodies_str => { IN => $self->council_id } };
}
sub problems_clause {
my $self = shift;
- return { council => { IN => $self->council_id } };
+ return { bodies_str => { IN => $self->council_id } };
}
sub path_to_web_templates {
@@ -30,10 +30,10 @@ sub path_to_web_templates {
];
}
-sub council_check {
+sub area_check {
my ( $self, $params, $context ) = @_;
- my $councils = $params->{all_councils};
+ my $councils = $params->{all_areas};
my $council_match = grep { $councils->{$_} } @{ $self->council_id };
if ($council_match) {
diff --git a/perllib/FixMyStreet/Cobrand/UK.pm b/perllib/FixMyStreet/Cobrand/UK.pm
index 4eee1869e..ff613ffa8 100644
--- a/perllib/FixMyStreet/Cobrand/UK.pm
+++ b/perllib/FixMyStreet/Cobrand/UK.pm
@@ -1,6 +1,7 @@
package FixMyStreet::Cobrand::UK;
use base 'FixMyStreet::Cobrand::Default';
+use mySociety::MaPit;
use mySociety::VotingArea;
sub path_to_web_templates {
@@ -11,7 +12,6 @@ sub path_to_web_templates {
sub country { return 'GB'; }
sub area_types { [ 'DIS', 'LBO', 'MTD', 'UTA', 'CTY', 'COI', 'LGD' ] }
sub area_types_children { $mySociety::VotingArea::council_child_types }
-sub area_min_generation { 10 }
sub enter_postcode_text {
my ( $self ) = @_;
@@ -31,8 +31,11 @@ sub disambiguate_location {
};
}
-sub _fallback_council_sender {
- my ( $self, $area_id, $area_info, $category ) = @_;
+sub _fallback_body_sender {
+ my ( $self, $body, $category ) = @_;
+
+ my $first_area = $body->body_areas->first->area_id;
+ my $area_info = mySociety::MaPit::call('area', $first_area);
return { method => 'London' } if $area_info->{type} eq 'LBO';
return { method => 'NI' } if $area_info->{type} eq 'LGD';
return { method => 'Email' };
@@ -41,11 +44,12 @@ sub _fallback_council_sender {
sub process_extras {
my $self = shift;
my $ctx = shift;
- my $area_id = shift;
+ my $body_id = shift;
my $extra = shift;
my $fields = shift || [];
- if ( $area_id eq '2482' ) {
+ # XXX Hardcoded body ID matching mapit area ID
+ if ( $body_id eq '2482' ) {
my @fields = ( 'fms_extra_title', @$fields );
for my $field ( @fields ) {
my $value = $ctx->request->param( $field );
@@ -97,46 +101,38 @@ sub geocode_postcode {
return {};
}
-sub remove_redundant_councils {
+sub remove_redundant_areas {
my $self = shift;
- my $all_councils = shift;
+ my $all_areas = shift;
# Ipswich & St Edmundsbury are responsible for everything in their
# areas, not Suffolk
- delete $all_councils->{2241}
- if $all_councils->{2446} #
- || $all_councils->{2443};
+ delete $all_areas->{2241}
+ if $all_areas->{2446} #
+ || $all_areas->{2443};
# Norwich is responsible for everything in its areas, not Norfolk
- delete $all_councils->{2233} #
- if $all_councils->{2391};
+ delete $all_areas->{2233} #
+ if $all_areas->{2391};
}
-sub filter_all_council_ids_list {
+sub short_name {
my $self = shift;
- my @all_councils_ids = @_;
+ my ($area) = @_;
- # Ignore the four council areas introduced because of generation 15
- # (where we put the new boundaries under the old IDs)
- return grep { $_ < 141648 || $_ > 141651 } @all_councils_ids;
-}
+ my $name = $area->{name} || $area->name;
-sub short_name {
- my $self = shift;
- my ($area, $info) = @_;
- # Special case Durham as it's the only place with two councils of the same name
- return 'Durham+County' if $area->{name} eq 'Durham County Council';
- return 'Durham+City' if $area->{name} eq 'Durham City Council';
-
- my $name = $area->{name};
- $name =~ s/ (Borough|City|District|County) Council$//;
- $name =~ s/ Council$//;
- $name =~ s/ & / and /;
- $name =~ s{/}{_}g;
- $name = URI::Escape::uri_escape_utf8($name);
- $name =~ s/%20/+/g;
- return $name;
+ # Special case Durham as it's the only place with two councils of the same name
+ return 'Durham+County' if $name eq 'Durham County Council';
+ return 'Durham+City' if $name eq 'Durham City Council';
+ $name =~ s/ (Borough|City|District|County) Council$//;
+ $name =~ s/ Council$//;
+ $name =~ s/ & / and /;
+ $name =~ s{/}{_}g;
+ $name = URI::Escape::uri_escape_utf8($name);
+ $name =~ s/%20/+/g;
+ return $name;
}
sub find_closest {
@@ -174,11 +170,11 @@ sub reports_body_check {
if (length($code) == 6) {
my $council = mySociety::MaPit::call( 'area', $area->{parent_area} );
$c->stash->{ward} = $area;
- $c->stash->{council} = $council;
+ $c->stash->{body} = $council;
} else {
- $c->stash->{council} = $area;
+ $c->stash->{body} = $area;
}
- $c->detach( 'redirect_area' );
+ $c->detach( 'redirect_body' );
}
# New ONS codes
@@ -188,11 +184,11 @@ sub reports_body_check {
if ($code =~ /^(E05|W05|S13)/) {
my $council = mySociety::MaPit::call( 'area', $area->{parent_area} );
$c->stash->{ward} = $area;
- $c->stash->{council} = $council;
- $c->detach( 'redirect_area' );
+ $c->stash->{body} = $council;
+ $c->detach( 'redirect_body' );
} elsif ($code =~ /^(W06|S12|E0[6-9]|E10)/) {
- $c->stash->{council} = $area;
- $c->detach( 'redirect_area' );
+ $c->stash->{body} = $area;
+ $c->detach( 'redirect_body' );
}
}
@@ -200,17 +196,17 @@ sub reports_body_check {
sub council_rss_alert_options {
my $self = shift;
- my $all_councils = shift;
- my $c = shift;
+ my $all_areas = shift;
+ my $c = shift;
my %councils = map { $_ => 1 } @{$self->area_types};
- my $num_councils = scalar keys %$all_councils;
+ my $num_councils = scalar keys %$all_areas;
my ( @options, @reported_to_options );
if ( $num_councils == 1 or $num_councils == 2 ) {
my ($council, $ward);
- foreach (values %$all_councils) {
+ foreach (values %$all_areas) {
if ($councils{$_->{type}}) {
$council = $_;
$council->{short_name} = $self->short_name( $council );
@@ -249,7 +245,7 @@ sub council_rss_alert_options {
} elsif ( $num_councils == 4 ) {
# Two-tier council
my ($county, $district, $c_ward, $d_ward);
- foreach (values %$all_councils) {
+ foreach (values %$all_areas) {
$_->{short_name} = $self->short_name( $_ );
( $_->{id_name} = $_->{short_name} ) =~ tr/+/_/;
if ($_->{type} eq 'CTY') {
@@ -320,7 +316,7 @@ sub council_rss_alert_options {
};
} else {
- throw Error::Simple('An area with three tiers of council? Impossible! '. join('|',keys %$all_councils));
+ throw Error::Simple('An area with three tiers of council? Impossible! '. join('|',keys %$all_areas));
}
return ( \@options, @reported_to_options ? \@reported_to_options : undef );
diff --git a/perllib/FixMyStreet/Cobrand/UKCouncils.pm b/perllib/FixMyStreet/Cobrand/UKCouncils.pm
index 4c80da4f3..354b1b72a 100644
--- a/perllib/FixMyStreet/Cobrand/UKCouncils.pm
+++ b/perllib/FixMyStreet/Cobrand/UKCouncils.pm
@@ -13,7 +13,7 @@ sub is_council {
sub site_restriction {
my $self = shift;
- return { council => sprintf('%d', $self->council_id) };
+ return { bodies_str => sprintf('%d', $self->council_id) };
}
sub site_key {
my $self = shift;
@@ -27,7 +27,7 @@ sub restriction {
# Different function to site_restriction due to two-tier use
sub problems_clause {
my $self = shift;
- return { council => sprintf('%d', $self->council_id) };
+ return { bodies_str => sprintf('%d', $self->council_id) };
}
sub problems {
@@ -51,10 +51,10 @@ sub enter_postcode_text {
return 'Enter a ' . $self->council_area . ' postcode, or street name and area';
}
-sub council_check {
+sub area_check {
my ( $self, $params, $context ) = @_;
- my $councils = $params->{all_councils};
+ my $councils = $params->{all_areas};
my $council_match = defined $councils->{$self->council_id};
if ($council_match) {
return 1;
@@ -86,11 +86,13 @@ sub recent_photos {
return $self->problems->recent_photos( $num, $lat, $lon, $dist );
}
+# If we ever link to a county problem report, needs to be to main FixMyStreet
sub base_url_for_report {
my ( $self, $report ) = @_;
if ( $self->is_two_tier ) {
- my %councils = map { $_ => 1 } @{$report->councils};
- if ( $councils{$self->council_id} ) {
+ my $bodies = $report->bodies;
+ my %areas = map { %{$_->areas} } values %$bodies;
+ if ( $areas{$self->council_id} ) {
return $self->base_url;
} else {
return FixMyStreet->config('BASE_URL');
diff --git a/perllib/FixMyStreet/Cobrand/Zurich.pm b/perllib/FixMyStreet/Cobrand/Zurich.pm
index e5d646c8b..ec65ec8f0 100644
--- a/perllib/FixMyStreet/Cobrand/Zurich.pm
+++ b/perllib/FixMyStreet/Cobrand/Zurich.pm
@@ -1,9 +1,29 @@
package FixMyStreet::Cobrand::Zurich;
use base 'FixMyStreet::Cobrand::Default';
+use DateTime;
+use POSIX qw(strcoll);
+
use strict;
use warnings;
+sub shorten_recency_if_new_greater_than_fixed {
+ return 0;
+}
+
+sub pin_colour {
+ my ( $self, $p, $context ) = @_;
+ return 'green' if $p->is_fixed || $p->is_closed;
+ return 'red' if $p->state eq 'unconfirmed' || $p->state eq 'confirmed';
+ return 'yellow';
+}
+
+# This isn't used
+sub find_closest {
+ my ( $self, $latitude, $longitude, $problem ) = @_;
+ return '';
+}
+
sub enter_postcode_text {
my ( $self ) = @_;
return _('Enter a Z&uuml;rich street name');
@@ -13,4 +33,428 @@ sub example_places {
return [ 'Langstrasse', 'Basteiplatz' ];
}
+sub languages { [ 'de-ch,Deutsch,de_CH', 'en-gb,English,en_GB' ] };
+
+# If lat/lon are in the URI, we must have zoom as well, otherwise OpenLayers defaults to 0.
+sub uri {
+ my ( $self, $uri ) = @_;
+
+ $uri->query_param( zoom => 7 )
+ if $uri->query_param('lat') && !$uri->query_param('zoom');
+ return $uri;
+}
+
+sub remove_redundant_areas {
+ my $self = shift;
+ my $all_areas = shift;
+
+ # Remove all except Zurich
+ foreach (keys %$all_areas) {
+ delete $all_areas->{$_} unless $_ eq 274456;
+ }
+}
+
+sub show_unconfirmed_reports {
+ 1;
+}
+
+sub get_body_sender {
+ my ( $self, $body, $category ) = @_;
+ return { method => 'Zurich' };
+}
+
+# Report overdue functions
+
+my %public_holidays = map { $_ => 1 } (
+ '2013-01-01', '2013-01-02', '2013-03-29', '2013-04-01',
+ '2013-04-15', '2013-05-01', '2013-05-09', '2013-05-20',
+ '2013-08-01', '2013-09-09', '2013-12-25', '2013-12-26',
+ '2014-01-01', '2014-01-02', '2014-04-18', '2014-04-21',
+ '2014-04-28', '2014-05-01', '2014-05-29', '2014-06-09',
+ '2014-08-01', '2014-09-15', '2014-12-25', '2014-12-26',
+);
+
+sub is_public_holiday {
+ my $dt = shift;
+ return $public_holidays{$dt->ymd};
+}
+
+sub is_weekend {
+ my $dt = shift;
+ return $dt->dow > 5;
+}
+
+sub add_days {
+ my ( $dt, $days ) = @_;
+ $dt = $dt->clone;
+ while ( $days > 0 ) {
+ $dt->add ( days => 1 );
+ next if is_public_holiday($dt) or is_weekend($dt);
+ $days--;
+ }
+ return $dt;
+}
+
+sub sub_days {
+ my ( $dt, $days ) = @_;
+ $dt = $dt->clone;
+ while ( $days > 0 ) {
+ $dt->subtract ( days => 1 );
+ next if is_public_holiday($dt) or is_weekend($dt);
+ $days--;
+ }
+ return $dt;
+}
+
+sub overdue {
+ my ( $self, $problem ) = @_;
+
+ my $w = $problem->whensent;
+ return 0 unless $w;
+
+ if ( $problem->state eq 'unconfirmed' || $problem->state eq 'confirmed' ) {
+ # One working day
+ $w = add_days( $w, 1 );
+ return $w < DateTime->now();
+ } elsif ( $problem->state eq 'in progress' ) {
+ # Five working days
+ $w = add_days( $w, 5 );
+ return $w < DateTime->now();
+ } else {
+ return 0;
+ }
+}
+
+# Specific administrative displays
+
+sub admin_pages {
+ my $self = shift;
+ my $c = $self->{c};
+
+ my $type = $c->stash->{admin_type};
+ my $pages = {
+ 'summary' => [_('Summary'), 0],
+ 'reports' => [_('Reports'), 2],
+ 'report_edit' => [undef, undef],
+ 'update_edit' => [undef, undef],
+ };
+ return $pages if $type eq 'sdm';
+
+ $pages = { %$pages,
+ 'bodies' => [_('Bodies'), 1],
+ 'body' => [undef, undef],
+ 'body_edit' => [undef, undef],
+ };
+ return $pages if $type eq 'dm';
+
+ $pages = { %$pages,
+ 'users' => [_('Users'), 3],
+ 'user_edit' => [undef, undef],
+ };
+ return $pages if $type eq 'super';
+}
+
+sub admin_type {
+ my $self = shift;
+ my $c = $self->{c};
+ my $body = $c->user->from_body;
+ $c->stash->{body} = $body;
+
+ my $parent = $body->parent;
+ my $children = $body->bodies->count;
+
+ my $type;
+ if (!$parent) {
+ $type = 'super';
+ } elsif ($parent && $children) {
+ $type = 'dm';
+ } elsif ($parent) {
+ $type = 'sdm';
+ }
+
+ $c->stash->{admin_type} = $type;
+ return $type;
+}
+
+sub admin {
+ my $self = shift;
+ my $c = $self->{c};
+ my $type = $c->stash->{admin_type};
+
+ if ($type eq 'dm') {
+ $c->stash->{template} = 'admin/index-dm.html';
+
+ my $body = $c->stash->{body};
+ my @children = map { $_->id } $body->bodies->all;
+ my @all = (@children, $body->id);
+
+ # XXX No multiples or missing bodies
+ $c->stash->{unconfirmed} = $c->cobrand->problems->search({
+ state => [ 'unconfirmed', 'confirmed' ],
+ bodies_str => $c->stash->{body}->id,
+ });
+ $c->stash->{approval} = $c->cobrand->problems->search({
+ state => 'planned',
+ bodies_str => $c->stash->{body}->id,
+ });
+ $c->stash->{other} = $c->cobrand->problems->search({
+ state => { -not_in => [ 'unconfirmed', 'confirmed', 'planned' ] },
+ bodies_str => \@all,
+ });
+ } elsif ($type eq 'sdm') {
+ $c->stash->{template} = 'admin/index-sdm.html';
+
+ my $body = $c->stash->{body};
+
+ # XXX No multiples or missing bodies
+ $c->stash->{reports_new} = $c->cobrand->problems->search( {
+ state => 'in progress',
+ bodies_str => $body->id,
+ } );
+ $c->stash->{reports_unpublished} = $c->cobrand->problems->search( {
+ state => 'planned',
+ bodies_str => $body->parent->id,
+ } );
+ $c->stash->{reports_published} = $c->cobrand->problems->search( {
+ state => 'fixed - council',
+ bodies_str => $body->parent->id,
+ } );
+ }
+}
+
+sub admin_report_edit {
+ my $self = shift;
+ my $c = $self->{c};
+ my $type = $c->stash->{admin_type};
+
+ my $problem = $c->stash->{problem};
+ my $body = $c->stash->{body};
+
+ if ($type ne 'super') {
+ my %allowed_bodies = map { $_->id => 1 } ( $body->bodies->all, $body );
+ $c->detach( '/page_error_404_not_found' )
+ unless $allowed_bodies{$problem->bodies_str};
+ }
+
+ if ($type eq 'super') {
+
+ my @bodies = $c->model('DB::Body')->all();
+ @bodies = sort { strcoll($a->name, $b->name) } @bodies;
+ $c->stash->{bodies} = \@bodies;
+
+ # Can change category to any other
+ my @categories = $c->model('DB::Contact')->not_deleted->all;
+ $c->stash->{categories} = [ map { $_->category } @categories ];
+
+ } elsif ($type eq 'dm') {
+
+ # Can assign to:
+ my @bodies = $c->model('DB::Body')->search( [
+ { 'me.parent' => $body->parent->id }, # Other DMs on the same level
+ { 'me.parent' => $body->id }, # Their subdivisions
+ { 'me.parent' => undef, 'bodies.id' => undef }, # External bodies
+ ], { join => 'bodies', distinct => 1 } );
+ @bodies = sort { strcoll($a->name, $b->name) } @bodies;
+ $c->stash->{bodies} = \@bodies;
+
+ # Can change category to any other
+ my @categories = $c->model('DB::Contact')->not_deleted->all;
+ $c->stash->{categories} = [ map { $_->category } @categories ];
+
+ }
+
+ # Problem updates upon submission
+ if ( ($type eq 'super' || $type eq 'dm') && $c->req->param('submit') ) {
+ $c->forward('check_token');
+
+ # Predefine the hash so it's there for lookups
+ # XXX Note you need to shallow copy each time you set it, due to a bug? in FilterColumn.
+ my $extra = $problem->extra || {};
+ $extra->{internal_notes} = $c->req->param('internal_notes');
+ $extra->{publish_photo} = $c->req->params->{publish_photo} || 0;
+ $extra->{third_personal} = $c->req->params->{third_personal} || 0;
+ # Make sure we have a copy of the original detail field
+ $extra->{original_detail} = $problem->detail unless $extra->{original_detail};
+ $problem->extra( { %$extra } );
+
+ # Workflow things
+ my $redirect = 0;
+ my $new_cat = $c->req->params->{category};
+ if ( $new_cat && $new_cat ne $problem->category ) {
+ my $cat = $c->model('DB::Contact')->search( { category => $c->req->params->{category} } )->first;
+ $problem->category( $new_cat );
+ $problem->external_body( undef );
+ $problem->bodies_str( $cat->body_id );
+ $problem->whensent( undef );
+ $redirect = 1 if $cat->body_id ne $body->id;
+ } elsif ( my $subdiv = $c->req->params->{body_subdivision} ) {
+ $problem->state( 'in progress' );
+ $problem->external_body( undef );
+ $problem->bodies_str( $subdiv );
+ $problem->whensent( undef );
+ $redirect = 1;
+ } elsif ( my $external = $c->req->params->{body_external} ) {
+ $problem->state( 'closed' );
+ $problem->external_body( $external );
+ $problem->whensent( undef );
+ _admin_send_email( $c, 'problem-external.txt', $problem );
+ $redirect = 1;
+ } else {
+ $problem->state( $c->req->params->{state} ) if $c->req->params->{state};
+ if ( $problem->state eq 'hidden' ) {
+ _admin_send_email( $c, 'problem-rejected.txt', $problem );
+ }
+ }
+
+ $problem->title( $c->req->param('title') );
+ $problem->detail( $c->req->param('detail') );
+
+ # Final, public, Update from DM
+ if (my $update = $c->req->param('status_update')) {
+ $extra->{public_response} = $update;
+ $problem->extra( { %$extra } );
+ if ($c->req->params->{publish_response}) {
+ $problem->state( 'fixed - council' );
+ _admin_send_email( $c, 'problem-closed.txt', $problem );
+ }
+ }
+
+ $problem->lastupdate( \'ms_current_timestamp()' );
+ $problem->update;
+
+ $c->stash->{status_message} =
+ '<p><em>' . _('Updated!') . '</em></p>';
+
+ # do this here otherwise lastupdate and confirmed times
+ # do not display correctly
+ $problem->discard_changes;
+
+ if ( $redirect ) {
+ $c->detach('index');
+ }
+
+ $c->stash->{updates} = [ $c->model('DB::Comment')
+ ->search( { problem_id => $problem->id }, { order_by => 'created' } )
+ ->all ];
+
+ return 1;
+ }
+
+ if ($type eq 'sdm') {
+
+ # Has cut-down edit template for adding update and sending back up only
+ $c->stash->{template} = 'admin/report_edit-sdm.html';
+
+ if ($c->req->param('send_back')) {
+ $c->forward('check_token');
+
+ $problem->bodies_str( $body->parent->id );
+ $problem->state( 'confirmed' );
+ $problem->update;
+ # log here
+ $c->res->redirect( '/admin/summary' );
+
+ } elsif ($c->req->param('submit')) {
+ $c->forward('check_token');
+
+ my $extra = $problem->extra || {};
+ $extra->{internal_notes} ||= '';
+ if ($c->req->param('internal_notes') && $c->req->param('internal_notes') ne $extra->{internal_notes}) {
+ $extra->{internal_notes} = $c->req->param('internal_notes');
+ $problem->extra( { %$extra } );
+ $problem->update;
+ }
+
+ # Add new update from status_update
+ if (my $update = $c->req->param('status_update')) {
+ FixMyStreet::App->model('DB::Comment')->create( {
+ text => $update,
+ user => $c->user->obj,
+ state => 'unconfirmed',
+ problem => $problem,
+ mark_fixed => 0,
+ problem_state => 'fixed - council',
+ anonymous => 1,
+ } );
+ }
+
+ $c->stash->{status_message} = '<p><em>' . _('Updated!') . '</em></p>';
+
+ # If they clicked the no more updates button, we're done.
+ if ($c->req->param('no_more_updates')) {
+ $problem->bodies_str( $body->parent->id );
+ $problem->whensent( undef );
+ $problem->state( 'planned' );
+ $problem->update;
+ # log here
+ $c->res->redirect( '/admin/summary' );
+ }
+ }
+
+ $c->stash->{updates} = [ $c->model('DB::Comment')
+ ->search( { problem_id => $problem->id }, { order_by => 'created' } )
+ ->all ];
+
+ return 1;
+
+ }
+
+ return 0;
+
+}
+
+sub _admin_send_email {
+ my ( $c, $template, $problem ) = @_;
+
+ return unless $problem->extra && $problem->extra->{email_confirmed};
+
+ my $to = $problem->name
+ ? [ $problem->user->email, $problem->name ]
+ : $problem->user->email;
+
+ $c->send_email( $template, {
+ to => [ $to ],
+ url => $c->uri_for_email( $problem->url ),
+ } );
+}
+
+sub admin_fetch_all_bodies {
+ my ( $self, @bodies ) = @_;
+
+ sub tree_sort {
+ my ( $level, $id, $sorted, $out ) = @_;
+
+ my @sorted;
+ my $array = $sorted->{$id};
+ if ( $level == 0 ) {
+ @sorted = sort {
+ # Want Zurich itself at the top.
+ return -1 if $sorted->{$a->id};
+ return 1 if $sorted->{$b->id};
+ # Otherwise, by name
+ strcoll($a->name, $b->name)
+ } @$array;
+ } else {
+ @sorted = sort { strcoll($a->name, $b->name) } @$array;
+ }
+ foreach ( @sorted ) {
+ $_->api_key( $level ); # Misuse
+ push @$out, $_;
+ if ($sorted->{$_->id}) {
+ tree_sort( $level+1, $_->id, $sorted, $out );
+ }
+ }
+ }
+
+ my %sorted;
+ foreach (@bodies) {
+ my $p = $_->parent ? $_->parent->id : 0;
+ push @{$sorted{$p}}, $_;
+ }
+
+ my @out;
+ tree_sort( 0, 0, \%sorted, \@out );
+ return @out;
+}
+
1;
diff --git a/perllib/FixMyStreet/DB/Result/Body.pm b/perllib/FixMyStreet/DB/Result/Body.pm
new file mode 100644
index 000000000..83704563a
--- /dev/null
+++ b/perllib/FixMyStreet/DB/Result/Body.pm
@@ -0,0 +1,108 @@
+use utf8;
+package FixMyStreet::DB::Result::Body;
+
+# 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("body");
+__PACKAGE__->add_columns(
+ "id",
+ {
+ data_type => "integer",
+ is_auto_increment => 1,
+ is_nullable => 0,
+ sequence => "body_id_seq",
+ },
+ "name",
+ { data_type => "text", is_nullable => 0 },
+ "endpoint",
+ { data_type => "text", is_nullable => 1 },
+ "jurisdiction",
+ { data_type => "text", is_nullable => 1 },
+ "api_key",
+ { data_type => "text", is_nullable => 1 },
+ "send_method",
+ { data_type => "text", is_nullable => 1 },
+ "send_comments",
+ { data_type => "boolean", default_value => \"false", is_nullable => 0 },
+ "comment_user_id",
+ { data_type => "integer", is_foreign_key => 1, is_nullable => 1 },
+ "suppress_alerts",
+ { data_type => "boolean", default_value => \"false", is_nullable => 0 },
+ "can_be_devolved",
+ { data_type => "boolean", default_value => \"false", is_nullable => 0 },
+ "send_extended_statuses",
+ { data_type => "boolean", default_value => \"false", is_nullable => 0 },
+ "parent",
+ { data_type => "integer", is_foreign_key => 1, is_nullable => 1 },
+);
+__PACKAGE__->set_primary_key("id");
+__PACKAGE__->has_many(
+ "bodies",
+ "FixMyStreet::DB::Result::Body",
+ { "foreign.parent" => "self.id" },
+ { cascade_copy => 0, cascade_delete => 0 },
+);
+__PACKAGE__->has_many(
+ "body_areas",
+ "FixMyStreet::DB::Result::BodyArea",
+ { "foreign.body_id" => "self.id" },
+ { cascade_copy => 0, cascade_delete => 0 },
+);
+__PACKAGE__->belongs_to(
+ "comment_user",
+ "FixMyStreet::DB::Result::User",
+ { id => "comment_user_id" },
+ {
+ is_deferrable => 1,
+ join_type => "LEFT",
+ on_delete => "CASCADE",
+ on_update => "CASCADE",
+ },
+);
+__PACKAGE__->has_many(
+ "contacts",
+ "FixMyStreet::DB::Result::Contact",
+ { "foreign.body_id" => "self.id" },
+ { cascade_copy => 0, cascade_delete => 0 },
+);
+__PACKAGE__->belongs_to(
+ "parent",
+ "FixMyStreet::DB::Result::Body",
+ { id => "parent" },
+ {
+ is_deferrable => 1,
+ join_type => "LEFT",
+ on_delete => "CASCADE",
+ on_update => "CASCADE",
+ },
+);
+__PACKAGE__->has_many(
+ "users",
+ "FixMyStreet::DB::Result::User",
+ { "foreign.from_body" => "self.id" },
+ { cascade_copy => 0, cascade_delete => 0 },
+);
+
+
+# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-12-19 12:47:10
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:DdtXjMWRpz20ZHjtY3oP2w
+
+sub url {
+ my ( $self, $c ) = @_;
+ # XXX $areas_info was used here for Norway parent - needs body parents, I guess
+ return $c->uri_for( '/reports/' . $c->cobrand->short_name( $self ) );
+}
+
+sub areas {
+ my $self = shift;
+ my %ids = map { $_->area_id => 1 } $self->body_areas->all;
+ return \%ids;
+}
+
+1;
diff --git a/perllib/FixMyStreet/DB/Result/BodyArea.pm b/perllib/FixMyStreet/DB/Result/BodyArea.pm
new file mode 100644
index 000000000..844a3277d
--- /dev/null
+++ b/perllib/FixMyStreet/DB/Result/BodyArea.pm
@@ -0,0 +1,33 @@
+use utf8;
+package FixMyStreet::DB::Result::BodyArea;
+
+# 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("body_areas");
+__PACKAGE__->add_columns(
+ "body_id",
+ { data_type => "integer", is_foreign_key => 1, is_nullable => 0 },
+ "area_id",
+ { data_type => "integer", is_nullable => 0 },
+);
+__PACKAGE__->add_unique_constraint("body_areas_body_id_area_id_idx", ["body_id", "area_id"]);
+__PACKAGE__->belongs_to(
+ "body",
+ "FixMyStreet::DB::Result::Body",
+ { id => "body_id" },
+ { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" },
+);
+
+
+# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-12-19 12:47:10
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:aAr+Nadyu8IckZlK6+PTNg
+
+ __PACKAGE__->set_primary_key(__PACKAGE__->columns);
+
+1;
diff --git a/perllib/FixMyStreet/DB/Result/Comment.pm b/perllib/FixMyStreet/DB/Result/Comment.pm
index b551be9ef..33fbb9356 100644
--- a/perllib/FixMyStreet/DB/Result/Comment.pm
+++ b/perllib/FixMyStreet/DB/Result/Comment.pm
@@ -91,6 +91,7 @@ __PACKAGE__->filter_column(
my $self = shift;
my $ser = shift;
return undef unless defined $ser;
+ utf8::encode($ser) if utf8::is_utf8($ser);
my $h = new IO::String($ser);
return RABX::wire_rd($h);
},
@@ -146,8 +147,8 @@ sub check_for_errors {
$errors{update} = _('Please enter a message')
unless $self->text =~ m/\S/;
- if ( $self->text && $self->problem && $self->problem->council
- && $self->problem->council eq '2482' && length($self->text) > 2000 ) {
+ if ( $self->text && $self->problem && $self->problem->bodies_str
+ && $self->problem->bodies_str eq '2482' && length($self->text) > 2000 ) {
$errors{update} = _('Updates are limited to 2000 characters in length. Please shorten your update');
}
diff --git a/perllib/FixMyStreet/DB/Result/Contact.pm b/perllib/FixMyStreet/DB/Result/Contact.pm
index 993e3524b..551bcd019 100644
--- a/perllib/FixMyStreet/DB/Result/Contact.pm
+++ b/perllib/FixMyStreet/DB/Result/Contact.pm
@@ -18,8 +18,8 @@ __PACKAGE__->add_columns(
is_nullable => 0,
sequence => "contacts_id_seq",
},
- "area_id",
- { data_type => "integer", is_nullable => 0 },
+ "body_id",
+ { data_type => "integer", is_foreign_key => 1, is_nullable => 0 },
"category",
{ data_type => "text", default_value => "Other", is_nullable => 0 },
"email",
@@ -48,11 +48,17 @@ __PACKAGE__->add_columns(
{ data_type => "text", is_nullable => 1 },
);
__PACKAGE__->set_primary_key("id");
-__PACKAGE__->add_unique_constraint("contacts_area_id_category_idx", ["area_id", "category"]);
+__PACKAGE__->add_unique_constraint("contacts_body_id_category_idx", ["body_id", "category"]);
+__PACKAGE__->belongs_to(
+ "body",
+ "FixMyStreet::DB::Result::Body",
+ { id => "body_id" },
+ { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" },
+);
-# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-08-31 10:29:17
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:t6yOPhZmedV/eH6AUvHI6w
+# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-12-13 12:34:33
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:imXq3EtrC0FrQwj+E2xfBw
__PACKAGE__->filter_column(
extra => {
@@ -60,6 +66,7 @@ __PACKAGE__->filter_column(
my $self = shift;
my $ser = shift;
return undef unless defined $ser;
+ utf8::encode($ser) if utf8::is_utf8($ser);
my $h = new IO::String($ser);
return RABX::wire_rd($h);
},
diff --git a/perllib/FixMyStreet/DB/Result/ContactsHistory.pm b/perllib/FixMyStreet/DB/Result/ContactsHistory.pm
index deb00fb95..7126d91c9 100644
--- a/perllib/FixMyStreet/DB/Result/ContactsHistory.pm
+++ b/perllib/FixMyStreet/DB/Result/ContactsHistory.pm
@@ -20,7 +20,7 @@ __PACKAGE__->add_columns(
},
"contact_id",
{ data_type => "integer", is_nullable => 0 },
- "area_id",
+ "body_id",
{ data_type => "integer", is_nullable => 0 },
"category",
{ data_type => "text", default_value => "Other", is_nullable => 0 },
@@ -40,8 +40,8 @@ __PACKAGE__->add_columns(
__PACKAGE__->set_primary_key("contacts_history_id");
-# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:dN2ueIDoP3d/+Mg1UDqsMw
+# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-12-12 16:37:16
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:sxflEBBn0Mn0s3MroWnWFA
# You can replace this text with custom code or comments, and it will be preserved on regeneration
diff --git a/perllib/FixMyStreet/DB/Result/Open311conf.pm b/perllib/FixMyStreet/DB/Result/Open311conf.pm
deleted file mode 100644
index f01a20dec..000000000
--- a/perllib/FixMyStreet/DB/Result/Open311conf.pm
+++ /dev/null
@@ -1,61 +0,0 @@
-use utf8;
-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 },
- "send_method",
- { data_type => "text", is_nullable => 1 },
- "send_comments",
- { data_type => "boolean", default_value => \"false", is_nullable => 0 },
- "comment_user_id",
- { data_type => "integer", is_foreign_key => 1, is_nullable => 1 },
- "suppress_alerts",
- { data_type => "boolean", default_value => \"false", is_nullable => 0 },
- "can_be_devolved",
- { data_type => "boolean", default_value => \"false", is_nullable => 0 },
- "send_extended_statuses",
- { data_type => "boolean", default_value => \"false", is_nullable => 0 },
-);
-__PACKAGE__->set_primary_key("id");
-__PACKAGE__->add_unique_constraint("open311conf_area_id_key", ["area_id"]);
-__PACKAGE__->belongs_to(
- "comment_user",
- "FixMyStreet::DB::Result::User",
- { id => "comment_user_id" },
- {
- is_deferrable => 1,
- join_type => "LEFT",
- on_delete => "CASCADE",
- on_update => "CASCADE",
- },
-);
-
-
-# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-08-29 14:04:20
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Yoult8K/ldH6DMAKURtr3Q
-
-# 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 0238e3b09..d9a2a0273 100644
--- a/perllib/FixMyStreet/DB/Result/Problem.pm
+++ b/perllib/FixMyStreet/DB/Result/Problem.pm
@@ -24,7 +24,7 @@ __PACKAGE__->add_columns(
{ data_type => "double precision", is_nullable => 0 },
"longitude",
{ data_type => "double precision", is_nullable => 0 },
- "council",
+ "bodies_str",
{ data_type => "text", is_nullable => 1 },
"areas",
{ data_type => "text", is_nullable => 0 },
@@ -99,7 +99,7 @@ __PACKAGE__->add_columns(
"external_source_id",
{ data_type => "text", is_nullable => 1 },
"interest_count",
- { data_type => "integer", is_nullable => 1 },
+ { data_type => "integer", default_value => 0, is_nullable => 1 },
"subcategory",
{ data_type => "text", is_nullable => 1 },
);
@@ -124,8 +124,8 @@ __PACKAGE__->belongs_to(
);
-# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-12-03 17:48:10
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:xN/RB8Vx50CwyOeBjvJezQ
+# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-12-13 15:13:48
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:H2P3Og37G569nQdQA1IWaA
# Add fake relationship to stored procedure table
__PACKAGE__->has_one(
@@ -141,6 +141,7 @@ __PACKAGE__->filter_column(
my $self = shift;
my $ser = shift;
return undef unless defined $ser;
+ utf8::encode($ser) if utf8::is_utf8($ser);
my $h = new IO::String($ser);
return RABX::wire_rd($h);
},
@@ -161,6 +162,7 @@ __PACKAGE__->filter_column(
my $self = shift;
my $ser = shift;
return undef unless defined $ser;
+ utf8::encode($ser) if utf8::is_utf8($ser);
my $h = new IO::String($ser);
return RABX::wire_rd($h);
},
@@ -259,24 +261,26 @@ HASHREF.
=cut
+my $visible_states = {
+ 'confirmed' => 1,
+ 'investigating' => 1,
+ 'in progress' => 1,
+ 'planned' => 1,
+ 'action scheduled' => 1,
+ 'fixed' => 1,
+ 'fixed - council' => 1,
+ 'fixed - user' => 1,
+ 'unable to fix' => 1,
+ 'not responsible' => 1,
+ 'duplicate' => 1,
+ 'closed' => 1,
+ 'internal referral' => 1,
+};
sub visible_states {
- my $states = {
- 'confirmed' => 1,
- 'investigating' => 1,
- 'in progress' => 1,
- 'planned' => 1,
- 'action scheduled' => 1,
- 'fixed' => 1,
- 'fixed - council' => 1,
- 'fixed - user' => 1,
- 'unable to fix' => 1,
- 'not responsible' => 1,
- 'duplicate' => 1,
- 'closed' => 1,
- 'internal referral' => 1,
- };
-
- return wantarray ? keys %{$states} : $states;
+ return wantarray ? keys %{$visible_states} : $visible_states;
+}
+sub visible_states_add_unconfirmed {
+ $visible_states->{unconfirmed} = 1;
}
=head2
@@ -336,7 +340,6 @@ sub council_states {
return wantarray ? keys %{$states} : $states;
}
-
my $tz = DateTime::TimeZone->new( name => "local" );
sub confirmed_local {
@@ -378,6 +381,12 @@ around service => sub {
return $s;
};
+sub title_safe {
+ my $self = shift;
+ return _('Awaiting moderation') if $self->cobrand eq 'zurich' && $self->state eq 'unconfirmed';
+ return $self->title;
+}
+
=head2 check_for_errors
$error_hashref = $problem->check_for_errors();
@@ -402,9 +411,9 @@ sub check_for_errors {
$errors{detail} = _('Please enter some details')
unless $self->detail =~ m/\S/;
- $errors{council} = _('No council selected')
- unless $self->council
- && $self->council =~ m/^(?:-1|[\d,]+(?:\|[\d,]+)?)$/;
+ $errors{bodies} = _('No council selected')
+ unless $self->bodies_str
+ && $self->bodies_str =~ m/^(?:-1|[\d,]+(?:\|[\d,]+)?)$/;
if ( !$self->name || $self->name !~ m/\S/ ) {
$errors{name} = _('Please enter your name');
@@ -431,8 +440,8 @@ sub check_for_errors {
$self->category(undef);
}
- if ( $self->council && $self->detail &&
- $self->council eq '2482' && length($self->detail) > 2000 ) {
+ if ( $self->bodies_str && $self->detail &&
+ $self->bodies_str eq '2482' && length($self->detail) > 2000 ) {
$errors{detail} = _('Reports are limited to 2000 characters in length. Please shorten your report');
}
@@ -462,18 +471,26 @@ sub confirm {
return 1;
}
-=head2 councils
+sub bodies_str_ids {
+ my $self = shift;
+ return unless $self->bodies_str;
+ (my $bodies = $self->bodies_str) =~ s/\|.*$//;
+ my @bodies = split( /,/, $bodies );
+ return \@bodies;
+}
+
+=head2 bodies
-Returns an arrayref of councils to which a report was sent.
+Returns an arrayref of bodies to which a report was sent.
=cut
-sub councils {
+sub bodies($) {
my $self = shift;
- return [] unless $self->council;
- (my $council = $self->council) =~ s/\|.*$//;
- my @council = split( /,/, $council );
- return \@council;
+ return {} unless $self->bodies_str;
+ my $bodies = $self->bodies_str_ids;
+ my @bodies = FixMyStreet::App->model('DB::Body')->search({ id => $bodies })->all;
+ return { map { $_->id => $_ } @bodies };
}
=head2 url
@@ -557,8 +574,7 @@ meta data about the report.
sub meta_line {
my ( $problem, $c ) = @_;
- my $date_time =
- Utils::prettify_epoch( $problem->confirmed_local->epoch );
+ my $date_time = Utils::prettify_dt( $problem->confirmed_local );
my $meta = '';
# FIXME Should be in cobrand
@@ -623,21 +639,22 @@ sub body {
my ( $problem, $c ) = @_;
my $body;
if ($problem->external_body) {
- $body = $problem->external_body;
+ if ($problem->cobrand eq 'zurich') {
+ $body = $c->model('DB::Body')->find({ id => $problem->external_body });
+ } else {
+ $body = $problem->external_body;
+ }
} else {
- my $councils = $problem->councils;
- my $areas_info = mySociety::MaPit::call('areas', $councils);
+ my $bodies = $problem->bodies;
$body = join( _(' and '),
map {
- my $name = $areas_info->{$_}->{name};
+ my $name = $_->name;
if (mySociety::Config::get('AREA_LINKS_FROM_PROBLEMS')) {
- '<a href="'
- . $c->uri_for( '/reports/' . $c->cobrand->short_name( $areas_info->{$_} ) )
- . '">' . $name . '</a>';
+ '<a href="' . $_->url($c) . '">' . $name . '</a>';
} else {
$name;
}
- } @$councils
+ } values %$bodies
);
}
return $body;
@@ -696,6 +713,14 @@ sub duration_string {
);
}
+sub local_coords {
+ my $self = shift;
+ if ($self->cobrand eq 'zurich') {
+ my ($x, $y) = Geo::Coordinates::CH1903::from_latlon($self->latitude, $self->longitude);
+ return ( int($x+0.5), int($y+0.5) );
+ }
+}
+
=head2 update_from_open311_service_request
$p->update_from_open311_service_request( $request, $council_details, $system_user );
@@ -789,6 +814,29 @@ sub update_send_failed {
} );
}
+sub as_hashref {
+ my $self = shift;
+ my $c = shift;
+
+ return {
+ id => $self->id,
+ title => $self->title,
+ category => $self->category,
+ detail => $self->detail,
+ latitude => $self->latitude,
+ longitude => $self->longitude,
+ postcode => $self->postcode,
+ state => $self->state,
+ state_t => _( $self->state ),
+ used_map => $self->used_map,
+ is_fixed => $self->fixed_states->{ $self->state } ? 1 : 0,
+ photo => $self->get_photo_params,
+ meta => $self->confirmed ? $self->meta_line( $c ) : '',
+ confirmed_pp => $self->confirmed ? Utils::prettify_dt( $self->confirmed_local, 1 ): '',
+ created_pp => Utils::prettify_dt( $self->created_local, 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/DB/Result/Token.pm b/perllib/FixMyStreet/DB/Result/Token.pm
index b223ada3a..028300842 100644
--- a/perllib/FixMyStreet/DB/Result/Token.pm
+++ b/perllib/FixMyStreet/DB/Result/Token.pm
@@ -60,6 +60,7 @@ __PACKAGE__->filter_column(
my $self = shift;
my $ser = shift;
return undef unless defined $ser;
+ utf8::encode($ser) if utf8::is_utf8($ser);
my $h = new IO::String($ser);
return RABX::wire_rd($h);
},
diff --git a/perllib/FixMyStreet/DB/Result/User.pm b/perllib/FixMyStreet/DB/Result/User.pm
index 7f43d1a52..481b654c9 100644
--- a/perllib/FixMyStreet/DB/Result/User.pm
+++ b/perllib/FixMyStreet/DB/Result/User.pm
@@ -26,8 +26,8 @@ __PACKAGE__->add_columns(
{ data_type => "text", is_nullable => 1 },
"password",
{ data_type => "text", default_value => "", is_nullable => 0 },
- "from_council",
- { data_type => "integer", is_nullable => 1 },
+ "from_body",
+ { data_type => "integer", is_foreign_key => 1, is_nullable => 1 },
"flagged",
{ data_type => "boolean", default_value => \"false", is_nullable => 0 },
"title",
@@ -42,16 +42,27 @@ __PACKAGE__->has_many(
{ cascade_copy => 0, cascade_delete => 0 },
);
__PACKAGE__->has_many(
+ "bodies",
+ "FixMyStreet::DB::Result::Body",
+ { "foreign.comment_user_id" => "self.id" },
+ { cascade_copy => 0, cascade_delete => 0 },
+);
+__PACKAGE__->has_many(
"comments",
"FixMyStreet::DB::Result::Comment",
{ "foreign.user_id" => "self.id" },
{ cascade_copy => 0, cascade_delete => 0 },
);
-__PACKAGE__->has_many(
- "open311confs",
- "FixMyStreet::DB::Result::Open311conf",
- { "foreign.comment_user_id" => "self.id" },
- { cascade_copy => 0, cascade_delete => 0 },
+__PACKAGE__->belongs_to(
+ "from_body",
+ "FixMyStreet::DB::Result::Body",
+ { id => "from_body" },
+ {
+ is_deferrable => 1,
+ join_type => "LEFT",
+ on_delete => "CASCADE",
+ on_update => "CASCADE",
+ },
);
__PACKAGE__->has_many(
"problems",
@@ -61,8 +72,8 @@ __PACKAGE__->has_many(
);
-# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-05-01 16:20:29
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:LKi8u5IYnHW1+Mez64nvGg
+# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-12-14 09:23:59
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:aw374WQraL5ysOvUmUIU3w
__PACKAGE__->add_columns(
"password" => {
@@ -144,38 +155,27 @@ sub alert_for_problem {
} );
}
-sub council {
+sub body {
my $self = shift;
-
- return '' unless $self->from_council;
-
- my $key = 'council_name:' . $self->from_council;
- my $result = Memcached::get($key);
-
- unless ($result) {
- my $area_info = mySociety::MaPit::call('area', $self->from_council);
- $result = $area_info->{name};
- Memcached::set($key, $result, 86400);
- }
-
- return $result;
+ return '' unless $self->from_body;
+ return $self->from_body->name;
}
-=head2 belongs_to_council
+=head2 belongs_to_body
- $belongs_to_council = $user->belongs_to_council( $council_list );
+ $belongs_to_body = $user->belongs_to_body( $bodies );
-Returns true if the user belongs to the comma seperated list of council ids passed in
+Returns true if the user belongs to the comma seperated list of body ids passed in
=cut
-sub belongs_to_council {
+sub belongs_to_body {
my $self = shift;
- my $council = shift;
+ my $bodies = shift;
- my %councils = map { $_ => 1 } split ',', $council;
+ my %bodies = map { $_ => 1 } split ',', $bodies;
- return 1 if $self->from_council && $councils{ $self->from_council };
+ return 1 if $self->from_body && $bodies{ $self->from_body->id };
return 0;
}
diff --git a/perllib/FixMyStreet/DB/ResultSet/AlertType.pm b/perllib/FixMyStreet/DB/ResultSet/AlertType.pm
index d903f8eb2..8e9b3d17e 100644
--- a/perllib/FixMyStreet/DB/ResultSet/AlertType.pm
+++ b/perllib/FixMyStreet/DB/ResultSet/AlertType.pm
@@ -89,13 +89,14 @@ sub email_alerts ($) {
}
my $url = $cobrand->base_url( $row->{alert_cobrand_data} );
- if ( $hashref_restriction && $hashref_restriction->{council} && $row->{council} ne $hashref_restriction->{council} ) {
+ if ( $hashref_restriction && $hashref_restriction->{bodies_str} && $row->{bodies_str} ne $hashref_restriction->{bodies_str} ) {
$url = mySociety::Config::get('BASE_URL');
}
# this is currently only for new_updates
if ($row->{item_text}) {
- if ( $row->{alert_user_id} == $row->{user_id} ) {
+ if ( $cobrand->moniker ne 'zurich' && $row->{alert_user_id} == $row->{user_id} ) {
# This is an alert to the same user who made the report - make this a login link
+ # Don't bother with Zurich which has no accounts
my $user = FixMyStreet::App->model('DB::User')->find( {
id => $row->{alert_user_id}
} );
@@ -166,7 +167,7 @@ sub email_alerts ($) {
};
my $states = "'" . join( "', '", FixMyStreet::DB::Result::Problem::visible_states() ) . "'";
my %data = ( template => $template, data => '', alert_id => $alert->id, alert_email => $alert->user->email, lang => $alert->lang, cobrand => $alert->cobrand, cobrand_data => $alert->cobrand_data );
- my $q = "select problem.id, problem.council, problem.postcode, problem.geocode, problem.title from problem_find_nearby(?, ?, ?) as nearby, problem, users
+ my $q = "select problem.id, problem.bodies_str, problem.postcode, problem.geocode, problem.title from problem_find_nearby(?, ?, ?) as nearby, problem, users
where nearby.problem_id = problem.id
and problem.user_id = users.id
and problem.state in ($states)
@@ -183,7 +184,7 @@ sub email_alerts ($) {
parameter => $row->{id},
} );
my $url = $cobrand->base_url( $alert->cobrand_data );
- if ( $hashref_restriction && $hashref_restriction->{council} && $row->{council} ne $hashref_restriction->{council} ) {
+ if ( $hashref_restriction && $hashref_restriction->{bodies_str} && $row->{bodies_str} ne $hashref_restriction->{bodies_str} ) {
$url = mySociety::Config::get('BASE_URL');
}
$data{data} .= $url . "/report/" . $row->{id} . " - $row->{title}\n\n";
@@ -254,6 +255,7 @@ sub _get_address_from_gecode {
my $geocode = shift;
return '' unless defined $geocode;
+ utf8::encode($geocode) if utf8::is_utf8($geocode);
my $h = new IO::String($geocode);
my $data = RABX::wire_rd($h);
diff --git a/perllib/FixMyStreet/DB/ResultSet/Body.pm b/perllib/FixMyStreet/DB/ResultSet/Body.pm
new file mode 100644
index 000000000..6802ed604
--- /dev/null
+++ b/perllib/FixMyStreet/DB/ResultSet/Body.pm
@@ -0,0 +1,17 @@
+package FixMyStreet::DB::ResultSet::Body;
+use base 'DBIx::Class::ResultSet';
+
+use strict;
+use warnings;
+
+sub for_areas {
+ my ( $rs, @areas ) = @_;
+
+ my $result = $rs->search(
+ { 'body_areas.area_id' => \@areas },
+ { join => 'body_areas' }
+ );
+ return $result;
+}
+
+1;
diff --git a/perllib/FixMyStreet/DB/ResultSet/Nearby.pm b/perllib/FixMyStreet/DB/ResultSet/Nearby.pm
index 191223572..91c44d5f4 100644
--- a/perllib/FixMyStreet/DB/ResultSet/Nearby.pm
+++ b/perllib/FixMyStreet/DB/ResultSet/Nearby.pm
@@ -21,12 +21,7 @@ sub nearby {
} if $c->cobrand->problems_clause;
my $attrs = {
- join => 'problem',
- columns => [
- 'problem.id', 'problem.title', 'problem.latitude',
- 'problem.longitude', 'distance', 'problem.state',
- 'problem.confirmed', { 'problem.photo' => 'problem.photo is not null' },
- ],
+ prefetch => 'problem',
bind => [ $mid_lat, $mid_lon, $dist ],
order_by => [ 'distance', { -desc => 'created' } ],
rows => $limit,
diff --git a/perllib/FixMyStreet/DB/ResultSet/Problem.pm b/perllib/FixMyStreet/DB/ResultSet/Problem.pm
index faed3b8ac..078c78d0e 100644
--- a/perllib/FixMyStreet/DB/ResultSet/Problem.pm
+++ b/perllib/FixMyStreet/DB/ResultSet/Problem.pm
@@ -84,15 +84,16 @@ sub _recent {
my $key = $photos ? 'recent_photos' : 'recent';
$key .= ":$site_key:$num";
+ # unconfirmed might be returned for e.g. Zurich, but would mean in moderation, so no photo
+ my @states = grep { $_ ne 'unconfirmed' } FixMyStreet::DB::Result::Problem->visible_states();
my $query = {
non_public => 0,
- state => [ FixMyStreet::DB::Result::Problem->visible_states() ],
+ state => \@states,
};
$query->{photo} = { '!=', undef } if $photos;
my $attrs = {
- columns => [ 'id', 'title', 'confirmed' ],
- order_by => { -desc => 'confirmed' },
+ order_by => { -desc => 'coalesce(confirmed, created)' },
rows => $num,
};
@@ -134,10 +135,6 @@ sub around_map {
my ( $rs, $min_lat, $max_lat, $min_lon, $max_lon, $interval, $limit ) = @_;
my $attr = {
order_by => { -desc => 'created' },
- columns => [
- 'id', 'title', 'latitude', 'longitude', 'state', 'confirmed',
- { photo => 'photo is not null' },
- ],
};
$attr->{rows} = $limit if $limit;
@@ -220,15 +217,19 @@ sub categories_summary {
}
sub send_reports {
+ my ( $rs, $site_override ) = @_;
+
# Set up site, language etc.
my ($verbose, $nomail) = CronFns::options();
my $base_url = mySociety::Config::get('BASE_URL');
- my $site = CronFns::site($base_url);
+ my $site = $site_override || CronFns::site($base_url);
+ my $states = [ 'confirmed', 'fixed' ];
+ $states = [ 'unconfirmed', 'confirmed', 'in progress', 'planned', 'closed' ] if $site eq 'zurich';
my $unsent = FixMyStreet::App->model("DB::Problem")->search( {
- state => [ 'confirmed', 'fixed' ],
+ state => $states,
whensent => undef,
- council => { '!=', undef },
+ bodies_str => { '!=', undef },
} );
my (%notgot, %note);
@@ -255,10 +256,12 @@ sub send_reports {
my $email_base_url = $cobrand->base_url_for_report($row);
my %h = map { $_ => $row->$_ } qw/id title detail name category latitude longitude used_map/;
map { $h{$_} = $row->user->$_ } qw/email phone/;
- $h{confirmed} = DateTime::Format::Pg->format_datetime( $row->confirmed->truncate (to => 'second' ) );
+ $h{confirmed} = DateTime::Format::Pg->format_datetime( $row->confirmed->truncate (to => 'second' ) )
+ if $row->confirmed;
$h{query} = $row->postcode;
$h{url} = $email_base_url . $row->url;
+ $h{admin_url} = $cobrand->admin_base_url . 'report_edit/' . $row->id;
$h{phone_line} = $h{phone} ? _('Phone:') . " $h{phone}\n\n" : '';
if ($row->photo) {
$h{has_photo} = _("This web page also contains a photo of the problem, provided by the user.") . "\n\n";
@@ -302,29 +305,28 @@ sub send_reports {
my ( $sender_count );
if ($site eq 'emptyhomes') {
- my $council = $row->council;
- my $areas_info = mySociety::MaPit::call('areas', $council);
+ my $body = $row->bodies_str;
+ $body = FixMyStreet::App->model("DB::Body")->find($body);
my $sender = "FixMyStreet::SendReport::EmptyHomes";
$reporters{ $sender } = $sender->new() unless $reporters{$sender};
- $reporters{ $sender }->add_council( $council, $areas_info->{$council} );
+ $reporters{ $sender }->add_body( $body );
} else {
# XXX Needs locks!
- my @all_councils = split /,|\|/, $row->council;
- my ($councils, $missing) = $row->council =~ /^([\d,]+)(?:\|([\d,]+))?/;
- my @councils = split(/,/, $councils);
- my $areas_info = mySociety::MaPit::call('areas', \@all_councils);
+ # XXX Only copes with at most one missing body
+ my ($bodies, $missing) = $row->bodies_str =~ /^([\d,]+)(?:\|(\d+))?/;
+ my @bodies = split(/,/, $bodies);
+ $bodies = FixMyStreet::App->model("DB::Body")->search({ id => \@bodies });
+ $missing = FixMyStreet::App->model("DB::Body")->find($missing) if $missing;
my @dear;
- foreach my $council (@councils) {
- my $name = $areas_info->{$council}->{name};
-
- my $sender_info = $cobrand->get_council_sender( $council, $areas_info->{$council}, $row->category );
+ while (my $body = $bodies->next) {
+ my $sender_info = $cobrand->get_body_sender( $body, $row->category );
my $sender = "FixMyStreet::SendReport::" . $sender_info->{method};
if ( ! exists $senders->{ $sender } ) {
- warn "No such sender [ $sender ] for council $name ( $council )";
+ warn "No such sender [ $sender ] for body $body->name ( $body->id )";
next;
}
$reporters{ $sender } ||= $sender->new();
@@ -333,8 +335,8 @@ sub send_reports {
$sending_skipped_by_method{ $sender }++ if
$reporters{ $sender }->skipped;
} else {
- push @dear, $name;
- $reporters{ $sender }->add_council( $council, $areas_info->{$council}, $sender_info->{config} );
+ push @dear, $body->name;
+ $reporters{ $sender }->add_body( $body, $sender_info->{config} );
}
}
@@ -350,7 +352,7 @@ sub send_reports {
$h{subcategory_line} = sprintf(_("Subcategory: %s"), $row->subcategory) . "\n\n";
}
- $h{councils_name} = join(_(' and '), @dear);
+ $h{bodies_name} = join(_(' and '), @dear);
if ($h{category} eq _('Other')) {
$h{multiple} = @dear>1 ? "[ " . _("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.") . " ]\n\n"
: '';
@@ -360,9 +362,8 @@ sub send_reports {
}
$h{missing} = '';
if ($missing) {
- my $name = $areas_info->{$missing}->{name};
$h{missing} = '[ '
- . sprintf(_('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.'), $name)
+ . sprintf(_('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.'), $missing->name)
. " ]\n\n";
}
@@ -375,39 +376,11 @@ sub send_reports {
next unless $sender_count;
- if (mySociety::Config::get('STAGING_SITE')) {
- # on a staging server send emails to ourselves rather than the councils
- # however, we can configure a list of councils that we use non email
- # delivery, e.g. Open311, for testing purposes. For those we want to
- # send using the non email method and for everyone else we want to use
- # email
- my @testing_councils = split( '\|', mySociety::Config::get('TESTING_COUNCILS') );
-
- # we only care about non missing councils so we get the missing ones
- # and then essentially throw them away as we're not going to have
- # configured them to do anything.
- my %councils = map { $_ => 1 } @{ $row->councils };
-
- # We now take the councils that we have contact details for and if any of them
- # are in the list of testing councils we look a bit harder otherwise we throw
- # away all the non email delivery methods
- if ( grep { $councils{ $_ } } @testing_councils ) {
- my %tc = map { $_ => 1 } @testing_councils;
- my @non_matching = grep { !$tc{$_} } keys %councils;
- for my $sender ( keys %reporters ) {
- next if $sender =~ /FixMyStreet::SendReport::(Email|NI)/;
- for my $council ( @non_matching ) {
- $reporters{$sender}->delete_council( $council );
- }
- }
- if ( @non_matching ) {
- $reporters{'FixMyStreet::SendReport::Email'} = FixMyStreet::SendReport::Email->new();
- }
- } else {
- %reporters = map { $_ => $reporters{$_} } grep { /FixMyStreet::SendReport::(Email|NI)/ } keys %reporters;
- unless (%reporters) {
- %reporters = ( 'FixMyStreet::SendReport::Email' => FixMyStreet::SendReport::Email->new() );
- }
+ if (mySociety::Config::get('STAGING_SITE') && !mySociety::Config::get('SEND_REPORTS_ON_STAGING')) {
+ # on a staging server send emails to ourselves rather than the bodies
+ %reporters = map { $_ => $reporters{$_} } grep { /FixMyStreet::SendReport::(Email|NI)/ } keys %reporters;
+ unless (%reporters) {
+ %reporters = ( 'FixMyStreet::SendReport::Email' => FixMyStreet::SendReport::Email->new() );
}
}
@@ -468,7 +441,7 @@ sub send_reports {
my $unsent = FixMyStreet::App->model("DB::Problem")->search( {
state => [ 'confirmed', 'fixed' ],
whensent => undef,
- council => { '!=', undef },
+ bodies_str => { '!=', undef },
send_fail_count => { '>', 0 }
} );
while (my $row = $unsent->next) {
diff --git a/perllib/FixMyStreet/Geocode.pm b/perllib/FixMyStreet/Geocode.pm
index 6cfd960ed..61c398985 100644
--- a/perllib/FixMyStreet/Geocode.pm
+++ b/perllib/FixMyStreet/Geocode.pm
@@ -31,7 +31,7 @@ sub lookup {
}
# string STRING CONTEXT
-# Canonicalises, and then passes to some external API to look stuff up.
+# Passes the string to some external API to look stuff up.
sub string {
my ($s, $c) = @_;
diff --git a/perllib/FixMyStreet/Geocode/Zurich.pm b/perllib/FixMyStreet/Geocode/Zurich.pm
index 5aaca2c8e..0fc84c0ef 100644
--- a/perllib/FixMyStreet/Geocode/Zurich.pm
+++ b/perllib/FixMyStreet/Geocode/Zurich.pm
@@ -52,8 +52,13 @@ sub setup_soap {
# string STRING CONTEXT
# Looks up on Zurich web service a user-inputted location.
# Returns array of (LAT, LON, ERROR), where ERROR is either undef, a string, or
-# an array of matches if there are more than one. The information in the query
-# may be used to disambiguate the location in cobranded versions of the site.
+# an array of matches if there are more than one.
+# If there is no ambiguity, returns only a {lat,long} hash, unless allow_single_match_string is true
+# (because the auto-complete use of this (in /around) should send the matched name even though it's not ambiguous).
+#
+# The information in the query may be used to disambiguate the location in cobranded
+# versions of the site.
+
sub string {
my ( $s, $c ) = @_;
@@ -98,8 +103,9 @@ sub string {
push (@valid_locations, $_);
last if lc($_->{text}) eq lc($s);
}
-
- return { latitude => $latitude, longitude => $longitude } if scalar @valid_locations == 1;
+ if (scalar @valid_locations == 1 && ! $c->stash->{allow_single_geocode_match_strings} ) {
+ return { latitude => $latitude, longitude => $longitude };
+ }
return { error => $error };
}
diff --git a/perllib/FixMyStreet/Map.pm b/perllib/FixMyStreet/Map.pm
index a1876e150..f2dd0da6d 100644
--- a/perllib/FixMyStreet/Map.pm
+++ b/perllib/FixMyStreet/Map.pm
@@ -129,7 +129,7 @@ sub map_pins {
my $colour = $c->cobrand->pin_colour( $p, 'around' );
[ $p->latitude, $p->longitude,
$colour,
- $p->id, $p->title
+ $p->id, $p->title_safe
]
} @$around_map, @$nearby;
diff --git a/perllib/FixMyStreet/Map/Zurich.pm b/perllib/FixMyStreet/Map/Zurich.pm
index d2f7a35af..262b6e229 100644
--- a/perllib/FixMyStreet/Map/Zurich.pm
+++ b/perllib/FixMyStreet/Map/Zurich.pm
@@ -13,8 +13,8 @@ use Geo::Coordinates::CH1903;
use Math::Trig;
use Utils;
-use constant ZOOM_LEVELS => 10;
-use constant DEFAULT_ZOOM => 7;
+use constant ZOOM_LEVELS => 7;
+use constant DEFAULT_ZOOM => 5;
use constant MIN_ZOOM_LEVEL => 0;
sub map_tiles {
@@ -30,7 +30,7 @@ sub map_tiles {
}
sub base_tile_url {
- return 'http://www.wmts.stadt-zuerich.ch/Luftbild/MapServer/WMTS/tile/1.0.0/Luftbild/default/nativeTileMatrixSet';
+ return 'http://www.wmts.stadt-zuerich.ch/Hybrid/MapServer/WMTS/tile/1.0.0/Hybrid/default/nativeTileMatrixSet';
}
sub copyright {
@@ -90,10 +90,10 @@ sub latlon_to_tile($$$) {
my ($x, $y) = Geo::Coordinates::CH1903::from_latlon($lat, $lon);
- my $matrix_id = $zoom - 1;
+ my $matrix_id = $zoom;
$matrix_id = 0 if $matrix_id < 0;
- my @scales = ( '250000', '125000', '64000', '32000', '16000', '8000', '4000', '2000', '1000', '500' );
+ my @scales = ( '250000', '125000', '64000', '32000', '16000', '8000', '4000', '2000', '1000' );
my $tileOrigin = { lat => 30814423, lon => -29386322 };
my $tileSize = 256;
my $res = $scales[$zoom] / (39.3701 * 96); # OpenLayers.INCHES_PER_UNIT[units] * OpenLayers.DOTS_PER_INCH
diff --git a/perllib/FixMyStreet/SendReport.pm b/perllib/FixMyStreet/SendReport.pm
index f679d826e..f8901c6f8 100644
--- a/perllib/FixMyStreet/SendReport.pm
+++ b/perllib/FixMyStreet/SendReport.pm
@@ -7,7 +7,8 @@ use Module::Pluggable
search_path => __PACKAGE__,
require => 1;
-has 'councils' => ( is => 'rw', isa => 'HashRef', default => sub { {} } );
+has 'body_config' => ( is => 'rw', isa => 'HashRef', default => sub { {} } );
+has 'bodies' => ( is => 'rw', isa => 'ArrayRef', default => sub { [] } );
has 'to' => ( is => 'rw', isa => 'ArrayRef', default => sub { [] } );
has 'success' => ( is => 'rw', isa => 'Bool', default => 0 );
has 'error' => ( is => 'rw', isa => 'Str', default => '' );
@@ -31,25 +32,18 @@ sub get_senders {
sub reset {
my $self = shift;
- $self->councils( {} );
+ $self->bodies( [] );
+ $self->body_config( {} );
$self->to( [] );
}
-sub add_council {
+sub add_body {
my $self = shift;
- my $council = shift;
- my $info = shift;
+ my $body = shift;
my $config = shift;
- $self->councils->{ $council } = { info => $info, config => $config };
+ push @{$self->bodies}, $body;
+ $self->body_config->{ $body->id } = $config;
}
-sub delete_council {
- my $self = shift;
- my $council = shift;
-
- delete $self->councils->{$council};
-}
-
-
1;
diff --git a/perllib/FixMyStreet/SendReport/Barnet.pm b/perllib/FixMyStreet/SendReport/Barnet.pm
index 9a92686ec..05ca20809 100644
--- a/perllib/FixMyStreet/SendReport/Barnet.pm
+++ b/perllib/FixMyStreet/SendReport/Barnet.pm
@@ -80,9 +80,9 @@ sub send {
? $h{query} : $nearest_postcode; # use given postcode if available
# note: endpoint can be of form 'https://username:password@url'
- my $council_config = FixMyStreet::App->model("DB::Open311conf")->search( { area_id => COUNCIL_ID_BARNET} )->first;
- if ($council_config and $council_config->endpoint) {
- $interface->set_proxy($council_config->endpoint);
+ my $body = FixMyStreet::App->model("DB::Body")->search( { 'body_areas.area_id' => COUNCIL_ID_BARNET }, { join => "body_areas" } )->first;
+ if ($body and $body->endpoint) {
+ $interface->set_proxy($body->endpoint);
# Barnet web service doesn't like namespaces in the elements so use a prefix
$interface->set_prefix('urn');
# uncomment these lines to print XML that will be sent rather
@@ -90,7 +90,7 @@ sub send {
#$interface->outputxml(1);
#$interface->no_dispatch(1);
} else {
- die "Barnet webservice FAIL: looks like you're missing some config data: no endpoint (URL) found for area_id=" . COUNCIL_ID_BARNET;
+ die "Barnet webservice FAIL: looks like you're missing some config data: no endpoint (URL) found for area ID " . COUNCIL_ID_BARNET;
}
eval {
diff --git a/perllib/FixMyStreet/SendReport/Email.pm b/perllib/FixMyStreet/SendReport/Email.pm
index f26116bc4..1ff476da3 100644
--- a/perllib/FixMyStreet/SendReport/Email.pm
+++ b/perllib/FixMyStreet/SendReport/Email.pm
@@ -11,36 +11,36 @@ sub build_recipient_list {
my %recips;
my $all_confirmed = 1;
- foreach my $council ( keys %{ $self->councils } ) {
+ foreach my $body ( @{ $self->bodies } ) {
my $contact = FixMyStreet::App->model("DB::Contact")->find( {
deleted => 0,
- area_id => $council,
+ body_id => $body->id,
category => $row->category
} );
- my ($council_email, $confirmed, $note) = ( $contact->email, $contact->confirmed, $contact->note );
+ my ($body_email, $confirmed, $note) = ( $contact->email, $contact->confirmed, $contact->note );
- $council_email = essex_contact($row->latitude, $row->longitude) if $council == 2225;
- $council_email = oxfordshire_contact($row->latitude, $row->longitude) if $council == 2237 && $council_email eq 'SPECIAL';
+ $body_email = essex_contact($row->latitude, $row->longitude) if $body->areas->{2225};
+ $body_email = oxfordshire_contact($row->latitude, $row->longitude) if $body->areas->{2237} && $body_email eq 'SPECIAL';
unless ($confirmed) {
$all_confirmed = 0;
- $note = 'Council ' . $row->council . ' deleted'
+ $note = 'Body ' . $row->bodies_str . ' deleted'
unless $note;
- $council_email = 'N/A' unless $council_email;
- $self->unconfirmed_counts->{$council_email}{$row->category}++;
- $self->unconfirmed_notes->{$council_email}{$row->category} = $note;
+ $body_email = 'N/A' unless $body_email;
+ $self->unconfirmed_counts->{$body_email}{$row->category}++;
+ $self->unconfirmed_notes->{$body_email}{$row->category} = $note;
}
# see something uses council areas but doesn't send to councils so just use a
# generic name here to minimise confusion
if ( $row->cobrand eq 'seesomething' ) {
- push @{ $self->to }, [ $council_email, 'See Something, Say Something' ];
+ push @{ $self->to }, [ $body_email, 'See Something, Say Something' ];
} else {
- push @{ $self->to }, [ $council_email, $self->councils->{ $council }->{info}->{name} ];
+ push @{ $self->to }, [ $body_email, $body->name ];
}
- $recips{$council_email} = 1;
+ $recips{$body_email} = 1;
}
return () unless $all_confirmed;
@@ -51,7 +51,7 @@ sub get_template {
my ( $self, $row ) = @_;
my $template = 'submit.txt';
- $template = 'submit-brent.txt' if $row->council eq 2488 || $row->council eq 2237;
+ $template = 'submit-brent.txt' if $row->bodies_str eq 2488 || $row->bodies_str eq 2237;
my $template_path = FixMyStreet->path_to( "templates", "email", $row->cobrand, $row->lang, $template )->stringify;
$template_path = FixMyStreet->path_to( "templates", "email", $row->cobrand, $template )->stringify
unless -e $template_path;
@@ -61,14 +61,19 @@ sub get_template {
return $template;
}
+sub send_from {
+ my ( $self, $row ) = @_;
+ return [ $row->user->email, $row->name ];
+}
+
sub send {
my $self = shift;
my ( $row, $h ) = @_;
my @recips = $self->build_recipient_list( $row, $h );
- # on a staging server send emails to ourselves rather than the councils
- if (mySociety::Config::get('STAGING_SITE') && !FixMyStreet->test_mode) {
+ # on a staging server send emails to ourselves rather than the bodies
+ if (mySociety::Config::get('STAGING_SITE') && !mySociety::Config::get('SEND_REPORTS_ON_STAGING') && !FixMyStreet->test_mode) {
@recips = ( mySociety::Config::get('CONTACT_EMAIL') );
}
@@ -83,7 +88,7 @@ sub send {
_template_ => $self->get_template( $row ),
_parameters_ => $h,
To => $self->to,
- From => [ $row->user->email, $row->name ],
+ From => $self->send_from( $row ),
},
mySociety::Config::get('CONTACT_EMAIL'),
\@recips,
diff --git a/perllib/FixMyStreet/SendReport/EmptyHomes.pm b/perllib/FixMyStreet/SendReport/EmptyHomes.pm
index 4a6f058fe..b29c1fd3c 100644
--- a/perllib/FixMyStreet/SendReport/EmptyHomes.pm
+++ b/perllib/FixMyStreet/SendReport/EmptyHomes.pm
@@ -3,6 +3,8 @@ package FixMyStreet::SendReport::EmptyHomes;
use Moose;
use namespace::autoclean;
+use mySociety::MaPit;
+
BEGIN { extends 'FixMyStreet::SendReport::Email'; }
sub build_recipient_list {
@@ -10,28 +12,29 @@ sub build_recipient_list {
my %recips;
my $all_confirmed = 1;
- foreach my $council ( keys %{ $self->councils } ) {
+ foreach my $body ( @{ $self->bodies } ) {
my $contact = FixMyStreet::App->model("DB::Contact")->find( {
deleted => 0,
- area_id => $council,
+ body_id => $body->id,
category => 'Empty property',
} );
- my ($council_email, $confirmed, $note) = ( $contact->email, $contact->confirmed, $contact->note );
+ my ($body_email, $confirmed, $note) = ( $contact->email, $contact->confirmed, $contact->note );
unless ($confirmed) {
$all_confirmed = 0;
- #$note = 'Council ' . $row->council . ' deleted'
+ #$note = 'Council ' . $row->body . ' deleted'
#unless $note;
- $council_email = 'N/A' unless $council_email;
- #$notgot{$council_email}{$row->category}++;
- #$note{$council_email}{$row->category} = $note;
+ $body_email = 'N/A' unless $body_email;
+ #$notgot{$body_email}{$row->category}++;
+ #$note{$body_email}{$row->category} = $note;
}
- push @{ $self->to }, [ $council_email, $self->councils->{ $council }->{ info }->{name} ];
- $recips{$council_email} = 1;
+ push @{ $self->to }, [ $body_email, $body->name ];
+ $recips{$body_email} = 1;
- my $country = $self->councils->{$council}->{country};
+ my $area_info = mySociety::MaPit::call('area', $body->area_id);
+ my $country = $area_info->{country};
if ($country eq 'W') {
$recips{ 'shelter@' . mySociety::Config::get('EMAIL_DOMAIN') } = 1;
} else {
diff --git a/perllib/FixMyStreet/SendReport/NI.pm b/perllib/FixMyStreet/SendReport/NI.pm
index 810ee60e2..e0ea24f9c 100644
--- a/perllib/FixMyStreet/SendReport/NI.pm
+++ b/perllib/FixMyStreet/SendReport/NI.pm
@@ -9,10 +9,10 @@ sub build_recipient_list {
my %recips;
my $all_confirmed = 1;
- foreach my $council ( keys %{ $self->councils } ) {
+ foreach my $body ( @{ $self->bodies } ) {
my $contact = FixMyStreet::App->model("DB::Contact")->find( {
deleted => 0,
- area_id => $council,
+ body_id => $body->id,
category => $row->category
} );
@@ -23,10 +23,10 @@ sub build_recipient_list {
$email = 'N/A' unless $email;
}
- my $name = $self->councils->{$council}->{info}->{name};
+ my $name = $body->name;
if ( $email =~ /^roads.([^@]*)\@drdni/ ) {
$name = "Roads Service (\u$1)";
- $h->{councils_name} = $name;
+ $h->{bodies_name} = $name;
$row->external_body( 'Roads Service' );
}
push @{ $self->to }, [ $email, $name ];
diff --git a/perllib/FixMyStreet/SendReport/Open311.pm b/perllib/FixMyStreet/SendReport/Open311.pm
index 93b96ce00..1b79bcc99 100644
--- a/perllib/FixMyStreet/SendReport/Open311.pm
+++ b/perllib/FixMyStreet/SendReport/Open311.pm
@@ -30,8 +30,8 @@ sub send {
my $result = -1;
- foreach my $council ( keys %{ $self->councils } ) {
- my $conf = $self->councils->{$council}->{config};
+ foreach my $body ( @{ $self->bodies } ) {
+ my $conf = $self->body_config->{ $body->id };
my $always_send_latlong = 1;
my $send_notpinpointed = 0;
@@ -39,8 +39,13 @@ sub send {
my $extended_desc = 1;
+ # To rollback temporary changes made by this function
+ my $revert = 0;
+
# Extra bromley fields
- if ( $row->council =~ /2482/ ) {
+ if ( $row->bodies_str == 2482 ) {
+
+ $revert = 1;
my $extra = $row->extra;
if ( $row->used_map || ( !$row->used_map && !$row->postcode ) ) {
@@ -88,7 +93,7 @@ sub send {
# FIXME: we've already looked this up before
my $contact = FixMyStreet::App->model("DB::Contact")->find( {
deleted => 0,
- area_id => $conf->area_id,
+ body_id => $body->id,
category => $row->category
} );
@@ -103,31 +108,32 @@ sub send {
);
# non standard west berks end points
- if ( $row->council =~ /2619/ ) {
+ if ( $row->bodies_str =~ /2619/ ) {
$open311->endpoints( { services => 'Services', requests => 'Requests' } );
}
# non-standard Oxfordshire endpoint (because it's just a script, not a full Open311 service)
if ( $row->council =~ /$COUNCIL_ID_OXFORDSHIRE/ ) {
$open311->endpoints( { requests => 'open311_service_request.cgi' } );
+ $revert = 1;
}
# required to get round issues with CRM constraints
- if ( $row->council =~ /2218/ ) {
+ if ( $row->bodies_str =~ /2218/ ) {
$row->user->name( $row->user->id . ' ' . $row->user->name );
+ $revert = 1;
}
if ($row->cobrand eq 'fixmybarangay') {
# FixMyBarangay endpoints expect external_id as an attribute, as do Oxfordshire
$row->extra( [ { 'name' => 'external_id', 'value' => $row->id } ] );
+ $revert = 1;
}
my $resp = $open311->send_service_request( $row, $h, $contact->email );
# make sure we don't save user changes from above
- if ( $row->council =~ /(2218|2482|$COUNCIL_ID_OXFORDSHIRE)/ || $row->cobrand eq 'fixmybarangay') {
- $row->discard_changes();
- }
+ $row->discard_changes() if $revert;
if ( $resp ) {
$row->external_id( $resp );
@@ -150,7 +156,7 @@ sub send {
} else {
$result *= 1;
# temporary fix to resolve some issues with west berks
- if ( $row->council =~ /2619/ ) {
+ if ( $row->bodies_str =~ /2619/ ) {
$result *= 0;
}
}
diff --git a/perllib/FixMyStreet/SendReport/Zurich.pm b/perllib/FixMyStreet/SendReport/Zurich.pm
new file mode 100644
index 000000000..e0c95283e
--- /dev/null
+++ b/perllib/FixMyStreet/SendReport/Zurich.pm
@@ -0,0 +1,58 @@
+package FixMyStreet::SendReport::Zurich;
+
+use Moose;
+
+BEGIN { extends 'FixMyStreet::SendReport::Email'; }
+
+sub build_recipient_list {
+ my ( $self, $row, $h ) = @_;
+
+ # Only one body ever, most of the time with an email endpoint
+ my $body = @{ $self->bodies }[0];
+ $body = FixMyStreet::App->model("DB::Body")->find( { id => $row->external_body } )
+ if $row->external_body;
+ my $body_email = $body->endpoint;
+
+ my @bodies = $body->bodies;
+ if ($body->parent && @bodies) {
+ # Division, might have an individual contact email address
+ my $contact = FixMyStreet::App->model("DB::Contact")->find( {
+ body_id => $body->id,
+ category => $row->category
+ } );
+ $body_email = $contact->email if $contact && $contact->email;
+ }
+
+ push @{ $self->to }, [ $body_email, $body->name ];
+ return $body_email;
+}
+
+sub get_template {
+ my ( $self, $row ) = @_;
+
+ my $template;
+ if ( $row->state eq 'unconfirmed' || $row->state eq 'confirmed' ) {
+ $template = 'submit.txt';
+ } elsif ( $row->state eq 'in progress' ) {
+ $template = 'submit-in-progress.txt';
+ } elsif ( $row->state eq 'planned' ) {
+ $template = 'submit-feedback-pending.txt';
+ } elsif ( $row->state eq 'closed' ) {
+ $template = 'submit-external.txt';
+ if ( $row->extra->{third_personal} ) {
+ $template = 'submit-external-personal.txt';
+ }
+ }
+
+ my $template_path = FixMyStreet->path_to( "templates", "email", "zurich", $template )->stringify;
+ $template = Utils::read_file( $template_path );
+ return $template;
+}
+
+# Zurich emails come from the site itself
+sub send_from {
+ my ( $self, $row ) = @_;
+ return [ FixMyStreet->config('CONTACT_EMAIL'), FixMyStreet->config('CONTACT_NAME') ];
+}
+
+1;
diff --git a/perllib/FixMyStreet/TestMech.pm b/perllib/FixMyStreet/TestMech.pm
index 7f81c0fc2..addbb1752 100644
--- a/perllib/FixMyStreet/TestMech.pm
+++ b/perllib/FixMyStreet/TestMech.pm
@@ -519,11 +519,11 @@ sub get_ok_json {
return decode_json( $res->content );
}
-sub delete_problems_for_council {
+sub delete_problems_for_body {
my $mech = shift;
- my $council = shift;
+ my $body = shift;
- my $reports = FixMyStreet::App->model('DB::Problem')->search( { council => $council } );
+ my $reports = FixMyStreet::App->model('DB::Problem')->search( { bodies_str => $body } );
if ( $reports ) {
for my $r ( $reports->all ) {
$r->comments->delete;
@@ -532,8 +532,26 @@ sub delete_problems_for_council {
}
}
-sub create_problems_for_council {
- my ( $mech, $count, $council, $title, $params ) = @_;
+sub create_body_ok {
+ my $self = shift;
+ my ( $id, $name ) = @_;
+
+ my $params = { id => $id, name => $name };
+ my $body = FixMyStreet::App->model('DB::Body')->find_or_create($params);
+ $body->update($params); # Make sure
+ ok $body, "found/created user for $id $name";
+
+ FixMyStreet::App->model('DB::BodyArea')->find_or_create({
+ area_id => $id,
+ body_id => $id,
+ });
+
+ return $body;
+
+}
+
+sub create_problems_for_body {
+ my ( $mech, $count, $body, $title, $params ) = @_;
my $dt = $params->{dt} || DateTime->now();
@@ -549,11 +567,11 @@ sub create_problems_for_council {
while ($count) {
my $default_params = {
postcode => 'SW1A 1AA',
- council => $council,
+ bodies_str => $body,
areas => ',105255,11806,11828,2247,2504,',
category => 'Other',
- title => "$title Test $count for $council",
- detail => "$title Test $count for $council Detail",
+ title => "$title Test $count for $body",
+ detail => "$title Test $count for $body Detail",
used_map => 't',
name => 'Test User',
anonymous => 'f',
diff --git a/perllib/Open311/GetServiceRequestUpdates.pm b/perllib/Open311/GetServiceRequestUpdates.pm
index a97c4c379..e4416f792 100644
--- a/perllib/Open311/GetServiceRequestUpdates.pm
+++ b/perllib/Open311/GetServiceRequestUpdates.pm
@@ -5,7 +5,6 @@ use Open311;
use FixMyStreet::App;
use DateTime::Format::W3CDTF;
-has council_list => ( is => 'ro' );
has system_user => ( is => 'rw' );
has start_date => ( is => 'ro', default => undef );
has end_date => ( is => 'ro', default => undef );
@@ -18,7 +17,7 @@ Readonly::Scalar my $AREA_ID_OXFORDSHIRE => 2237;
sub fetch {
my $self = shift;
- my $councils = FixMyStreet::App->model('DB::Open311Conf')->search(
+ my $bodies = FixMyStreet::App->model('DB::Body')->search(
{
send_method => 'Open311',
send_comments => 1,
@@ -27,34 +26,34 @@ sub fetch {
}
);
- while ( my $council = $councils->next ) {
+ while ( my $body = $bodies->next ) {
my $o = Open311->new(
- endpoint => $council->endpoint,
- api_key => $council->api_key,
- jurisdiction => $council->jurisdiction,
+ endpoint => $body->endpoint,
+ api_key => $body->api_key,
+ jurisdiction => $body->jurisdiction,
);
# custom endpoint URLs because these councils have non-standard paths
- if ( $council->area_id =~ /\b$AREA_ID_BROMLEY\b/o ) {
+ if ( $body->areas->{$AREA_ID_BROMLEY} ) {
my $endpoints = $o->endpoints;
$endpoints->{update} = 'update.xml';
$endpoints->{service_request_updates} = 'update.xml';
$o->endpoints( $endpoints );
- } elsif ($council->area_id =~/\b$AREA_ID_OXFORDSHIRE\b/o) {
+ } elsif ( $body->areas->{$AREA_ID_OXFORDSHIRE} ) {
my $endpoints = $o->endpoints;
$endpoints->{service_request_updates} = 'open311_service_request_update.cgi';
$o->endpoints( $endpoints );
}
- $self->suppress_alerts( $council->suppress_alerts );
- $self->system_user( $council->comment_user );
- $self->update_comments( $o, { areaid => $council->area_id }, );
+ $self->suppress_alerts( $body->suppress_alerts );
+ $self->system_user( $body->comment_user );
+ $self->update_comments( $o, { areas => $body->areas }, );
}
}
sub update_comments {
- my ( $self, $open311, $council_details ) = @_;
+ my ( $self, $open311, $body_details ) = @_;
my @args = ();
@@ -64,7 +63,7 @@ sub update_comments {
push @args, $self->start_date;
push @args, $self->end_date;
# default to asking for last 2 hours worth if not Bromley
- } elsif ( $council_details->{areaid} != $AREA_ID_BROMLEY ) {
+ } elsif ( ! $body_details->{areas}->{$AREA_ID_BROMLEY} ) {
my $end_dt = DateTime->now();
my $start_dt = $end_dt->clone;
$start_dt->add( hours => -2 );
@@ -76,7 +75,7 @@ sub update_comments {
my $requests = $open311->get_service_request_updates( @args );
unless ( $open311->success ) {
- warn "Failed to fetch ServiceRequest Updates for " . $council_details->{areaid} . ":\n" . $open311->error
+ warn "Failed to fetch ServiceRequest Updates for " . join(",", keys %{$body_details->{areas}}) . ":\n" . $open311->error
if $self->verbose;
return 0;
}
@@ -93,7 +92,8 @@ sub update_comments {
if ($open311->jurisdiction =~ /^fixmybarangay_(dps|dpwh|depw)$/i) { # use jurisdiction (not area_id) for FMB bodies
$criteria->{ external_body } = uc $1;
} else {
- $criteria->{ council } = { like => '%' . $council_details->{areaid} . '%' };
+ # XXX This assumes that areas will actually only be one area.
+ $criteria->{ bodies_str } = { like => '%' . join(",", keys %{$body_details->{areas}}) . '%' };
}
$problem = FixMyStreet::App->model('DB::Problem')->search( $criteria );
diff --git a/perllib/Open311/GetUpdates.pm b/perllib/Open311/GetUpdates.pm
deleted file mode 100644
index 5d5291d47..000000000
--- a/perllib/Open311/GetUpdates.pm
+++ /dev/null
@@ -1,82 +0,0 @@
-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
index 9331bb5b2..57ef90ecb 100644
--- a/perllib/Open311/PopulateServiceList.pm
+++ b/perllib/Open311/PopulateServiceList.pm
@@ -6,34 +6,34 @@ use XML::Simple;
use FixMyStreet::App;
use Open311;
-has council_list => ( is => 'ro' );
+has bodies => ( is => 'ro' );
has found_contacts => ( is => 'rw', default => sub { [] } );
has verbose => ( is => 'ro', default => 0 );
-has _current_council => ( is => 'rw' );
+has _current_body => ( is => 'rw' );
has _current_open311 => ( is => 'rw' );
has _current_service => ( is => 'rw' );
-my $council_list = FixMyStreet::App->model('DB::Open311conf');
+my $bodies = FixMyStreet::App->model('DB::Body');
-sub process_councils {
+sub process_bodies {
my $self = shift;
- while ( my $council = $self->council_list->next ) {
- next unless $council->endpoint;
- next unless lc($council->send_method) eq 'open311';
- next if $council->jurisdiction =~ /^fixmybarangay_\w+$/; # FMB depts. not using service discovery yet
- $self->_current_council( $council );
- $self->process_council;
+ while ( my $body = $self->bodies->next ) {
+ next unless $body->endpoint;
+ next unless lc($body->send_method) eq 'open311';
+ next if $body->jurisdiction =~ /^fixmybarangay_\w+$/; # FMB depts. not using service discovery yet
+ $self->_current_body( $body );
+ $self->process_body;
}
}
-sub process_council {
+sub process_body {
my $self = shift;
my $open311 = Open311->new(
- endpoint => $self->_current_council->endpoint,
- jurisdiction => $self->_current_council->jurisdiction,
- api_key => $self->_current_council->api_key
+ endpoint => $self->_current_body->endpoint,
+ jurisdiction => $self->_current_body->jurisdiction,
+ api_key => $self->_current_body->api_key
);
$self->_current_open311( $open311 );
@@ -41,8 +41,9 @@ sub process_council {
my $list = $open311->get_service_list;
unless ( $list ) {
- my $id = $self->_current_council->area_id;
- warn "Council $id - http://mapit.mysociety.org/area/$id.html - did not return a service list\n"
+ my $id = $self->_current_body->id;
+ my $areas = join( ",", keys %{$self->_current_body->areas} );
+ warn "Body $id for areas $areas - http://mapit.mysociety.org/areas/$areas.html - did not return a service list\n"
if $self->verbose >= 1;
return;
}
@@ -55,7 +56,7 @@ sub _check_endpoints {
my $self = shift;
# west berks end point not standard
- if ( $self->_current_council->area_id == 2619 ) {
+ if ( $self->_current_body->areas->{2619} ) {
$self->_current_open311->endpoints(
{
services => 'Services',
@@ -81,14 +82,14 @@ sub process_services {
sub process_service {
my $self = shift;
- my $category = $self->_current_council->area_id == 2218 ?
- $self->_current_service->{description} :
+ my $category = $self->_current_body->areas->{2218} ?
+ $self->_current_service->{description} :
$self->_current_service->{service_name};
print $self->_current_service->{service_code} . ': ' . $category . "\n" if $self->verbose >= 2;
my $contacts = FixMyStreet::App->model( 'DB::Contact')->search(
{
- area_id => $self->_current_council->area_id,
+ body_id => $self->_current_body->id,
-OR => [
email => $self->_current_service->{service_code},
category => $category,
@@ -125,7 +126,7 @@ sub _handle_existing_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 $self->verbose >= 2;
+ print $self->_current_body->id . " already has a contact for service code " . $self->_current_service->{service_code} . "\n" if $self->verbose >= 2;
if ( $contact->deleted || $service_name ne $contact->category || $self->_current_service->{service_code} ne $contact->email ) {
eval {
@@ -143,7 +144,7 @@ sub _handle_existing_contact {
};
if ( $@ ) {
- warn "Failed to update contact for service code " . $self->_current_service->{service_code} . " for council @{[$self->_current_council->area_id]}: $@\n"
+ warn "Failed to update contact for service code " . $self->_current_service->{service_code} . " for body @{[$self->_current_body->id]}: $@\n"
if $self->verbose >= 1;
return;
}
@@ -168,7 +169,7 @@ sub _create_contact {
$contact = FixMyStreet::App->model( 'DB::Contact')->create(
{
email => $self->_current_service->{service_code},
- area_id => $self->_current_council->area_id,
+ body_id => $self->_current_body->id,
category => $service_name,
confirmed => 1,
deleted => 0,
@@ -180,7 +181,7 @@ sub _create_contact {
};
if ( $@ ) {
- warn "Failed to create contact for service code " . $self->_current_service->{service_code} . " for council @{[$self->_current_council->area_id]}: $@\n"
+ warn "Failed to create contact for service code " . $self->_current_service->{service_code} . " for body @{[$self->_current_body->id]}: $@\n"
if $self->verbose >= 1;
return;
}
@@ -191,7 +192,7 @@ sub _create_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" if $self->verbose >= 2;
+ print "created contact for service code " . $self->_current_service->{service_code} . " for body @{[$self->_current_body->id]}\n" if $self->verbose >= 2;
}
}
@@ -210,7 +211,7 @@ sub _add_meta_to_contact {
if ( ! $meta_data->{attributes}->{attribute} ) {
warn sprintf( "Empty meta data for %s at %s",
$self->_current_service->{service_code},
- $self->_current_council->endpoint )
+ $self->_current_body->endpoint )
if $self->verbose;
return;
}
@@ -225,7 +226,7 @@ sub _add_meta_to_contact {
# we add these later on from bromley so don't list them here
# as we don't want to display them
- if ( $self->_current_council->area_id == 2482 ) {
+ if ( $self->_current_body->areas->{2482} ) {
my %ignore = map { $_ => 1 } qw/
service_request_id_ext
requested_datetime
@@ -256,8 +257,8 @@ sub _normalize_service_name {
# 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} :
+ my $service_name = $self->_current_body->areas->{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
@@ -272,7 +273,7 @@ sub _delete_contacts_not_in_service_list {
my $found_contacts = FixMyStreet::App->model( 'DB::Contact')->search(
{
email => { -not_in => $self->found_contacts },
- area_id => $self->_current_council->area_id,
+ body_id => $self->_current_body->id,
deleted => 0,
}
);
diff --git a/perllib/Utils.pm b/perllib/Utils.pm
index fa90620a0..04d973067 100644
--- a/perllib/Utils.pm
+++ b/perllib/Utils.pm
@@ -221,12 +221,11 @@ sub cleanup_text {
return $input;
}
-sub prettify_epoch {
- my ( $epoch, $type ) = @_;
+sub prettify_dt {
+ my ( $dt, $type ) = @_;
$type ||= '';
$type = 'short' if $type eq '1';
- my $dt = DateTime->from_epoch( epoch => $epoch, time_zone => 'local' );
$dt->set_time_zone( FixMyStreet->config('TIME_ZONE') )
if FixMyStreet->config('TIME_ZONE');
@@ -243,6 +242,8 @@ sub prettify_epoch {
$tt .= ', ' unless $type eq 'date';
if ($dt->strftime('%Y %U') eq $now->strftime('%Y %U')) {
$tt .= decode_utf8($dt->strftime('%A'));
+ } elsif ($type eq 'zurich') {
+ $tt .= decode_utf8($dt->strftime('%e. %B %Y'));
} elsif ($type eq 'short') {
$tt .= decode_utf8($dt->strftime('%e %b %Y'));
} elsif ($dt->strftime('%Y') eq $now->strftime('%Y')) {
diff --git a/t/app/controller/admin.t b/t/app/controller/admin.t
index 9ec15ec21..8963e417d 100644
--- a/t/app/controller/admin.t
+++ b/t/app/controller/admin.t
@@ -45,7 +45,7 @@ my $dt = DateTime->new(
my $report = FixMyStreet::App->model('DB::Problem')->find_or_create(
{
postcode => 'SW1A 1AA',
- council => '2504',
+ bodies_str => '2504',
areas => ',105255,11806,11828,2247,2504,',
category => 'Other',
title => 'Report to Edit',
@@ -84,7 +84,7 @@ subtest 'check summary counts' => sub {
my $problem_count = $problems->count;
$problems->update( { cobrand => '' } );
- FixMyStreet::App->model('DB::Problem')->search( { council => 2489 } )->update( { council => 1 } );
+ FixMyStreet::App->model('DB::Problem')->search( { bodies_str => 2489 } )->update( { bodies_str => 1 } );
my $q = FixMyStreet::App->model('DB::Questionnaire')->find_or_new( { problem => $report, });
$q->whensent( \'ms_current_timestamp()' );
@@ -118,7 +118,7 @@ subtest 'check summary counts' => sub {
my ($num_alerts) = $mech->content =~ /(\d+) confirmed alerts/;
my ($num_qs) = $mech->content =~ /(\d+) questionnaires sent/;
- $report->council(2489);
+ $report->bodies_str(2489);
$report->cobrand('barnet');
$report->update;
@@ -131,7 +131,7 @@ subtest 'check summary counts' => sub {
$mech->content_contains( ($num_alerts+1) . " confirmed alerts" );
$mech->content_contains( ($num_qs+1) . " questionnaires sent" );
- $report->council(2504);
+ $report->bodies_str(2504);
$report->cobrand('');
$report->update;
@@ -139,28 +139,30 @@ subtest 'check summary counts' => sub {
$alert->update;
}
- FixMyStreet::App->model('DB::Problem')->search( { council => 1 } )->update( { council => 2489 } );
+ FixMyStreet::App->model('DB::Problem')->search( { bodies_str => 1 } )->update( { bodies_str => 2489 } );
ok $mech->host('fixmystreet.com');
};
my $host = FixMyStreet->config('BASE_URL');
-$mech->get_ok('/admin/council_contacts/2650');
+
+my $body = $mech->create_body_ok(2650, 'Aberdeen City Council');
+$mech->get_ok('/admin/body/2650');
$mech->content_contains('Aberdeen City Council');
$mech->content_like(qr{AB\d\d});
$mech->content_contains("$host/around");
subtest 'check contact creation' => sub {
my $contact = FixMyStreet::App->model('DB::Contact')->search(
- { area_id => 2650, category => [ 'test category', 'test/category' ] }
+ { body_id => 2650, category => [ 'test category', 'test/category' ] }
);
$contact->delete_all;
my $history = FixMyStreet::App->model('DB::ContactsHistory')->search(
- { area_id => 2650, category => [ 'test category', 'test/category' ] }
+ { body_id => 2650, category => [ 'test category', 'test/category' ] }
);
$history->delete_all;
- $mech->get_ok('/admin/council_contacts/2650');
+ $mech->get_ok('/admin/body/2650');
$mech->submit_form_ok( { with_fields => {
category => 'test category',
@@ -190,12 +192,12 @@ subtest 'check contact creation' => sub {
note => 'test/note',
non_public => 'on',
} } );
- $mech->get_ok('/admin/council_edit/2650/test/category');
+ $mech->get_ok('/admin/body_edit/2650/test/category');
};
subtest 'check contact editing' => sub {
- $mech->get_ok('/admin/council_edit/2650/test%20category');
+ $mech->get_ok('/admin/body_edit/2650/test%20category');
$mech->submit_form_ok( { with_fields => {
email => 'test2@example.com',
@@ -216,31 +218,29 @@ subtest 'check contact editing' => sub {
$mech->content_contains( '<td>Non Public' );
- $mech->get_ok('/admin/council_edit/2650/test%20category');
+ $mech->get_ok('/admin/body_edit/2650/test%20category');
$mech->content_contains( '<td><strong>test2@example.com' );
};
subtest 'check contact updating' => sub {
- $mech->get_ok('/admin/council_edit/2650/test%20category');
+ $mech->get_ok('/admin/body_edit/2650/test%20category');
$mech->content_like(qr{test2\@example.com</strong>[^<]*</td>[^<]*<td>No}s);
- $mech->get_ok('/admin/council_contacts/2650');
+ $mech->get_ok('/admin/body/2650');
$mech->form_number( 1 );
$mech->tick( 'confirmed', 'test category' );
$mech->submit_form_ok({form_number => 1});
$mech->content_like(qr'test2@example.com</td>[^<]*<td>Yes's);
- $mech->get_ok('/admin/council_edit/2650/test%20category');
+ $mech->get_ok('/admin/body_edit/2650/test%20category');
$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;
+$body->update({ send_method => undef });
subtest 'check open311 configuring' => sub {
- $mech->get_ok('/admin/council_contacts/2650/');
+ $mech->get_ok('/admin/body/2650');
$mech->content_lacks('Council contacts configured via Open311');
$mech->form_number(3);
@@ -258,11 +258,7 @@ subtest 'check open311 configuring' => sub {
$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;
+ my $conf = FixMyStreet::App->model('DB::Body')->find( 2650 );
is $conf->endpoint, 'http://example.com/open311', 'endpoint configured';
is $conf->api_key, 'api key', 'api key configured';
is $conf->jurisdiction, 'mySociety', 'jurisdiction configures';
@@ -282,18 +278,14 @@ subtest 'check open311 configuring' => sub {
$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;
+ $conf = FixMyStreet::App->model('DB::Body')->find( 2650 );
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');
+ $mech->get_ok('/admin/body/2650?text=1');
is $mech->content_type, 'text/plain';
$mech->content_contains('test category');
};
@@ -845,6 +837,8 @@ for my $test (
};
}
+$mech->create_body_ok(2504, 'Westminster City Council');
+
for my $test (
{
desc => 'user is problem owner',
@@ -853,17 +847,17 @@ for my $test (
update_fixed => 0,
update_reopen => 0,
update_state => undef,
- user_council => undef,
+ user_body => undef,
content => 'user is problem owner',
},
{
- desc => 'user is council user',
+ desc => 'user is body user',
problem_user => $user,
update_user => $user2,
update_fixed => 0,
update_reopen => 0,
update_state => undef,
- user_council => 2504,
+ user_body => 2504,
content => 'user is from same council as problem - 2504',
},
{
@@ -873,7 +867,7 @@ for my $test (
update_fixed => 0,
update_reopen => 0,
update_state => 'planned',
- user_council => 2504,
+ user_body => 2504,
content => 'Update changed problem state to planned',
},
{
@@ -883,7 +877,7 @@ for my $test (
update_fixed => 1,
update_reopen => 0,
update_state => undef,
- user_council => undef,
+ user_body => undef,
content => 'Update marked problem as fixed',
},
{
@@ -893,7 +887,7 @@ for my $test (
update_fixed => 0,
update_reopen => 1,
update_state => undef,
- user_council => undef,
+ user_body => undef,
content => 'Update reopened problem',
},
) {
@@ -907,7 +901,7 @@ for my $test (
$update->mark_open( $test->{update_reopen} );
$update->update;
- $test->{update_user}->from_council( $test->{user_council} );
+ $test->{update_user}->from_body( $test->{user_body} );
$test->{update_user}->update;
$mech->get_ok('/admin/update_edit/' . $update->id );
@@ -1033,14 +1027,14 @@ subtest 'report search' => sub {
$update->user($report->user);
$update->update;
- $mech->get_ok('/admin/search_reports');
- $mech->get_ok('/admin/search_reports?search=' . $report->id );
+ $mech->get_ok('/admin/reports');
+ $mech->get_ok('/admin/reports?search=' . $report->id );
$mech->content_contains( $report->title );
my $r_id = $report->id;
$mech->content_like( qr{href="http://[^/]*[^.]/report/$r_id/">$r_id</a>} );
- $mech->get_ok('/admin/search_reports?search=' . $report->user->email);
+ $mech->get_ok('/admin/reports?search=' . $report->user->email);
my $u_id = $update->id;
$mech->content_like( qr{href="http://[^/]*[^.]/report/$r_id/">$r_id</a>} );
@@ -1049,25 +1043,25 @@ subtest 'report search' => sub {
$update->state('hidden');
$update->update;
- $mech->get_ok('/admin/search_reports?search=' . $report->user->email);
+ $mech->get_ok('/admin/reports?search=' . $report->user->email);
$mech->content_like( qr{<tr [^>]*hidden[^>]*> \s* <td> \s* $u_id \s* </td>}xs );
$report->state('hidden');
$report->update;
- $mech->get_ok('/admin/search_reports?search=' . $report->user->email);
+ $mech->get_ok('/admin/reports?search=' . $report->user->email);
$mech->content_like( qr{<tr [^>]*hidden[^>]*> \s* <td> \s* $r_id \s* </td>}xs );
$report->state('fixed - user');
$report->update;
- $mech->get_ok('/admin/search_reports?search=' . $report->user->email);
+ $mech->get_ok('/admin/reports?search=' . $report->user->email);
$mech->content_like( qr{href="http://[^/]*[^.]/report/$r_id/">$r_id</a>} );
};
subtest 'search abuse' => sub {
- $mech->get_ok( '/admin/search_users?search=example' );
- $mech->content_like(qr/test4\@example.com.*\n.*\n.*Email in abuse table/);
+ $mech->get_ok( '/admin/users?search=example' );
+ $mech->content_like(qr{test4\@example.com.*</td>\s*<td>.*?</td>\s*<td>\(Email in abuse table});
};
subtest 'show flagged entries' => sub {
@@ -1077,27 +1071,29 @@ subtest 'show flagged entries' => sub {
$user->flagged( 1 );
$user->update;
- $mech->get_ok('/admin/list_flagged');
+ $mech->get_ok('/admin/flagged');
$mech->content_contains( $report->title );
$mech->content_contains( $user->email );
};
+$mech->create_body_ok(2509, 'Haringey Borough Council');
+
subtest 'user search' => sub {
- $mech->get_ok('/admin/search_users');
- $mech->get_ok('/admin/search_users?search=' . $user->name);
+ $mech->get_ok('/admin/users');
+ $mech->get_ok('/admin/users?search=' . $user->name);
$mech->content_contains( $user->name);
my $u_id = $user->id;
$mech->content_like( qr{user_edit/$u_id">Edit</a>} );
- $mech->get_ok('/admin/search_users?search=' . $user->email);
+ $mech->get_ok('/admin/users?search=' . $user->email);
$mech->content_like( qr{user_edit/$u_id">Edit</a>} );
- $user->from_council(2509);
+ $user->from_body(2509);
$user->update;
- $mech->get_ok('/admin/search_users?search=2509' );
- $mech->content_contains(2509);
+ $mech->get_ok('/admin/users?search=2509' );
+ $mech->content_contains('Haringey');
};
$log_entries = FixMyStreet::App->model('DB::AdminLog')->search(
@@ -1115,13 +1111,15 @@ is $log_entries->count, 0, 'no admin log entries';
$user->flagged( 0 );
$user->update;
+$mech->create_body_ok(2607, 'Southend-on-Sea Borough Council');
+
for my $test (
{
desc => 'edit user name',
fields => {
name => 'Test User',
email => 'test@example.com',
- council => 2509,
+ body => 2509,
flagged => undef,
},
changes => {
@@ -1135,7 +1133,7 @@ for my $test (
fields => {
name => 'Changed User',
email => 'test@example.com',
- council => 2509,
+ body => 2509,
flagged => undef,
},
changes => {
@@ -1145,15 +1143,15 @@ for my $test (
log_entries => [qw/edit edit/],
},
{
- desc => 'edit user council',
+ desc => 'edit user body',
fields => {
name => 'Changed User',
email => 'changed@example.com',
- council => 2509,
+ body => 2509,
flagged => undef,
},
changes => {
- council => 2607,
+ body => 2607,
},
log_count => 3,
log_entries => [qw/edit edit edit/],
@@ -1163,7 +1161,7 @@ for my $test (
fields => {
name => 'Changed User',
email => 'changed@example.com',
- council => 2607,
+ body => 2607,
flagged => undef,
},
changes => {
@@ -1177,7 +1175,7 @@ for my $test (
fields => {
name => 'Changed User',
email => 'changed@example.com',
- council => 2607,
+ body => 2607,
flagged => 'on',
},
changes => {
diff --git a/t/app/controller/alert_new.t b/t/app/controller/alert_new.t
index c849b9485..6f130279b 100644
--- a/t/app/controller/alert_new.t
+++ b/t/app/controller/alert_new.t
@@ -382,7 +382,7 @@ subtest "Test normal alert signups and that alerts are sent" => sub {
my $report_time = '2011-03-01 12:00:00';
my $report = FixMyStreet::App->model('DB::Problem')->find_or_create( {
postcode => 'EH1 1BB',
- council => '2651',
+ bodies_str => '2651',
areas => ',11808,135007,14419,134935,2651,20728,',
category => 'Street lighting',
title => 'Testing',
@@ -532,7 +532,7 @@ for my $test (
my $report = FixMyStreet::App->model('DB::Problem')->find_or_create( {
postcode => 'EH1 1BB',
- council => '2651',
+ bodies_str => '2651',
areas => ',11808,135007,14419,134935,2651,20728,',
category => 'Street lighting',
title => 'Alert test for non public reports',
@@ -590,7 +590,7 @@ subtest 'check new updates alerts for non public reports only go to report owner
my $report = FixMyStreet::App->model('DB::Problem')->find_or_create( {
postcode => 'EH1 1BB',
- council => '2651',
+ bodies_str => '2651',
areas => ',11808,135007,14419,134935,2651,20728,',
category => 'Street lighting',
title => 'Alert test for non public reports',
diff --git a/t/app/controller/around.t b/t/app/controller/around.t
index d973543ce..0f01a9ea9 100644
--- a/t/app/controller/around.t
+++ b/t/app/controller/around.t
@@ -90,7 +90,7 @@ subtest 'check non public reports are not displayed on around page' => sub {
longitude => -3.17492254484,
};
my @edinburgh_problems =
- $mech->create_problems_for_council( 5, 2651, 'Around page', $params );
+ $mech->create_problems_for_body( 5, 2651, 'Around page', $params );
$mech->get_ok('/');
$mech->submit_form_ok( { with_fields => { pc => 'EH99 1SP' } },
diff --git a/t/app/controller/dashboard.t b/t/app/controller/dashboard.t
index 25e144464..091335040 100644
--- a/t/app/controller/dashboard.t
+++ b/t/app/controller/dashboard.t
@@ -12,6 +12,8 @@ my $test_pass = 'password';
my $test_council = 2651;
my $test_ward = 20723;
+$mech->create_body_ok($test_council, 'City of Edinburgh Council');
+
$mech->delete_user( $test_user );
my $user = FixMyStreet::App->model('DB::User')->create( {
email => $test_user,
@@ -33,7 +35,7 @@ $mech->submit_form(
is $mech->status, '404', 'If not council user get 404';
-$user->from_council( $test_council );
+$user->from_body( $test_council );
$user->update;
$mech->log_out_ok;
@@ -44,7 +46,7 @@ $mech->submit_form_ok( {
$mech->content_contains( 'City of Edinburgh' );
-FixMyStreet::App->model('DB::Contact')->search( { area_id => $test_council } )
+FixMyStreet::App->model('DB::Contact')->search( { body_id => $test_council } )
->delete;
delete_problems();
@@ -53,7 +55,7 @@ my @cats = qw( Grafitti Litter Potholes Other );
for my $contact ( @cats ) {
FixMyStreet::App->model('DB::Contact')->create(
{
- area_id => $test_council,
+ body_id => $test_council,
category => $contact,
email => "$contact\@example.org",
confirmed => 1,
@@ -608,7 +610,7 @@ sub make_problem {
confirmed => $args->{conf_dt},
whensent => $args->{conf_dt},
lastupdate => $args->{mark_dt} || $args->{conf_dt},
- council => $test_council,
+ bodies_str => $test_council,
postcode => 'EH99 1SP',
latitude => '51',
longitude => '1',
@@ -662,10 +664,10 @@ sub check_report_counts {
sub delete_problems {
FixMyStreet::App->model('DB::Comment')
- ->search( { 'problem.council' => $test_council }, { join => 'problem' } )
+ ->search( { 'problem.bodies_str' => $test_council }, { join => 'problem' } )
->delete;
FixMyStreet::App->model('DB::Problem')
- ->search( { council => $test_council } )->delete();
+ ->search( { bodies_str => $test_council } )->delete();
}
done_testing;
diff --git a/t/app/controller/index.t b/t/app/controller/index.t
index 462b21064..47c08291f 100644
--- a/t/app/controller/index.t
+++ b/t/app/controller/index.t
@@ -55,12 +55,12 @@ subtest "does pc, (x,y), (e,n) or (lat,lon) go to /around" => sub {
}
};
-$mech->delete_problems_for_council( 2651 );
+$mech->delete_problems_for_body( 2651 );
my $problem_rs = FixMyStreet::App->model('DB::Problem');
my $num = $problem_rs->count;
-my @edinburgh_problems = $mech->create_problems_for_council(5, 2651, 'Front page');
+my @edinburgh_problems = $mech->create_problems_for_body(5, 2651, 'Front page');
is scalar @edinburgh_problems, 5, 'correct number of edinburgh problems created';
$mech->get_ok('/report/' . $edinburgh_problems[2]->id);
diff --git a/t/app/controller/json.t b/t/app/controller/json.t
index 468fa5b31..405a84821 100644
--- a/t/app/controller/json.t
+++ b/t/app/controller/json.t
@@ -45,9 +45,11 @@ is_deeply #
# put an entry in the database for this test
my $user = $mech->create_user_ok('test@example.com');
+my $body = $mech->create_body_ok(2501, 'Wandsworth Borough Council');
+
my $problem_args = {
postcode => 'sw1a 1aa',
- council => '2501',
+ bodies_str => '2501',
areas => ',105164,11806,11827,2247,2501,34817,42011,66045,70786,8519,',
category => 'test category',
title => 'Test title',
@@ -86,7 +88,7 @@ is_deeply #
'category' => 'test category',
'confirmed' => '2000-01-01 12:01:00',
'lastupdate' => '2000-01-01 12:00:00',
- 'council' => 'Wandsworth Borough Council',
+ 'bodies_str' => 'Wandsworth Borough Council',
'detail' => 'Test detail',
'id' => $problem->id,
'name' => 'Test Name',
@@ -103,7 +105,7 @@ is_deeply #
'category' => 'test category',
'confirmed' => '2000-01-01 12:02:00',
'lastupdate' => '2000-01-01 12:00:00',
- 'council' => 'Wandsworth Borough Council',
+ 'bodies_str' => 'Wandsworth Borough Council',
'detail' => 'Test detail',
'id' => $anon_problem->id,
'name' => '',
diff --git a/t/app/controller/questionnaire.t b/t/app/controller/questionnaire.t
index d8d1eb4f3..5c81a43d1 100644
--- a/t/app/controller/questionnaire.t
+++ b/t/app/controller/questionnaire.t
@@ -30,7 +30,7 @@ my $sent_time = $sent->ymd . ' ' . $sent->hms;
my $report = FixMyStreet::App->model('DB::Problem')->find_or_create(
{
postcode => 'EH1 1BB',
- council => '2651',
+ bodies_str => '2651',
areas => ',11808,135007,14419,134935,2651,20728,',
category => 'Street lighting',
title => 'Testing',
diff --git a/t/app/controller/report_display.t b/t/app/controller/report_display.t
index aa04e499b..a3c4edfc7 100644
--- a/t/app/controller/report_display.t
+++ b/t/app/controller/report_display.t
@@ -5,6 +5,7 @@ use Test::More;
use FixMyStreet::TestMech;
use Web::Scraper;
use Path::Class;
+use Test::LongString;
use DateTime;
my $mech = FixMyStreet::TestMech->new;
@@ -33,7 +34,7 @@ my $dt = DateTime->new(
my $report = FixMyStreet::App->model('DB::Problem')->find_or_create(
{
postcode => 'SW1A 1AA',
- council => '2504',
+ bodies_str => '2504',
areas => ',105255,11806,11828,2247,2504,',
category => 'Other',
title => 'Test 2',
@@ -94,6 +95,19 @@ subtest "change report to unconfirmed and check for 404 status" => sub {
ok $report->update( { state => 'confirmed' } ), 'confirm report again';
};
+
+subtest "Zurich unconfirmeds are 200" => sub {
+ if ( !FixMyStreet::Cobrand->exists('zurich') ) {
+ plan skip_all => 'Skipping Zurich test without Zurich cobrand';
+ }
+ $mech->host( 'zurich.fixmystreet.com' );
+ ok $report->update( { state => 'unconfirmed' } ), 'unconfirm report';
+ $mech->get_ok("/report/$report_id");
+ $mech->content_contains( 'This report is awaiting moderation' );
+ ok $report->update( { state => 'confirmed' } ), 'confirm report again';
+ $mech->host( 'www.fixmystreet.com' );
+};
+
subtest "change report to hidden and check for 410 status" => sub {
ok $report->update( { state => 'hidden' } ), 'hide report';
ok $mech->get("/report/$report_id"), "get '/report/$report_id'";
@@ -385,39 +399,111 @@ for my $test (
};
}
+subtest "Zurich banners are displayed correctly" => sub {
+ if ( !FixMyStreet::Cobrand->exists('zurich') ) {
+ plan skip_all => 'Skipping Zurich test without Zurich cobrand';
+ }
+ $mech->host( 'zurich.fixmystreet.com' );
+
+ for my $test (
+ {
+ description => 'new report',
+ state => 'unconfirmed',
+ banner_id => 'closed',
+ banner_text => 'Erfasst'
+ },
+ {
+ description => 'confirmed report',
+ state => 'confirmed',
+ banner_id => 'closed',
+ banner_text => 'Aufgenommen',
+ },
+ {
+ description => 'fixed report',
+ state => 'fixed - council',
+ banner_id => 'fixed',
+ banner_text => 'Erledigt',
+ },
+ {
+ description => 'closed report',
+ state => 'closed',
+ banner_id => 'fixed',
+ banner_text => 'Erledigt',
+ },
+ {
+ description => 'in progress report',
+ state => 'in progress',
+ banner_id => 'progress',
+ banner_text => 'In Bearbeitung',
+ },
+ {
+ description => 'planned report',
+ state => 'planned',
+ banner_id => 'progress',
+ banner_text => 'In Bearbeitung',
+ },
+ ) {
+ subtest "banner for $test->{description}" => sub {
+ $report->state( $test->{state} );
+ $report->update;
+
+ $mech->get_ok("/report/$report_id");
+ is $mech->uri->path, "/report/$report_id", "at /report/$report_id";
+ my $banner = $mech->extract_problem_banner;
+ if ( $banner->{text} ) {
+ $banner->{text} =~ s/^ //g;
+ $banner->{text} =~ s/ $//g;
+ }
+
+ is $banner->{id}, $test->{banner_id}, 'banner id';
+ if ($test->{banner_text}) {
+ like_string( $banner->{text}, qr/$test->{banner_text}/i, 'banner text is ' . $test->{banner_text} );
+ } else {
+ is $banner->{text}, $test->{banner_text}, 'banner text';
+ }
+
+ };
+ }
+
+ $mech->host( 'www.fixmystreet.com' );
+};
+
+$mech->create_body_ok(2504, 'Westminster City Council');
+$mech->create_body_ok(2505, 'Camden Borough Council');
+
for my $test (
{
desc => 'no state dropdown if user not from authority',
- from_council => 0,
+ from_body => undef,
no_state => 1,
- report_council => '2504',
+ report_body => '2504',
},
{
desc => 'state dropdown if user from authority',
- from_council => 2504,
+ from_body => 2504,
no_state => 0,
- report_council => '2504',
+ report_body => '2504',
},
{
- desc => 'no state dropdown if user not from same council as problem',
- from_council => 2505,
+ desc => 'no state dropdown if user not from same body as problem',
+ from_body => 2505,
no_state => 1,
- report_council => '2504',
+ report_body => '2504',
},
{
- desc => 'state dropdown if user from authority and problem sent to multiple councils',
- from_council => 2504,
+ desc => 'state dropdown if user from authority and problem sent to multiple bodies',
+ from_body => 2504,
no_state => 0,
- report_council => '2504,2506',
+ report_body => '2504,2506',
},
) {
subtest $test->{desc} => sub {
$mech->log_in_ok( $user->email );
- $user->from_council( $test->{from_council} );
+ $user->from_body( $test->{from_body} );
$user->update;
$report->discard_changes;
- $report->council( $test->{report_council} );
+ $report->bodies_str( $test->{report_body} );
$report->update;
$mech->get_ok("/report/$report_id");
@@ -431,7 +517,7 @@ for my $test (
}
$report->discard_changes;
-$report->council( 2504 );
+$report->bodies_str( 2504 );
$report->update;
# tidy up
diff --git a/t/app/controller/report_interest_count.t b/t/app/controller/report_interest_count.t
index dd44a83d4..bfd1a8d1f 100644
--- a/t/app/controller/report_interest_count.t
+++ b/t/app/controller/report_interest_count.t
@@ -16,11 +16,6 @@ my $user =
->find_or_create( { email => 'test@example.com', name => 'Test User' } );
ok $user, "created test user";
-my $user2 =
- FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'test2@example.com', name => 'Other User' } );
-ok $user2, "created test user";
-
my $dt = DateTime->new(
year => 2011,
month => 04,
@@ -33,7 +28,7 @@ my $dt = DateTime->new(
my $report = FixMyStreet::App->model('DB::Problem')->find_or_create(
{
postcode => 'SW1A 1AA',
- council => '2504',
+ bodies_str => '2504',
areas => ',105255,11806,11828,2247,2504,',
category => 'Other',
title => 'Test 2',
@@ -59,21 +54,24 @@ ok $report, "created test report - $report_id";
SKIP: {
skip( "Need 'fixmybarangay' in ALLOWED_COBRANDS config", 29 )
unless FixMyStreet::Cobrand->exists('fixmybarangay');
+
+ $mech->create_body_ok(2504, 'Westminster City Council');
+
for my $test (
{
- desc => 'if not from council then no supporter button',
- from_council => 0,
+ desc => 'if not from body then no supporter button',
+ from_body => undef,
support_string => 'No supporters',
},
{
- desc => 'from council user can increment supported count',
- from_council => 2504,
+ desc => 'from body user can increment supported count',
+ from_body => 2504,
support_string => 'No supporters',
updated_support => '1 supporter'
},
{
desc => 'correct grammar for more than one supporter',
- from_council => 2504,
+ from_body => 2504,
support_string => '1 supporter',
updated_support => '2 supporters'
},
@@ -81,17 +79,17 @@ SKIP: {
subtest $test->{desc} => sub {
ok $mech->host('fixmybarangay.com'), 'changed to fixmybarangay';
$mech->log_in_ok( $user->email );
- $user->from_council( $test->{from_council} );
+ $user->from_body( $test->{from_body} );
$user->update;
- $report->discard_changes;
- $report->council( $test->{report_council} );
- $report->update;
+ $report->update( {
+ bodies_str => $test->{report_council}
+ } );
$mech->get_ok("/report/$report_id");
$mech->content_contains( $test->{support_string} );
- if ( $test->{from_council} ) {
+ if ( $test->{from_body} ) {
$mech->content_contains('Add support');
$mech->submit_form_ok( { form_number => 1 } );
@@ -104,18 +102,16 @@ SKIP: {
};
}
- subtest 'check non council user cannot increment support count' => sub {
+ subtest 'check non body user cannot increment support count' => sub {
ok $mech->host('fixmybarangay.com'), 'changed to fixmybarangay';
- $report->discard_changes;
- $report->interest_count(1);
- ok $report->update(), 'updated interest count';
- $report->discard_changes;
+ ok $report->update({ interest_count => 1 }), 'updated interest count';
is $report->interest_count, 1, 'correct interest count';
$mech->get_ok("/report/$report_id");
$mech->content_contains( '1 supporter' );
+ # This doesn't send cookie, so is logged out
$mech->post_ok("/report/support", { id => $report_id } );
is $mech->uri, "http://fixmybarangay.com/report/$report_id", 'add support redirects to report page';
@@ -135,7 +131,7 @@ subtest 'check support details not shown if not enabled in cobrand' => sub {
};
$report->discard_changes;
-$report->council( 2504 );
+$report->bodies_str( 2504 );
$report->update;
# tidy up
diff --git a/t/app/controller/report_new.t b/t/app/controller/report_new.t
index 0206feed3..868977953 100644
--- a/t/app/controller/report_new.t
+++ b/t/app/controller/report_new.t
@@ -33,49 +33,61 @@ my %contact_params = (
whenedited => \'current_timestamp',
note => 'Created for test',
);
+
+for my $body (
+ { id => 2651, name => 'City of Edinburgh Council' },
+ { id => 2226, name => 'Gloucestershire County Council' },
+ { id => 2326, name => 'Cheltenham Borough Council' },
+ { id => 2482, name => 'Bromley Council' },
+ { id => 2240, name => 'Staffordshire County Council' },
+ { id => 2434, name => 'Lichfield District Council' },
+) {
+ $mech->create_body_ok($body->{id}, $body->{name});
+}
+
# Let's make some contacts to send things to!
FixMyStreet::App->model('DB::Contact')->search( {
email => { 'like', '%example.com' },
} )->delete;
my $contact1 = FixMyStreet::App->model('DB::Contact')->find_or_create( {
%contact_params,
- area_id => 2651, # Edinburgh
+ body_id => 2651, # Edinburgh
category => 'Street lighting',
email => 'highways@example.com',
} );
my $contact2 = FixMyStreet::App->model('DB::Contact')->find_or_create( {
%contact_params,
- area_id => 2226, # Gloucestershire
+ body_id => 2226, # Gloucestershire
category => 'Potholes',
email => 'potholes@example.com',
} );
my $contact3 = FixMyStreet::App->model('DB::Contact')->find_or_create( {
%contact_params,
- area_id => 2326, # Cheltenham
+ body_id => 2326, # Cheltenham
category => 'Trees',
email => 'trees@example.com',
} );
my $contact4 = FixMyStreet::App->model('DB::Contact')->find_or_create( {
%contact_params,
- area_id => 2482, # Bromley
+ body_id => 2482, # Bromley
category => 'Trees',
email => 'trees@example.com',
} );
my $contact5 = FixMyStreet::App->model('DB::Contact')->find_or_create( {
%contact_params,
- area_id => 2651, # Edinburgh
+ body_id => 2651, # Edinburgh
category => 'Trees',
email => 'trees@example.com',
} );
my $contact6 = FixMyStreet::App->model('DB::Contact')->find_or_create( {
%contact_params,
- area_id => 2434, # Lichfield
+ body_id => 2434, # Lichfield
category => 'Trees',
email => 'trees@example.com',
} );
my $contact7 = FixMyStreet::App->model('DB::Contact')->find_or_create( {
%contact_params,
- area_id => 2240, # Lichfield
+ body_id => 2240, # Lichfield
category => 'Street lighting',
email => 'highways@example.com',
} );
@@ -92,6 +104,57 @@ ok $contact7, "created test contact 7";
foreach my $test (
{
msg => 'all fields empty',
+ pc => 'OX1 3DH',
+ fields => {
+ title => '',
+ detail => '',
+ photo => '',
+ name => '',
+ may_show_name => '1',
+ email => '',
+ phone => '',
+ password_sign_in => '',
+ password_register => '',
+ remember_me => undef,
+ },
+ changes => {},
+ errors => [
+ 'Please enter a subject',
+ 'Please enter some details',
+ # No category error, as no categories for Oxon at all, so is skipped
+ 'Please enter your email',
+ 'Please enter your name',
+ ],
+ },
+ {
+ msg => 'all fields empty, bad category',
+ pc => 'GL50 2PR',
+ fields => {
+ title => '',
+ detail => '',
+ photo => '',
+ name => '',
+ may_show_name => '1',
+ email => '',
+ phone => '',
+ category => 'Something bad',
+ password_sign_in => '',
+ password_register => '',
+ remember_me => undef,
+ },
+ changes => {
+ category => '-- Pick a category --',
+ },
+ errors => [
+ 'Please enter a subject',
+ 'Please enter some details',
+ 'Please choose a category',
+ 'Please enter your email',
+ 'Please enter your name',
+ ],
+ },
+ {
+ msg => 'all fields empty except category',
pc => 'SW1A 1AA',
fields => {
title => '',
@@ -503,7 +566,7 @@ foreach my $test (
is $mech->get( '/report/' . $report->id )->code, 404, "report not found";
# Check the report has been assigned appropriately
- is $report->council, 2651;
+ is $report->bodies_str, 2651;
# receive token
my $email = $mech->get_email;
@@ -659,7 +722,7 @@ subtest "test report creation for a user who is signing in as they report" => su
is $mech->uri->path, "/report/" . $report->id, "redirected to report page";
# Check the report has been assigned appropriately
- is $report->council, 2651;
+ is $report->bodies_str, 2651;
# check that no emails have been sent
$mech->email_count_is(0);
@@ -750,7 +813,7 @@ foreach my $test (
ok $report, "Found the report";
# Check the report has been assigned appropriately
- is $report->council, $test->{council};
+ is $report->bodies_str, $test->{council};
# check that we got redirected to /report/
is $mech->uri->path, "/report/" . $report->id, "redirected to report page";
@@ -1155,7 +1218,7 @@ SKIP: {
ok $report, "Found the report";
# Check the report has been assigned appropriately
- is $report->council, $test->{council};
+ is $report->bodies_str, $test->{council};
if ( $test->{redirect} ) {
is $mech->uri->path, "/report/" . $report->id, "redirected to report page";
@@ -1210,9 +1273,10 @@ SKIP: {
my $cobrand = FixMyStreet::Cobrand::SeeSomething->new();
+ $mech->create_body_ok(2535, 'Sandwell Borough Council');
my $bus_contact = FixMyStreet::App->model('DB::Contact')->find_or_create( {
%contact_params,
- area_id => 2535,
+ body_id => 2535,
category => 'Bus',
email => 'bus@example.com',
non_public => 1,
diff --git a/t/app/controller/report_new_open311.t b/t/app/controller/report_new_open311.t
index 55c5a92e8..22d2d1f97 100644
--- a/t/app/controller/report_new_open311.t
+++ b/t/app/controller/report_new_open311.t
@@ -7,12 +7,12 @@ 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 $body = $mech->create_body_ok(2651, 'City of Edinburgh Council');
+$body->update({
+ endpoint => 'http://example.com/open311',
+ jurisdiction => 'mySociety',
+ api_key => 'apikey',
+});
my %contact_params = (
confirmed => 1,
@@ -24,7 +24,7 @@ my %contact_params = (
# 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
+ body_id => 2651, # Edinburgh
category => 'Street lighting',
email => '100',
extra => [ { description => 'Lamppost number', code => 'number', required => 'True' },
@@ -35,7 +35,7 @@ my $contact1 = FixMyStreet::App->model('DB::Contact')->find_or_create( {
} );
my $contact2 = FixMyStreet::App->model('DB::Contact')->find_or_create( {
%contact_params,
- area_id => 2651, # Edinburgh
+ body_id => 2651, # Edinburgh
category => 'Graffiti Removal',
email => '101',
} );
diff --git a/t/app/controller/report_updates.t b/t/app/controller/report_updates.t
index 3986d01b5..2765ed246 100644
--- a/t/app/controller/report_updates.t
+++ b/t/app/controller/report_updates.t
@@ -35,7 +35,7 @@ my $dt = DateTime->new(
my $report = FixMyStreet::App->model('DB::Problem')->find_or_create(
{
postcode => 'SW1A 1AA',
- council => '2504',
+ bodies_str => '2504',
areas => ',105255,11806,11828,2247,2504,',
category => 'Other',
title => 'Test 2',
@@ -409,7 +409,7 @@ $report->update;
subtest 'check non authority user cannot change set state' => sub {
$mech->log_in_ok( $user->email );
- $user->from_council( 0 );
+ $user->from_body( undef );
$user->update;
$mech->get_ok("/report/$report_id");
@@ -434,10 +434,12 @@ subtest 'check non authority user cannot change set state' => sub {
is $report->state, 'confirmed', 'state unchanged';
};
+$mech->create_body_ok(2504, 'Westminster City Council');
+
for my $state ( qw/unconfirmed hidden partial/ ) {
subtest "check that update cannot set state to $state" => sub {
$mech->log_in_ok( $user->email );
- $user->from_council( 2504 );
+ $user->from_body( 2504 );
$user->update;
$mech->get_ok("/report/$report_id");
@@ -586,18 +588,18 @@ for my $test (
state => 'fixed',
},
state => 'fixed - council',
- report_councils => '2504,2505',
+ report_bodies => '2504,2505',
},
) {
subtest $test->{desc} => sub {
$report->comments->delete;
- if ( $test->{ report_councils } ) {
- $report->council( $test->{ report_councils } );
+ if ( $test->{ report_bodies } ) {
+ $report->bodies_str( $test->{ report_bodies } );
$report->update;
}
$mech->log_in_ok( $user->email );
- $user->from_council( 2504 );
+ $user->from_body( 2504 );
$user->update;
$mech->get_ok("/report/$report_id");
@@ -670,7 +672,7 @@ subtest 'check meta correct for comments marked confirmed but not marked open' =
subtest "check first comment with no status change has no status in meta" => sub {
$mech->log_in_ok( $user->email );
- $user->from_council( 0 );
+ $user->from_body( undef );
$user->update;
my $comment = $report->comments->first;
@@ -684,7 +686,7 @@ subtest "check first comment with no status change has no status in meta" => sub
subtest "check comment with no status change has not status in meta" => sub {
$mech->log_in_ok( $user->email );
- $user->from_council( 0 );
+ $user->from_body( undef );
$user->update;
my $comment = $report->comments->first;
@@ -718,7 +720,7 @@ subtest "check comment with no status change has not status in meta" => sub {
my $update_meta = $mech->extract_update_metas;
unlike $update_meta->[1], qr/marked as/, 'update meta does not include state change';
- $user->from_council( 2504 );
+ $user->from_body( 2504 );
$user->update;
$mech->get_ok("/report/$report_id");
@@ -820,11 +822,11 @@ subtest 'check meta correct for second comment marking as reopened' => sub {
like $update_meta->[1], qr/reopened$/, 'update meta says reopened';
};
-$user->from_council(0);
+$user->from_body(undef);
$user->update;
$report->state('confirmed');
-$report->council('2504');
+$report->bodies_str('2504');
$report->update;
for my $test (
diff --git a/t/app/controller/reports.t b/t/app/controller/reports.t
index a4dab6597..503950d8a 100644
--- a/t/app/controller/reports.t
+++ b/t/app/controller/reports.t
@@ -8,11 +8,15 @@ use DateTime;
ok( my $mech = FixMyStreet::TestMech->new, 'Created mech object' );
-$mech->delete_problems_for_council( 2504 );
-$mech->delete_problems_for_council( 2651 );
+$mech->create_body_ok(2514, 'Birmingham City Council');
+$mech->create_body_ok(2651, 'City of Edinburgh Council');
+$mech->create_body_ok(2504, 'Westminster City Council');
-my @edinburgh_problems = $mech->create_problems_for_council(3, 2651, 'All reports');
-my @westminster_problems = $mech->create_problems_for_council(5, 2504, 'All reports');
+$mech->delete_problems_for_body( 2504 );
+$mech->delete_problems_for_body( 2651 );
+
+my @edinburgh_problems = $mech->create_problems_for_body(3, 2651, 'All reports');
+my @westminster_problems = $mech->create_problems_for_body(5, 2504, 'All reports');
is scalar @westminster_problems, 5, 'correct number of westminster problems created';
is scalar @edinburgh_problems, 3, 'correct number of edinburgh problems created';
@@ -63,6 +67,7 @@ SKIP: {
skip( "Need 'fiksgatami' in ALLOWED_COBRANDS config", 8 )
unless FixMyStreet::Cobrand->exists('fiksgatami');
+ $mech->create_body_ok(3, 'Oslo');
mySociety::MaPit::configure('http://mapit.nuug.no/');
ok $mech->host("fiksgatami.no"), 'change host to fiksgatami';
$mech->get_ok('/reports');
diff --git a/t/app/controller/rss.t b/t/app/controller/rss.t
index 456067e6c..f04a17151 100644
--- a/t/app/controller/rss.t
+++ b/t/app/controller/rss.t
@@ -17,7 +17,7 @@ my $user1 = FixMyStreet::App->model('DB::User')
my $report = FixMyStreet::App->model('DB::Problem')->find_or_create( {
postcode => 'eh1 1BB',
- council => '2651',
+ bodies_str => '2651',
areas => ',11808,135007,14419,134935,2651,20728,',
category => 'Street lighting',
title => 'Testing',
@@ -113,6 +113,68 @@ $mech->content_contains( "Testing, 10th October" );
$mech->content_contains( '18 North Bridge, Edinburgh' );
$report->delete();
+
+my $now = DateTime->now();
+my $report_to_council = FixMyStreet::App->model('DB::Problem')->find_or_create(
+ {
+ postcode => 'WS13 6YY',
+ bodies_str => '2434',
+ areas => ',2434,2240,',
+ category => 'Other',
+ title => 'council report',
+ detail => 'Test 2 Detail',
+ used_map => 't',
+ name => 'Test User',
+ anonymous => 'f',
+ state => 'closed',
+ confirmed => $now->ymd . ' ' . $now->hms,
+ lang => 'en-gb',
+ service => '',
+ cobrand => 'default',
+ cobrand_data => '',
+ send_questionnaire => 't',
+ latitude => '52.727588',
+ longitude => '-1.731322',
+ user_id => $user1->id,
+ }
+);
+
+my $report_to_county_council = FixMyStreet::App->model('DB::Problem')->find_or_create(
+ {
+ postcode => 'WS13 6YY',
+ bodies_str => '2240',
+ areas => ',2434,2240,',
+ category => 'Other',
+ title => 'county report',
+ detail => 'Test 2 Detail',
+ used_map => 't',
+ name => 'Test User',
+ anonymous => 'f',
+ state => 'closed',
+ confirmed => $now->ymd . ' ' . $now->hms,
+ lang => 'en-gb',
+ service => '',
+ cobrand => 'default',
+ cobrand_data => '',
+ send_questionnaire => 't',
+ latitude => '52.727588',
+ longitude => '-1.731322',
+ user_id => $user1->id,
+ }
+);
+
+subtest "check RSS feeds on cobrand have correct URLs for non-cobrand reports" => sub {
+ $mech->host('lichfielddc.fixmystreet.com');
+ $mech->get_ok("/rss/area/Lichfield");
+
+ my $expected1 = mySociety::Config::get('BASE_URL') . '/report/' . $report_to_county_council->id;
+ my $cobrand = FixMyStreet::Cobrand->get_class_for_moniker('lichfielddc')->new();
+ my $expected2 = $cobrand->base_url . '/report/' . $report_to_council->id;
+
+ $mech->content_contains($expected1, 'non cobrand area report point to fixmystreet.com');
+ $mech->content_contains($expected2, 'cobrand area report point to cobrand url');
+};
+
$mech->delete_user( $user1 );
done_testing();
diff --git a/t/app/model/alert_type.t b/t/app/model/alert_type.t
index c592e9d3f..ba48300b2 100644
--- a/t/app/model/alert_type.t
+++ b/t/app/model/alert_type.t
@@ -39,7 +39,7 @@ my $dt = DateTime->new(
my $report = FixMyStreet::App->model('DB::Problem')->find_or_create(
{
postcode => 'SW1A 1AA',
- council => '2504',
+ bodies_str => '2504',
areas => ',105255,11806,11828,2247,2504,',
category => 'Other',
title => 'Test 2',
@@ -345,7 +345,7 @@ my $ward_alert = FixMyStreet::App->model('DB::Alert')->find_or_create(
my $report_to_council = FixMyStreet::App->model('DB::Problem')->find_or_create(
{
postcode => 'WS13 6YY',
- council => '2434',
+ bodies_str => '2434',
areas => ',105255,11806,11828,2247,2504,7117,',
category => 'Other',
title => 'council report',
@@ -369,7 +369,7 @@ my $report_to_council = FixMyStreet::App->model('DB::Problem')->find_or_create(
my $report_to_county_council = FixMyStreet::App->model('DB::Problem')->find_or_create(
{
postcode => 'WS13 6YY',
- council => '2240',
+ bodies_str => '2240',
areas => ',105255,11806,11828,2247,2504,7117,',
category => 'Other',
title => 'county report',
@@ -393,7 +393,7 @@ my $report_to_county_council = FixMyStreet::App->model('DB::Problem')->find_or_c
my $report_outside_district = FixMyStreet::App->model('DB::Problem')->find_or_create(
{
postcode => 'WS13 6YY',
- council => '2221',
+ bodies_str => '2221',
areas => ',105255,11806,11828,2247,2504,7117,',
category => 'Other',
title => 'outside district report',
diff --git a/t/app/model/problem.t b/t/app/model/problem.t
index 040790184..a92e3b079 100644
--- a/t/app/model/problem.t
+++ b/t/app/model/problem.t
@@ -44,7 +44,7 @@ for my $test (
errors => {
title => 'Please enter a subject',
detail => 'Please enter some details',
- council => 'No council selected',
+ bodies => 'No council selected',
name => 'Please enter your name',
}
},
@@ -56,7 +56,7 @@ for my $test (
errors => {
title => 'Please enter a subject',
detail => 'Please enter some details',
- council => 'No council selected',
+ bodies => 'No council selected',
name => '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 below',
}
},
@@ -68,7 +68,7 @@ for my $test (
errors => {
title => 'Please enter a subject',
detail => 'Please enter some details',
- council => 'No council selected',
+ bodies => 'No council selected',
name => '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 below',
}
},
@@ -80,7 +80,7 @@ for my $test (
errors => {
title => 'Please enter a subject',
detail => 'Please enter some details',
- council => 'No council selected',
+ bodies => 'No council selected',
}
},
{
@@ -90,7 +90,7 @@ for my $test (
},
errors => {
detail => 'Please enter some details',
- council => 'No council selected',
+ bodies => 'No council selected',
}
},
{
@@ -99,22 +99,22 @@ for my $test (
detail => 'Some information about the problem',
},
errors => {
- council => 'No council selected',
+ bodies => 'No council selected',
}
},
{
- desc => 'incorrectly formatted council',
+ desc => 'incorrectly formatted body',
changed => {
- council => 'my council',
+ bodies_str => 'my body',
},
errors => {
- council => 'No council selected',
+ bodies => 'No council selected',
}
},
{
- desc => 'correctly formatted council',
+ desc => 'correctly formatted body',
changed => {
- council => '1001',
+ bodies_str => '1001',
},
errors => {
}
@@ -383,42 +383,56 @@ my %contact_params = (
whenedited => \'ms_current_timestamp()',
note => 'Created for test',
);
+
+for my $body (
+ { id => 2651, name => 'City of Edinburgh Council' },
+ { id => 2226, name => 'Gloucestershire County Council' },
+ { id => 2326, name => 'Cheltenham Borough Council' },
+ { id => 2434, name => 'Lichfield District Council' },
+ { id => 2240, name => 'Staffordshire County Council' },
+ { id => 14279, name => 'Ballymoney Borough Council' },
+ { id => 2636, name => 'Isle of Wight Council' },
+ { id => 2649, name => 'Fife Council' },
+) {
+ $mech->create_body_ok($body->{id}, $body->{name});
+}
+
# Let's make some contacts to send things to!
FixMyStreet::App->model('DB::Contact')->search( {
email => { 'like', '%example.com' },
} )->delete;
my @contacts;
for my $contact ( {
- area_id => 2651, # Edinburgh
+ body_id => 2651, # Edinburgh
category => 'potholes',
email => 'test@example.org',
}, {
- area_id => 2226, # Gloucestershire
+ body_id => 2226, # Gloucestershire
category => 'potholes',
email => '2226@example.org',
}, {
- area_id => 2326, # Cheltenham
+ body_id => 2326, # Cheltenham
category => 'potholes',
email => '2326@example.org',
}, {
- area_id => 2434, # Lichfield
+ body_id => 2434, # Lichfield
category => 'potholes',
email => 'trees@example.com',
}, {
- area_id => 2240, # Staffordshire
+ body_id => 2240, # Staffordshire
category => 'potholes',
email => 'highways@example.com',
}, {
- area_id => 14279, # Ballymoney
+ body_id => 14279, # Ballymoney
category => 'Street lighting',
email => 'roads.western@drdni.example.org',
}, {
- area_id => 14279, # Ballymoney
+ body_id => 14279, # Ballymoney
category => 'Graffiti',
email => 'highways@example.com',
}, {
confirmed => 0,
- area_id => 2636, # Isle of Wight
+ body_id => 2636, # Isle of Wight
category => 'potholes',
email => '2636@example.com',
} ) {
@@ -438,13 +452,13 @@ foreach my $test ( {
email_count => 1,
dear => qr'Dear City of Edinburgh Council',
to => qr'City of Edinburgh Council',
- council => 2651,
+ body => 2651,
}, {
%common,
desc => 'no email sent if no unsent problems',
unset_whendef => 0,
email_count => 0,
- council => 2651,
+ body => 2651,
}, {
%common,
desc => 'email to two tier council',
@@ -452,7 +466,7 @@ foreach my $test ( {
email_count => 1,
to => qr'Gloucestershire County Council.*Cheltenham Borough Council',
dear => qr'Dear Gloucestershire County Council and Cheltenham Borough',
- council => '2226,2326',
+ body => '2226,2326',
multiple => 1,
}, {
%common,
@@ -461,7 +475,7 @@ foreach my $test ( {
email_count => 1,
to => qr'Gloucestershire County Council" <2226@example',
dear => qr'Dear Gloucestershire County Council,',
- council => '2226|2649',
+ body => '2226|2649',
missing => qr'problem might be the responsibility of Fife.*Council'ms,
}, {
%common,
@@ -470,7 +484,7 @@ foreach my $test ( {
email_count => 1,
to => qr'Lichfield District Council',
dear => qr'Dear Lichfield District Council,',
- council => '2434',
+ body => '2434',
cobrand => 'lichfielddc',
url => 'lichfielddc.',
}, {
@@ -480,7 +494,7 @@ foreach my $test ( {
email_count => 1,
to => qr'Staffordshire County Council" <highways@example',
dear => qr'Dear Staffordshire County Council,',
- council => '2240',
+ body => '2240',
cobrand => 'lichfielddc',
url => '',
}, {
@@ -490,7 +504,7 @@ foreach my $test ( {
email_count => 1,
dear => qr'Dear Ballymoney Borough Council',
to => qr'Ballymoney Borough Council',
- council => 14279,
+ body => 14279,
category => 'Graffiti',
}, {
%common,
@@ -499,7 +513,7 @@ foreach my $test ( {
email_count => 1,
dear => qr'Dear Roads Service \(Western\)',
to => qr'Roads Service \(Western\)" <roads',
- council => 14279,
+ body => 14279,
category => 'Street lighting',
}, {
%common,
@@ -507,7 +521,7 @@ foreach my $test ( {
unset_whendef => 1,
stays_unsent => 1,
email_count => 0,
- council => 2636,
+ body => 2636,
},
) {
subtest $test->{ desc } => sub {
@@ -525,7 +539,7 @@ foreach my $test ( {
$problem->discard_changes;
$problem->update( {
- council => $test->{ council },
+ bodies_str => $test->{ body },
state => 'confirmed',
confirmed => \'ms_current_timestamp()',
whensent => $test->{ unset_whendef } ? undef : \'ms_current_timestamp()',
@@ -547,9 +561,9 @@ foreach my $test ( {
like $email->body, $test->{ dear }, 'Salutation looks correct';
if ( $test->{multiple} ) {
- like $email->body, qr/This email has been sent to several councils /, 'multiple council text correct';
+ like $email->body, qr/This email has been sent to several councils /, 'multiple body text correct';
} elsif ( $test->{ missing } ) {
- like $email->body, $test->{ missing }, 'missing council information correct';
+ like $email->body, $test->{ missing }, 'missing body information correct';
}
if ( $test->{url} ) {
@@ -617,7 +631,7 @@ subtest 'check can turn on report sent email alerts' => sub {
$problem->comments->delete;
$problem->delete;
-$user->delete;
+$mech->delete_user( $user );
foreach (@contacts) {
$_->delete;
diff --git a/t/app/sendreport/email.t b/t/app/sendreport/email.t
index 84379394d..8063c928f 100644
--- a/t/app/sendreport/email.t
+++ b/t/app/sendreport/email.t
@@ -14,9 +14,14 @@ use mySociety::Locale;
my $e = FixMyStreet::SendReport::Email->new();
+# area id 1000
+my $params = { id => 1000, name => 'Council of the Thousand' };
+my $body = FixMyStreet::App->model('DB::Body')->find_or_create($params);
+ok $body, "found/created body";
+
my $contact = FixMyStreet::App->model('DB::Contact')->find_or_create(
email => 'council@example.com',
- area_id => 1000,
+ body_id => 1000,
category => 'category',
confirmed => 1,
deleted => 0,
@@ -26,7 +31,7 @@ my $contact = FixMyStreet::App->model('DB::Contact')->find_or_create(
);
my $row = FixMyStreet::App->model('DB::Problem')->new( {
- council => '1000',
+ bodies_str => '1000',
category => 'category',
cobrand => '',
} );
@@ -48,7 +53,7 @@ foreach my $test ( {
count => undef,
add_council => 1,
unconfirmed => 1,
- expected_note => 'Council 1000 deleted',
+ expected_note => 'Body 1000 deleted',
},
{
desc => 'unconfirmed contact note uses note from contact table',
@@ -63,7 +68,7 @@ foreach my $test ( {
my $e = FixMyStreet::SendReport::Email->new;
$contact->update( { confirmed => 0 } ) if $test->{unconfirmed};
$contact->update( { note => $test->{note} } ) if $test->{note};
- $e->add_council( 1000, { name => 'test council' } ) if $test->{add_council};
+ $e->add_body( $body ) if $test->{add_council};
is $e->build_recipient_list( $row, {} ), $test->{count}, 'correct recipient list count';
if ( $test->{unconfirmed} ) {
diff --git a/t/cobrand/closest.t b/t/cobrand/closest.t
index 464c95e67..ab97694c9 100644
--- a/t/cobrand/closest.t
+++ b/t/cobrand/closest.t
@@ -29,7 +29,7 @@ my $dt = DateTime->new(
my $report = FixMyStreet::App->model('DB::Problem')->find_or_create(
{
postcode => 'SW1A 1AA',
- council => '2504',
+ bodies_str => '2504',
areas => ',105255,11806,11828,2247,2504,',
category => 'Other',
title => 'Test 2',
diff --git a/t/cobrand/get_body_sender.t b/t/cobrand/get_body_sender.t
new file mode 100644
index 000000000..245cb1a13
--- /dev/null
+++ b/t/cobrand/get_body_sender.t
@@ -0,0 +1,38 @@
+use strict;
+use warnings;
+
+use Test::More;
+
+use mySociety::Locale;
+use FixMyStreet::App;
+
+use_ok 'FixMyStreet::Cobrand';
+
+mySociety::Locale::gettext_domain( 'FixMyStreet' );
+
+my $c = FixMyStreet::Cobrand::FixMyStreet->new();
+
+FixMyStreet::App->model('DB::BodyArea')->search( { body_id => 1000 } )->delete;
+FixMyStreet::App->model('DB::Body')->search( { name => 'Body of a Thousand' } )->delete;
+
+my $body = FixMyStreet::App->model('DB::Body')->find_or_create({
+ id => 1000,
+ name => 'Body of a Thousand',
+});
+my $body_area = $body->body_areas->find_or_create({ area_id => 1000 });
+
+is_deeply $c->get_body_sender( $body ), { method => 'Email' }, 'defaults to email';
+
+$body_area->update({ area_id => 2481 }); # Croydon LBO
+is_deeply $c->get_body_sender( $body ), { method => 'London' }, 'returns london report it if London borough';
+
+$body->send_method( 'TestMethod' );
+is $c->get_body_sender( $body )->{ method }, 'TestMethod', 'uses send_method in preference to London';
+
+$body_area->update({ area_id => 1000 }); # Nothing
+is $c->get_body_sender( $body )->{ method }, 'TestMethod', 'uses send_method in preference to Email';
+
+$body_area->delete;
+$body->delete;
+
+done_testing();
diff --git a/t/cobrand/get_council_sender.t b/t/cobrand/get_council_sender.t
deleted file mode 100644
index e61f36370..000000000
--- a/t/cobrand/get_council_sender.t
+++ /dev/null
@@ -1,30 +0,0 @@
-use strict;
-use warnings;
-
-use Test::More;
-
-use mySociety::Locale;
-use FixMyStreet::App;
-
-use_ok 'FixMyStreet::Cobrand';
-
-mySociety::Locale::gettext_domain( 'FixMyStreet' );
-
-my $c = FixMyStreet::Cobrand::FixMyStreet->new();
-
-
-is_deeply $c->get_council_sender( '1000', { type => 'DIS' } ), { method => 'Email' }, 'defaults to email';
-is_deeply $c->get_council_sender( '1000', { type => 'LBO' } ), { method=> 'London' }, 'returns london report it if London borough';
-
-my $conf = FixMyStreet::App->model('DB::Open311Conf')->find_or_create(
- area_id => 1000,
- endpoint => '',
- send_method => 'TestMethod'
-);
-
-is $c->get_council_sender( '1000', { type => 'LBO' } )->{ method }, 'TestMethod', 'uses send_method in preference to London';
-is $c->get_council_sender( '1000', { type => 'DIS' } )->{ method }, 'TestMethod', 'uses send_method in preference to Email';
-
-$conf->delete;
-
-done_testing();
diff --git a/t/cobrand/zurich.t b/t/cobrand/zurich.t
new file mode 100644
index 000000000..a6922a00d
--- /dev/null
+++ b/t/cobrand/zurich.t
@@ -0,0 +1,168 @@
+# TODO
+# Report to third party (with third_personal)
+# Overdue alerts
+
+use strict;
+use warnings;
+use DateTime;
+use Test::More;
+
+plan skip_all => 'Skipping Zurich test without Zurich cobrand'
+ unless FixMyStreet::Cobrand->exists('zurich');
+
+use FixMyStreet::TestMech;
+my $mech = FixMyStreet::TestMech->new;
+
+# Front page test
+ok $mech->host("zurich.fixmystreet.com"), "change host to Zurich";
+$mech->get_ok('/');
+$mech->content_like( qr/zurich/i );
+
+# Set up bodies
+my $zurich = $mech->create_body_ok( 1, 'Zurich' );
+my $division = $mech->create_body_ok( 2, 'Division 1' );
+$division->parent( $zurich->id );
+$division->endpoint( 'division@example.org' );
+$division->update;
+my $subdivision = $mech->create_body_ok( 3, 'Subdivision A' );
+$subdivision->parent( $division->id );
+$subdivision->endpoint( 'subdivision@example.org' );
+$subdivision->update;
+
+my @reports = $mech->create_problems_for_body( 1, 2, 'Test', {
+ state => 'unconfirmed',
+ confirmed => undef,
+ cobrand => 'zurich',
+});
+my $report = $reports[0];
+
+$mech->get_ok( '/report/' . $report->id );
+$mech->content_contains('moderation');
+
+# Check logging in to deal with this report
+$mech->get_ok( '/admin' );
+is $mech->uri->path, '/auth', "got sent to the sign in page";
+
+my $user = $mech->log_in_ok( 'dm1@example.org') ;
+$mech->get_ok( '/admin' );
+is $mech->uri->path, '/auth', "got sent to the sign in page";
+$user->from_body( 2 );
+$user->update;
+
+$mech->get_ok( '/admin' );
+is $mech->uri->path, '/admin', "am logged in";
+
+$mech->content_contains( 'report_edit/' . $report->id );
+$mech->content_contains( DateTime->now->strftime("%d.%m.%Y") );
+$mech->content_contains( 'Erfasst' );
+
+$mech->get_ok( '/admin/report_edit/' . $report->id );
+$mech->submit_form_ok( { with_fields => { state => 'confirmed' } } );
+$mech->get_ok( '/report/' . $report->id );
+$mech->content_contains('Aufgenommen');
+$mech->content_contains('Test Test');
+$mech->content_lacks('photo/' . $report->id . '.jpeg');
+$mech->email_count_is(0);
+
+# Photo publishing
+$mech->get_ok( '/admin/report_edit/' . $report->id );
+$mech->submit_form_ok( { with_fields => { publish_photo => 1 } } );
+$mech->get_ok( '/report/' . $report->id );
+$mech->content_contains('photo/' . $report->id . '.jpeg');
+
+# Internal notes
+$mech->get_ok( '/admin/report_edit/' . $report->id );
+$mech->submit_form_ok( { with_fields => { internal_notes => 'Some internal notes.' } } );
+$mech->content_contains( 'Some internal notes' );
+
+# Original description
+$mech->submit_form_ok( { with_fields => { detail => 'Edited details text.' } } );
+$mech->content_contains( 'Edited details text.' );
+$mech->content_contains( 'originally entered: &ldquo;Test Test 1 for 2 Detail&rdquo;' );
+
+$mech->get_ok( '/admin/report_edit/' . $report->id );
+$mech->submit_form_ok( { with_fields => { body_subdivision => 3 } } );
+
+$mech->get_ok( '/report/' . $report->id );
+$mech->content_contains('In Bearbeitung');
+$mech->content_contains('Test Test');
+
+FixMyStreet::App->model('DB::Problem')->send_reports('zurich');
+my $email = $mech->get_email;
+like $email->header('Subject'), qr/Neue Meldung/, 'subject looks okay';
+like $email->header('To'), qr/subdivision\@example.org/, 'to line looks correct';
+$mech->clear_emails_ok;
+
+$mech->log_out_ok;
+
+$user = $mech->log_in_ok( 'sdm1@example.org') ;
+$mech->get_ok( '/admin' );
+is $mech->uri->path, '/auth', "got sent to the sign in page";
+$user->from_body( 3 );
+$user->update;
+
+$mech->get_ok( '/admin' );
+is $mech->uri->path, '/admin', "am logged in";
+
+$mech->content_contains( 'report_edit/' . $report->id );
+$mech->content_contains( DateTime->now->strftime("%d.%m.%Y") );
+$mech->content_contains( 'In Bearbeitung' );
+
+$mech->get_ok( '/admin/report_edit/' . $report->id );
+$mech->content_contains( 'Some internal notes' );
+
+$mech->submit_form_ok( { with_fields => { status_update => 'This is an update.' } } );
+is $mech->uri->path, '/admin/report_edit/' . $report->id, "still on edit page";
+$mech->content_contains('This is an update');
+ok $mech->form_with_fields( 'status_update' );
+$mech->submit_form_ok( { button => 'no_more_updates' } );
+is $mech->uri->path, '/admin/summary', "redirected now finished with report.";
+
+$mech->get_ok( '/report/' . $report->id );
+$mech->content_contains('In Bearbeitung');
+$mech->content_contains('Test Test');
+
+FixMyStreet::App->model('DB::Problem')->send_reports('zurich');
+$email = $mech->get_email;
+like $email->header('Subject'), qr/Feedback/, 'subject looks okay';
+like $email->header('To'), qr/division\@example.org/, 'to line looks correct';
+$mech->clear_emails_ok;
+
+$report->discard_changes;
+is $report->state, 'planned', 'Report now in planned state';
+
+$mech->log_out_ok;
+$user = $mech->log_in_ok( 'dm1@example.org') ;
+$mech->get_ok( '/admin' );
+
+$mech->content_contains( 'report_edit/' . $report->id );
+$mech->content_contains( DateTime->now->strftime("%d.%m.%Y") );
+
+# User confirms their email address
+my $extra = $report->extra;
+$extra->{email_confirmed} = 1;
+$report->extra ( { %$extra } );
+$report->update;
+
+$mech->get_ok( '/admin/report_edit/' . $report->id );
+$mech->submit_form_ok( { with_fields => { status_update => 'FINAL UPDATE' } } );
+$mech->form_with_fields( 'status_update' );
+$mech->submit_form_ok( { button => 'publish_response' } );
+
+$mech->get_ok( '/report/' . $report->id );
+$mech->content_contains('Erledigt');
+$mech->content_contains('Test Test');
+$mech->content_contains('FINAL UPDATE');
+
+$email = $mech->get_email;
+like $email->header('To'), qr/test\@example.com/, 'to line looks correct';
+like $email->body, qr/FINAL UPDATE/, 'body looks correct';
+$mech->clear_emails_ok;
+
+$mech->delete_problems_for_body( 2 );
+$mech->delete_user( 'dm1@example.org' );
+$mech->delete_user( 'sdm1@example.org' );
+
+ok $mech->host("www.fixmystreet.com"), "change host back";
+
+done_testing();
diff --git a/t/map/tilma/original.t b/t/map/tilma/original.t
index 7f68df308..72cde5f9f 100644
--- a/t/map/tilma/original.t
+++ b/t/map/tilma/original.t
@@ -32,7 +32,7 @@ my $dt = DateTime->now();
my $report = FixMyStreet::App->model('DB::Problem')->find_or_create(
{
postcode => 'SW1A 1AA',
- council => '2504',
+ bodies_str => '2504',
areas => ',105255,11806,11828,2247,2504,',
category => 'Other',
title => 'Test 2',
diff --git a/t/open311/getservicerequestupdates.t b/t/open311/getservicerequestupdates.t
index ba2854460..36ed13615 100644
--- a/t/open311/getservicerequestupdates.t
+++ b/t/open311/getservicerequestupdates.t
@@ -123,7 +123,7 @@ my $problem = $problem_rs->new(
lastupdate => DateTime->now()->subtract( days => 1 ),
anonymous => 1,
external_id => time(),
- council => 2482,
+ bodies_str => 2482,
}
);
@@ -350,7 +350,7 @@ for my $test (
$problem->state( $test->{start_state} );
$problem->update;
- my $council_details = { areaid => 2482 };
+ my $council_details = { areas => { 2482 => 1 } };
my $update = Open311::GetServiceRequestUpdates->new( system_user => $user );
$update->update_comments( $o, $council_details );
@@ -389,7 +389,7 @@ foreach my $test (
$problem->comments->delete;
- my $council_details = { areaid => 2482 };
+ my $council_details = { areas => { 2482 => 1 } };
my $update = Open311::GetServiceRequestUpdates->new( system_user => $user );
$update->update_comments( $o, $council_details );
@@ -419,7 +419,7 @@ my $problem2 = $problem_rs->new(
lastupdate => DateTime->now(),
anonymous => 1,
external_id => $problem->external_id,
- council => 2651,
+ bodies_str => 2651,
}
);
@@ -458,7 +458,7 @@ for my $test (
my $o = Open311->new( jurisdiction => 'mysociety', endpoint => 'http://example.com', test_mode => 1, test_get_returns => { 'servicerequestupdates.xml' => $local_requests_xml } );
- my $council_details = { areaid => $test->{area_id} };
+ my $council_details = { areas => { $test->{area_id} => 1 } };
my $update = Open311::GetServiceRequestUpdates->new( system_user => $user );
$update->update_comments( $o, $council_details );
@@ -498,7 +498,7 @@ subtest 'using start and end date' => sub {
end_date => $end_dt,
);
- my $council_details = { areaid => 2482 };
+ my $council_details = { areas => { 2482 => 1 } };
$update->update_comments( $o, $council_details );
my $start = $start_dt . '';
@@ -558,7 +558,7 @@ subtest 'check that existing comments are not duplicated' => sub {
system_user => $user,
);
- my $council_details = { areaid => 2482 };
+ my $council_details = { areas => { 2482 => 1 } };
$update->update_comments( $o, $council_details );
$problem->discard_changes;
@@ -619,7 +619,7 @@ foreach my $test ( {
system_user => $user,
);
- my $council_details = { areaid => 2482 };
+ my $council_details = { areas => { 2482 => 1 } };
$update->update_comments( $o, $council_details );
$problem->discard_changes;
@@ -671,7 +671,7 @@ foreach my $test ( {
suppress_alerts => $test->{suppress_alerts},
);
- my $council_details = { areaid => 2482 };
+ my $council_details = { areas => { 2482 => 1 } };
$update->update_comments( $o, $council_details );
$problem->discard_changes;
diff --git a/t/open311/getupdates.t b/t/open311/getupdates.t
deleted file mode 100644
index 500ac97d2..000000000
--- a/t/open311/getupdates.t
+++ /dev/null
@@ -1,198 +0,0 @@
-#!/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
index 00026cd9f..f33fc97b4 100644
--- a/t/open311/populate-service-list.t
+++ b/t/open311/populate-service-list.t
@@ -17,31 +17,41 @@ use_ok( 'Open311' );
my $processor = Open311::PopulateServiceList->new( council_list => [] );
ok $processor, 'created object';
-
+my $body = FixMyStreet::App->model('DB::Body')->find_or_create( {
+ id => 1,
+ name => 'Body Numero Uno',
+} );
+$body->body_areas->find_or_create({
+ area_id => 1
+} );
+
+my $bromley = FixMyStreet::App->model('DB::Body')->find_or_create( {
+ id => 2482,
+ name => 'Bromley Council',
+} );
+$bromley->body_areas->find_or_create({
+ area_id => 2482
+} );
subtest 'check basic functionality' => sub {
- FixMyStreet::App->model('DB::Contact')->search( { area_id => 1 } )->delete();
+ FixMyStreet::App->model('DB::Contact')->search( { body_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->_current_body( $body );
$processor->process_services( $service_list );
- my $contact_count = FixMyStreet::App->model('DB::Contact')->search( { area_id => 1 } )->count();
+ my $contact_count = FixMyStreet::App->model('DB::Contact')->search( { body_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();
+ FixMyStreet::App->model('DB::Contact')->search( { body_id => 1 } )->delete();
my $contact = FixMyStreet::App->model('DB::Contact')->create(
{
- area_id => 1,
+ body_id => 1,
email => 'contact@example.com',
category => 'An old category',
confirmed => 1,
@@ -54,27 +64,23 @@ subtest 'check non open311 contacts marked as deleted' => sub {
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->_current_body( $body );
$processor->process_services( $service_list );
- my $contact_count = FixMyStreet::App->model('DB::Contact')->search( { area_id => 1 } )->count();
+ my $contact_count = FixMyStreet::App->model('DB::Contact')->search( { body_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();
+ $contact_count = FixMyStreet::App->model('DB::Contact')->search( { body_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();
+ FixMyStreet::App->model('DB::Contact')->search( { body_id => 1 } )->delete();
my $contact = FixMyStreet::App->model('DB::Contact')->create(
{
- area_id => 1,
+ body_id => 1,
email => '009',
category => 'Cans left out 24x7',
confirmed => 1,
@@ -89,12 +95,8 @@ subtest 'check email changed if matching category' => sub {
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->_current_body( $body );
$processor->process_services( $service_list );
$contact->discard_changes;
@@ -102,16 +104,16 @@ subtest 'check email changed if matching category' => sub {
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();
+ my $contact_count = FixMyStreet::App->model('DB::Contact')->search( { body_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();
+ FixMyStreet::App->model('DB::Contact')->search( { body_id => 1 } )->delete();
my $contact = FixMyStreet::App->model('DB::Contact')->create(
{
- area_id => 1,
+ body_id => 1,
email => '001',
category => 'Bins left out 24x7',
confirmed => 1,
@@ -126,12 +128,8 @@ subtest 'check category name changed if updated' => sub {
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->_current_body( $body );
$processor->process_services( $service_list );
$contact->discard_changes;
@@ -140,16 +138,16 @@ subtest 'check category name changed if updated' => sub {
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();
+ my $contact_count = FixMyStreet::App->model('DB::Contact')->search( { body_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();
+ FixMyStreet::App->model('DB::Contact')->search( { body_id => 1 } )->delete();
my $contact = FixMyStreet::App->model('DB::Contact')->create(
{
- area_id => 1,
+ body_id => 1,
email => 'existing@example.com',
category => 'Cans left out 24x7',
confirmed => 1,
@@ -164,7 +162,7 @@ subtest 'check conflicting contacts not changed' => sub {
my $contact2 = FixMyStreet::App->model('DB::Contact')->create(
{
- area_id => 1,
+ body_id => 1,
email => '001',
category => 'Bins left out 24x7',
confirmed => 1,
@@ -179,12 +177,8 @@ subtest 'check conflicting contacts not changed' => sub {
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->_current_body( $body );
$processor->process_services( $service_list );
$contact->discard_changes;
@@ -199,7 +193,7 @@ subtest 'check conflicting contacts not changed' => sub {
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();
+ my $contact_count = FixMyStreet::App->model('DB::Contact')->search( { body_id => 1 } )->count();
is $contact_count, 4, 'correct number of contacts';
};
@@ -225,7 +219,7 @@ subtest 'check meta data population' => sub {
my $contact = FixMyStreet::App->model('DB::Contact')->find_or_create(
{
- area_id => 1,
+ body_id => 1,
email => '001',
category => 'Bins left out 24x7',
confirmed => 1,
@@ -243,12 +237,8 @@ subtest 'check meta data population' => sub {
test_get_returns => { 'services/100.xml' => $meta_xml }
);
- my $council = FixMyStreet::App->model('DB::Open311conf')->new( {
- area_id => 2482
- } );
-
$processor->_current_open311( $o );
- $processor->_current_council( $council );
+ $processor->_current_body( $bromley );
$processor->_current_service( { service_code => 100 } );
$processor->_add_meta_to_contact( $contact );
@@ -409,7 +399,7 @@ for my $test (
my $contact = FixMyStreet::App->model('DB::Contact')->find_or_create(
{
- area_id => 1,
+ body_id => 1,
email => '100',
category => 'Cans left out 24x7',
confirmed => 1,
@@ -432,12 +422,8 @@ for my $test (
my $service_list = get_xml_simple_object( $services_xml );
$service_list = { service => [ $service_list->{ service } ] };
- my $council = FixMyStreet::App->model('DB::Open311conf')->new( {
- area_id => 1
- } );
-
$processor->_current_open311( $o );
- $processor->_current_council( $council );
+ $processor->_current_body( $body );
$processor->process_services( $service_list );
@@ -487,7 +473,7 @@ subtest 'check attribute ordering' => sub {
my $contact = FixMyStreet::App->model('DB::Contact')->find_or_create(
{
- area_id => 1,
+ body_id => 1,
email => '001',
category => 'Bins left out 24x7',
confirmed => 1,
@@ -505,12 +491,8 @@ subtest 'check attribute ordering' => sub {
test_get_returns => { 'services/100.xml' => $meta_xml }
);
- my $council = FixMyStreet::App->model('DB::Open311conf')->new( {
- area_id => 1
- } );
-
$processor->_current_open311( $o );
- $processor->_current_council( $council );
+ $processor->_current_body( $body );
$processor->_current_service( { service_code => 100 } );
$processor->_add_meta_to_contact( $contact );
@@ -593,7 +575,7 @@ subtest 'check bromely skip code' => sub {
my $contact = FixMyStreet::App->model('DB::Contact')->find_or_create(
{
- area_id => 1,
+ body_id => 1,
email => '001',
category => 'Bins left out 24x7',
confirmed => 1,
@@ -611,12 +593,8 @@ subtest 'check bromely skip code' => sub {
test_get_returns => { 'services/100.xml' => $meta_xml }
);
- my $council = FixMyStreet::App->model('DB::Open311conf')->new( {
- area_id => 2482
- } );
-
$processor->_current_open311( $o );
- $processor->_current_council( $council );
+ $processor->_current_body( $bromley );
$processor->_current_service( { service_code => 100 } );
$processor->_add_meta_to_contact( $contact );
@@ -636,9 +614,7 @@ subtest 'check bromely skip code' => sub {
is_deeply $contact->extra, $extra, 'only non std bromley meta data saved';
- $council->area_id(1);
-
- $processor->_current_council( $council );
+ $processor->_current_body( $body );
$processor->_add_meta_to_contact( $contact );
$extra = [
diff --git a/templates/email/default/submit-brent.txt b/templates/email/default/submit-brent.txt
index c94e6e1e4..75a954765 100644
--- a/templates/email/default/submit-brent.txt
+++ b/templates/email/default/submit-brent.txt
@@ -1,6 +1,6 @@
Subject: FMS Problem Report: <?=$values['title']?>
-Dear <?=$values['councils_name']?>,
+Dear <?=$values['bodies_name']?>,
<?=$values['missing']?><?=$values['multiple']?>A user of
FixMyStreet has submitted the following report
diff --git a/templates/email/default/submit.txt b/templates/email/default/submit.txt
index a956b4add..6066a7b68 100644
--- a/templates/email/default/submit.txt
+++ b/templates/email/default/submit.txt
@@ -1,6 +1,6 @@
Subject: Problem Report: <?=$values['title']?>
-Dear <?=$values['councils_name']?>,
+Dear <?=$values['bodies_name']?>,
<?=$values['missing']?><?=$values['multiple']?>A user of
FixMyStreet has submitted the following report
diff --git a/templates/email/fiksgatami/nn/submit.txt b/templates/email/fiksgatami/nn/submit.txt
index 82849b0d5..52f519221 100644
--- a/templates/email/fiksgatami/nn/submit.txt
+++ b/templates/email/fiksgatami/nn/submit.txt
@@ -1,6 +1,6 @@
Subject: Problemrapport: <?=$values['title']?>
-Til <?=$values['councils_name']?>,
+Til <?=$values['bodies_name']?>,
<?=$values['missing']?><?=$values['multiple']?>Ein brukar av
FiksGataMi har sendt inn følgjande rapport om eit lokalt problem som
diff --git a/templates/email/fiksgatami/submit.txt b/templates/email/fiksgatami/submit.txt
index 8005f5c82..947729422 100644
--- a/templates/email/fiksgatami/submit.txt
+++ b/templates/email/fiksgatami/submit.txt
@@ -1,6 +1,6 @@
Subject: Problemrapport: <?=$values['title']?>
-Til <?=$values['councils_name']?>,
+Til <?=$values['bodies_name']?>,
<?=$values['missing']?><?=$values['multiple']?>En bruker av
FiksGataMi har sendt inn følgende rapport om et lokalt
diff --git a/templates/email/zurich/alert-moderation-overdue.txt b/templates/email/zurich/alert-moderation-overdue.txt
index 85906b9cb..c3aab66d2 100644
--- a/templates/email/zurich/alert-moderation-overdue.txt
+++ b/templates/email/zurich/alert-moderation-overdue.txt
@@ -1,10 +1,9 @@
-Subject: eskalierte Meldungen auf FixMyZ&uuml;rich
-
-
+Subject: eskalierte Meldungen auf Fix my Zurich
-Die folgenden Meldungen auf FixMyZ&uuml;rich sind &auml;lter als einen Tag und m&uuml;ssen dringend bearbeitet werden:
-<?=$values['data']?>
-
-Um diese Meldungen zu moderieren, klicken Sie auf folgende URL:
+Die folgenden Meldungen auf Fix my Zurich sind älter als einen Tag und müssen dringend bearbeitet werden:
-<?=$values['admin_url']?> \ No newline at end of file
+<?=$values['data']?>
+
+Um diese Meldungen zu moderieren, klicken Sie auf folgende URL:
+
+<?=$values['admin_url']?>
diff --git a/templates/email/zurich/alert-overdue.txt b/templates/email/zurich/alert-overdue.txt
index 90c8ee02f..3301feee5 100644
--- a/templates/email/zurich/alert-overdue.txt
+++ b/templates/email/zurich/alert-overdue.txt
@@ -1,13 +1,9 @@
-Subject: R&uuml;ckmeldung erforderlich auf FixMyZ&uuml;rich
-
+Subject: Rückmeldung erforderlich auf Fix my Zurich
-Die folgenden Meldungen wurden eskaliert, da sie nicht innerhalb von f&uuml;nf Tagen beantwortet worden sind:
+Die folgenden Meldungen wurden eskaliert, da sie nicht innerhalb von fünf Tagen beantwortet worden sind:
-
<?=$values['data']?>
-
-
Um diese Meldungen zu bearbeiten, klicken Sie auf folgende URL:
-
-<?=$values['admin_url']?> \ No newline at end of file
+
+<?=$values['admin_url']?>
diff --git a/templates/email/zurich/alert-update.txt b/templates/email/zurich/alert-update.txt
new file mode 100644
index 000000000..3f8da5f66
--- /dev/null
+++ b/templates/email/zurich/alert-update.txt
@@ -0,0 +1,11 @@
+Subject: New update on report - '<?=$values['title']?>'
+
+The following update has been left on this report:
+
+<?=$values['data']?>
+
+To view this report on the site, please visit the following URL:
+ <?=$values['problem_url']?>
+
+<?=$values['signature']?>
+
diff --git a/templates/email/zurich/problem-closed.txt b/templates/email/zurich/problem-closed.txt
new file mode 100644
index 000000000..d7482d8eb
--- /dev/null
+++ b/templates/email/zurich/problem-closed.txt
@@ -0,0 +1,17 @@
+Subject: FixMyZurich: Meldung #[% problem.id %]
+
+Guten Tag [% problem.name %]
+
+Antwort auf Ihre Meldung:
+
+[% problem.extra.public_response %]
+
+Um die Meldung auf der Webseite zu betrachen, klicken Sie auf folgenden Link:
+ [% url %]
+
+Ihre Meldung:
+
+[% problem.detail %]
+
+Dieses E-Mail wurde automatisch generiert. Bitte antworten Sie nicht auf dieses E-Mail.
+
diff --git a/templates/email/zurich/problem-confirm.txt b/templates/email/zurich/problem-confirm.txt
index e770aa69e..401591681 100755
--- a/templates/email/zurich/problem-confirm.txt
+++ b/templates/email/zurich/problem-confirm.txt
@@ -1,16 +1,13 @@
-Subject: Fix My Z&uuml;rich: Meldung #[% ---report.ID--- | trim %]
+Subject: Fix my Zurich: Meldung #[% report.id %]
-
-
-Guten Tag [% report.name %]
-
-Bitte klicken Sie auf den untenstehenden Link, um Ihre Meldung zu best&auml;tigen. Falls der Link nicht funktioniert, kopieren Sie ihn in Ihren Browser:
-
-[% token_url %]
-
-Ihre Meldung:
-
-[% ---report.details---- %]
-
-
-Dieses E-Mail wurde automatisch generiert. Bitte antworten Sie nicht auf dieses E-Mail. \ No newline at end of file
+Guten Tag [% report.name %]
+
+Bitte klicken Sie auf den untenstehenden Link, um Ihre Meldung zu bestätigen. Falls der Link nicht funktioniert, kopieren Sie ihn in Ihren Browser:
+
+[% token_url %]
+
+Ihre Meldung:
+
+[% report.detail %]
+
+Dieses E-Mail wurde automatisch generiert. Bitte antworten Sie nicht auf dieses E-Mail.
diff --git a/templates/email/zurich/problem-external.txt b/templates/email/zurich/problem-external.txt
new file mode 100644
index 000000000..bcc1468d4
--- /dev/null
+++ b/templates/email/zurich/problem-external.txt
@@ -0,0 +1,15 @@
+Subject: FixMyZurich: Meldung #[% problem.id %]
+
+Guten Tag [% problem.name %]
+
+Ihre Meldung wurde an [% problem.body(c).name %] weitergeleitet.
+
+Um die Meldung auf der Webseite zu betrachen, klicken Sie auf folgenden Link:
+ [% url %]
+
+Ihre Meldung:
+
+[% problem.detail %]
+
+Dieses E-Mail wurde automatisch generiert. Bitte antworten Sie nicht auf dieses E-Mail.
+
diff --git a/templates/email/zurich/problem-rejected.txt b/templates/email/zurich/problem-rejected.txt
new file mode 100644
index 000000000..447aeaefb
--- /dev/null
+++ b/templates/email/zurich/problem-rejected.txt
@@ -0,0 +1,12 @@
+Subject: Fix my Zurich: Meldung #[% problem.id %]
+
+Guten Tag [% problem.name %]
+
+Ihre Meldung wurde aufgrund des Inhalts zurückgewiesen.
+
+Ihre Meldung:
+
+[% problem.detail %]
+
+Dieses E-Mail wurde automatisch generiert. Bitte antworten Sie nicht auf dieses E-Mail.
+
diff --git a/templates/email/zurich/reply-autoresponse.txt b/templates/email/zurich/reply-autoresponse.txt
index ef5d69d41..be927f72b 100755
--- a/templates/email/zurich/reply-autoresponse.txt
+++ b/templates/email/zurich/reply-autoresponse.txt
@@ -2,9 +2,9 @@ Subject: Automatische Antwort auf Ihr E-Mail
Guten Tag
-Dies ist eine automatische Antwort auf Ihr E-Mail. Ihr E-Mail wurde nicht &uuml;bermittelt.
+Dies ist eine automatische Antwort auf Ihr E-Mail. Ihr E-Mail wurde nicht übermittelt.
-Falls Sie eine Meldung erfassen m&ouml;chten, tun Sie das bitte &uuml;ber die Hauptseite:
-[% ---link to FMZ--- %]
+Falls Sie eine Meldung erfassen möchten, tun Sie das bitte über die Hauptseite:
+[%# link to FMZ %]
-Falls Sie Fragen zu Fix My Z&uuml;rich haben, senden Sie ein E-Mail an gis-zentrum@zuerich.ch
+Falls Sie Fragen zu Fix my Zurich haben, senden Sie ein E-Mail an gis-zentrum@zuerich.ch
diff --git a/templates/email/zurich/submit-external-personal.txt b/templates/email/zurich/submit-external-personal.txt
new file mode 100644
index 000000000..36768d3bb
--- /dev/null
+++ b/templates/email/zurich/submit-external-personal.txt
@@ -0,0 +1,13 @@
+Subject: FixMyZurich: Neue Meldung #<?=$values['id']?>
+
+Guten Tag <?=$values['bodies_name']?>,
+
+Diese Meldung wurde Ihnen von der Stadt Zürich gesendet, da es Ihr Zuständigkeitsgebiet betreffen könnte.
+
+Öffentliche URL: <?=$values['url']?>
+
+Reporter name: <?=$values['name']?>
+
+Reporter email: <?=$values['email']?>
+
+Reporter phone: <?=$values['phone']?>
diff --git a/templates/email/zurich/submit-external.txt b/templates/email/zurich/submit-external.txt
new file mode 100644
index 000000000..3e07b0664
--- /dev/null
+++ b/templates/email/zurich/submit-external.txt
@@ -0,0 +1,8 @@
+Subject: FixMyZurich: Neue Meldung #<?=$values['id']?>
+
+Guten Tag <?=$values['bodies_name']?>,
+
+Diese Meldung wurde Ihnen von der Stadt Zürich gesendet, da es Ihr Zuständigkeitsgebiet betreffen könnte.
+
+Öffentliche URL: <?=$values['url']?>
+
diff --git a/templates/email/zurich/submit-feedback-pending.txt b/templates/email/zurich/submit-feedback-pending.txt
new file mode 100755
index 000000000..fbf9cafb9
--- /dev/null
+++ b/templates/email/zurich/submit-feedback-pending.txt
@@ -0,0 +1,10 @@
+Subject: FixMyZurich: Meldung #<?=$values['id']?> bereit für Feedback
+
+Guten Tag <?=$values['bodies_name']?>,
+
+Diese Meldung wurde vom Fachbereich abschliessend beantwortet und kann nun auf Fix My Zurich beantwortet und abgeschlossen werden.
+
+Öffentliche URL: <?=$values['url']?>
+
+Admin URL: <?=$values['admin_url']?>
+
diff --git a/templates/email/zurich/submit-in-progress.txt b/templates/email/zurich/submit-in-progress.txt
new file mode 100644
index 000000000..809ba4653
--- /dev/null
+++ b/templates/email/zurich/submit-in-progress.txt
@@ -0,0 +1,10 @@
+Subject: FixMyZurich: Neue Meldung #<?=$values['id']?>
+
+Guten Tag <?=$values['bodies_name']?>,
+
+Diese Meldung wurde Ihnen von Ihrer FMZ-Verantworltichen Stelle zugeteilt.
+
+Öffentliche URL: <?=$values['url']?>
+
+Admin URL: <?=$values['admin_url']?>
+
diff --git a/templates/email/zurich/submit.txt b/templates/email/zurich/submit.txt
index a95b02cde..f55b66e18 100755..100644
--- a/templates/email/zurich/submit.txt
+++ b/templates/email/zurich/submit.txt
@@ -1,10 +1,10 @@
-Subject: Fix My Z&uuml;rich: #<?=----$values['ID']----?>
+Subject: FixMyZurich: Neue Meldung #<?=$values['id']?>
-
-
-<?=$values['url']?>
-
-
-<?=$values['detail']?>
+Guten Tag <?=$values['bodies_name']?>,
+
+Eine neue Meldung wurde erfasst:
+
+Öffentliche URL: <?=$values['url']?>
+
+Admin URL: <?=$values['admin_url']?>
-
diff --git a/templates/web/bromley/report/display.html b/templates/web/bromley/report/display.html
index 5288041f9..329d7ace9 100644
--- a/templates/web/bromley/report/display.html
+++ b/templates/web/bromley/report/display.html
@@ -20,7 +20,7 @@
<div class="shadow-wrap">
<ul id="key-tools">
- [% IF c.user_exists AND c.user.council == 'Bromley Council' %]
+ [% IF c.user_exists AND c.user.body == 'Bromley Council' %]
<li><form method="post" action="/report/delete/[% problem.id %]">
<input type="submit" class="abuse" value="Remove from site">
</form></li>
@@ -74,7 +74,7 @@
<br><a href="http://www.bromley.gov.uk/report">Report a different issue</a>
</div>
- [% IF c.user && c.user.belongs_to_council( problem.council ) %]
+ [% IF c.user && c.user.belongs_to_body( problem.bodies_str ) %]
<label for="form_state">[% loc( 'State' ) %]</label>
<select name="state" id="form_state">
[% FOREACH state IN [ ['confirmed', loc('Open')], ['investigating',
diff --git a/templates/web/bromley/report/new/fill_in_details_form.html b/templates/web/bromley/report/new/fill_in_details_form.html
index 2c5abb874..b60935f47 100644
--- a/templates/web/bromley/report/new/fill_in_details_form.html
+++ b/templates/web/bromley/report/new/fill_in_details_form.html
@@ -39,8 +39,8 @@
[% INCLUDE 'report/new/form_heading.html' %]
- [% IF field_errors.council %]
- <p class='form-error'>[% field_errors.council %]</p>
+ [% IF field_errors.bodies %]
+ <p class='form-error'>[% field_errors.bodies %]</p>
[% END %]
diff --git a/templates/web/default/admin/bodies.html b/templates/web/default/admin/bodies.html
new file mode 100644
index 000000000..ccd2e801b
--- /dev/null
+++ b/templates/web/default/admin/bodies.html
@@ -0,0 +1,48 @@
+[% INCLUDE 'admin/header.html' title=loc('Bodies') -%]
+
+[% INCLUDE 'admin/edit-league.html' %]
+
+<table cellspacing="0" cellpadding="2" border="1">
+ <tr>
+ <th>[% loc('Name') %]</th>
+ [% IF c.cobrand.moniker == 'zurich' %]
+ <th>[% loc('Email') %]</th>
+ [% ELSE %]
+ <th>[% loc('Category') %]</th>
+ [% END %]
+ </tr>
+[%- FOREACH body IN bodies %]
+ [%- SET id = body.id %]
+ [% NEXT IF c.cobrand.moniker == 'zurich' AND admin_type == 'dm' AND (body.parent OR body.bodies) %]
+ <tr>
+ <td>
+ [% IF c.cobrand.moniker == 'zurich' %]
+ [% FILTER repeat(4*body.api_key) %]&nbsp;[% END %]
+ [% END %]
+ <a href="[% c.uri_for( 'body', id ) %]">[% body.name %]</a>
+ [% IF c.cobrand.moniker != 'zurich' %]
+ [%- ', ' _ body.parent.name IF body.parent -%]
+ [% END %]
+ </td>
+ [% IF c.cobrand.moniker == 'zurich' %]
+ <td>[% body.endpoint %]</td>
+ [% ELSE %]
+ [% IF counts.$id %]
+ [% tprintf( loc('%d addresses'), counts.$id.c) IF c.cobrand.moniker != 'emptyhomes' %]
+ [% IF counts.$id.deleted %]
+ (1+ deleted)
+ [% ELSIF counts.$id.confirmed != counts.$id.c %]
+ (some unconfirmed)
+ [% END %]
+ [% ELSE %]
+ no categories
+ [% END %]
+ [% END %]
+ </tr>
+[%- END %]
+</table>
+
+<h2>[% loc('Add body') %]</h2>
+[% INCLUDE 'admin/body-form.html', body='' %]
+
+[% INCLUDE 'admin/footer.html' %]
diff --git a/templates/web/default/admin/body-form.html b/templates/web/default/admin/body-form.html
new file mode 100644
index 000000000..039d83ae2
--- /dev/null
+++ b/templates/web/default/admin/body-form.html
@@ -0,0 +1,85 @@
+ <form method="post" action="[% body ? c.uri_for('body', body.id) : c.uri_for('bodies') %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
+
+ <p>
+ <label for="name">[% loc('Name') %]</label>
+ <input type="text" name="name" id="name" value="[% body.name %]" size="50">
+ </p>
+
+ <p>
+ <label for="parent">[% loc('Parent') %]</label>
+ <select name="parent" id="parent">
+ <option value=""> -- [% loc('Select a body') %] -- </option>
+ [% FOR b IN bodies %]
+ <option value="[% b.id %]"[% ' selected' IF body.parent.id == b.id %]>[% b.name %]</option>
+ [% END %]
+ </select>
+ </p>
+
+ <p>
+ <label for="area_ids">[% loc('Area covered') %]</label>
+ <select name="area_ids" id="area_ids" multiple>
+ <option value=""> -- [% loc('Select an area') %] -- </option>
+ [% FOR area IN areas %]
+ [% SET aid = area.id %]
+ <option value="[% area.id %]"[% ' selected' IF body.areas.$aid %]>[% area.name %]</option>
+ [% END %]
+ </select>
+ </p>
+
+ <p>
+ <label for="send_method">Send Method</label>
+ <select name="send_method" id="send_method">
+ <option value=""> -- Select a method -- </option>
+ [% FOR method IN send_methods %]
+ <option value="[% method %]"[% ' selected' IF body.send_method == method %]>[% method %]</option>
+ [% END %]
+ </select>
+ </p>
+
+ <p>
+ <label for="endpoint">[% loc('Endpoint') %]</label>
+ <input type="text" name="endpoint" id="endpoint" value="[% body.endpoint %]" size="50">
+ </p>
+
+ <p>
+ <label for="jurisdiction">Open311 Jurisdiction</label>
+ <input type="text" name="jurisdiction" id="jurisdiction" value="[% body.jurisdiction %]" size="50">
+ </p>
+
+ <p>
+ <label for="api_key">Open311 API Key</label>
+ <input type="text" name="api_key" id="api_key" value="[% body.api_key %]" size="25">
+ </p>
+
+ <p>
+ <input type="checkbox" id="send_comments" name="send_comments"[% ' checked' IF body.send_comments %]>
+ <label for="send_comments" class="inline">Use Open311 comment sending extension</label>
+ </p>
+
+ <p>
+ <label for"comment_user_id">User ID to attribute fetched comments to</label>
+ <input type="text" name="comment_user_id" value="[% body.comment_user_id %]">
+ </p>
+
+ <p>
+ <input type="checkbox" id="suppress_alerts" name="suppress_alerts"[% ' checked' IF body.suppress_alerts %]>
+ <label for="suppress_alerts" class="inline">Do not send email alerts on fetched comments to problem creator</label>
+ </p>
+
+ <p>
+ <input type="checkbox" id="can_be_devolved" name="can_be_devolved"[% ' checked' IF body.can_be_devolved %]>
+ <label for="can_be_devolved" class="inline">Endpoint lookup can be devolved to contacts</label>
+ </p>
+
+ <p>
+ <label for="send_extended_statuses">Send extended open311 statuses with service request updates</label>:
+ <input type="checkbox" id="send_extended_statuses" name="send_extended_statuses"[% ' checked' IF conf.send_extended_statuses %]>
+ </p>
+
+ <p>
+ <input type="hidden" name="posted" value="body">
+ <input type="hidden" name="token" value="[% token %]">
+ <input type="submit" value="[% body ? loc('Update body') : loc('Add body') %]">
+ </p>
+ </form>
+
diff --git a/templates/web/default/admin/council_contacts.html b/templates/web/default/admin/body.html
index 56850a82b..120a07da9 100644
--- a/templates/web/default/admin/council_contacts.html
+++ b/templates/web/default/admin/body.html
@@ -1,6 +1,4 @@
-[% INCLUDE 'admin/header.html' title=tprintf(loc('Council contacts for %s'), council_name) -%]
-
-[% conf = open311.next %]
+[% INCLUDE 'admin/header.html' title=tprintf(loc('Council contacts for %s'), body.name) -%]
[% IF updated %]
<p>
@@ -13,14 +11,14 @@
<a href="[% c.uri_for_email( '/around', { pc => example_pc } ) %]">[% tprintf( loc('Example postcode %s'), example_pc ) | html %]</a> |
[% END %]
[% IF c.cobrand.moniker == 'emptyhomes' %]
-<a href="[% c.uri_for( 'search_reports', search => 'area:' _ area_id ) %]">[% loc('List all reported problems' ) %]</a>
+<a href="[% c.uri_for( 'reports', search => 'body:' _ body_id ) %]">[% loc('List all reported problems' ) %]</a>
[% ELSE %]
-<a href="[% c.uri_for_email( '/reports/' _ area_id ) %]">[% loc('List all reported problems' ) %]</a>
+<a href="[% c.uri_for_email( '/reports/' _ body_id ) %]">[% loc('List all reported problems' ) %]</a>
[% END %]
-<a href="[% c.uri_for( 'council_contacts', area_id, { text => 1 } ) %]">[% loc('Text only version') %]</a>
+<a href="[% c.uri_for( 'body', body_id, { text => 1 } ) %]">[% loc('Text only version') %]</a>
</p>
-[% IF open311.count > 0 %]
+[% IF body.send_method == 'Open311' %]
<h2>
Council contacts configured via Open311
</h2>
@@ -30,7 +28,7 @@
<p class="error">Do not give these out except to people at the council.</p>
[% END %]
-<form method="post" action="[% c.uri_for('council_contacts', area_id ) %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
+<form method="post" action="[% c.uri_for('body', body_id ) %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
<table cellspacing="0" cellpadding="2" border="1">
<tr>
@@ -47,11 +45,11 @@
</tr>
[% WHILE ( contact = contacts.next ) %]
<tr>
- <td><a href="[% c.uri_for( 'council_edit', area_id, contact.category ) %]">[% contact.category %]</a></td>
+ <td><a href="[% c.uri_for( 'body_edit', body_id, contact.category ) %]">[% contact.category %]</a></td>
<td>[% contact.email | html %]</td>
<td>[% IF contact.confirmed %][% loc('Yes') %][% ELSE %][% loc('No') %][% END %]</td>
<td>[% IF contact.deleted %][% loc('Yes') %][% ELSE %][% loc('No') %][% END %]</td>
- <td>[% IF conf.can_be_devolved && contact.send_method %][% loc('Yes') %][% ELSE %][% loc('No') %][% END %]</td>
+ <td>[% IF body.can_be_devolved && contact.send_method %][% loc('Yes') %][% ELSE %][% loc('No') %][% END %]</td>
<td>[% contact.editor %]</td>
<td>[% contact.note | html %]</td>
<td>[% contact.non_public ? loc('Non Public') : loc('Public') %]</td>
@@ -62,7 +60,6 @@
</table>
<p>
- <input type="hidden" name="area_id" value="[% area_id %]">
<input type="hidden" name="posted" value="update">
<input type="hidden" name="token" value="[% token %]">
<input type="submit" name="Update statuses" value="[% loc('Update statuses') %]">
@@ -71,7 +68,7 @@
<h2>[% loc('Add new category') %]</h2>
- <form method="post" action="[% c.uri_for('council_contacts', area_id ) %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
+ <form method="post" action="[% c.uri_for('body', body_id ) %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
[% IF c.cobrand.moniker != 'emptyhomes' %]
<p>
@@ -101,7 +98,6 @@
</p>
<p>
- <input type="hidden" name="area_id" value="[% area_id %]" >
<input type="hidden" name="posted" value="new" >
<input type="hidden" name="token" value="[% token %]" >
<input type="submit" name="Create category" value="[% loc('Create category') %]" >
@@ -113,65 +109,7 @@
</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">
- <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>
- <label for="send_method">Send Method</label>
- <select name="send_method">
- <option value=""> -- Select a method -- </option>
- [% FOR method IN send_methods %]
- <option value="[% method %]"[% ' selected' IF conf.send_method == method %]>[% method %]</option>
- [% END %]
- </select>
- </p>
-
- <p>
- <input type="checkbox" name="send_comments"[% ' checked' IF conf.send_comments %]>
- <label for="send_comments" class="inline">Use Open311 comment sending extension</label>
- </p>
-
- <p>
- <label for"comment_user_id">User to attribute fetched comments to</label>
- <input type="text" name="comment_user_id" value="[% conf.comment_user_id %]">
- </p>
-
- <p>
- <input type="checkbox" name="suppress_alerts"[% ' checked' IF conf.suppress_alerts %]>
- <label for="suppress_alerts" class="inline">Do not send email alerts on fetched comments to problem creator</label>
- </p>
-
- <p>
- <input type="checkbox" name="devolved"[% ' checked' IF conf.can_be_devolved %]>
- <label for="devolved" class="inline">Endpoint lookup can be devolved to contacts</label>
- </p>
-
- <p>
- <label for="extended_statuses">Send extended open311 statuses with service request updates</label>:
- <input type="checkbox" name="extended_statuses"[% ' checked' IF conf.send_extended_statuses %]>
- </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>
+ <h2>[% loc('Edit body details') %]</h2>
+ [% INCLUDE 'admin/body-form.html' %]
[% INCLUDE 'admin/footer.html' %]
diff --git a/templates/web/default/admin/council_edit.html b/templates/web/default/admin/body_edit.html
index 408466b51..1eeff9ab5 100644
--- a/templates/web/default/admin/council_edit.html
+++ b/templates/web/default/admin/body_edit.html
@@ -1,4 +1,4 @@
-[% INCLUDE 'admin/header.html' title=tprintf(loc('Council contacts for %s'), council_name) -%]
+[% INCLUDE 'admin/header.html' title=tprintf(loc('Council contacts for %s'), body.name) -%]
[% BLOCK highlightchanged_yesno %]
[%- output = loc('No') %]
@@ -19,37 +19,50 @@
[% END %]
</p>
-<form method="post" action="[% c.uri_for('council_contacts', area_id ) %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
- <strong>[% loc('Category:') %] </strong>[% contact.category | html %]
+<form method="post" action="[% c.uri_for('body', body_id ) %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
+ <p><strong>[% loc('Category:') %] </strong>[% contact.category | html %]
<input type="hidden" name="category" value="[% contact.category | html %]" >
<input type="hidden" name="token" value="[% token %]" >
- <strong>[% loc('Email:') %] </strong>
+ <p><strong>[% loc('Email:') %] </strong>
<input type="text" name="email" value="[% contact.email | html %]" size="30">
- <input type="checkbox" name="confirmed" value="1" id="confirmed"[% ' checked' IF contact.confirmed %]> <label for="confirmed">[% loc('Confirmed' ) %]</label>
- <input type="checkbox" name="deleted" value="1" id="deleted"[% ' checked' IF contact.deleted %]> <label for="deleted">[% loc('Deleted') %]</label>
- <input type="checkbox" name="non_public" value="1" id="non_public"[% ' checked' IF contact.non_public %]> <label for="non_public">[% loc('Private') %]</label><br>
- <strong>[% loc('Note:') %] </strong><textarea name="note" rows="3" cols="40">[% contact.note | html %]</textarea> <br>
+ <p>
+ [% IF c.cobrand.moniker != 'zurich' %]
+ <input type="checkbox" name="confirmed" value="1" id="confirmed"[% ' checked' IF contact.confirmed %]>
+ <label class="inline" for="confirmed">[% loc('Confirmed' ) %]</label>
+ [% ELSE %]
+ <input type="hidden" name="confirmed" value="1">
+ [% END %]
+ <input type="checkbox" name="deleted" value="1" id="deleted"[% ' checked' IF contact.deleted %]>
+ <label class="inline" for="deleted">[% loc('Deleted') %]</label>
+ [% IF c.cobrand.moniker != 'zurich' %]
+ <input type="checkbox" name="non_public" value="1" id="non_public"[% ' checked' IF contact.non_public %]>
+ <label class="inline" for="non_public">[% loc('Private') %]</label>
+ [% END %]
+ </p>
+
+ <p><strong>[% loc('Note:') %] </strong><textarea name="note" rows="3" cols="40">[% contact.note | html %]</textarea>
+ [% IF body.can_be_devolved %]
<h2>[% loc('Configure Endpoint') %]</h2>
- <form method="post" action="[% c.uri_for('council_contacts', area_id ) %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
+ <form method="post" action="[% c.uri_for('body', body_id ) %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
<p>
- <label for="endpoint">Endpoint</label>:
+ <label for="endpoint">Endpoint</label>
<input type="text" name="endpoint" id="endpoint" value="[% contact.endpoint %]" size="50">
</p>
<p>
- <label for="jurisdiction">Jurisdiction</label>:
+ <label for="jurisdiction">Jurisdiction</label>
<input type="text" name="jurisdiction" id="jurisdiction" value="[% contact.jurisdiction %]" size="50">
</p>
<p>
- <label for="api_key">Api Key</label>:
+ <label for="api_key">Api Key</label>
<input type="text" name="api_key" id="api_key" value="[% contact.api_key %]" size="25">
</p>
<p>
- <label for="send_method">Send Method</label>:
+ <label for="send_method">Send Method</label>
<select name="send_method">
<option value=""> -- Select a method -- </option>
[% FOR method IN send_methods %]
@@ -57,10 +70,10 @@
[% END %]
</select>
</p>
+ [% END %]
- <input type="hidden" name="area_id" value="[% area_id %]">
<input type="hidden" name="posted" value="new">
- <input type="submit" name="Save changes" value="[% loc('Save changes') %]">
+ <p><input type="submit" name="Save changes" value="[% loc('Save changes') %]">
</form>
<h2>[% loc('History') %]</h2>
diff --git a/templates/web/default/admin/council_list.html b/templates/web/default/admin/council_list.html
deleted file mode 100644
index ac99368fe..000000000
--- a/templates/web/default/admin/council_list.html
+++ /dev/null
@@ -1,47 +0,0 @@
-[% INCLUDE 'admin/header.html' title=loc('Council contacts') -%]
-
-[%- BLOCK details %]
-[%- IF councils.size == 0 %]
- [%- loc('None') %]
-[%- ELSE %]
-[%- FOREACH council IN councils %]
- [%- IF council.parent_area %]
- [%-
- p_area = areas.$council.parent_area
- parent = ', ' _ areas.$parent.name
- %]
- [%- ELSE %]
- [%- parent = '' %]
- [%- END %]
- [%- '<ul>' IF loop.first %]
- <li><a href="[% c.uri_for( 'council_contacts', council ) %]">[% areas.$council.name %] [% parent %][% tprintf( loc('%d addresses'), counts.$council.c) IF counts.$council && c.cobrand.moniker != 'emptyhomes' %]</a>
- [%- '</ul>' IF loop.last %]
-[%- END %]
-[%- END %]
-[%- END %]
-
-<h2>[% loc('Diligency prize league table') %]</h2>
-[% IF edit_activity.count %]
-<ul>
- [% WHILE ( editor = edit_activity.next ) %]
- <li>[% tprintf( loc('%d edits by %s'), editor.get_column('c'), editor.editor ) %]</li>
- [% END %]
-</ul>
-[% ELSE %]
-<p>
-[% loc('No edits have yet been made.') %]
-</p>
-[% END %]
-
-<h2>[% loc('Councils') %]</h2>
-
-<h3>[% loc('No info at all') %]</h3>
-[% PROCESS details councils=no_info %]
-<h3>[% loc('Currently has 1+ deleted') %]</h3>
-[% PROCESS details councils=one_plus_deleted %]
-<h3>[% loc('Some unconfirmeds') %]</h3>
-[% PROCESS details councils=unconfirmeds %]
-<h3>[% loc('All confirmed') %]</h3>
-[% PROCESS details councils=all_confirmed %]
-
-[% INCLUDE 'admin/footer.html' %]
diff --git a/templates/web/default/admin/edit-league.html b/templates/web/default/admin/edit-league.html
new file mode 100644
index 000000000..6bf71537e
--- /dev/null
+++ b/templates/web/default/admin/edit-league.html
@@ -0,0 +1,14 @@
+<h2>[% loc('Diligency prize league table') %]</h2>
+[% IF edit_activity.count %]
+<ul>
+ [% WHILE ( editor = edit_activity.next ) %]
+ <li>[% tprintf( loc('%d edits by %s'), editor.get_column('c'), editor.editor ) %]</li>
+ [% END %]
+</ul>
+[% ELSE %]
+<p>
+[% loc('No edits have yet been made.') %]
+</p>
+[% END %]
+
+
diff --git a/templates/web/default/admin/list_flagged.html b/templates/web/default/admin/flagged.html
index 0b22bccb2..5af92a23c 100644
--- a/templates/web/default/admin/list_flagged.html
+++ b/templates/web/default/admin/flagged.html
@@ -38,7 +38,7 @@
<tr>
<td>[% user.name | html %]</td>
<td>[% user.email | html %]</td>
- <td><a href="[% c.uri_for( 'search_reports', search => user.email ) %]">list content</a></td>
+ <td><a href="[% c.uri_for( 'reports', search => user.email ) %]">list content</a></td>
</tr>
[%- END %]
</table>
diff --git a/templates/web/default/admin/list_updates.html b/templates/web/default/admin/list_updates.html
index d21919b16..ff0ec2f31 100644
--- a/templates/web/default/admin/list_updates.html
+++ b/templates/web/default/admin/list_updates.html
@@ -29,10 +29,10 @@
<td>[% PROCESS format_time time=update.created %]</td>
<td>[% IF update.anonymous %][% loc('Yes') %][% ELSE %][% loc('No') %][% END %]</td>
<td>[% IF update.user.id == update.problem.user_id %][% loc('Yes') %][% ELSE %][% loc('No') %][% END %]</td>
- <td>[% IF update.user.belongs_to_council( update.problem.council ) %][% loc('Yes') %][% ELSE %][% loc('No') %][% END %]</td>
+ <td>[% IF update.user.belongs_to_body( update.problem.bodies_str ) %][% loc('Yes') %][% ELSE %][% loc('No') %][% END %]</td>
<td>[% update.cobrand %]<br>[% update.cobrand_data | html %]</td>
<td>[% update.text | html %]</td>
<td><a href="[% c.uri_for( 'update_edit', update.id ) %]">[% loc('Edit') %]</a></td>
- <tr>
+ </tr>
[% END -%]
</table>
diff --git a/templates/web/default/admin/problem_row.html b/templates/web/default/admin/problem_row.html
index 5aa8bbfee..1533f8dd2 100644
--- a/templates/web/default/admin/problem_row.html
+++ b/templates/web/default/admin/problem_row.html
@@ -10,10 +10,12 @@
<td>[% PROCESS value_or_nbsp value=problem.title %]</td>
<td>[% PROCESS value_or_nbsp value=problem.name %]</td>
<td>[% PROCESS value_or_nbsp value=problem.user.email %]</td>
- <td>[%- IF edit_council_contacts -%]
- <a href="[% c.uri_for('council_contacts', problem.council ) %]">[% PROCESS value_or_nbsp value=problem.council %]</a>
+ <td>[%- IF edit_body_contacts -%]
+ [% FOR body IN problem.bodies.values %]
+ <a href="[% c.uri_for('body', body.id ) %]">[% PROCESS value_or_nbsp value=body.name %]</a>
+ [% END %]
[%- ELSE -%]
- [%- PROCESS value_or_nbsp value=problem.council -%]
+ [%- PROCESS value_or_nbsp value=problem.bodies_str -%]
[%- END -%]</td>
<td>[% PROCESS value_or_nbsp value=problem.category %]</td>
<td>[% IF problem.anonymous %][% loc('Yes') %][% ELSE %][% loc('No') %][% END %]</td>
diff --git a/templates/web/default/admin/report_blocks.html b/templates/web/default/admin/report_blocks.html
index f08529ce7..dbfb8160f 100644
--- a/templates/web/default/admin/report_blocks.html
+++ b/templates/web/default/admin/report_blocks.html
@@ -15,3 +15,11 @@
[% BLOCK flag_button -%]
[% IF user.flagged || user_flagged %]<input type="submit" name="removeuserflag" value="[% loc('Remove flag') %]">[% ELSE %]<input type="submit" name="flaguser" value="[% loc('Flag user') %]" />[% END %]
[%- END %]
+
+[%# note: date format here (i.e., dd.mm.YYYY) currently used by Zurich %]
+[%- USE date_format = DateTime::Format('DateTime::Format::Strptime', { pattern => "%d.%m.%Y" }) %]
+[% BLOCK format_date -%]
+ [%- IF this_date %]
+ [% date_format.format(this_date) %]
+ [% ELSE %][% no_time || '&nbsp;' %][% END %][% no_time = '' %]
+[%- END %]
diff --git a/templates/web/default/admin/report_edit.html b/templates/web/default/admin/report_edit.html
index ea98a9be9..cd5072d00 100644
--- a/templates/web/default/admin/report_edit.html
+++ b/templates/web/default/admin/report_edit.html
@@ -11,19 +11,27 @@
[%- cobrand_data = c.data_for_generic_problem IF !problem.cobrand %]
<li><a href="[% c.uri_for_email( '/report', problem.id, cobrand_data ) %]">[% loc('View report on site' )%]</a></li>
<li><label for='title'>[% loc('Subject:') %]</label> <input size=60 type='text' id='title' name='title' value='[% problem.title | html %]'></li>
-<li><label for='detail'>[% loc('Details:') %]</label><br><textarea name='detail' id='detail' cols=60 rows=10>[% problem.detail | html %]</textarea></li>
-<li>[% loc('Co-ordinates:') %] [% problem.latitude %], [% problem.longitude %] ( [% loc('originally entered') %] [% problem.postcode | html %] , [% IF problem.used_map %][% loc('used map') %][% ELSE %][% loc("didn't use map") %][% END %])</li>
-<li>[% loc('For council(s):') %] [% IF problem.council %][% problem.council %][% ELSE %]<em>[% loc('None' ) %]</em>[% END %] ([% loc('other areas:') %] [% problem.areas | remove('^,') | remove( ',$' ) %])</li>
-<li><label for="state">[% loc('State:') %]</label> <select name="state" id="state">
+<li><label for='detail'>[% loc('Details:') %]</label>
+<textarea name='detail' id='detail' cols=60 rows=10>[% problem.detail | html %]</textarea></li>
+
+<li>[% loc('Co-ordinates:') %] [% problem.latitude %], [% problem.longitude %]
+( [%
+ SET postcode_safe = problem.postcode | html;
+ tprintf( loc('originally entered: &ldquo;%s&rdquo;'), postcode_safe )
+%],
+[% IF problem.used_map %][% loc('used map') %][% ELSE %][% loc("didn't use map") %][% END %])</li>
+
+<li>[% loc('For council(s):') %] [% IF problem.bodies_str %][% problem.bodies_str %][% ELSE %]<em>[% loc('None' ) %]</em>[% END %] ([% loc('other areas:') %] [% problem.areas | remove('^,') | remove( ',$' ) %])</li>
+<li><label class="inline" for="state">[% loc('State:') %]</label> <select name="state" id="state">
[% FOREACH state IN [ ['confirmed', loc('Open')], ['investigating',
loc('Investigating')], ['planned', loc('Planned')], ['in progress',
- loc('In Progress')], ['closed', loc('Closed')], ['fixed', loc('Fixed')], ['fixed - user',
+ loc('In progress')], ['closed', loc('Closed')], ['fixed', loc('Fixed')], ['fixed - user',
loc('Fixed - User')], ['fixed - council', loc('Fixed - Council')], ['hidden', loc('Hidden')], ['partial', loc('Partial')],['unconfirmed',loc('Unconfirmed')] ] %]
<option [% 'selected ' IF state.0 == problem.state %] value="[% state.0 %]">[% state.1 %]</option>
[% END %]
</select></li>
<li>[% loc('Category:') %] [% problem.category | html %] </li>
-<li><label for="anonymous">[% loc('Anonymous:') %]</label> <select name="anonymous" id="anonymous">
+<li><label class="inline" for="anonymous">[% loc('Anonymous:') %]</label> <select name="anonymous" id="anonymous">
<option [% 'selected ' IF problem.anonymous %]value="1">[% loc('Yes') %]</option>
<option [% 'selected ' IF !problem.anonymous %]value="0">[% loc('No') %]</option>
</select></li>
@@ -39,19 +47,19 @@
<li>[% loc('Cobrand data:') %] [% problem.cobrand_data %]</li>
<li>[% loc('Extra data:') %] [% problem.extra ? 'Yes' : 'No' %]</li>
<li>[% loc('Going to send questionnaire?') %] [% IF problem.send_questionnaire %][% loc('Yes') %][% ELSE %][% loc('No') %][% END %]</li>
-<li><label for="flagged">[% loc('Flagged:') %]</label> <input type="checkbox" name="flagged"[% ' checked' IF problem.flagged %]></li>
-<li><label for="non_public">[% loc('Private') %]:</label> <input type="checkbox" name="non_public"[% ' checked' IF problem.non_public %]></li>
+<li><label class="inline" for="flagged">[% loc('Flagged:') %]</label> <input type="checkbox" name="flagged"[% ' checked' IF problem.flagged %]></li>
+<li><label class="inline" for="non_public">[% loc('Private') %]:</label> <input type="checkbox" name="non_public"[% ' checked' IF problem.non_public %]></li>
[% IF problem.photo %]
[% photo = problem.get_photo_params %]
<li><img alt="" height="[% photo.height %]" width="[% photo.width %]" src="[% c.cobrand.base_url %][% photo.url %]">
<br>
-[% IF rotated %]Photo may be cached. View image directly to check<br>[% END %]
-<input type="submit" name="rotate_photo" value="Rotate Left" />
-<input type="submit" name="rotate_photo" value="Rotate Right" />
+[% IF rotated %]Photo may be cached for a while.<br>[% END %]
+<input type="submit" name="rotate_photo" value="[% loc('Rotate Left') %]">
+<input type="submit" name="rotate_photo" value="[% loc('Rotate Right') %]">
<br>
<input type="checkbox" id="remove_photo" name="remove_photo" value="1">
-<label for="remove_photo">[% loc("Remove photo (can't be undone!)") %]</label></li>
+<label class="inline" for="remove_photo">[% loc("Remove photo (can't be undone!)") %]</label></li>
[% END %]
</ul>
<input type="submit" name="Submit changes" value="[% loc('Submit changes') %]" ></form>
diff --git a/templates/web/default/admin/search_reports.html b/templates/web/default/admin/reports.html
index 9702c16a7..600f2b436 100644
--- a/templates/web/default/admin/search_reports.html
+++ b/templates/web/default/admin/reports.html
@@ -1,8 +1,8 @@
[% INCLUDE 'admin/header.html' title=loc('Search Reports') %]
[% PROCESS 'admin/report_blocks.html' %]
-<form method="get" action="[% c.uri_for('search_reports') %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
- <label for="search">[% loc('Search:') %]</label> <input type="text" name="search" size="30" id="search">
+<form method="get" action="[% c.uri_for('reports') %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
+ <p><label for="search">[% loc('Search:') %]</label> <input type="text" name="search" size="30" id="search">
</form>
@@ -13,7 +13,7 @@
<th>[% loc('Title') %]</th>
<th>[% loc('Name') %]</th>
<th>[% loc('Email') %]</th>
- <th>[% loc('Council') %]</th>
+ <th>[% loc('Body') %]</th>
<th>[% loc('Category') %]</th>
<th>[% loc('Anonymous') %]</th>
<th>[% loc('Cobrand') %]</th>
diff --git a/templates/web/default/admin/stats.html b/templates/web/default/admin/stats.html
index 234600837..bb42d5b7d 100644
--- a/templates/web/default/admin/stats.html
+++ b/templates/web/default/admin/stats.html
@@ -81,10 +81,10 @@
</p>
<p>
- [% loc('Council:') %] <select id='council' name='council'>
+ [% loc('Council:') %] <select id='body' name='body'>
<option value=''>[% loc('No council') %]</option>
- [% FOR council IN council_ids %]
- <option value="[% council %]"[% ' selected' IF council == selected_council %]>[% council_details.$council.name %]</option>
+ [% FOR body IN bodies %]
+ <option value="[% body.id %]"[% ' selected' IF body.id == selected_body %]>[% body.name %]</option>
[% END %]
</select>
</p>
diff --git a/templates/web/default/admin/timeline.html b/templates/web/default/admin/timeline.html
index 95120e48c..db6ff83ef 100644
--- a/templates/web/default/admin/timeline.html
+++ b/templates/web/default/admin/timeline.html
@@ -25,7 +25,7 @@
[% CASE 'problemConfirmed' %]
[%- tprintf( loc('Problem %s confirmed'), '<a href="' _ c.uri_for_email( '/report', item.obj.id, c.cobrand_data ) _ '">' _ item.obj.id _ '</a>') %]; [% PROCESS problem_name problem=item.obj -%]
[% CASE 'problemSent' %]
- [% tprintf(loc("Problem %s sent to council %s"), '<a href="' _ c.uri_for_email( '/report', item.obj.id, c.cobrand_data ) _ '">' _ item.obj.id _ '</a>', item.obj.council ) %]
+ [% tprintf(loc("Problem %s sent to council %s"), '<a href="' _ c.uri_for_email( '/report', item.obj.id, c.cobrand_data ) _ '">' _ item.obj.id _ '</a>', item.obj.bodies_str ) %]
[% CASE 'quesSent' %]
[% tprintf(loc("Questionnaire %d sent for problem %d"), item.obj.id, item.obj.problem_id ) %]
[% CASE 'quesAnswered' %]
diff --git a/templates/web/default/admin/update_edit.html b/templates/web/default/admin/update_edit.html
index 1d5ee80b4..26d262f73 100644
--- a/templates/web/default/admin/update_edit.html
+++ b/templates/web/default/admin/update_edit.html
@@ -10,7 +10,10 @@
[%- cobrand_data = update.cobrand_data %]
[%- cobrand_data = c.data_for_generic_update IF !update.cobrand %]
<li><a href="[% c.uri_for_email( '/report', update.problem_id, cobrand_data ) %]#update_[% update.id %]">[% loc('View report on site' )%]</a></li>
-<li><label for='detail'>[% loc('Text:') %]</label><br><textarea name='text' id='text' cols=60 rows=10>[% update.text | html %]</textarea></li>
+
+<li><label for='detail'>[% loc('Text:') %]</label>
+<textarea name='text' id='text' cols=60 rows=10>[% update.text | html %]</textarea></li>
+
<li><label for="anonymous">[% loc('Anonymous:') %]</label> <select name="anonymous" id="anonymous">
<option [% 'selected ' IF update.anonymous %]value="1">[% loc('Yes') %]</option>
<option [% 'selected ' IF !update.anonymous %]value="0">[% loc('No') %]</option>
@@ -22,8 +25,8 @@
</select></li>
<li>[% loc('Name:') %] <input type='text' name='name' id='name' value='[% update.name | html %]'></li>
<li>[% loc('Email:') %] <input type='text' id='email' name='email' value='[% update.user.email | html %]'>
-[%- IF update.user.from_council && update.user.from_council == update.problem.council %]
-[% ' (' _ tprintf(loc('user is from same council as problem - %d'), update.user.from_council ) _')' %]
+[%- IF update.user.from_body && update.user.from_body.id == update.problem.bodies_str %]
+[% ' (' _ tprintf(loc('user is from same council as problem - %d'), update.user.from_body.id ) _')' %]
[% END -%]
[%- IF update.user.id == update.problem.user.id %]
[% ' (' _ loc('user is problem owner') _')' %]
diff --git a/templates/web/default/admin/user-form.html b/templates/web/default/admin/user-form.html
new file mode 100644
index 000000000..eec54d447
--- /dev/null
+++ b/templates/web/default/admin/user-form.html
@@ -0,0 +1,18 @@
+<form method="post" action="[% c.uri_for( 'user_edit', user.id ) %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
+ <input type="hidden" name="token" value="[% token %]" >
+ <input type="hidden" name="submit" value="1" >
+ <ul>
+ <li>[% loc('Name:') %] <input type='text' name='name' id='name' value='[% user.name | html %]'></li>
+ <li>[% loc('Email:') %] <input type='text' id='email' name='email' value='[% user.email | html %]'></li>
+ <li>[% loc('Body:') %] <select id='body' name='body'>
+ <option value=''>[% loc('No body') %]</option>
+ [% FOR body IN bodies %]
+ <option value="[% body.id %]"[% ' selected' IF body.id == user.from_body.id %]>[% body.name %]</option>
+ [% END %]
+ </select>
+ [% IF c.cobrand.moniker != 'zurich' %]
+ <li>[% loc('Flagged:') %] <input type="checkbox" id="flagged" name="flagged"[% user.flagged ? ' checked' : '' %]></li>
+ [% END %]
+ </ul>
+ <input type="submit" name="Submit changes" value="[% loc('Submit changes') %]" >
+</form>
diff --git a/templates/web/default/admin/user_edit.html b/templates/web/default/admin/user_edit.html
index a03a4b734..d69c873a3 100644
--- a/templates/web/default/admin/user_edit.html
+++ b/templates/web/default/admin/user_edit.html
@@ -3,20 +3,6 @@
[% status_message %]
-<form method="post" action="[% c.uri_for( 'user_edit', user.id ) %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
- <input type="hidden" name="token" value="[% token %]" >
- <input type="hidden" name="submit" value="1" >
-<ul>
-<li>[% loc('Name:') %] <input type='text' name='name' id='name' value='[% user.name | html %]'></li>
-<li>[% loc('Email:') %] <input type='text' id='email' name='email' value='[% user.email | html %]'></li>
-<li>[% loc('Council:') %] <select id='council' name='council'>
- <option value=''>[% loc('No council') %]</option>
-[% FOR council IN council_ids %]
- <option value="[% council %]"[% ' selected' IF council == user.from_council %]>[% council_details.$council.name %]</option>
-[% END %]
-</select>
-<li>[% loc('Flagged:') %] <input type="checkbox" id="flagged" name="flagged"[% user.flagged ? ' checked' : '' %]></li>
-</ul>
-<input type="submit" name="Submit changes" value="[% loc('Submit changes') %]" ></form>
+[% INCLUDE 'admin/user-form.html' %]
[% INCLUDE 'admin/footer.html' %]
diff --git a/templates/web/default/admin/search_users.html b/templates/web/default/admin/users.html
index 0b4ba88e7..de0b74746 100644
--- a/templates/web/default/admin/search_users.html
+++ b/templates/web/default/admin/users.html
@@ -1,31 +1,40 @@
[% INCLUDE 'admin/header.html' title=loc('Search Users') %]
[% PROCESS 'admin/report_blocks.html' %]
-<form method="get" action="[% c.uri_for('search_users') %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
- <label for="search">[% loc('Search:') %]</label> <input type="text" name="search" size="30" id="search">
+<form method="get" action="[% c.uri_for('users') %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
+ <p><label for="search">[% loc('Search:') %]</label> <input type="text" name="search" size="30" id="search" value="[% searched | html %]">
</form>
-
[% IF searched %]
+
<table cellspacing="0" cellpadding="2" border="1">
<tr>
<th>[% loc('Name') %]</th>
<th>[% loc('Email') %]</th>
- <th>[% loc('Council') %]</th>
+ <th>[% loc('Body') %]</th>
+ [% IF c.cobrand.moniker != 'zurich' %]
<th>[% loc('Flagged') %]</th>
+ [% END %]
<th>*</th>
</tr>
[%- FOREACH user IN users %]
<tr>
<td>[% PROCESS value_or_nbsp value=user.name %]</td>
- <td><a href="[% c.uri_for( 'search_reports', search => user.email ) %]">[% PROCESS value_or_nbsp value=user.email %]</a></td>
- <td>[% PROCESS value_or_nbsp value=user.from_council %]</td>
+ <td><a href="[% c.uri_for( 'reports', search => user.email ) %]">[% PROCESS value_or_nbsp value=user.email %]</a></td>
+ <td>[% PROCESS value_or_nbsp value=user.from_body.name %]</td>
+ [% IF c.cobrand.moniker != 'zurich' %]
<td>[% user.flagged == 2 ? loc('(Email in abuse table)') : user.flagged ? loc('Yes') : '&nbsp;' %]</td>
+ [% END %]
<td>[% IF user.id %]<a href="[% c.uri_for( 'user_edit', user.id ) %]">[% loc('Edit') %]</a>[% END %]</td>
</tr>
[%- END -%]
</table>
+[% ELSE %]
+
+<h2>[% loc('Add user') %]</h2>
+[% INCLUDE 'admin/user-form.html' %]
+
[% END %]
[% INCLUDE 'admin/footer.html' %]
diff --git a/templates/web/default/around/around_map_list_items.html b/templates/web/default/around/around_map_list_items.html
index f598a9ba9..655d8bd25 100644
--- a/templates/web/default/around/around_map_list_items.html
+++ b/templates/web/default/around/around_map_list_items.html
@@ -5,7 +5,7 @@
<li>
<a href="[% c.uri_for('/report', p.problem.id ) %]">[% p.problem.title | html %]</a>
- <small>[% prettify_epoch( p.problem.confirmed_local.epoch, 1 ) %], [% dist %]km</small>
+ <small>[% prettify_dt( p.problem.confirmed_local, 1 ) %], [% dist %]km</small>
[% IF p.problem.is_fixed %]
<small>[% loc('(fixed)') %]</small>
[% ELSIF p.problem.is_closed %]
diff --git a/templates/web/default/around/display_location.html b/templates/web/default/around/display_location.html
index a9f18b9bd..c8c6935de 100755
--- a/templates/web/default/around/display_location.html
+++ b/templates/web/default/around/display_location.html
@@ -35,7 +35,7 @@
bodyclass => 'mappage',
robots => 'noindex,nofollow';
- allow_creation = !c.cobrand.only_authed_can_create || (c.user && c.user.from_council);
+ allow_creation = !c.cobrand.only_authed_can_create || (c.user && c.user.from_body);
%]
[% IF allow_creation %]
@@ -53,6 +53,9 @@
[% IF c.cobrand.moniker != 'emptyhomes' %]
<p id='sub_map_links'>
+ [% IF c.cobrand.moniker == 'zurich' %]
+ <a class="hidden-nojs" id="map_layer_toggle" href="">Stadtplan</a>
+ [% END %]
[% IF c.req.params.no_pins %]
<a id='hide_pins_link' rel='nofollow' href='[% c.uri_with( { no_pins => 0 } ) %]'>[% loc('Show pins') %]</a>
[% ELSE %]
diff --git a/templates/web/default/around/on_map_list_items.html b/templates/web/default/around/on_map_list_items.html
index e0f8eea08..1022c88a0 100644
--- a/templates/web/default/around/on_map_list_items.html
+++ b/templates/web/default/around/on_map_list_items.html
@@ -2,7 +2,7 @@
[% FOREACH p IN on_map %]
<li>
<a href="[% c.uri_for('/report', p.id ) %]">[% p.title | html %]</a>
- <small>[% prettify_epoch( p.confirmed_local.epoch, 1 ) %]</small>
+ <small>[% prettify_dt( p.confirmed_local, 1 ) %]</small>
[% IF p.is_fixed %]
<small>[% loc('(fixed)') %]</small>
[% ELSIF p.is_closed %]
diff --git a/templates/web/default/around/postcode_form.html b/templates/web/default/around/postcode_form.html
index 935995cfe..f58d7285d 100644
--- a/templates/web/default/around/postcode_form.html
+++ b/templates/web/default/around/postcode_form.html
@@ -5,7 +5,7 @@
<form action="[% c.uri_for('/around') %]" method="get" name="postcodeForm" id="postcodeForm">
<label for="pc">[% question %]:</label>
<span><input type="text" name="pc" value="[% pc | html %]" id="pc" size="10" maxlength="200">
- <input type="submit" value="[% loc('Go') %]" id="submit">
+ <input type="submit" value="[% loc('Go') %]" id="sub">
</span>
[% IF partial_token %]
<input type="hidden" name="partial" value="[% partial_token.token %]">
diff --git a/templates/web/default/auth/sign_out.html b/templates/web/default/auth/sign_out.html
index 23d39aa2d..571e13f9f 100644
--- a/templates/web/default/auth/sign_out.html
+++ b/templates/web/default/auth/sign_out.html
@@ -2,7 +2,6 @@
<h1>[% loc('You have been signed out') %]</h1>
-<p>Please feel free to <a href="[% c.uri_for('/auth') %]">sign in again</a>, or
-go back to the <a href="/">FixMyStreet front page</a>.</p>
+<p>[% tprintf( loc('Please feel free to <a href="%s">sign in again</a>, or go back to the <a href="/">front page</a>.'), c.uri_for('/auth') ) %]</p>
[% INCLUDE 'footer.html' %]
diff --git a/templates/web/default/auth/token.html b/templates/web/default/auth/token.html
index 0f44d1074..5fa69ab21 100644
--- a/templates/web/default/auth/token.html
+++ b/templates/web/default/auth/token.html
@@ -18,7 +18,9 @@
<p>[% loc("We have sent you an email containing a link to confirm your account.") %]</p>
+[% IF c.cobrand.moniker != 'zurich' %]
<p>[% loc("The confirmation email <strong>may</strong> take a few minutes to arrive &mdash; <em>please</em> be patient.") %]</p>
+[% END %]
<p>[% loc("If you use web-based email or have 'junk mail' filters, you may wish to check your bulk/spam mail folders: sometimes, our messages are marked that way.") %]</p>
diff --git a/templates/web/default/common_header_tags.html b/templates/web/default/common_header_tags.html
index 4839249ac..346d53693 100644
--- a/templates/web/default/common_header_tags.html
+++ b/templates/web/default/common_header_tags.html
@@ -2,7 +2,7 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javascript" src="/js/validation_rules.js?[% Math.int( date.now / 3600 ) %]"></script>
-<script type="text/javascript" src="/js/validation_strings.[% lang_code %].js?[% Math.int( date.now / 3600 ) %]"></script>
+<script type="text/javascript" src="/js/translation_strings.[% lang_code %].js?[% Math.int( date.now / 3600 ) %]"></script>
<script type="text/javascript" src="/jslib/jquery-1.7.2.min.js"></script>
<script src="[% version('/js/jquery.validate.min.js') %]" type="text/javascript" charset="utf-8"></script>
diff --git a/templates/web/default/contact/index.html b/templates/web/default/contact/index.html
index a644ed952..cb87362ba 100644
--- a/templates/web/default/contact/index.html
+++ b/templates/web/default/contact/index.html
@@ -18,9 +18,9 @@
<blockquote>
<p>
[% IF update.anonymous %]
- [% tprintf( loc('Update below added anonymously at %s'), prettify_epoch( update.confirmed_local.epoch ) ) %]
+ [% tprintf( loc('Update below added anonymously at %s'), prettify_dt( update.confirmed_local ) ) %]
[% ELSE %]
- [% tprintf( loc('Update below added by %s at %s'), update.name, prettify_epoch( update.confirmed_local.epoch ) ) | html %]
+ [% tprintf( loc('Update below added by %s at %s'), update.name, prettify_dt( update.confirmed_local ) ) | html %]
[% END %]
</p>
@@ -42,9 +42,9 @@
<p>
[% IF problem.anonymous %]
- [% tprintf( loc('Reported anonymously at %s'), prettify_epoch( problem.confirmed_local.epoch ) ) %]
+ [% tprintf( loc('Reported anonymously at %s'), prettify_dt( problem.confirmed_local ) ) %]
[% ELSE %]
- [% tprintf( loc('Reported by %s at %s'), problem.user.name, prettify_epoch( problem.confirmed_local.epoch ) ) | html %]
+ [% tprintf( loc('Reported by %s at %s'), problem.user.name, prettify_dt( problem.confirmed_local ) ) | html %]
[% END %]
</p>
diff --git a/templates/web/default/email_sent.html b/templates/web/default/email_sent.html
index fd947022a..9afddf2bd 100644
--- a/templates/web/default/email_sent.html
+++ b/templates/web/default/email_sent.html
@@ -1,30 +1,34 @@
-[% INCLUDE 'header.html', title => loc('Create a report') %]
-
-[%
- messages = {
- problem => {
- action => loc('your problem will not be posted'),
- worry => loc("we'll hang on to your problem report while you're checking your email."),
- },
- update => {
- action => loc('your update will not be posted'),
- worry => loc("we'll hang on to your update while you're checking your email."),
- },
- alert => {
- action => loc('your alert will not be activated'),
- worry => loc("we'll hang on to your alert while you're checking your email."),
- },
- }
-%]
+[% INCLUDE 'header.html', title = loc('Create a report') %]
<h1>[% loc("Nearly Done! Now check your email...") %]</h1>
-<p>[% loc("The confirmation email <strong>may</strong> take a few minutes to arrive &mdash; <em>please</em> be patient.") %]</p>
+[% IF c.cobrand.moniker != 'zurich' %]
+ <p>[% loc("The confirmation email <strong>may</strong> take a few minutes to arrive &mdash; <em>please</em> be patient.") %]</p>
+[% END %]
<p>[% loc("If you use web-based email or have 'junk mail' filters, you may wish to check your bulk/spam mail folders: sometimes, our messages are marked that way.") %]</p>
-<p>[% tprintf( loc("You must now click the link in the email we've just sent you &mdash; if you do not, %s."), messages.$email_type.action ) %].</p>
+[% IF c.cobrand.moniker != 'zurich' %]
+ <p>
+ [% loc("You must now click the link in the email we've just sent you.") %]
+ [% IF email_type == 'problem' %]
+ [% loc("If you do not, your problem will not be posted.") %]
+ [% ELSIF email_type == 'update' %]
+ [% loc("If you do not, your update will not be posted.") %]
+ [% ELSIF email_type == 'alert' %]
+ [% loc("If you do not, your alert will not be activated.") %]
+ [% END %]
+ </p>
-<p>[% tprintf( loc("(Don't worry &mdash; %s)"), messages.$email_type.worry ) %]</p>
+ <p>
+ [% IF email_type == 'problem' %]
+ [% loc("(Don't worry &mdash; we'll hang on to your problem report while you're checking your email.)") %]
+ [% ELSIF email_type == 'update' %]
+ [% loc("(Don't worry &mdash; we'll hang on to your update while you're checking your email.)") %]
+ [% ELSIF email_type == 'alert' %]
+ [% loc("(Don't worry &mdash; we'll hang on to your alert while you're checking your email.)") %]
+ [% END %]
+ </p>
+[% END %]
[% INCLUDE 'footer.html' %]
diff --git a/templates/web/default/front/stats.html b/templates/web/default/front/stats.html
index fd1f253bc..eae66018b 100644
--- a/templates/web/default/front/stats.html
+++ b/templates/web/default/front/stats.html
@@ -38,6 +38,8 @@
<div>[% tprintf( new_text, stats.new ) | comma %]</div>
[% IF c.cobrand.moniker != 'emptyhomes' %]
<div>[% tprintf( fixed_text, stats.fixed ) | comma %]</div>
+ [% IF c.cobrand.moniker != 'zurich' %]
<div>[% tprintf( updates_text, stats.updates ) | comma %]</div>
[% END %]
+ [% END %]
</div>
diff --git a/templates/web/default/index.html b/templates/web/default/index.html
index 78e4fbba6..beaeefb20 100644
--- a/templates/web/default/index.html
+++ b/templates/web/default/index.html
@@ -53,7 +53,7 @@
[% FOREACH p IN probs %]
<li>
<a href="/report/[% p.id %]">[% p.title | html %]</a>
- <small>[% prettify_epoch( p.confirmed_local.epoch, 1 ) %]</small>
+ <small>[% prettify_dt( p.confirmed_local, 1 ) %]</small>
</li>
[% END %]
</ul>
diff --git a/templates/web/default/js/validation_strings.html b/templates/web/default/js/translation_strings.html
index c33bd2b81..a0cfc02c9 100644
--- a/templates/web/default/js/validation_strings.html
+++ b/templates/web/default/js/translation_strings.html
@@ -1,4 +1,4 @@
- validation_strings = {
+ translation_strings = {
update: '[% loc('Please enter a message') | replace("'", "\\'") %]',
title: '[% loc('Please enter a subject') | replace("'", "\\'") %]',
detail: '[% loc('Please enter some details') | replace("'", "\\'") %]',
@@ -19,5 +19,22 @@
first_name: '[% loc('Please enter your first name') | replace("'", "\\'") %]',
last_name: '[% loc('Please enter your second name') | replace("'", "\\'") %]',
geolocate: '[% loc('or locate me automatically') | replace("'", "\\'") %]',
+ right_place: '[% loc('Right place?') | replace("'", "\\'") %]',
+ try_again: '[% loc('Try again') | replace("'", "\\'") %]',
+ place_pin_on_map: '[% loc('Place pin on map') | replace("'", "\\'") %]',
+ home: '[% loc('Home') | replace("'", "\\'") %]',
+ back: '[% loc('Back') | replace("'", "\\'") %]',
+ how_to_send: '[% loc('How to send successful reports') | replace("'", "\\'") %]',
+ more_details: '[% loc('Details') | replace("'", "\\'") %]',
+
+ geolocation_declined: '[% loc('You declined; please fill in the box above') | replace("'", "\\'") %]',
+ geolocation_no_position: '[% loc('Could not look up location') | replace("'", "\\'") %]',
+ geolocation_no_result: '[% loc('No result returned') | replace("'", "\\'") %]',
+ geolocation_unknown: '[% loc('Unknown error') | replace("'", "\\'") %]',
+
+ reporting_a_problem: '[% loc('Reporting a problem') | replace("'", "\\'") %]',
+ ok: '[% loc('OK') | replace("'", "\\'") %]',
+ map: '[% loc('MAP') | replace("'", "\\'") %]',
+
report_problem_heading: '[% loc('Click map to report a problem') | replace("'", "\\'") %]'
};
diff --git a/templates/web/default/my/my.html b/templates/web/default/my/my.html
index 3d418cda7..cb9b0dd99 100644
--- a/templates/web/default/my/my.html
+++ b/templates/web/default/my/my.html
@@ -53,7 +53,7 @@ END %]
<li>&ldquo;[% u.text | html %]&rdquo;
&ndash; <a href="[% c.uri_for( '/report', u.problem_id ) %]#update_[% u.id %]">[% u.problem.title | html %]</a>.
<em class="council_sent_info">
- [% tprintf( loc("Added %s"), prettify_epoch( u.confirmed_local.epoch, 'date' ) ) %]
+ [% tprintf( loc("Added %s"), prettify_dt( u.confirmed_local, 'date' ) ) %]
</em>
</li>
[% "</ul>" IF loop.last %]
@@ -69,9 +69,9 @@ END %]
<li><a href="[% c.uri_for( '/report', p.id ) %]">[% p.title | html %]</a>
<em class="council_sent_info"> &ndash;
[% IF p.whensent %]
- [% tprintf( loc("Reported %s, to %s"), prettify_epoch( p.confirmed_local.epoch, 'date' ), p.body(c) ) %]
+ [% tprintf( loc("Reported %s, to %s"), prettify_dt( p.confirmed_local, 'date' ), p.body(c) ) %]
[% ELSE %]
- [% tprintf( loc("Reported %s"), prettify_epoch( p.confirmed_local.epoch, 'date' ) ) %]
+ [% tprintf( loc("Reported %s"), prettify_dt( p.confirmed_local, 'date' ) ) %]
[% END %]
</em>
</li>
diff --git a/templates/web/default/questionnaire/completed.html b/templates/web/default/questionnaire/completed.html
index 52c20652c..4d848a63c 100644
--- a/templates/web/default/questionnaire/completed.html
+++ b/templates/web/default/questionnaire/completed.html
@@ -22,7 +22,7 @@ site and leave an update.</p>') %]
[% END %]
[% IF advert_outcome %]
- [% display_crosssell_advert( problem.user.email, problem.name, 'council', problem.council ) %]
+ [% display_crosssell_advert( problem.user.email, problem.name, 'council', problem.bodies_str ) %]
[% END %]
[% INCLUDE 'footer.html' %]
diff --git a/templates/web/default/report/_main.html b/templates/web/default/report/_main.html
index 6b7c1d271..789f8e43e 100644
--- a/templates/web/default/report/_main.html
+++ b/templates/web/default/report/_main.html
@@ -4,7 +4,7 @@
<p><em>
[% problem.meta_line(c) | html %]
[%- IF !problem.used_map AND c.cobrand.moniker != 'emptyhomes' %]; <strong>[% loc('there is no pin shown as the user did not use the map') %]</strong>[% END %]
- [% IF problem.council %]
+ [% IF problem.bodies_str %]
[% IF problem.whensent || problem.can_display_external_id %]
<small class="council_sent_info"><br>
[% problem.processed_summary_string(c) %]
diff --git a/templates/web/default/report/_support.html b/templates/web/default/report/_support.html
index e8b958940..f4bdb8c20 100644
--- a/templates/web/default/report/_support.html
+++ b/templates/web/default/report/_support.html
@@ -1,7 +1,7 @@
[% IF c.cobrand.can_support_problems %]
<p id="supporter"><small>
[% IF !problem.interest_count %][% text=loc('No supporters') %][% ELSIF problem.interest_count == 1 %][% text = loc('1 supporter') %][% ELSE %][% text = tprintf( loc('%d supporters' ), problem.interest_count ) %][% END %]
- [% IF c.user && c.user.from_council %]<form action="[% c.uri_for( '/report/support' ) %]">
+ [% IF c.user && c.user.from_body %]<form action="[% c.uri_for( '/report/support' ) %]">
[% text %] <input type="hidden" name="id" value="[% problem.id %]"><input type="submit" class="green-btn" value="Add support">
</form>
[% ELSE %]
diff --git a/templates/web/default/report/new/category.html b/templates/web/default/report/new/category.html
index 49be4d25d..a701e0851 100644
--- a/templates/web/default/report/new/category.html
+++ b/templates/web/default/report/new/category.html
@@ -7,7 +7,8 @@
<select name='category' id='form_category'[% ' onchange="form_category_onchange()"' IF category_extras.size %]>
[% FOREACH cat_op IN category_options %]
[% cat_op_lc = cat_op | lower %]
- <option value='[% cat_op | html %]'[% ' selected' IF report.category == cat_op || category == cat_op_lc %]>[% cat_op | html %]</option>
+ <option value='[% cat_op | html %]'[% ' selected' IF report.category == cat_op || category == cat_op_lc -%]
+ >[% IF loop.first %][% cat_op %][% ELSE %][% cat_op | html %][% END %]</option>
[% END %]
</select>
[% END %]
diff --git a/templates/web/default/report/new/councils_text.html b/templates/web/default/report/new/councils_text.html
index 1da5746c1..f526beb28 100644
--- a/templates/web/default/report/new/councils_text.html
+++ b/templates/web/default/report/new/councils_text.html
@@ -1,7 +1,7 @@
[% FILTER collapse %]
-[% IF area_ids_to_list.size == 0 %]
+[% IF bodies_to_list.size == 0 %]
[% PROCESS 'report/new/councils_text_none.html' %]
-[% ELSIF area_ids_to_list.size == all_councils.size %]
+[% ELSIF bodies_to_list.size == bodies.size %]
[% PROCESS 'report/new/councils_text_all.html' %]
[% ELSE %]
[% PROCESS 'report/new/councils_text_some.html' %]
diff --git a/templates/web/default/report/new/councils_text_all.html b/templates/web/default/report/new/councils_text_all.html
index af5d822b0..e9a008e90 100644
--- a/templates/web/default/report/new/councils_text_all.html
+++ b/templates/web/default/report/new/councils_text_all.html
@@ -1,23 +1,24 @@
+[%# XXX The below type checking is assuming that a body ID can be used to look up a mapit type. %]
<p>
-[% IF area_ids_to_list.0 != 2489 && area_ids_to_list.0 != 2482 && all_councils.${area_ids_to_list.0}.type == 'LBO' %]
+[% IF bodies_to_list.0 != 2489 && bodies_to_list.0 != 2482 && all_areas.${bodies_to_list.0}.type == 'LBO' %]
[%
tprintf(
loc('All the information you provide here will be sent to <strong>%s</strong> or a relevant local body such as <strong>TfL</strong>, via the London Report-It system.'),
- all_council_names.join( '</strong>' _ loc(' or ') _ '<strong>' )
+ all_body_names.join( '</strong>' _ loc(' or ') _ '<strong>' )
);
%]
-[% ELSIF all_councils.${area_ids_to_list.0}.type == 'LGD' %]
+[% ELSIF all_areas.${bodies_to_list.0}.type == 'LGD' %]
[%
tprintf(
loc('All the information you provide here will be sent to <strong>%s</strong> or <strong>Roads Service</strong>.'),
- all_council_names.join( '</strong>' _ loc(' or ') _ '<strong>' )
+ all_body_names.join( '</strong>' _ loc(' or ') _ '<strong>' )
);
%]
[% ELSE %]
[%
tprintf(
loc('All the information you provide here will be sent to <strong>%s</strong>.'),
- all_council_names.join( '</strong>' _ loc(' or ') _ '<strong>' )
+ all_body_names.join( '</strong>' _ loc(' or ') _ '<strong>' )
);
%]
[% END %]
diff --git a/templates/web/default/report/new/councils_text_none.html b/templates/web/default/report/new/councils_text_none.html
index 06a4bbe49..3c445b085 100644
--- a/templates/web/default/report/new/councils_text_none.html
+++ b/templates/web/default/report/new/councils_text_none.html
@@ -1,11 +1,8 @@
-
-
<p>[%
-
nget(
"We do not yet have details for the council that covers this location.",
"We do not yet have details for the councils that cover this location.",
- all_councils.size
+ missing_details_bodies.size || all_areas.size
);
%]
[%
@@ -14,7 +11,7 @@
[%
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 ') ),
+ missing_details_body_names.join( loc(' or ') ) || all_area_names.join( loc(' or ') ),
c.cobrand.contact_email,
c.cobrand.contact_email
);
diff --git a/templates/web/default/report/new/councils_text_some.html b/templates/web/default/report/new/councils_text_some.html
index 042e89914..8d4768612 100644
--- a/templates/web/default/report/new/councils_text_some.html
+++ b/templates/web/default/report/new/councils_text_some.html
@@ -1,9 +1,9 @@
<p>
[% loc('All the information you provide here will be sent to') %]
-[% FOREACH council_id IN area_ids_to_list %]
+[% FOREACH body_id IN bodies_to_list %]
[% loc( ' or ') IF ! loop.first %]
- <strong>[% all_councils.$council_id.name %]</strong>
+ <strong>[% bodies.$body_id.name %]</strong>
[%- '.' IF loop.last %]
[% END %]
@@ -14,13 +14,13 @@
nget(
"We do <strong>not</strong> yet have details for the other council that covers this location.",
"We do <strong>not</strong> yet have details for the other councils that cover this location.",
- missing_details_councils.size
+ missing_details_bodies.size
);
%]
[%
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>."),
- missing_details_council_names.join( loc(' or ') ),
+ missing_details_body_names.join( loc(' or ') ),
c.cobrand.contact_email,
c.cobrand.contact_email
);
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 0befb344e..5eff4e147 100644
--- a/templates/web/default/report/new/fill_in_details_form.html
+++ b/templates/web/default/report/new/fill_in_details_form.html
@@ -40,8 +40,8 @@
-[% IF field_errors.council %]
- <div class='form-error'>[% field_errors.council %]</div>
+[% IF field_errors.bodies %]
+ <div class='form-error'>[% field_errors.bodies %]</div>
[% END %]
[% IF field_errors.title %]
diff --git a/templates/web/default/report/update-form.html b/templates/web/default/report/update-form.html
index d993ce28f..50bc2906c 100644
--- a/templates/web/default/report/update-form.html
+++ b/templates/web/default/report/update-form.html
@@ -23,7 +23,7 @@
<textarea name="update" id="form_update" rows="7" cols="30" required>[% update.text | html %]</textarea>
</div>
- [% IF c.user && c.user.belongs_to_council( problem.council ) %]
+ [% IF c.user && c.user.belongs_to_body( problem.bodies_str ) %]
<div class="form-field">
<label for="form_state">[% loc( 'State:' ) %]</label>
<select name="state" id="form_state">
diff --git a/templates/web/default/report/updates.html b/templates/web/default/report/updates.html
index 09c5d4b54..04a8bec33 100644
--- a/templates/web/default/report/updates.html
+++ b/templates/web/default/report/updates.html
@@ -7,21 +7,21 @@
[% IF update.whenanswered %]
[%# A questionnaire update, currently saying report is still open %]
- [% tprintf( loc( 'Still open, via questionnaire, %s' ), prettify_epoch( update.whenanswered_local.epoch ) ) %]
+ [% tprintf( loc( 'Still open, via questionnaire, %s' ), prettify_dt( update.whenanswered_local ) ) %]
[% RETURN %]
[% END %]
[% IF update.anonymous || update.name == '' %]
- [% tprintf( loc( 'Posted anonymously at %s' ), prettify_epoch( update.confirmed_local.epoch ) ) -%]
- [%- ELSIF update.user.from_council;
+ [% tprintf( loc( 'Posted anonymously at %s' ), prettify_dt( update.confirmed_local ) ) -%]
+ [%- ELSIF update.user.from_body;
user_name = update.user.name | html;
- council = update.user.council;
- IF council == 'Bromley Council';
- council = "$council <img src='/cobrands/bromley/favicon.png' alt=''>";
+ body = update.user.body;
+ IF body == 'Bromley Council';
+ body = "$body <img src='/cobrands/bromley/favicon.png' alt=''>";
END %]
- [% tprintf( loc( 'Posted by %s (<strong>%s</strong>) at %s' ), user_name, council, prettify_epoch( update.confirmed_local.epoch ) ) -%]
+ [% tprintf( loc( 'Posted by %s (<strong>%s</strong>) at %s' ), user_name, body, prettify_dt( update.confirmed_local ) ) -%]
[%- ELSE %]
- [% tprintf( loc( 'Posted by %s at %s' ), update.name, prettify_epoch( update.confirmed_local.epoch ) ) | html -%]
+ [% tprintf( loc( 'Posted by %s at %s' ), update.name, prettify_dt( update.confirmed_local ) ) | html -%]
[%- END -%]
[%- update_state = '' %]
[%- IF update.mark_fixed %][% update_state = ", " _ loc( 'marked as fixed' ) %][% END %]
diff --git a/templates/web/default/reports/_list-entry.html b/templates/web/default/reports/_list-entry.html
index 14863c4a1..445a5315f 100755
--- a/templates/web/default/reports/_list-entry.html
+++ b/templates/web/default/reports/_list-entry.html
@@ -1,6 +1,6 @@
<li><a href="[% c.uri_for('/report/' _ problem.id) %]">[% problem.title | html %]</a>
- [% IF problem.councils > 1 %] <small>[% loc('(sent to both)') %]</small> [% END %]
+ [% IF problem.bodies_str_ids.size > 1 %] <small>[% loc('(sent to both)') %]</small> [% END %]
[% IF c.cobrand.moniker != 'emptyhomes' %]
- [% IF problem.councils == 0 %] <small>[% loc('(not sent to council)') %]</small> [% END %]
+ [% IF problem.bodies_str_ids.size == 0 %] <small>[% loc('(not sent to council)') %]</small> [% END %]
[% END %]
</li>
diff --git a/templates/web/default/reports/body.html b/templates/web/default/reports/body.html
index 40f2fd1f8..da184c6e9 100755
--- a/templates/web/default/reports/body.html
+++ b/templates/web/default/reports/body.html
@@ -1,9 +1,9 @@
[% IF ward %]
- [% name = "$ward.name, $council.name"
+ [% name = "$ward.name, $body.name"
thing = loc('ward')
%]
[% ELSE %]
- [% name = council.name
+ [% name = body.name
thing = loc('council')
%]
[% END %]
@@ -31,13 +31,13 @@
<h1 id="reports_heading">
[% IF ward %]
- [% ward.name %]<span>, </span><a href="[% council_url %]">[% council.name %]</a>
+ [% ward.name %]<span>, </span><a href="[% body_url %]">[% body.name %]</a>
[% ELSE %]
- [% council.name %]
+ [% body.name %]
[% END %]
</h1>
-[% IF council.generation_high == 10 AND c.cobrand.country == 'GB' %]
+[% IF NOT body.areas AND c.cobrand.country == 'GB' %]
<p id="unknown" class="alert">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>.
@@ -82,7 +82,7 @@
<section class="full-width">
[% INCLUDE column
- problems = problems.${council.id}
+ problems = problems.${body.id}
%]
</section>
diff --git a/templates/web/default/reports/index.html b/templates/web/default/reports/index.html
index 76c2afcd2..780438634 100755
--- a/templates/web/default/reports/index.html
+++ b/templates/web/default/reports/index.html
@@ -22,17 +22,17 @@
</thead>
<tbody>
-[% FOREACH area IN areas_info_sorted %]
+[% FOREACH body IN bodies %]
<tr align="center"
-[%- IF area.generation_high == 10 %] class="gone"
+[%- IF NOT body.areas %] class="gone"
[%- ELSIF ! (loop.count % 2) %] class="a"
[%- END %]>
-<td class="title"><a href="[% area.url %]">[% area.name %]</a></td>
-<td class="data">[% open.${area.id}.new or 0 %]</td>
-<td class="data">[% open.${area.id}.older or 0 %]</td>
-<td class="data">[% open.${area.id}.unknown or 0 %]</td>
-<td class="data">[% fixed.${area.id}.new or 0 %]</td>
-<td class="data">[% fixed.${area.id}.old or 0 %]</td>
+<td class="title"><a href="[% body.url(c) %]">[% body.name %]</a></td>
+<td class="data">[% open.${body.id}.new or 0 %]</td>
+<td class="data">[% open.${body.id}.older or 0 %]</td>
+<td class="data">[% open.${body.id}.unknown or 0 %]</td>
+<td class="data">[% fixed.${body.id}.new or 0 %]</td>
+<td class="data">[% fixed.${body.id}.old or 0 %]</td>
</tr>
[% TRY %][% PROCESS "reports/_extras.html" %][% CATCH file %][% END %]
[% END %]
diff --git a/templates/web/default/tokens/confirm_problem.html b/templates/web/default/tokens/confirm_problem.html
index b6d82968f..723d515e1 100644
--- a/templates/web/default/tokens/confirm_problem.html
+++ b/templates/web/default/tokens/confirm_problem.html
@@ -13,13 +13,12 @@ You can <a href="[% c.cobrand.base_url_for_report( problem ) %][% problem.url %]
[% ELSE %]
[%
loc('You have successfully confirmed your problem');
-
- IF problem.council;
+ IF problem.bodies_str;
loc(' and <strong>we will now send it to the council</strong>');
- END;
-
+ END; %].
+[%
tprintf(
- loc( '. You can <a href="%s%s">view the problem on this site</a>.' ),
+ loc( 'You can <a href="%s%s">view the problem on this site</a>.' ),
c.cobrand.base_url_for_report( problem ),
problem.url
);
diff --git a/templates/web/emptyhomes/report/new/councils_text_all.html b/templates/web/emptyhomes/report/new/councils_text_all.html
index a9dae5762..5769e6cd5 100644
--- a/templates/web/emptyhomes/report/new/councils_text_all.html
+++ b/templates/web/emptyhomes/report/new/councils_text_all.html
@@ -2,7 +2,7 @@
[%
tprintf(
loc('All the information you provide here will be sent to <strong>%s</strong>. On the site, we will show the subject and details of the problem.'),
- all_council_names.join( '</strong>' _ loc(' or ') _ '<strong>' )
+ all_body_names.join( '</strong>' _ loc(' or ') _ '<strong>' )
);
%]
</p>
diff --git a/templates/web/emptyhomes/report/new/councils_text_none.html b/templates/web/emptyhomes/report/new/councils_text_none.html
index dbe9cd510..088e6fa1d 100644
--- a/templates/web/emptyhomes/report/new/councils_text_none.html
+++ b/templates/web/emptyhomes/report/new/councils_text_none.html
@@ -3,7 +3,7 @@
nget(
"We do not yet have details for the council that covers this location.",
"We do not yet have details for the councils that cover this location.",
- all_councils.size
+ all_areas.size
);
%]
[% loc("If you submit a report here it will be left on the site, but not reported to the council &ndash; please still leave your report, so that we can show to the council the activity in their area."); %]
diff --git a/templates/web/emptyhomes/reports/index.html b/templates/web/emptyhomes/reports/index.html
index 8eaeeb618..3029bcd1c 100755
--- a/templates/web/emptyhomes/reports/index.html
+++ b/templates/web/emptyhomes/reports/index.html
@@ -12,15 +12,15 @@
<th>[% loc('Older problems') %]</th>
</tr>
-[% FOREACH area IN areas_info_sorted %]
+[% FOREACH body IN bodies %]
<tr align="center"
-[%- IF area.generation_high == 10 %] class="gone"
+[%- IF NOT body.areas %] class="gone"
[%- ELSIF loop.count % 2 %] class="a"
[%- END -%]
>
-<td align="left"><a href="[% area.url %]">[% area.name %]</a></td>
-<td>[% open.${area.id}.new or 0 %]</td>
-<td>[% (open.${area.id}.older or 0) + (open.${area.id}.unknown or 0) + (fixed.${area.id}.new or 0) + (fixed.${area.id}.old or 0) %]</td>
+<td align="left"><a href="[% body.url(c) %]">[% body.name %]</a></td>
+<td>[% open.${body.id}.new or 0 %]</td>
+<td>[% (open.${body.id}.older or 0) + (open.${body.id}.unknown or 0) + (fixed.${body.id}.new or 0) + (fixed.${body.id}.old or 0) %]</td>
</tr>
[% END %]
diff --git a/templates/web/emptyhomes/tokens/confirm_problem.html b/templates/web/emptyhomes/tokens/confirm_problem.html
index 7bcf8acdf..5e77ca59f 100644
--- a/templates/web/emptyhomes/tokens/confirm_problem.html
+++ b/templates/web/emptyhomes/tokens/confirm_problem.html
@@ -2,7 +2,7 @@
<h1>[% loc('Confirmation') %]</h1>
-[% IF problem.council %]
+[% IF problem.bodies_str %]
<p>[%
loc(
'Thank you for reporting an empty property on ReportEmptyHomes.com. We have emailed the lead officer for empty homes in the council responsible with details, and asked them to do whatever they can to get the empty property back into use as soon as possible.'
diff --git a/templates/web/fiksgatami/nn/reports/index.html b/templates/web/fiksgatami/nn/reports/index.html
index 3cbb2bf8d..05296ba76 100755
--- a/templates/web/fiksgatami/nn/reports/index.html
+++ b/templates/web/fiksgatami/nn/reports/index.html
@@ -14,18 +14,18 @@
<th>[% loc('Older fixed') %]</th>
</tr>
-[% FOREACH area IN areas_info_sorted %]
-[% NEXT IF area.id == 301 %]
+[% FOREACH body IN bodies %]
+[% NEXT IF body.id == 301 %]
<tr align="center"
[%- IF loop.count % 2 %] class="a"
[%- END -%]
>
-<td align="left"><a href="[% area.url %]">[% area.name %]</a></td>
-<td>[% open.${area.id}.new or 0 %]</td>
-<td>[% open.${area.id}.older or 0 %]</td>
-<td>[% open.${area.id}.unknown or 0 %]</td>
-<td>[% fixed.${area.id}.new or 0 %]</td>
-<td>[% fixed.${area.id}.old or 0 %]</td>
+<td align="left"><a href="[% body.url(c) %]">[% body.name %]</a></td>
+<td>[% open.${body.id}.new or 0 %]</td>
+<td>[% open.${body.id}.older or 0 %]</td>
+<td>[% open.${body.id}.unknown or 0 %]</td>
+<td>[% fixed.${body.id}.new or 0 %]</td>
+<td>[% fixed.${body.id}.old or 0 %]</td>
</tr>
[% END %]
</table>
diff --git a/templates/web/fiksgatami/reports/index.html b/templates/web/fiksgatami/reports/index.html
index 1ba90ece3..3235b96c4 100755
--- a/templates/web/fiksgatami/reports/index.html
+++ b/templates/web/fiksgatami/reports/index.html
@@ -14,17 +14,17 @@
<th>[% loc('Older fixed') %]</th>
</tr>
-[% FOREACH area IN areas_info_sorted %]
+[% FOREACH body IN bodies %]
<tr align="center"
[%- IF loop.count % 2 %] class="a"
[%- END -%]
>
-<td align="left"><a href="[% area.url %]">[% area.name %]</a></td>
-<td>[% open.${area.id}.new or 0 %]</td>
-<td>[% open.${area.id}.older or 0 %]</td>
-<td>[% open.${area.id}.unknown or 0 %]</td>
-<td>[% fixed.${area.id}.new or 0 %]</td>
-<td>[% fixed.${area.id}.old or 0 %]</td>
+<td align="left"><a href="[% body.url(c) %]">[% body.name %]</a></td>
+<td>[% open.${body.id}.new or 0 %]</td>
+<td>[% open.${body.id}.older or 0 %]</td>
+<td>[% open.${body.id}.unknown or 0 %]</td>
+<td>[% fixed.${body.id}.new or 0 %]</td>
+<td>[% fixed.${body.id}.old or 0 %]</td>
</tr>
[% END %]
</table>
diff --git a/templates/web/fixmybarangay/around/tabbed_lists.html b/templates/web/fixmybarangay/around/tabbed_lists.html
index c9f1c2a38..342b03f0e 100644
--- a/templates/web/fixmybarangay/around/tabbed_lists.html
+++ b/templates/web/fixmybarangay/around/tabbed_lists.html
@@ -1,4 +1,4 @@
-[% allow_creation = !c.cobrand.only_authed_can_create || (c.user && c.user.from_council);
+[% allow_creation = !c.cobrand.only_authed_can_create || (c.user && c.user.from_body);
IF allow_creation %]
<menu id="problems-nav" class="tab-nav">
diff --git a/templates/web/fixmybarangay/header.html b/templates/web/fixmybarangay/header.html
index 911a72022..fcde496ff 100644
--- a/templates/web/fixmybarangay/header.html
+++ b/templates/web/fixmybarangay/header.html
@@ -23,7 +23,7 @@
[% INCLUDE 'common_header_tags.html', site_title = 'FixMyBarangay', js_override = '/cobrands/fixmystreet/fixmystreet.js' %]
[% extra_js %]
- [% allow_creation = !c.cobrand.only_authed_can_create || (c.user && c.user.from_council); %]
+ [% allow_creation = !c.cobrand.only_authed_can_create || (c.user && c.user.from_body); %]
[% IF allow_creation %]
<link rel="stylesheet" href="[% version('/js/fancybox/jquery.fancybox-1.3.4.css') %]">
<script src="[% version('/js/fancybox/jquery.fancybox-1.3.4.pack.js') %]" charset="utf-8"></script>
diff --git a/templates/web/fixmybarangay/report/_message_manager.html b/templates/web/fixmybarangay/report/_message_manager.html
index 950ed2db8..2860689be 100644
--- a/templates/web/fixmybarangay/report/_message_manager.html
+++ b/templates/web/fixmybarangay/report/_message_manager.html
@@ -1,4 +1,4 @@
-[% IF c.user && c.user.from_council %]
+[% IF c.user && c.user.from_body %]
[% IF problem.external_source_id && problem.external_source == c.config.MESSAGE_MANAGER_URL %]
<p class="mm-submitted-by-sms">
diff --git a/templates/web/fixmybarangay/reports/index.html b/templates/web/fixmybarangay/reports/index.html
index 2d8da17c6..cda1fd6fd 100755
--- a/templates/web/fixmybarangay/reports/index.html
+++ b/templates/web/fixmybarangay/reports/index.html
@@ -22,17 +22,16 @@
</thead>
<tbody>
-[% FOREACH area IN areas_info_sorted %]
+[% FOREACH body IN bodies %]
<tr align="center"
-[%- IF area.generation_high == 10 %] class="gone"
-[%- ELSIF ! (loop.count % 2) %] class="a"
+[%- IF ! (loop.count % 2) %] class="a"
[%- END %]>
-<td class="title"><a href="[% area.url %]">[% area.name %]</a></td>
-<td class="data">[% open.${area.id}.new or 0 %]</td>
-<td class="data">[% open.${area.id}.older or 0 %]</td>
-<td class="data">[% open.${area.id}.unknown or 0 %]</td>
-<td class="data">[% fixed.${area.id}.new or 0 %]</td>
-<td class="data">[% fixed.${area.id}.old or 0 %]</td>
+<td class="title"><a href="[% body.url(c) %]">[% body.name %]</a></td>
+<td class="data">[% open.${body.id}.new or 0 %]</td>
+<td class="data">[% open.${body.id}.older or 0 %]</td>
+<td class="data">[% open.${body.id}.unknown or 0 %]</td>
+<td class="data">[% fixed.${body.id}.new or 0 %]</td>
+<td class="data">[% fixed.${body.id}.old or 0 %]</td>
</tr>
[% TRY %][% PROCESS "reports/_extras.html" %][% CATCH file %][% END %]
[% END %]
diff --git a/templates/web/fixmystreet/around/postcode_form.html b/templates/web/fixmystreet/around/postcode_form.html
index d48a53183..ed5d700f0 100644
--- a/templates/web/fixmystreet/around/postcode_form.html
+++ b/templates/web/fixmystreet/around/postcode_form.html
@@ -18,7 +18,7 @@
<label for="pc">[% question %]:</label>
<div>
<input type="text" name="pc" value="[% pc | html %]" id="pc" size="10" maxlength="200" placeholder="[% tprintf(loc('e.g. ‘%s’ or ‘%s’'), c.cobrand.example_places) %]">
- <input type="submit" value="[% loc('Go') %]" id="submit">
+ <input type="submit" value="[% loc('Go') %]" id="sub">
</div>
[% IF partial_token %]
diff --git a/templates/web/fixmystreet/contact/index.html b/templates/web/fixmystreet/contact/index.html
index 368fb0628..450b6e2ef 100644
--- a/templates/web/fixmystreet/contact/index.html
+++ b/templates/web/fixmystreet/contact/index.html
@@ -19,9 +19,9 @@
<blockquote>
<p>
[% IF update.anonymous %]
- [% tprintf( loc('Update below added anonymously at %s'), prettify_epoch( update.confirmed_local.epoch ) ) %]
+ [% tprintf( loc('Update below added anonymously at %s'), prettify_dt( update.confirmed_local ) ) %]
[% ELSE %]
- [% tprintf( loc('Update below added by %s at %s'), update.name, prettify_epoch( update.confirmed_local.epoch ) ) | html %]
+ [% tprintf( loc('Update below added by %s at %s'), update.name, prettify_dt( update.confirmed_local ) ) | html %]
[% END %]
</p>
@@ -43,9 +43,9 @@
<p>
[% IF problem.anonymous %]
- [% tprintf( loc('Reported anonymously at %s'), prettify_epoch( problem.confirmed_local.epoch ) ) %]
+ [% tprintf( loc('Reported anonymously at %s'), prettify_dt( problem.confirmed_local ) ) %]
[% ELSE %]
- [% tprintf( loc('Reported by %s at %s'), problem.user.name, prettify_epoch( problem.confirmed_local.epoch ) ) | html %]
+ [% tprintf( loc('Reported by %s at %s'), problem.user.name, prettify_dt( problem.confirmed_local ) ) | html %]
[% END %]
</p>
diff --git a/templates/web/fixmystreet/my/my.html b/templates/web/fixmystreet/my/my.html
index 258f147c6..3134c335f 100644
--- a/templates/web/fixmystreet/my/my.html
+++ b/templates/web/fixmystreet/my/my.html
@@ -57,7 +57,7 @@ END %]
<li>&ldquo;[% u.text | html %]&rdquo;
&ndash; <a href="[% c.uri_for( '/report', u.problem_id ) %]#update_[% u.id %]">[% u.problem.title | html %]</a>.
<p><small class="council_sent_info">
- [% tprintf( loc("Added %s"), prettify_epoch( u.confirmed_local.epoch, 'date' ) ) %]
+ [% tprintf( loc("Added %s"), prettify_dt( u.confirmed_local, 'date' ) ) %]
</small></p>
</li>
[% "</ul>" IF loop.last %]
diff --git a/templates/web/fixmystreet/report/_item.html b/templates/web/fixmystreet/report/_item.html
index 6014074e0..508b02614 100644
--- a/templates/web/fixmystreet/report/_item.html
+++ b/templates/web/fixmystreet/report/_item.html
@@ -4,17 +4,14 @@
<img class="img" height="60" width="90" src="/photo/[% problem.id %].fp.jpeg" alt="">
[% END %]
<h4>[% problem.title | html %]</h4>
- <small>[% IF problem.confirmed_local %]
- [%- prettify_epoch( problem.confirmed_local.epoch, 1 ) %]
- [%- ELSE %]
- [%- prettify_epoch( problem.confirmed, 1 ) %]
- [%- END %]
+ <small>[% prettify_dt( problem.confirmed_local, 1 ) %]
[%- IF dist %], [% dist %]km[% END %]
- [%- IF include_lastupdate AND problem.confirmed != problem.lastupdate AND problem.whensent != problem.lastupdate %], last updated [% prettify_epoch( problem.lastupdate, 1 ) %]
+ [%- IF include_lastupdate AND problem.confirmed != problem.lastupdate AND problem.whensent != problem.lastupdate %],
+ [% tprintf('last updated %s', prettify_dt( problem.lastupdate_local, 1 ) ) %]
[%- END %]
[% IF include_lastupdate %]
- [% IF problem.councils > 1 %] [% loc('(sent to both)') %]
- [% ELSIF problem.councils == 0 %] [% loc('(not sent to council)') %]
+ [% IF problem.bodies_str_ids.size > 1 %] [% loc('(sent to both)') %]
+ [% ELSIF problem.bodies_str_ids.size == 0 %] [% loc('(not sent to council)') %]
[% END %]
[% END %]
[% IF NOT no_fixed AND problem.is_fixed %]
diff --git a/templates/web/fixmystreet/report/display.html b/templates/web/fixmystreet/report/display.html
index 26e6fe992..752b122c5 100644
--- a/templates/web/fixmystreet/report/display.html
+++ b/templates/web/fixmystreet/report/display.html
@@ -12,6 +12,12 @@
[% map_html %]
+ [% IF c.cobrand.moniker == 'zurich' %]
+ <p id='sub_map_links'>
+ <a class="hidden-nojs" id="map_layer_toggle" href="">Stadtplan</a>
+ </p>
+ [% END %]
+
</div>
[% INCLUDE 'report/banner.html' %]
@@ -21,14 +27,16 @@
<div class="shadow-wrap">
<ul id="key-tools">
- [% IF c.user_exists AND c.cobrand.users_can_hide AND c.user.belongs_to_council( c.cobrand.council_id ) %]
+ [% IF c.user_exists AND c.cobrand.users_can_hide AND c.user.belongs_to_body( c.cobrand.council_id ) %]
<li><form method="post" action="/report/delete/[% problem.id %]">
<input type="submit" id="key-tool-report-abuse" class="abuse" value="Remove from site">
</form></li>
- [% ELSE %]
+ [% ELSIF c.cobrand.moniker != 'zurich' %]
<li><a rel="nofollow" id="key-tool-report-abuse" class="abuse" href="[% c.uri_for( '/contact', { id => problem.id } ) %]">[% loc('Report abuse' ) %]</a></li>
[% END %]
+ [% IF c.cobrand.moniker != 'zurich' %]
<li><a rel="nofollow" id="key-tool-report-updates" class="feed" href="[% c.uri_for( '/alert/subscribe', { id => problem.id } ) %]">[% loc('Get updates' ) %]</a></li>
+ [% END %]
[% IF c.cobrand.moniker == 'fixmystreet' %]
<li><a rel="nofollow" id="key-tool-report-share" class="share" href="#report-share">[% loc('Share') %]</a></li>
[% END %]
diff --git a/templates/web/fixmystreet/report/new/fill_in_details_form.html b/templates/web/fixmystreet/report/new/fill_in_details_form.html
index fb342d487..e2e091460 100644
--- a/templates/web/fixmystreet/report/new/fill_in_details_form.html
+++ b/templates/web/fixmystreet/report/new/fill_in_details_form.html
@@ -15,7 +15,7 @@
[% PROCESS 'report/new/councils_text.html' %]
[% END %]
- [% IF c.cobrand.moniker != 'fixmybarangay' || ( c.user && c.user.from_council ) %]
+ [% IF c.cobrand.moniker != 'fixmybarangay' || ( c.user && c.user.from_body ) %]
<div id="report-a-problem-sidebar">
<!--
The text for this section needs checking, but I can't work out which bit comes from where
@@ -51,8 +51,8 @@
[% INCLUDE 'report/new/form_heading.html' %]
- [% IF field_errors.council %]
- <p class='form-error'>[% field_errors.council %]</p>
+ [% IF field_errors.bodies %]
+ <p class='form-error'>[% field_errors.bodies %]</p>
[% END %]
@@ -129,7 +129,7 @@
<label class="inline" for="form_may_show_name">[% loc('Show my name publicly') %] </label>
</div>
- [% IF c.cobrand.moniker != 'fixmybarangay' || c.user.from_council %]
+ [% IF c.cobrand.moniker != 'fixmybarangay' || c.user.from_body %]
<div class="general-sidebar-notes">
<p>[% loc('We never show your email address or phone number.') %]</p>
</div>
diff --git a/templates/web/fixmystreet/report/new/notes.html b/templates/web/fixmystreet/report/new/notes.html
index d508b1929..657390c79 100644
--- a/templates/web/fixmystreet/report/new/notes.html
+++ b/templates/web/fixmystreet/report/new/notes.html
@@ -2,8 +2,10 @@
<ul class="plain-list">
<li>[% loc("We will only use your personal information in accordance with our <a href=\"/privacy\">privacy policy.</a>") %]</li>
+ [% IF c.cobrand.moniker != 'zurich' %]
<li>[% loc("Please be polite, concise and to the point.") %]</li>
<li>[% loc("Please do not be abusive&nbsp;&mdash; abusing your council devalues the service for all users.") %]</li>
<li>[% loc("Writing your message entirely in block capitals makes it hard to read, as does a lack of punctuation.") %]</li>
+ [% END %]
<li>[% loc("Remember that FixMyStreet is primarily for reporting physical problems that can be fixed. If your problem is not appropriate for submission via this site remember that you can contact your council directly using their own website.") %]</li>
</ul>
diff --git a/templates/web/fixmystreet/report/update-form.html b/templates/web/fixmystreet/report/update-form.html
index a632cfc4a..add176549 100644
--- a/templates/web/fixmystreet/report/update-form.html
+++ b/templates/web/fixmystreet/report/update-form.html
@@ -1,4 +1,4 @@
-[% allow_creation = !c.cobrand.only_authed_can_create || (c.user && c.user.from_council) %]
+[% allow_creation = !c.cobrand.only_authed_can_create || (c.user && c.user.from_body) %]
[% IF allow_creation %]
<div id="update_form">
<h2>[% loc( 'Provide an update') %]</h2>
@@ -22,7 +22,7 @@
[% END %]
<textarea rows="7" cols="30" name="update" id="form_update" placeholder="[% loc('Please write your update here') %]" required>[% update.text | html %]</textarea>
- [% IF c.user && c.user.belongs_to_council( problem.council ) %]
+ [% IF c.user && c.user.belongs_to_body( problem.bodies_str ) %]
<label for="form_state">[% loc( 'State' ) %]</label>
<select name="state" id="form_state">
[% FOREACH state IN [ ['confirmed', loc('Open')], ['investigating',
@@ -137,7 +137,7 @@
[% IF field_errors.name %]
<p class='form-error'>[% field_errors.name %]</p>
[% END %]
- <input type="text" [% IF problem.council == '2482' %]class="validName" [% END %]name="name" id="form_name" value="[% update.name || c.user.name | html %]" placeholder="[% loc('Your name') %]">
+ <input type="text" [% IF problem.bodies_str == '2482' %]class="validName" [% END %]name="name" id="form_name" value="[% update.name || c.user.name | html %]" placeholder="[% loc('Your name') %]">
<div class="checkbox-group">
<input type="checkbox" name="may_show_name" id="form_may_show_name" value="1"[% ' checked' IF update.anonymous==0 OR (c.cobrand.default_show_name AND update.anonymous=='') %]>
diff --git a/templates/web/fixmystreet/report/updates-sidebar-notes.html b/templates/web/fixmystreet/report/updates-sidebar-notes.html
index e59d61fec..bdbcae518 100644
--- a/templates/web/fixmystreet/report/updates-sidebar-notes.html
+++ b/templates/web/fixmystreet/report/updates-sidebar-notes.html
@@ -1,5 +1,5 @@
<p>
- [% IF ( problem.council != '2482' AND !problem.council.match('2347') ) OR problem.send_method_used != 'Open311' %]
+ [% IF ( problem.bodies_str != '2482' AND !problem.bodies_str.match('2347') ) OR problem.send_method_used != 'Open311' %]
[% loc( 'Please note that updates are not sent to the council.' ) %]
[% END %]
[% loc( 'Your information will only be used in accordance with our <a href="/privacy">privacy policy</a>' ) %]</p>
diff --git a/templates/web/seesomething/js/validation_strings.html b/templates/web/seesomething/js/translation_strings.html
index 64251c163..0ae40bf97 100644
--- a/templates/web/seesomething/js/validation_strings.html
+++ b/templates/web/seesomething/js/translation_strings.html
@@ -1,4 +1,4 @@
- validation_strings = {
+ translation_strings = {
detail: '[% loc('Please enter some details') | replace("'", "\\'") %]',
name: {
validName: '[% loc('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 below') | replace("'", "\\'") %]'
@@ -11,5 +11,5 @@
},
email: {
email: '[% loc('Please enter a valid email') | replace("'", "\\'") %]'
- },
+ }
};
diff --git a/templates/web/zurich/admin/body-form.html b/templates/web/zurich/admin/body-form.html
new file mode 100644
index 000000000..5ae8eb8a6
--- /dev/null
+++ b/templates/web/zurich/admin/body-form.html
@@ -0,0 +1,50 @@
+ <form method="post" action="[% body ? c.uri_for('body', body.id) : c.uri_for('bodies') %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
+
+ <p>
+ <label for="name">[% loc('Name') %]</label>
+ <input type="text" name="name" id="name" value="[% body.name %]" size="50">
+ </p>
+
+ <p>
+ <label for="email">[% loc('Email') %]</label>
+ <input type="text" name="endpoint" id="email" value="[% body.endpoint %]" size="50">
+ </p>
+
+[% IF admin_type == 'super' %]
+ <p>
+ <label for="parent">[% loc('Parent') %]</label>
+ <select name="parent" id="parent">
+ <option value=""> -- [% loc('Select a body') %] -- </option>
+ [% FOR b IN bodies %]
+ <option value="[% b.id %]"[% ' selected' IF body.parent.id == b.id %]>[% b.name %]</option>
+ [% END %]
+ </select>
+ </p>
+
+ <p>
+ <label for="area_ids">[% loc('Area covered') %]</label>
+ <select name="area_ids" id="area_ids" multiple>
+ <option value=""> -- [% loc('Select an area') %] -- </option>
+ [% FOR area IN areas %]
+ [% SET aid = area.id %]
+ <option value="[% area.id %]"[% ' selected' IF body.areas.$aid %]>[% area.name %]</option>
+ [% END %]
+ </select>
+ </p>
+[% END %]
+
+ <input type="hidden" name="send_method" value="Email">
+ <input type="hidden" name="jurisdiction" id="jurisdiction" value="[% body.jurisdiction %]">
+ <input type="hidden" name="api_key" id="api_key" value="[% body.api_key %]">
+ <input type="hidden" id="send_comments" name="send_comments" value="[% body.send_comments %]">
+ <input type="hidden" name="comment_user_id" value="[% body.comment_user_id %]">
+ <input type="hidden" id="suppress_alerts" name="suppress_alerts" value="[% body.suppress_alerts %]">
+ <input type="hidden" id="can_be_devolved" name="can_be_devolved" value="[% body.can_be_devolved %]">
+
+ <p>
+ <input type="hidden" name="posted" value="body">
+ <input type="hidden" name="token" value="[% token %]">
+ <input type="submit" value="[% body ? loc('Update body') : loc('Add body') %]">
+ </p>
+ </form>
+
diff --git a/templates/web/zurich/admin/body.html b/templates/web/zurich/admin/body.html
new file mode 100644
index 000000000..764ad9bd8
--- /dev/null
+++ b/templates/web/zurich/admin/body.html
@@ -0,0 +1,67 @@
+[% INCLUDE 'admin/header.html' title=tprintf(loc('Council contacts for %s'), body.name) -%]
+[% PROCESS 'admin/report_blocks.html' %]
+
+[% IF updated %]
+<p>
+<em>[% updated %]</em>
+</p>
+[% END %]
+
+[% IF admin_type == 'super' AND body.parent AND NOT body.parent.parent # A division %]
+ <table cellspacing="0" cellpadding="2" border="1">
+ <tr>
+ <th>[% loc('Category') %]</th>
+ <th>[% loc('Email') %]</th>
+ <th>[% loc('Last editor') %]</th>
+ <th>[% loc('Note') %]</th>
+ <th>[% loc('When edited') %]</th>
+ </tr>
+ [% WHILE ( contact = contacts.next ) %]
+ <tr>
+ <td><a href="[% c.uri_for( 'body_edit', body_id, contact.category ) %]">[% contact.category %]</a></td>
+ <td>[% contact.email | html %]</td>
+ <td>[% contact.editor %]</td>
+ <td>[% contact.note | html %]</td>
+ <td>[% PROCESS format_date this_date=contact.whenedited %]</td>
+ </tr>
+ [% END %]
+ </table>
+
+ <h2>[% loc('Add new category') %]</h2>
+
+ <form method="post" action="[% c.uri_for('body', body_id ) %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
+
+ [% IF c.cobrand.moniker != 'emptyhomes' %]
+ <p>
+ <strong>[% loc('Category:') %] </strong><input type="text" name="category" size="30">
+ </p>
+ [% END %]
+
+ <p>
+ <strong>[% loc('Email:') %] </strong><input type="text" name="email" size="30">
+ </p>
+
+ <input type="hidden" name="confirmed" value="1" id="confirmed">
+
+ <p>
+ <strong>[% loc('Note:') %] </strong> <textarea name="note" rows="3" cols="40"></textarea>
+ </p>
+
+ <p>
+ <input type="hidden" name="posted" value="new" >
+ <input type="hidden" name="token" value="[% token %]" >
+ <input type="submit" name="Create category" value="[% loc('Create category') %]" >
+ </p>
+
+ <div>
+ <input type="hidden" name=".cgifields" value="confirmed" >
+ <input type="hidden" name=".cgifields" value="deleted" >
+ </div>
+ </form>
+
+[% END %]
+
+ <h2>[% loc('Edit body details') %]</h2>
+ [% INCLUDE 'admin/body-form.html' %]
+
+[% INCLUDE 'admin/footer.html' %]
diff --git a/templates/web/zurich/admin/edit-league.html b/templates/web/zurich/admin/edit-league.html
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/templates/web/zurich/admin/edit-league.html
diff --git a/templates/web/zurich/admin/header.html b/templates/web/zurich/admin/header.html
new file mode 100644
index 000000000..41cb520f5
--- /dev/null
+++ b/templates/web/zurich/admin/header.html
@@ -0,0 +1,22 @@
+[%
+ SET bodyclass = bodyclass || 'fullwidthpage';
+ INCLUDE 'header.html' admin = 1, bodyclass = bodyclass _ ' admin';
+
+ states = {
+ 'unconfirmed' = loc('Submitted'),
+ 'confirmed' = loc('Open'),
+ 'in progress' = loc('In progress'),
+ 'planned' = loc('Planned'),
+ 'fixed - council' = loc('Closed'),
+ 'hidden' = loc('Hidden'),
+ 'closed' = loc('Closed'),
+ }
+%]
+<style type="text/css">
+ .adminhidden { color: #666666; }
+ .error { color: red; }
+ .overdue { background-color: #ffcccc; }
+ select { width: auto; }
+</style>
+
+ <h1 style="clear:both;">[% title %]</h1>
diff --git a/templates/web/zurich/admin/index-dm.html b/templates/web/zurich/admin/index-dm.html
new file mode 100644
index 000000000..a88100ee4
--- /dev/null
+++ b/templates/web/zurich/admin/index-dm.html
@@ -0,0 +1,36 @@
+[% PROCESS 'admin/header.html' title=loc('Summary') -%]
+[% PROCESS 'admin/report_blocks.html' %]
+
+[% status_message %]
+
+<h2>[% loc('Submitted') %]</h2>
+[% INCLUDE list, problems = unconfirmed.all %]
+
+<h2>[% loc('Planned') %]</h2>
+[% INCLUDE list, problems = approval.all %]
+
+<h2>[% loc('All reports') %]</h2>
+[% INCLUDE list, problems = other.all, include_subdiv = 1 %]
+
+[% INCLUDE 'admin/footer.html' %]
+
+[% BLOCK list %]
+<table cellspacing="0" cellpadding="2" border="1">
+ <tr>
+ <th>[% loc('ID') %]</th>
+ <th>[% loc('Description') %]</th>
+ <th>[% loc('Category') %]</th>
+ <th>[% loc('Submitted') %]</th>
+ <th>[% loc('Updated') %]</th>
+ <th>[% loc('Status') %]</th>
+ [% IF include_subdiv %]
+ <th>[% loc('Subdivision/Body') %]</th>
+ [% END %]
+ <th>*</th>
+ </tr>
+ <tr class="filter-row">
+ <td colspan="8"><input type="text" placeholder="[%= loc('Filter report list') %]" /></td>
+ </tr>
+[% INCLUDE 'admin/problem_row.html' %]
+</table>
+[% END %]
diff --git a/templates/web/zurich/admin/index-sdm.html b/templates/web/zurich/admin/index-sdm.html
new file mode 100644
index 000000000..4e4009c16
--- /dev/null
+++ b/templates/web/zurich/admin/index-sdm.html
@@ -0,0 +1,33 @@
+[% PROCESS 'admin/header.html' title=loc('Summary') -%]
+[% PROCESS 'admin/report_blocks.html' %]
+
+<h2>[% loc('New reports') %]</h2>
+[% INCLUDE list, problems = reports_new.all %]
+
+<h2>[% loc('Reports awaiting approval') %]</h2>
+[% INCLUDE list, problems = reports_unpublished.all, no_edit = 1 %]
+
+<h2>[% loc('Reports published') %]</h2>
+[% INCLUDE list, problems = reports_published.all, no_edit = 1 %]
+
+[% INCLUDE 'admin/footer.html' %]
+
+[% BLOCK list %]
+<table cellspacing="0" cellpadding="2" border="1">
+ <tr>
+ <th>[% loc('ID') %]</th>
+ <th>[% loc('Description') %]</th>
+ <th>[% loc('Category') %]</th>
+ <th>[% loc('Submitted') %]</th>
+ <th>[% loc('Updated') %]</th>
+ <th>[% loc('Status') %]</th>
+ [% IF NOT no_edit %]
+ <th>*</th>
+ [% END %]
+ </tr>
+ <tr class="filter-row">
+ <td colspan="8"><input type="text" placeholder="[%= loc('Filter report list') %]" /></td>
+ </tr>
+[% INCLUDE 'admin/problem_row.html' %]
+</table>
+[% END %]
diff --git a/templates/web/zurich/admin/index.html b/templates/web/zurich/admin/index.html
new file mode 100644
index 000000000..ab835b5a3
--- /dev/null
+++ b/templates/web/zurich/admin/index.html
@@ -0,0 +1,23 @@
+[% PROCESS 'admin/header.html' title=loc('Summary') -%]
+
+<ul>
+ <li>[% tprintf( loc('<strong>%d</strong> live problems'), total_problems_live ) %];
+ [% tprintf( loc('from %d different users'), total_problems_users ) %]</li>
+ <li>[% tprintf( loc('%d council contacts &ndash; %d confirmed, %d unconfirmed'), contacts.total, contacts.1, contacts.0) %]</li>
+</ul>
+
+[% IF c.cobrand.admin_show_creation_graph -%]
+ <p>
+ <a href="[% c.config.BASE_URL %]/fms-live-creation.png">[% loc('Graph of problem creation by status over time') %]</a>
+ </p>
+[% END -%]
+
+<h2>[% loc('Problem breakdown by state') %]</h2>
+<ul>
+ [% FOREACH state IN problems.keys.sort %]
+ [% NEXT IF NOT states.$state %]
+ <li>[% problems.$state %] [% states.$state %]</li>
+ [% END %]
+</ul>
+
+[% INCLUDE 'admin/footer.html' %]
diff --git a/templates/web/zurich/admin/list_updates.html b/templates/web/zurich/admin/list_updates.html
new file mode 100644
index 000000000..7a78d4c63
--- /dev/null
+++ b/templates/web/zurich/admin/list_updates.html
@@ -0,0 +1,16 @@
+<h2>[% loc('Updates') %]</h2>
+
+<table cellspacing="0" cellpadding="2" border="1">
+ <tr>
+ <th>[% loc('ID') %]</th>
+ <th>[% loc('Created') %]</th>
+ <th>[% loc('Text') %]</th>
+ </tr>
+[% FOREACH update IN updates -%]
+ <tr[% ' class="adminhidden"' IF update.state == 'hidden' || update.problem.state == 'hidden' %]>
+ <td>[%- update.id %]</td>
+ <td>[% PROCESS format_date this_date=update.created %] [% update.created.hms %]</td>
+ <td>[% update.text | html %]</td>
+ </tr>
+[% END -%]
+</table>
diff --git a/templates/web/zurich/admin/problem_row.html b/templates/web/zurich/admin/problem_row.html
new file mode 100644
index 000000000..617490232
--- /dev/null
+++ b/templates/web/zurich/admin/problem_row.html
@@ -0,0 +1,38 @@
+[%- FOR problem IN problems %]
+ [% SET p_body = problem.bodies.values.0 %]
+ [% IF page == 'search' %]
+ [% NEXT IF admin_type == 'sdm' AND p_body.id != body.id %]
+ [% NEXT IF admin_type == 'dm' AND p_body.id != body.id AND p_body.parent.id != body.id %]
+ [% END %]
+ <tr[%
+ ' class="adminhidden"' IF problem.state == 'hidden';
+ ' class="overdue"' IF c.cobrand.overdue( problem );
+ %]>
+ <td class="record-id">[%- IF problem.is_visible -%]
+ <a href="[% c.uri_for_email( '/report', problem.id ) %]">[% problem.id %]</a>
+ [%- ELSE %]
+ [%- problem.id %]
+ [%- END -%]</td>
+ <td>[% PROCESS value_or_nbsp value=problem.title %]</td>
+ <td>[% PROCESS value_or_nbsp value=problem.category %]</td>
+ <td>[% PROCESS format_date this_date=problem.created %]</td>
+ <td>[% PROCESS format_date this_date=problem.lastupdate %]</td>
+ <td>[% states.${problem.state} %]</td>
+
+ [% IF include_subdiv %]
+ <td>
+ [%- IF p_body.parent.parent.id -%][%# ...it's a subdivision %]
+ [% PROCESS value_or_nbsp value=p_body.name %]
+ [%- ELSIF problem.external_body %]
+ [% PROCESS value_or_nbsp value=problem.body(c).name %]
+ [%- ELSE -%]
+ &nbsp;
+ [%- END -%]
+ </td>
+ [% END %]
+
+ [% IF NOT no_edit %]
+ <td><a href="[% c.uri_for( 'report_edit', problem.id ) %]">[% loc('Edit') %]</a></td>
+ [% END %]
+ </tr>
+[%- END -%]
diff --git a/templates/web/zurich/admin/report_edit-sdm.html b/templates/web/zurich/admin/report_edit-sdm.html
new file mode 100644
index 000000000..faad3ec55
--- /dev/null
+++ b/templates/web/zurich/admin/report_edit-sdm.html
@@ -0,0 +1,57 @@
+[% PROCESS 'admin/header.html' title=tprintf(loc('Editing problem %d'), problem.id ) -%]
+[% PROCESS 'admin/report_blocks.html' %]
+
+[% status_message %]
+
+<form method="post" action="[% c.uri_for( 'report_edit', problem.id ) %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
+ <input type="hidden" name="token" value="[% token %]" >
+ <input type="hidden" name="submit" value="1" >
+
+<p align="right"><input type="submit" name="send_back" value="[% loc('Not for my subdivision') %]"></p>
+
+<ul>
+<li><a href="[% c.uri_for_email( '/report', problem.id ) %]">[% loc('View report on site' )%]</a></li>
+<li>[% loc('Details:') %] [% problem.detail | html %]
+[% IF problem.extra.original_detail %]
+<br>[%
+ SET safe = problem.extra.original_detail | html;
+ tprintf( loc('originally entered: &ldquo;%s&rdquo;'), safe )
+%]
+[% END %]
+</li>
+<li>[% loc('Co-ordinates:') %] [% problem.local_coords.join(',') %]
+([%
+ SET safe = problem.postcode | html;
+ tprintf( loc('originally entered: &ldquo;%s&rdquo;'), safe )
+%],
+[% IF problem.used_map %][% loc('used map') %][% ELSE %][% loc("didn't use map") %][% END %])</li>
+
+<li>[% loc('Category:') %] [% problem.category | html %] </li>
+<li>[% loc('Name:') %] [% problem.name | html %]
+<li>[% loc('Email:') %] [% problem.user.email | html %]
+[% IF NOT problem.extra.email_confirmed %]<span class="error">[% loc('Unconfirmed') %]</span>[% END %]
+<li>[% loc('Phone:') %] [% IF problem.user.phone %][% problem.user.phone | html %][% ELSE %]<em>[% loc('None') %]</em>[% END %]</li>
+<li>[% loc('Created:') %] [% PROCESS format_date this_date=problem.created %] [% problem.created.hms %]</li>
+
+[% IF problem.photo %]
+[% photo = problem.get_photo_params %]
+<li><img alt="" src="[% c.cobrand.base_url %][% photo.url %]"></li>
+[% END %]
+
+<li>[% loc('State:') %] [% states.${problem.state} %]</li>
+
+<li><label for="internal_notes">[% loc('Internal notes:') %]</label>
+<textarea name='internal_notes' id='internal_notes' cols=60 rows=5>[% problem.extra.internal_notes | html %]</textarea></li>
+
+<li><label for="status_update">[% loc('New update:') %]</label>
+<textarea name='status_update' id='status_update' cols=60 rows=5></textarea></li>
+
+</ul>
+
+<p><input type="submit" name="Submit changes" value="[% loc('Submit changes') %]" ></p>
+<p align="right"><input type="submit" name="no_more_updates" value="[% loc('No further updates') %]"></p>
+</form>
+
+[% INCLUDE 'admin/list_updates.html' %]
+
+[% INCLUDE 'admin/footer.html' %]
diff --git a/templates/web/zurich/admin/report_edit.html b/templates/web/zurich/admin/report_edit.html
new file mode 100644
index 000000000..7fdaeabff
--- /dev/null
+++ b/templates/web/zurich/admin/report_edit.html
@@ -0,0 +1,179 @@
+[%
+ PROCESS "maps/zurich.html";
+ INCLUDE 'admin/header.html'
+ title = tprintf(loc('Editing problem %d'), problem.id ),
+ bodyclass = 'mappage';
+ PROCESS 'admin/report_blocks.html'
+-%]
+
+[% map_html %]
+</div>
+
+[% status_message %]
+
+<form method="post" action="[% c.uri_for( 'report_edit', problem.id ) %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
+ <input type="hidden" name="token" value="[% token %]" >
+ <input type="hidden" name="submit" value="1" >
+
+<ul>
+<li><a href="[% c.uri_for_email( '/report', problem.id ) %]">[% loc('View report on site' )%]</a></li>
+
+[% IF problem.state == 'fixed - council' OR problem.state == 'closed' %]
+ <li>[% loc('Details:') %] [% problem.detail | html %]
+ [% IF problem.extra.original_detail %]
+ <br>[%
+ SET detail_safe = problem.extra.original_detail | html;
+ tprintf( loc('originally entered: &ldquo;%s&rdquo;'), detail_safe )
+ %]
+ [% END %]
+ </li>
+[% ELSE %]
+ <li><label for='title'>[% loc('Subject:') %]</label> <input size=60 type='text' id='title' name='title' value='[% problem.title | html %]'></li>
+ <li><label for='detail'>[% loc('Details:') %]</label>
+ <textarea name='detail' id='detail' cols=60 rows=5>[% problem.detail | html %]</textarea>
+ [% IF problem.extra.original_detail %]
+ [%
+ SET detail_safe = problem.extra.original_detail | html;
+ tprintf( loc('originally entered: &ldquo;%s&rdquo;'), detail_safe )
+ %]
+ [% END %]
+ </li>
+[% END %]
+
+<li>[% loc('Co-ordinates:') %] [% problem.local_coords.join(',') %]
+([%
+ SET safe = problem.postcode | html;
+ tprintf( loc('originally entered: &ldquo;%s&rdquo;'), safe )
+%],
+[% IF problem.used_map %][% loc('used map') %][% ELSE %][% loc("didn't use map") %][% END %])</li>
+
+<li>[% loc('Name:') %] [% problem.name | html %] <input type='hidden' name='name' id='name' value='[% problem.name | html %]'></li>
+<li>[% loc('Email:') %] [% problem.user.email | html %] <input type='hidden' id='email' name='email' value='[% problem.user.email | html %]'>
+[% IF NOT problem.extra.email_confirmed %]<span class="error">[% loc('Unconfirmed') %]</span>[% END %]
+</li>
+<li>[% loc('Phone:') %] [% IF problem.user.phone %][% problem.user.phone | html %][% ELSE %]<em>[% loc('None') %]</em>[% END %]</li>
+<li>[% loc('Created:') %] [% PROCESS format_date this_date=problem.created %] [% problem.created.hms %]</li>
+
+
+[% IF problem.photo %]
+[% photo = problem.get_photo_params %]
+<li><img alt="" src="[% c.cobrand.base_url %][% photo.url %]">
+<br>
+[% IF rotated %]Photo may be cached for a while.<br>[% END %]
+<input type="submit" name="rotate_photo" value="[% loc('Rotate Left') %]">
+<input type="submit" name="rotate_photo" value="[% loc('Rotate Right') %]">
+<br>
+<input type="checkbox" id="publish_photo" name="publish_photo" value="1"[% ' checked' IF problem.extra.publish_photo %]>
+<label class="inline" for="publish_photo">[% loc("Publish photo") %]</label></li>
+[% END %]
+</ul>
+
+<p><label for="internal_notes">[% loc('Internal notes:') %]</label>
+<textarea name='internal_notes' id='internal_notes' cols=60 rows=5>[% problem.extra.internal_notes | html %]</textarea></p>
+
+<p>[% loc('State:') %] <select name="state" id="state">
+ <option value="">--</option>
+ [% FOREACH s IN [
+ ['unconfirmed', loc('Submitted')]
+ ['confirmed', loc('Open')],
+ ['planned', loc('Planned')],
+ ['hidden', loc('Hidden')],
+ ] %]
+ <option [% 'selected ' IF s.0 == problem.state %] value="[% s.0 %]">[% s.1 %]</option>
+ [% END %]
+ [% IF problem.state == 'closed' %]
+ <option selected value="closed">[% loc('Closed') %]</option>
+ [% ELSIF problem.state == 'fixed - council' %]
+ <option selected value="fixed - council">[% loc('Closed') %]</option>
+ [% ELSIF problem.state == 'in progress' %]
+ <option selected value="in progress">[% loc('In progress') %]</option>
+ [% END %]
+</select></p>
+
+[% IF problem.state == 'unconfirmed' OR problem.state == 'confirmed' %]
+
+<ul>
+<li class="assignation">
+<label for="body_subdivision">[% loc('Assign to subdivision:') %]</label>
+ <select name="body_subdivision" id="body_subdivision">
+ <option value="">--</option>
+ [% FOR body IN bodies %]
+ [% NEXT UNLESS body.parent.id == c.user.from_body.id %]
+ <option value="[% body.id %]"[% IF body.id == problem.bodies_str %] selected[% END %]>[% body.name %]</option>
+ [% END %]
+ </select>
+
+<li class="assignation">
+<label for="category">
+[% loc('Category:') %] [% problem.category %]<br>
+[% loc('Assign to different category:') %]</label>
+ <select name="category" id="category">
+ <option value="">--</option>
+ [% FOREACH cat IN categories %]
+ <option value="[% cat %]">[% cat %]</option>
+ [% END %]
+ </select></li>
+
+<li class="assignation">
+<label for="body_external">[% loc('Assign to external body:') %]</label>
+ <select name="body_external" id="body_external">
+ <option value="">--</option>
+ [% FOR body IN bodies %]
+ [% NEXT IF body.parent OR body.bodies %]
+ <option value="[% body.id %]"[% IF body.id == problem.bodies_str %] selected[% END %]>[% body.name %]</option>
+ [% END %]
+ </select>
+ <br>
+ <input type="checkbox" name="third_personal" id="third_personal" value="1"[% ' checked' IF problem.extra.third_personal %]>
+ <label for="third_personal" class="inline">[% loc('Include reporter personal details') %]</label>
+
+</ul>
+
+<script type="text/javascript">
+$(function(){
+ $('.assignation select').change(function(){
+ if (this.value == "") {
+ $('.assignation').css('color', '#000');
+ } else {
+ var a = $(this).closest('li').css('color', '#000');
+ $('.assignation select').not(this).val("");
+ $('.assignation').not(a).css('color', '#999');
+ }
+ });
+});
+</script>
+
+[% ELSIF problem.state == 'planned' %]
+
+<ul>
+ <li class="assignation">
+ <label for="body_subdivision">[% loc('Assign to subdivision:') %]</label>
+ <select name="body_subdivision" id="body_subdivision">
+ <option value="" selected>--</option>
+ [% FOR body IN bodies %]
+ [% NEXT UNLESS body.parent.id == c.user.from_body.id %]
+ <option value="[% body.id %]">[% body.name %]</option>
+ [% END %]
+ </select>
+ </li>
+
+ <li><label for="status_update">[% loc('Public response:') %]</label>
+
+ <textarea name='status_update' id='status_update' cols=60 rows=5>[% problem.extra.public_response | html %]</textarea>
+ </li>
+</ul>
+
+[% END %]
+
+<p align="right">
+[% IF problem.state == 'planned' %]
+<input type="submit" name="publish_response" value="[% loc('Publish the response') %]">
+[% END %]
+<input type="submit" name="Submit changes" value="[% loc('Submit changes') %]" >
+</p>
+
+</form>
+
+[% INCLUDE 'admin/list_updates.html' %]
+
+[% INCLUDE 'admin/footer.html' %]
diff --git a/templates/web/zurich/admin/reports.html b/templates/web/zurich/admin/reports.html
new file mode 100644
index 000000000..f8c022630
--- /dev/null
+++ b/templates/web/zurich/admin/reports.html
@@ -0,0 +1,27 @@
+[% PROCESS 'admin/header.html' title=loc('Search Reports') %]
+[% PROCESS 'admin/report_blocks.html' %]
+
+<form method="get" action="[% c.uri_for('reports') %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
+ <p><label for="search">[% loc('Search:') %]</label> <input type="text" name="search" size="30" id="search" value="[% searched | html %]">
+</form>
+
+
+[% IF searched %]
+<table cellspacing="0" cellpadding="2" border="1">
+ <tr>
+ <th>[% loc('ID') %]</th>
+ <th>[% loc('Description') %]</th>
+ <th>[% loc('Category') %]</th>
+ <th>[% loc('Submitted') %]</th>
+ <th>[% loc('Updated') %]</th>
+ <th>[% loc('Status') %]</th>
+ <th>*</th>
+ </tr>
+ [% INCLUDE 'admin/problem_row.html', page = 'search' %]
+</table>
+
+[% INCLUDE 'admin/list_updates.html' %]
+
+[% END %]
+
+[% INCLUDE 'admin/footer.html' %]
diff --git a/templates/web/zurich/admin/update_edit.html b/templates/web/zurich/admin/update_edit.html
new file mode 100644
index 000000000..ab40981a5
--- /dev/null
+++ b/templates/web/zurich/admin/update_edit.html
@@ -0,0 +1,40 @@
+[% INCLUDE 'admin/header.html' title=tprintf(loc('Editing update %d'), update.id ) -%]
+[% PROCESS 'admin/report_blocks.html' %]
+
+[% status_message %]
+
+<form method="post" action="[% c.uri_for( 'update_edit', update.id ) %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
+ <input type="hidden" name="token" value="[% token %]" >
+ <input type="hidden" name="submit" value="1" >
+<ul>
+<li><a href="[% c.uri_for_email( '/report', update.problem_id ) %]#update_[% update.id %]">[% loc('View report on site' )%]</a></li>
+
+<li><label for='detail'>[% loc('Text:') %]</label>
+<textarea name='text' id='text' cols=60 rows=5>[% update.text | html %]</textarea></li>
+
+<input type="hidden" name="anonymous" value="[% update.anonymous %]">
+
+<li>[% loc('State:') %] <select name="state" id="state">
+ [% FOREACH state IN [ ['confirmed', loc('Open')], ['hidden', loc('Hidden')], ['unconfirmed',loc('Unconfirmed')] ] %]
+ <option [% 'selected ' IF state.0 == update.state %] value="[% state.0 %]">[% state.1 %]</option>
+ [% END %]
+</select></li>
+<input type='hidden' name='name' id='name' value='[% update.name | html %]'>
+<input type='hidden' id='email' name='email' value='[% update.user.email | html %]'>
+[% IF update.problem_state %]
+<li>[% tprintf(loc('Update changed problem state to %s'), update.problem_state) %]</li>
+[% END %]
+</li>
+
+<li>[% loc('Created:') %] [% PROCESS format_date this_date=update.created %] [% update.created.hms %]</li>
+
+[% IF update.photo %]
+[% photo = update.get_photo_params %]
+<li><img alt="" height="[% photo.height %]" width="[% photo.width %]" src="[% photo.url %]">
+<input type="checkbox" id="remove_photo" name="remove_photo" value="1">
+<label for="remove_photo" class="inline">[% loc("Remove photo (can't be undone!)") %]</label></li>
+[% END %]
+</ul>
+<input type="submit" name="Submit changes" value="[% loc('Submit changes') %]" ></form>
+
+[% INCLUDE 'admin/footer.html' %]
diff --git a/templates/web/zurich/around/_updates.html b/templates/web/zurich/around/_updates.html
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/templates/web/zurich/around/_updates.html
diff --git a/templates/web/zurich/around/intro.html b/templates/web/zurich/around/intro.html
index c113afca7..f7a4904e3 100644
--- a/templates/web/zurich/around/intro.html
+++ b/templates/web/zurich/around/intro.html
@@ -1 +1,16 @@
<h1>[% loc('Report, view, or discuss local problems') %]</h1>
+
+<!-- FIXME Better place for this -->
+<script>
+ $(function() {
+ $( "#pc" ).autocomplete({
+ minLength: 3,
+ select: function(event, ui) {
+ $(this).val(ui.item.value);
+ this.form.submit();
+ return true;
+ },
+ source: "/ajax/geocode"
+ });
+ });
+</script>
diff --git a/templates/web/fixmybarangay/auth/sign_out.html b/templates/web/zurich/auth/sign_out.html
index 11888089a..644118f63 100644
--- a/templates/web/fixmybarangay/auth/sign_out.html
+++ b/templates/web/zurich/auth/sign_out.html
@@ -2,7 +2,6 @@
<h1>[% loc('You have been signed out') %]</h1>
-<p>Please feel free to <a href="[% c.uri_for('/auth') %]">sign in again</a>, or
-go back to the <a href="/">FixMyBarangay front page</a>.</p>
+<p>[% tprintf( loc('Please feel free to <a href="%s">sign in again</a>, or go back to the <a href="/">front page</a>.'), c.uri_for('/admin') ) %]</p>
[% INCLUDE 'footer.html' %]
diff --git a/templates/web/zurich/faq/faq-de.html b/templates/web/zurich/faq/faq-de-ch.html
index a739f1b74..a739f1b74 100755
--- a/templates/web/zurich/faq/faq-de.html
+++ b/templates/web/zurich/faq/faq-de-ch.html
diff --git a/templates/web/zurich/footer.html b/templates/web/zurich/footer.html
index 2e4717360..a570a66a3 100644
--- a/templates/web/zurich/footer.html
+++ b/templates/web/zurich/footer.html
@@ -4,15 +4,24 @@
<div class="nav-wrapper">
<div class="nav-wrapper-2">
- <div id="main-nav" role="navigation">
- <ul id="main-menu">
- <li><[% IF c.req.uri.path == '/' %]span[% ELSE %]a href="/"[% END %]
+ <div class="nav-wrapper-3">
+ <div id="main-nav" role="navigation">
+ [% IF c.user_exists %]
+ <p>
+ [% tprintf(loc('Hi %s'), c.user.name || c.user.email) %]
+ </p><p><a href="/auth/sign_out">[% loc('sign out') %]</a>
+ </p>
+ [% ELSE %]
+ <ul id="main-menu" class="mob-only">
+ <li><[% IF c.req.uri.path == '/' %]span[% ELSE %]a href="/"[% END %]
>[% loc("Report a problem") %]</[% c.req.uri.path == '/' ? 'span' : 'a' %]></li>[%
- %]<li><[% IF c.req.uri.path == '/reports' %]span[% ELSE %]a href="/reports"[% END
+ %]<li><[% IF c.req.uri.path == '/reports' %]span[% ELSE %]a href="/reports"[% END
%]>[% loc("All reports") %]</[% c.req.uri.path == '/reports' ? 'span' : 'a' %]></li>[%
- %]<li><[% IF c.req.uri.path == '/faq' %]span[% ELSE %]a href="/faq"[% END
+ %]<li><[% IF c.req.uri.path == '/faq' %]span[% ELSE %]a href="/faq"[% END
%]>[% loc("Help") %]</[% c.req.uri.path == '/faq' ? 'span' : 'a' %]></li>
- </ul>
+ </ul>
+ [% END %]
+ </div>
</div>
</div>
</div>
diff --git a/templates/web/zurich/header.html b/templates/web/zurich/header.html
index 9fa43f3fa..8c8e49775 100644
--- a/templates/web/zurich/header.html
+++ b/templates/web/zurich/header.html
@@ -11,21 +11,23 @@
<meta name="HandHeldFriendly" content="true">
<meta name="mobileoptimized" content="0">
- <link rel="stylesheet" href="[% version('/cobrands/' _ c.cobrand.moniker _ '/base.css') %]">
- <link rel="stylesheet" href="[% version('/cobrands/' _ c.cobrand.moniker _ '/layout.css') %]" media="(min-width:48em)">
+[% SET start = c.config.ADMIN_BASE_URL IF admin %]
+
+ <link rel="stylesheet" href="[% start %][% version('/cobrands/' _ c.cobrand.moniker _ '/base.css') %]">
+ <link rel="stylesheet" href="[% start %][% version('/cobrands/' _ c.cobrand.moniker _ '/layout.css') %]" media="(min-width:48em)">
[% extra_css %]
<!--[if (lt IE 9) & (!IEMobile)]>
- <link rel="stylesheet" href="[% version('/cobrands/' _ c.cobrand.moniker _ '/layout.css') %]">
+ <link rel="stylesheet" href="[% start %][% version('/cobrands/' _ c.cobrand.moniker _ '/layout.css') %]">
<![endif]-->
- <script src="[% version('/js/modernizr.custom.js') %]" charset="utf-8"></script>
- <script src="[% version('/cobrands/fixmystreet/position_map.js') %]" charset="utf-8"></script>
- [% INCLUDE 'common_header_tags.html', js_override = '/cobrands/fixmystreet/fixmystreet.js', site_title = 'FixMyZ&uuml;rich' %]
+<!-- CDN for now FIXME --><link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/redmond/jquery-ui.css">
+
+ <script src="[% start %][% version('/js/modernizr.custom.js') %]" charset="utf-8"></script>
+ <script src="[% start %][% version('/cobrands/fixmystreet/position_map.js') %]" charset="utf-8"></script>
+ [% INCLUDE 'common_header_tags.html', js_override = '/cobrands/fixmystreet/fixmystreet.js', site_title = 'FixMyZurich' %]
[% extra_js %]
-
- [% IF c.req.uri.host == 'osm.fixmystreet.com' %]
- <link rel="canonical" href="http://www.fixmystreet.com[% c.req.uri.path_query %]">
- [% END %]
+
+<!-- CDN for now FIXME --><script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js" charset="utf-8"></script>
[% INCLUDE 'tracking_code.html' %]
@@ -36,25 +38,52 @@
<div class="table-cell">
<header id="site-header" role="banner">
<div class="container">
- <a href="/" id="site-logo">FixMyStreet</a>
+ <a href="http://www.stadt-zuerich.ch/" id="site-logo">FixMyZurich</a>
<a href="#main-nav" id="nav-link">Main Navigation</a>
</div>
</header>
- <div id="user-meta">
- [% IF c.user_exists %]
- <p>
- [% tprintf(loc('Hi %s'), c.user.name || c.user.email) %]
- <a href="/auth/sign_out">[% loc('sign out') %]</a>
- </p>
- [% ELSE %]
- <!-- <a href="/auth">[% loc('Sign in') %]</a> -->
- [% END %]
- </div>
+ <div class="container">
- [% pre_container_extra %]
+[% IF admin %]
+ <div class="admin-nav-wrapper">
+ <div class="admin-nav">
+ <ul>
+ [% pagename = c.req.uri.path %]
+ [% pagename = pagename.replace('/admin/?(\w*).*', '$1') %]
+
+ <li [% IF pagename == 'summary' OR pagename == '' %]class="current"[% END %]>
+ <a href="/admin/summary">[% loc('Summary') %]</a>
+ </li>
+ <li [% IF pagename == 'reports' OR pagename == 'report_edit' %]class="current"[% END %]>
+ <a href="/admin/reports">[% loc('Reports') %]</a>
+ </li>
+ [% IF admin_type == 'dm' OR admin_type == 'super' %]
+ <li [% IF pagename == 'bodies' OR pagename == 'body' %]class="current"[% END %]>
+ <a href="/admin/bodies">[% loc('Bodies') %]</a>
+ </li>
+ [% END %]
+ [% IF admin_type == 'super' %]
+ <li [% IF pagename == 'users' OR pagename == 'user_edit' %]class="current"[% END %]>
+ <a href="/admin/users">[% loc('Users') %]</a>
+ </li>
+ [% END %]
+ <li class="search-box">
+ <form method="get" action="[% c.uri_for('reports') %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
+ <input type="text" name="search" size="20" id="search" placeholder="[% loc('Search reports') %]">
+ </form>
+
+ </li>
+ </ul>
+ </div>
+ </div>
+[% END %]
- <div class="container">
<div class="content[% " $mainclass" | html IF mainclass %]" role="main">
+ [% IF NOT admin %]
+ [% INCLUDE 'nav_over_content.html' %]
+ [% END %]
+
+ [% pre_container_extra %]
<!-- [% INCLUDE 'debug_header.html' %] -->
diff --git a/templates/web/zurich/nav_over_content.html b/templates/web/zurich/nav_over_content.html
new file mode 100644
index 000000000..4dbe87652
--- /dev/null
+++ b/templates/web/zurich/nav_over_content.html
@@ -0,0 +1,10 @@
+ <div id="zurich-main-nav" class="desk-only">
+ <ul>
+ <li><[% IF c.req.uri.path == '/around' || c.req.uri.path == '/' %]span[% ELSE %]a href="/"[% END %]
+ >[% loc("Report a problem") %]</[% c.req.uri.path == '/around' ? 'span' : 'a' %]></li>[%
+ %]<li><[% IF c.req.uri.path == '/reports' %]span[% ELSE %]a href="/reports"[% END
+ %]>[% loc("All reports") %]</[% c.req.uri.path == '/reports' ? 'span' : 'a' %]></li>[%
+ %]<li><[% IF c.req.uri.path == '/faq' %]span[% ELSE %]a href="/faq"[% END
+ %]>[% loc("Help") %]</[% c.req.uri.path == '/faq' ? 'span' : 'a' %]></li>
+ </ul>
+ </div>
diff --git a/templates/web/zurich/report/_item.html b/templates/web/zurich/report/_item.html
new file mode 100644
index 000000000..41164cdd1
--- /dev/null
+++ b/templates/web/zurich/report/_item.html
@@ -0,0 +1,22 @@
+<li>
+<a class="text" href="[% c.uri_for('/report', problem.id ) %]">
+ [% IF problem.state != 'unconfirmed' AND problem.photo AND problem.extra.publish_photo %]
+ <img class="img" height="60" width="90" src="/photo/[% problem.id %].fp.jpeg" alt="">
+ [% END %]
+ [% IF problem.state != 'unconfirmed' %]
+ <h4>[% problem.title | html %]</h4>
+ [% ELSE %]
+ <h4><em>[% loc('Awaiting moderation') %]</em></h4>
+ [% END %]
+ <small>[% prettify_dt( problem.created_local, 'zurich' ) %]
+ [%- IF dist %], [% dist %]km[% END %]
+ [%- IF include_lastupdate AND problem.created != problem.lastupdate AND problem.whensent != problem.lastupdate %],
+ [% tprintf('last updated %s', prettify_dt( problem.lastupdate_local, 'zurich' ) ) %]
+ [%- END %]
+ [% IF NOT no_fixed AND problem.is_fixed %]
+ [% loc('(fixed)') %]
+ [% ELSIF NOT no_fixed AND problem.is_closed %]
+ [% loc('(closed)') %]
+ [% END %]</small>
+</a>
+</li>
diff --git a/templates/web/zurich/report/_main.html b/templates/web/zurich/report/_main.html
new file mode 100644
index 000000000..e6c310873
--- /dev/null
+++ b/templates/web/zurich/report/_main.html
@@ -0,0 +1,17 @@
+<div class="problem-header cf">
+ <h1>[% tprintf( loc('Reported in the %s category'), problem.category ) %]</h1>
+ <p class="sub">
+ [% prettify_dt( problem.created_local, 'zurich' ) %]
+ [%- IF !problem.used_map %]<br>[% loc('there is no pin shown as the user did not use the map') %][% END %]
+ </p>
+
+ [% IF problem.state != 'unconfirmed' %]
+ [% IF problem.extra.publish_photo %]
+ [% INCLUDE 'report/photo.html' object=problem %]
+ [% END %]
+ [% add_links( problem.detail ) | html_para %]
+ [% ELSE %]
+ [% loc('This report is awaiting moderation.') %]
+ [% END %]
+
+</div>
diff --git a/templates/web/zurich/report/banner.html b/templates/web/zurich/report/banner.html
new file mode 100644
index 000000000..eda70a0de
--- /dev/null
+++ b/templates/web/zurich/report/banner.html
@@ -0,0 +1,17 @@
+[% USE date %]
+[% BLOCK banner %]
+ <div class="banner">
+ <p id="[% id %]">[% text %]</p>
+ </div>
+[% END %]
+
+[% IF problem.state == 'unconfirmed' %]
+ [% INCLUDE banner, id = 'closed', text = loc('Submitted') %]
+[% ELSIF problem.state == 'confirmed' %]
+ [% INCLUDE banner, id = 'closed', text = loc('Open') %]
+[% ELSIF problem.is_fixed OR problem.is_closed %]
+ [% INCLUDE banner, id = 'fixed', text = loc('Closed') %]
+[% ELSIF problem.state == 'in progress' OR problem.state == 'planned' %]
+ [% INCLUDE banner, id = 'progress', text = loc('In progress') %]
+[% END %]
+
diff --git a/templates/web/zurich/report/new/councils_text_all.html b/templates/web/zurich/report/new/councils_text_all.html
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/templates/web/zurich/report/new/councils_text_all.html
diff --git a/templates/web/zurich/report/new/fill_in_details_form.html b/templates/web/zurich/report/new/fill_in_details_form.html
index a4029c527..1cecf036d 100644
--- a/templates/web/zurich/report/new/fill_in_details_form.html
+++ b/templates/web/zurich/report/new/fill_in_details_form.html
@@ -1,20 +1,6 @@
<div id="report-a-problem-main">
<h1>[% loc('Reporting a problem') %]</h1>
- [% IF js %]
- <p id="councils_text">
- [%
- tprintf(
- loc('All the information you provide here will be sent to <strong>%s</strong>.'),
- loc('the local council')
- );
- %]
- [% loc('The subject and details of the problem will be public, plus your name if you give us permission.') %]
- </p>
- [% ELSE %]
- [% PROCESS 'report/new/councils_text.html' %]
- [% END %]
-
<div id="report-a-problem-sidebar">
<!--
The text for this section needs checking, but I can't work out which bit comes from where
@@ -49,8 +35,8 @@
[% INCLUDE 'report/new/form_heading.html' %]
- [% IF field_errors.council %]
- <p class='form-error'>[% field_errors.council %]</p>
+ [% IF field_errors.bodies %]
+ <p class='form-error'>[% field_errors.bodies %]</p>
[% END %]
<label for="form_detail">[% loc('Details') %]</label>
diff --git a/templates/web/zurich/report/updates.html b/templates/web/zurich/report/updates.html
new file mode 100644
index 000000000..69c8af99f
--- /dev/null
+++ b/templates/web/zurich/report/updates.html
@@ -0,0 +1,17 @@
+[% IF problem.state == 'fixed - council' OR problem.state == 'closed' %]
+ <h4 class="static-with-rule">[% loc('Updates') %]</h4>
+ <ul class="issue-list">
+ <li>
+ <div class="update-wrap">
+ <div class="update-text">
+ <p class="meta-2">[% prettify_dt( problem.lastupdate_local, 'zurich' ) %]</p>
+ [% IF problem.state == 'fixed - council' %]
+ [% add_links( problem.extra.public_response ) | html_para %]
+ [% ELSIF problem.state == 'closed' AND problem.external_body %]
+ <p>[% tprintf( loc('Assigned to %s'), problem.body(c).name ) %]</p>
+ [% END %]
+ </div>
+ </div>
+ </li>
+ </ul>
+[% END %]
diff --git a/templates/web/zurich/reports/index.html b/templates/web/zurich/reports/index.html
new file mode 100755
index 000000000..670746753
--- /dev/null
+++ b/templates/web/zurich/reports/index.html
@@ -0,0 +1,33 @@
+[%
+ PROCESS "maps/${map.type}.html";
+ INCLUDE 'header.html',
+ title = loc('Summary reports'),
+ bodyclass = 'mappage';
+%]
+[% map_html %]
+ <p id='sub_map_links'>
+ <a class="hidden-nojs" id="map_layer_toggle" href="">Stadtplan</a>
+ </p>
+</div>
+
+<div id="side">
+
+<h1>[% loc('All Reports') %]</h1>
+
+[% INCLUDE 'pagination.html', param = 'p' %]
+
+<section class="full-width">
+ [% IF problems.0 %]
+ <ul class="issue-list-a">
+ [% FOREACH problem IN problems.0 %]
+ [% INCLUDE 'reports/_list-entry.html' %]
+ [% END %]
+ </ul>
+ [% END %]
+</section>
+
+[% INCLUDE 'pagination.html', param = 'p' %]
+
+</div>
+[% INCLUDE 'footer.html' %]
+
diff --git a/templates/web/zurich/tokens/confirm_problem.html b/templates/web/zurich/tokens/confirm_problem.html
new file mode 100644
index 000000000..d61cf3ffa
--- /dev/null
+++ b/templates/web/zurich/tokens/confirm_problem.html
@@ -0,0 +1,15 @@
+[% INCLUDE 'header.html', title = loc('Confirmation') %]
+
+<h1>[% loc('Confirmation') %]</h1>
+
+[%
+ loc('You have successfully confirmed your email address.');
+ tprintf(
+ loc( 'You can <a href="%s%s">view the problem on this site</a>.' ),
+ c.cobrand.base_url_for_report( problem ),
+ problem.url
+ );
+%]
+</p>
+
+[% INCLUDE 'footer.html' %]
diff --git a/web/cobrands/barnet/base.scss b/web/cobrands/barnet/base.scss
index 0447c6779..2dd0640a6 100644
--- a/web/cobrands/barnet/base.scss
+++ b/web/cobrands/barnet/base.scss
@@ -26,7 +26,7 @@
background: url('/cobrands/barnet/img/barnet-skipnav.png') no-repeat;
}
-#front-main #postcodeForm div input#submit,
+#front-main #postcodeForm div input#sub,
.green-btn,
button.green-btn,
input.green-btn,
diff --git a/web/cobrands/fixmystreet/_base.scss b/web/cobrands/fixmystreet/_base.scss
index 9f6a2fe90..d72910450 100644
--- a/web/cobrands/fixmystreet/_base.scss
+++ b/web/cobrands/fixmystreet/_base.scss
@@ -1474,7 +1474,7 @@ table.nicetable {
background:none;
line-height:1.5em;
}
- input#submit {
+ input#sub {
display:table-cell;
border:none;
padding:0;
diff --git a/web/cobrands/fixmystreet/_layout.scss b/web/cobrands/fixmystreet/_layout.scss
index 28c1b6cb8..825686a75 100644
--- a/web/cobrands/fixmystreet/_layout.scss
+++ b/web/cobrands/fixmystreet/_layout.scss
@@ -893,7 +893,7 @@ body.frontpage {
height:2em;
width:17em;
}
- input#submit {
+ input#sub {
display:block;
float:right;
width:3em;
diff --git a/web/cobrands/fixmystreet/fixmystreet.js b/web/cobrands/fixmystreet/fixmystreet.js
index ab20520d0..d9360d0e2 100644
--- a/web/cobrands/fixmystreet/fixmystreet.js
+++ b/web/cobrands/fixmystreet/fixmystreet.js
@@ -10,14 +10,14 @@
* elem2: target element
* offset: this will be added (if present) to the final value, useful for height errors
*/
-function heightFix(elem1, elem2, offset){
+function heightFix(elem1, elem2, offset, force) {
var h1 = $(elem1).height(),
h2 = $(elem2).height();
- if(offset === undefined){
+ if (offset === undefined) {
offset = 0;
}
- if(h1 > h2){
- $(elem2).css({'min-height':h1+offset});
+ if (h1 > h2 || force) {
+ $(elem2).css( { 'min-height': h1+offset } );
}
}
@@ -61,6 +61,8 @@ $(function(){
} else if (window.location.href.indexOf('oxfordshire') != -1) {
cobrand = 'oxfordshire';
is_small_map = true;
+ } else if (window.location.href.indexOf('zurich') != -1) {
+ cobrand = 'zurich';
}
// Deal with switching between mobile and desktop versions on resize
@@ -97,7 +99,7 @@ $(function(){
$('.big-green-banner')
.addClass('mobile-map-banner')
.appendTo('#map_box')
- .html('<a href="/">Home</a> Place pin on map');
+ .html('<a href="/">' + translation_strings.home + '</a> ' + translation_strings.place_pin_on_map);
}
$('span.report-a-problem-btn').on('click.reportBtn', function(){
$('html, body').animate({scrollTop:0}, 500);
@@ -117,13 +119,13 @@ $(function(){
}
if (typeof fixmystreet !== 'undefined' && fixmystreet.page == 'around') {
// Remove full-screen-ness
- var banner_text = 'Click map to report a problem';
+ var banner_text = translation_strings.report_problem_heading;
if (cobrand == 'bromley') {
banner_text += '<span>Yellow pins show existing reports</span>';
}
if (! is_small_map) {
$('#site-header').show();
- banner_text = validation_strings.report_problem_heading;
+ banner_text = translation_strings.report_problem_heading;
}
$('#fms_pan_zoom').css({ top: '4.75em !important' });
$('.big-green-banner')
@@ -145,7 +147,7 @@ $(function(){
}
//show/hide notes on mobile
- $('.mobile #report-a-problem-sidebar').after('<a href="#" class="rap-notes-trigger button-right">How to send successful reports</a>').hide();
+ $('.mobile #report-a-problem-sidebar').after('<a href="#" class="rap-notes-trigger button-right">' + translation_strings.how_to_send + '</a>').hide();
$('.rap-notes-trigger').click(function(e){
e.preventDefault();
//check if we've already moved the notes
@@ -156,7 +158,7 @@ $(function(){
}else{
//if not, move them and show, hiding .content
$('.content').after('<div class="content rap-notes"></div>').hide();
- $('#report-a-problem-sidebar').appendTo('.rap-notes').show().after('<a href="#" class="rap-notes-close button-left">Back</a>');
+ $('#report-a-problem-sidebar').appendTo('.rap-notes').show().after('<a href="#" class="rap-notes-close button-left">' + translation_strings.back + '</a>');
}
$('html, body').scrollTop($('#report-a-problem-sidebar').offset().top);
location.hash = 'rap-notes';
@@ -376,7 +378,10 @@ $.fn.drawer = function(id, ajax) {
});
//add permalink on desktop, force hide on mobile
- $('#sub_map_links').append('<a href="#" id="map_permalink">Permalink</a>');
+ if (cobrand != 'zurich') {
+ $('#sub_map_links').append('<a href="#" id="map_permalink">Permalink</a>');
+ }
+
if($('.mobile').length){
$('#map_permalink').hide();
$('#key-tools a.feed').appendTo('#sub_map_links');
@@ -443,7 +448,7 @@ $.fn.drawer = function(id, ajax) {
if (cobrand == 'bromley') {
offset = -110;
}
- heightFix(window, '.content', offset);
+ heightFix(window, '.content', offset, 1);
// in case we have a map that isn't full screen
map_fix();
}
diff --git a/web/cobrands/fixmystreet/position_map.js b/web/cobrands/fixmystreet/position_map.js
index 4a18d9f9a..71794e8d6 100644
--- a/web/cobrands/fixmystreet/position_map.js
+++ b/web/cobrands/fixmystreet/position_map.js
@@ -1,14 +1,14 @@
function position_map_box() {
var $html = $('html');
if ($html.hasClass('ie6')) {
- $('#map_box').prependTo('.wrapper').css({
+ $('#map_box').prependTo('body').css({
zIndex: 0, position: 'absolute',
top: 0, left: 0, right: 0, bottom: 0,
width: '100%', height: $(window).height(),
margin: 0
});
} else {
- $('#map_box').prependTo('.wrapper').css({
+ $('#map_box').prependTo('body').css({
zIndex: 0, position: 'fixed',
top: 0, left: 0, right: 0, bottom: 0,
width: '100%', height: '100%',
diff --git a/web/cobrands/stevenage/layout.scss b/web/cobrands/stevenage/layout.scss
index a94dc2a24..542cffd96 100644
--- a/web/cobrands/stevenage/layout.scss
+++ b/web/cobrands/stevenage/layout.scss
@@ -211,7 +211,7 @@ body.frontpage {
#front-main {
#postcodeForm {
div {
- input#submit {
+ input#sub {
color: #fff;
background: $primary;
&:hover {
diff --git a/web/cobrands/zurich/_colours.scss b/web/cobrands/zurich/_colours.scss
index 8e8f4c9cd..73fb36577 100644
--- a/web/cobrands/zurich/_colours.scss
+++ b/web/cobrands/zurich/_colours.scss
@@ -1,15 +1,27 @@
/* COLOURS */
-$dark_blue: rgb(50, 80, 165);
-$lighter_blue: rgb(57, 94, 147);
+$dark_blue: rgb(0, 79, 167);
+$zurich_blue: rgb(0, 81, 169);
-$primary: $lighter_blue;
+$primary: $zurich_blue;
$primary_b: $dark_blue;
$primary_text: #fff;
-$col_click_map: $lighter_blue;
-$col_click_map_dark: darken($lighter_blue, 20%);
+$col_click_map: $zurich_blue;
+$col_click_map_dark: darken($zurich_blue, 20%);
-$col_fixed_label: #00BD08;
+$col_fixed_label: #648721;
$col_fixed_label_dark: #4B8304;
+$mobile_menu_tab_bg_col: #FFFFFF; // the white border and tab on mobile site
+$mobile_header_blue: #366AB6; // close match to Zurich logo_portal.jpg
+
+// Zurich admin tables:
+
+$table_border_color: #ccc;
+$table_heading_bg_col: #595959;
+$table_heading_border_col: #7a7a7a;
+$table_heading_col: #fff;
+$table_heading_underline_col: #393939;
+$button_col: #fff;
+$button_bg_col: #a1a1a1; // also search bar (tables)
diff --git a/web/cobrands/zurich/base.scss b/web/cobrands/zurich/base.scss
index 4594f832f..8111f2726 100644
--- a/web/cobrands/zurich/base.scss
+++ b/web/cobrands/zurich/base.scss
@@ -5,3 +5,104 @@
@import "../fixmystreet/_base";
+/* Front page main box is in content now, so get rid of its margin from parent */
+#front-main {
+ margin: 0;
+}
+
+/* Autocomplete dropdown on front page, don't want bullets */
+.ui-menu-item {
+ list-style-type: none;
+}
+
+/* Simplify the problem header on a report page */
+.problem-header h1 {
+ font-size: 120%;
+ font-weight: bold;
+ margin: 0;
+}
+.problem-header .sub {
+ color: #666;
+ font-size: 85%;
+}
+
+// Simplify the banner to just be a floated box. Colours etc. still
+// inherited from the base stylesheet.
+.banner {
+ p {
+ position: static;
+ float: right;
+ font-weight: bold;
+ padding: 1em;
+ margin: 0;
+ text-transform: uppercase;
+ text-align: center;
+ &:before {
+ display: none;
+ }
+ }
+}
+
+#site-header {
+ background: $mobile_header_blue;
+ border-top: 4px solid $mobile_menu_tab_bg_col;
+ height: 48px;
+}
+#site-logo {
+ background: url(logo_portal.jpg) 0px -24px no-repeat;
+ width: 200px;
+ height:44px;
+ left:0;
+ top:4px;
+}
+// Colour tab to match colour scheme
+#nav-link {
+ width: 50px;
+ height: 48px;
+ background: url('/cobrands/zurich/tab-white.png') 0 0 no-repeat;
+}
+#front-howto #front_stats,
+#front-main #postcodeForm {
+ background-color: $mobile_header_blue;
+}
+
+// No grey background or other bits
+// The amount of resetting here shows this needs refactoring, so that it is FMS making the changes
+// Also look into why full-width pulls things out, but then it is its children
+// that have to recompensate with padding.
+h4.static-with-rule {
+ color: black;
+ font-size: 1em;
+ font-weight: bold;
+ text-transform: none;
+ background: none;
+ padding-left: 0;
+ padding-right: 0;
+ border-top: 0.25em solid #e5e5e5;
+}
+.issue-list {
+ border-bottom: none;
+ li {
+ padding-left: 0;
+ padding-right: 0;
+ background: none;
+ }
+}
+
+.issue-list-a {
+ border-bottom: none;
+ li {
+ background: none;
+ .text {
+ .img {
+ padding-right: 1em;
+ }
+ }
+ }
+}
+
+.form-txt-submit-box input[type=submit] {
+ width:auto; // 28% is too narrow
+ padding-left: 0.8em;
+ padding-right: 0.8em;
+}
diff --git a/web/cobrands/zurich/layout.scss b/web/cobrands/zurich/layout.scss
index 82ae2be75..3a2d8ddb0 100644
--- a/web/cobrands/zurich/layout.scss
+++ b/web/cobrands/zurich/layout.scss
@@ -2,6 +2,8 @@
@import "../fixmystreet/layout";
@import "zurich";
+// Things to override from parent stylesheet
+
body {
color: #3c3c3c;
background-color: #fff;
@@ -17,17 +19,41 @@ body {
border: none;
}
}
+// Except on map pages
+body.mappage .content {
+ @include box-shadow(0 0 6px 1px #000);
+}
+.ie6, .ie7, .ie8 {
+ body.mappage .content {
+ border: 1px solid #666;
+ }
+}
+/* The header on a map page needs a shadow too */
+body.mappage .nav-wrapper-2 {
+ @include box-shadow(0 0 6px 1px #000);
+}
+/* Except on admin pages where there's an admin nav directly underneath it */
+body.mappage.admin .nav-wrapper-2 {
+ @include box-shadow(none);
+}
+// Different header and logo
#site-header .container {
- height: 83px;
+ height: 99px;
background: url(logo_portal.x.jpg) top left repeat-x;
}
body.frontpage #site-logo, #site-logo {
width: 415px;
- height: 83px;
+ height: 16px;
background: url(logo_portal.jpg) top left no-repeat;
top: 0;
+ text-indent: 0;
+ padding-left: 10px;
+ padding-top: 83px;
+ color: #585858;
+ font-size: 85%;
+ left: auto; // base set this to 0
}
.nav-wrapper {
@@ -40,13 +66,52 @@ body.mappage {
.nav-wrapper {
.nav-wrapper-2 {
border-top: none;
- padding-top: 18px;
- background: url(logo_portal.x.jpg) top left repeat-x;
- height: 83px;
+ background: #fff;
+ height: 117px; // 99px+18px for padding
+ padding: 0 10px;
+ box-sizing: border-box;
}
}
+ /* Ugh :( But first wrapper is the caption, second is the fixed (so first we
+ can do padding on) so a third seems necessary for the background then. */
+ .nav-wrapper-3 {
+ height: 99px;
+ padding-top: 18px;
+ background: #fff url(logo_portal.x.jpg) top left repeat-x;
+ }
+ #site-logo {
+ margin-left: 10px;
+ }
+}
+
+// Logged in notice in footer (appearing in header)
+.nav-wrapper-2 p:first-child {
+ font-weight: bold;
+ margin-top: 0.75em;
+}
+.nav-wrapper-2 p {
+ line-height: 1.2;
+ color: white;
+ clear: right;
+ float: right;
+ margin: 0 1em 0 0;
+ font-size: 85%;
+ a {
+ color: white;
+ font-size: 85%;
+ }
+ a:hover {
+ color: white;
+ }
}
+#front-main {
+ background-color: inherit;
+ color: inherit;
+ margin: 0 0 2em 0;
+}
+
+/* TODO Change the main-nav to be what is wanted */
#main-nav {
ul#main-menu {
li {
@@ -60,6 +125,40 @@ body.mappage {
}
}
+#zurich-main-nav {
+ margin: -1em -1em 1em -1em; // -1em spreads back out over content's 1em padding
+ padding: 0;
+ background-color: #6A6869;
+
+ ul {
+ overflow:auto;
+ margin:0 0 0 0;
+ list-style: none;
+ padding: 0;
+ li {
+ font-size: 80%;
+ float:left;
+ list-style: none;
+ margin:0;
+ color: #fff;
+ a, span {
+ display: block;
+ padding: 0.75em 1em;
+ }
+ a {
+ color: #fff;
+ text-decoration: none;
+ &:hover {
+ background-color: #333;
+ }
+ }
+ span {
+ background-color: $zurich_blue;
+ }
+ }
+ }
+}
+
body.mappage {
#main-nav ul#main-menu li a,
#main-nav ul#main-menu li span {
@@ -75,6 +174,152 @@ body.twothirdswidthpage {
aside {
@include box-shadow(none);
}
+ .sticky-sidebar aside {
+ top: 14em; // overrides default value, due to Zurich nav at top of content
+ }
+ }
+}
+
+// Zurich base has made this a more simple construct. The top is to pull it up
+// over the content padding to be attached to the top of the content area.
+// We reduce the padding as no pin image, and change the background.
+.banner {
+ top: -1em;
+ p {
+ &#fixed {
+ padding-top: 2em;
+ background: $col_fixed_label;
+ @include background(linear-gradient(#769643, $col_fixed_label 4px));
+ }
+ }
+}
+.ie6 .banner p {
+ &#fixed {
+ background-image: none;
+ }
+}
+
+#fms_pan_zoom {
+ top: 7.75em !important;
+}
+
+// Admin specific changes
+
+body.fullwidthpage.admin .content {
+ width: 100%;
+}
+
+body.mappage.admin .content {
+ margin-top: 6em;
+ margin-left: 0.5em;
+
+}
+.admin {
+ .content {
+ margin: 2em 0 1em;
+ padding: 0 0 0 0;
+ }
+
+ #zurich-footer {
+ margin: 2em auto 3em auto;
+ }
+
+ table {
+ width: 100%;
+ font-size: 0.9em;
+ border: 1px solid $table_border_color;
+ border-collapse:collapse;
+ th, td {
+ padding: 0.666em 0.5em;
+ border: 1px solid $table_border_color;
+ }
+ th {
+ color: white;
+ background-color: $table_heading_bg_col;
+ border-bottom: 2px solid $table_heading_underline_col;
+ border-left: 1px solid $table_heading_border_col;
+ border-right: 1px solid $table_heading_border_col;
+ }
+ td.record-id {
+ text-align: center;
+ font-weight: bold;
+ }
+ tr.filter-row td {
+ display: none; /* TODO: reveal when filtering is implemented */
+ padding: 4px 4px 4px 40px;
+ background-color: $button_bg_col;
+ background-image: url('search-icon-white.png');
+ background-position: 14px center;
+ background-repeat: no-repeat;
+ border-bottom: 2px solid $table_border_color;
+ }
+ tr.filter-row td input[type=text] {
+ background-color: #e1e1e1;
+ width: 16em;
+ @include border-radius(4px);
+ border: none;
+ padding: 3px 0.5em;
+ }
+ }
+}
+
+.admin-nav-wrapper {
+ background-color: white;
+ padding: 1.5em 0 1em;
+}
+body.mappage .admin-nav-wrapper {
+ box-sizing: border-box;
+ padding-left: 10px;
+ padding-right: 10px;
+ position: fixed;
+ width: 100%;
+ @include box-shadow(0 0 6px 1px #000);
+}
+
+.admin-nav {
+ background: #f4f4f4;
+ @include background(linear-gradient(#fbfbfb, #efefef));
+ border-bottom: 2px solid $table_border_color;
+ ul {
+ overflow:auto;
+ margin:0 0 -2px 0;
+ list-style: none;
+ padding: 0;
+ border-top: 1px solid $table_border_color;
+ border-left: 1px solid $table_border_color;
+ border-right: 1px solid $table_border_color;
+ li {
+ border-right: 1px solid $table_border_color;
+ float:left;
+ list-style: none;
+ margin:0;
+ padding: 0.5em 1em;
+ font-weight: bold;
+ color: #000;
+ a {
+ color: #000;
+ }
+ }
+ li.search-box {
+ float: right;
+ }
+ li.current {
+ background-color: #fff;
+ border-bottom: 2px solid #fff;
+ }
+ li.search-box {
+ border:none;
+ padding: 0.2em 0.5em 0.2em 30px;
+ background-image: url('search-icon.png');
+ background-position: 2px center;
+ background-repeat: no-repeat;
+ input {
+ height: 100%;
+ width: 12em;
+ border: none;
+ padding: 6px 0.5em;
+ }
+ }
}
}
diff --git a/web/cobrands/zurich/search-icon-white.png b/web/cobrands/zurich/search-icon-white.png
new file mode 100644
index 000000000..59f3f1f82
--- /dev/null
+++ b/web/cobrands/zurich/search-icon-white.png
Binary files differ
diff --git a/web/cobrands/zurich/search-icon.png b/web/cobrands/zurich/search-icon.png
new file mode 100644
index 000000000..b74f9397f
--- /dev/null
+++ b/web/cobrands/zurich/search-icon.png
Binary files differ
diff --git a/web/cobrands/zurich/tab-white.png b/web/cobrands/zurich/tab-white.png
new file mode 100644
index 000000000..17e4f177e
--- /dev/null
+++ b/web/cobrands/zurich/tab-white.png
Binary files differ
diff --git a/web/cobrands/zurich/zurich-wmts-hybrid.xml b/web/cobrands/zurich/zurich-wmts-hybrid.xml
new file mode 100644
index 000000000..f1580cc89
--- /dev/null
+++ b/web/cobrands/zurich/zurich-wmts-hybrid.xml
@@ -0,0 +1,356 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+
+
+
+
+
+
+
+
+
+
+
+<Capabilities xmlns="http://www.opengis.net/wmts/1.0"
+ xmlns:ows="http://www.opengis.net/ows/1.1"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:gml="http://www.opengis.net/gml"
+ xsi:schemaLocation="http://www.opengis.net/wmts/1.0 http://schemas.opengis.net/wmts/1.0/wmtsGetCapabilities_response.xsd"
+ version="1.0.0">
+ <!-- Service Identification -->
+ <ows:ServiceIdentification>
+ <ows:Title>Hybrid</ows:Title>
+ <ows:ServiceType>OGC WMTS</ows:ServiceType>
+ <ows:ServiceTypeVersion>1.0.0</ows:ServiceTypeVersion>
+</ows:ServiceIdentification> <!-- Operations Metadata --> <ows:OperationsMetadata>
+ <ows:Operation name="GetCapabilities">
+ <ows:DCP>
+ <ows:HTTP>
+ <ows:Get xlink:href="http://www.wmts.stadt-zuerich.ch/arcgis/rest/services/Hybrid/MapServer/WMTS/1.0.0/WMTSCapabilities.xml">
+ <ows:Constraint name="GetEncoding">
+ <ows:AllowedValues>
+ <ows:Value>RESTful</ows:Value>
+ </ows:AllowedValues>
+ </ows:Constraint>
+ </ows:Get>
+ <!-- add KVP binding in 10.1 -->
+ <ows:Get xlink:href="http://www.wmts.stadt-zuerich.ch/arcgis/rest/services/Hybrid/MapServer/WMTS?">
+ <ows:Constraint name="GetEncoding">
+ <ows:AllowedValues>
+ <ows:Value>KVP</ows:Value>
+ </ows:AllowedValues>
+ </ows:Constraint>
+ </ows:Get>
+ </ows:HTTP>
+ </ows:DCP>
+ </ows:Operation>
+ <ows:Operation name="GetTile">
+ <ows:DCP>
+ <ows:HTTP>
+ <ows:Get xlink:href="http://www.wmts.stadt-zuerich.ch/arcgis/rest/services/Hybrid/MapServer/WMTS/tile/1.0.0/">
+ <ows:Constraint name="GetEncoding">
+ <ows:AllowedValues>
+ <ows:Value>RESTful</ows:Value>
+ </ows:AllowedValues>
+ </ows:Constraint>
+ </ows:Get>
+ <ows:Get xlink:href="http://www.wmts.stadt-zuerich.ch/arcgis/rest/services/Hybrid/MapServer/WMTS?">
+ <ows:Constraint name="GetEncoding">
+ <ows:AllowedValues>
+ <ows:Value>KVP</ows:Value>
+ </ows:AllowedValues>
+ </ows:Constraint>
+ </ows:Get>
+ </ows:HTTP>
+ </ows:DCP>
+ </ows:Operation>
+</ows:OperationsMetadata>
+<Contents>
+ <!--Layer-->
+ <Layer>
+ <ows:Title>Hybrid</ows:Title>
+ <ows:Identifier>Hybrid</ows:Identifier>
+
+ <ows:BoundingBox crs="urn:ogc:def:crs:EPSG::21781">
+ <ows:LowerCorner>665000.0 230000.0</ows:LowerCorner>
+ <ows:UpperCorner>700000.0 270000.0</ows:UpperCorner>
+ </ows:BoundingBox>
+
+ <ows:WGS84BoundingBox crs="urn:ogc:def:crs:OGC:2:84">
+ <ows:LowerCorner>8.297842338812158 47.21471096634782</ows:LowerCorner>
+ <ows:UpperCorner>8.768863108218179 47.57887356607757</ows:UpperCorner>
+ </ows:WGS84BoundingBox>
+ <Style isDefault="true">
+ <ows:Title>Default Style</ows:Title>
+ <ows:Identifier>default</ows:Identifier>
+ </Style>
+ <Format>image/jpgpng</Format>
+ <TileMatrixSetLink>
+ <TileMatrixSet>default028mm</TileMatrixSet>
+ </TileMatrixSetLink>
+ <TileMatrixSetLink>
+ <TileMatrixSet>nativeTileMatrixSet</TileMatrixSet>
+ </TileMatrixSetLink>
+
+ <ResourceURL format="image/jpgpng" resourceType="tile" template="http://www.wmts.stadt-zuerich.ch/arcgis/rest/services/Hybrid/MapServer/WMTS/tile/1.0.0/Hybrid/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}" />
+ </Layer>
+ <!--TileMatrixSet-->
+ <TileMatrixSet>
+ <ows:Title>Default TileMatrix using 0.28mm</ows:Title>
+ <ows:Abstract>The tile matrix set that has scale values calculated based on the dpi defined by OGC specification (dpi assumes 0.28mm as the physical distance of a pixel).</ows:Abstract>
+ <ows:Identifier>default028mm</ows:Identifier>
+ <ows:SupportedCRS>urn:ogc:def:crs:EPSG::21781</ows:SupportedCRS>
+
+ <TileMatrix>
+ <ows:Identifier>0</ows:Identifier>
+ <ScaleDenominator>236235.11904761902</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>3</MatrixWidth>
+ <MatrixHeight>4</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>1</ows:Identifier>
+ <ScaleDenominator>118117.55952380951</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>5</MatrixWidth>
+ <MatrixHeight>6</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>2</ows:Identifier>
+ <ScaleDenominator>60476.19047619047</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>9</MatrixWidth>
+ <MatrixHeight>10</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>3</ows:Identifier>
+ <ScaleDenominator>30238.095238095237</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>17</MatrixWidth>
+ <MatrixHeight>19</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>4</ows:Identifier>
+ <ScaleDenominator>15119.047619047618</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>33</MatrixWidth>
+ <MatrixHeight>38</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>5</ows:Identifier>
+ <ScaleDenominator>7559.523809523809</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>66</MatrixWidth>
+ <MatrixHeight>75</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>6</ows:Identifier>
+ <ScaleDenominator>3779.7619047619046</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>131</MatrixWidth>
+ <MatrixHeight>149</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>7</ows:Identifier>
+ <ScaleDenominator>1889.8809523809523</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>260</MatrixWidth>
+ <MatrixHeight>296</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>8</ows:Identifier>
+ <ScaleDenominator>944.9404761904761</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>518</MatrixWidth>
+ <MatrixHeight>591</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>9</ows:Identifier>
+ <ScaleDenominator>472.4702380952381</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>1035</MatrixWidth>
+ <MatrixHeight>1182</MatrixHeight>
+
+ </TileMatrix>
+
+ </TileMatrixSet>
+ <TileMatrixSet>
+ <ows:Title>Native TiledMapService TileMatrixSet</ows:Title>
+ <ows:Abstract>the tile matrix set that has scale values calculated based on the dpi defined by ArcGIS Server tiled map service. The current tile dpi is 96</ows:Abstract>
+ <ows:Identifier>nativeTileMatrixSet</ows:Identifier>
+ <ows:SupportedCRS>urn:ogc:def:crs:EPSG::21781</ows:SupportedCRS>
+
+ <TileMatrix>
+ <ows:Identifier>0</ows:Identifier>
+ <ScaleDenominator>250000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>3</MatrixWidth>
+ <MatrixHeight>4</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>1</ows:Identifier>
+ <ScaleDenominator>125000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>5</MatrixWidth>
+ <MatrixHeight>6</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>2</ows:Identifier>
+ <ScaleDenominator>64000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>9</MatrixWidth>
+ <MatrixHeight>10</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>3</ows:Identifier>
+ <ScaleDenominator>32000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>17</MatrixWidth>
+ <MatrixHeight>19</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>4</ows:Identifier>
+ <ScaleDenominator>16000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>33</MatrixWidth>
+ <MatrixHeight>38</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>5</ows:Identifier>
+ <ScaleDenominator>8000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>66</MatrixWidth>
+ <MatrixHeight>75</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>6</ows:Identifier>
+ <ScaleDenominator>4000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>131</MatrixWidth>
+ <MatrixHeight>149</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>7</ows:Identifier>
+ <ScaleDenominator>2000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>260</MatrixWidth>
+ <MatrixHeight>296</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>8</ows:Identifier>
+ <ScaleDenominator>1000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>518</MatrixWidth>
+ <MatrixHeight>591</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>9</ows:Identifier>
+ <ScaleDenominator>500.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>1035</MatrixWidth>
+ <MatrixHeight>1182</MatrixHeight>
+
+ </TileMatrix>
+
+ </TileMatrixSet>
+
+</Contents>
+<ServiceMetadataURL xlink:href="http://www.wmts.stadt-zuerich.ch/arcgis/rest/services/Hybrid/MapServer/WMTS/1.0.0/WMTSCapabilities.xml" />
+</Capabilities>
diff --git a/web/cobrands/zurich/zurich-wmts-map.xml b/web/cobrands/zurich/zurich-wmts-map.xml
new file mode 100644
index 000000000..b78f88826
--- /dev/null
+++ b/web/cobrands/zurich/zurich-wmts-map.xml
@@ -0,0 +1,356 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+
+
+
+
+
+
+
+
+
+
+
+<Capabilities xmlns="http://www.opengis.net/wmts/1.0"
+ xmlns:ows="http://www.opengis.net/ows/1.1"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:gml="http://www.opengis.net/gml"
+ xsi:schemaLocation="http://www.opengis.net/wmts/1.0 http://schemas.opengis.net/wmts/1.0/wmtsGetCapabilities_response.xsd"
+ version="1.0.0">
+ <!-- Service Identification -->
+ <ows:ServiceIdentification>
+ <ows:Title>Stadtplan</ows:Title>
+ <ows:ServiceType>OGC WMTS</ows:ServiceType>
+ <ows:ServiceTypeVersion>1.0.0</ows:ServiceTypeVersion>
+</ows:ServiceIdentification> <!-- Operations Metadata --> <ows:OperationsMetadata>
+ <ows:Operation name="GetCapabilities">
+ <ows:DCP>
+ <ows:HTTP>
+ <ows:Get xlink:href="http://www.wmts.stadt-zuerich.ch/arcgis/rest/services/Stadtplan/MapServer/WMTS/1.0.0/WMTSCapabilities.xml">
+ <ows:Constraint name="GetEncoding">
+ <ows:AllowedValues>
+ <ows:Value>RESTful</ows:Value>
+ </ows:AllowedValues>
+ </ows:Constraint>
+ </ows:Get>
+ <!-- add KVP binding in 10.1 -->
+ <ows:Get xlink:href="http://www.wmts.stadt-zuerich.ch/arcgis/rest/services/Stadtplan/MapServer/WMTS?">
+ <ows:Constraint name="GetEncoding">
+ <ows:AllowedValues>
+ <ows:Value>KVP</ows:Value>
+ </ows:AllowedValues>
+ </ows:Constraint>
+ </ows:Get>
+ </ows:HTTP>
+ </ows:DCP>
+ </ows:Operation>
+ <ows:Operation name="GetTile">
+ <ows:DCP>
+ <ows:HTTP>
+ <ows:Get xlink:href="http://www.wmts.stadt-zuerich.ch/arcgis/rest/services/Stadtplan/MapServer/WMTS/tile/1.0.0/">
+ <ows:Constraint name="GetEncoding">
+ <ows:AllowedValues>
+ <ows:Value>RESTful</ows:Value>
+ </ows:AllowedValues>
+ </ows:Constraint>
+ </ows:Get>
+ <ows:Get xlink:href="http://www.wmts.stadt-zuerich.ch/arcgis/rest/services/Stadtplan/MapServer/WMTS?">
+ <ows:Constraint name="GetEncoding">
+ <ows:AllowedValues>
+ <ows:Value>KVP</ows:Value>
+ </ows:AllowedValues>
+ </ows:Constraint>
+ </ows:Get>
+ </ows:HTTP>
+ </ows:DCP>
+ </ows:Operation>
+</ows:OperationsMetadata>
+<Contents>
+ <!--Layer-->
+ <Layer>
+ <ows:Title>Stadtplan</ows:Title>
+ <ows:Identifier>Stadtplan</ows:Identifier>
+
+ <ows:BoundingBox crs="urn:ogc:def:crs:EPSG::21781">
+ <ows:LowerCorner>672499.0 238999.0</ows:LowerCorner>
+ <ows:UpperCorner>689999.0 256999.0</ows:UpperCorner>
+ </ows:BoundingBox>
+
+ <ows:WGS84BoundingBox crs="urn:ogc:def:crs:OGC:2:84">
+ <ows:LowerCorner>8.398302613481356 47.29709259053008</ows:LowerCorner>
+ <ows:UpperCorner>8.633312509540968 47.46115331797573</ows:UpperCorner>
+ </ows:WGS84BoundingBox>
+ <Style isDefault="true">
+ <ows:Title>Default Style</ows:Title>
+ <ows:Identifier>default</ows:Identifier>
+ </Style>
+ <Format>image/jpgpng</Format>
+ <TileMatrixSetLink>
+ <TileMatrixSet>default028mm</TileMatrixSet>
+ </TileMatrixSetLink>
+ <TileMatrixSetLink>
+ <TileMatrixSet>nativeTileMatrixSet</TileMatrixSet>
+ </TileMatrixSetLink>
+
+ <ResourceURL format="image/jpgpng" resourceType="tile" template="http://www.wmts.stadt-zuerich.ch/arcgis/rest/services/Stadtplan/MapServer/WMTS/tile/1.0.0/Stadtplan/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}" />
+ </Layer>
+ <!--TileMatrixSet-->
+ <TileMatrixSet>
+ <ows:Title>Default TileMatrix using 0.28mm</ows:Title>
+ <ows:Abstract>The tile matrix set that has scale values calculated based on the dpi defined by OGC specification (dpi assumes 0.28mm as the physical distance of a pixel).</ows:Abstract>
+ <ows:Identifier>default028mm</ows:Identifier>
+ <ows:SupportedCRS>urn:ogc:def:crs:EPSG::21781</ows:SupportedCRS>
+
+ <TileMatrix>
+ <ows:Identifier>0</ows:Identifier>
+ <ScaleDenominator>236235.11904761902</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>2</MatrixWidth>
+ <MatrixHeight>2</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>1</ows:Identifier>
+ <ScaleDenominator>118117.55952380951</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>3</MatrixWidth>
+ <MatrixHeight>3</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>2</ows:Identifier>
+ <ScaleDenominator>60476.19047619047</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>5</MatrixWidth>
+ <MatrixHeight>5</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>3</ows:Identifier>
+ <ScaleDenominator>30238.095238095237</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>9</MatrixWidth>
+ <MatrixHeight>9</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>4</ows:Identifier>
+ <ScaleDenominator>15119.047619047618</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>17</MatrixWidth>
+ <MatrixHeight>18</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>5</ows:Identifier>
+ <ScaleDenominator>7559.523809523809</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>34</MatrixWidth>
+ <MatrixHeight>35</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>6</ows:Identifier>
+ <ScaleDenominator>3779.7619047619046</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>66</MatrixWidth>
+ <MatrixHeight>68</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>7</ows:Identifier>
+ <ScaleDenominator>1889.8809523809523</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>130</MatrixWidth>
+ <MatrixHeight>134</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>8</ows:Identifier>
+ <ScaleDenominator>944.9404761904761</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>259</MatrixWidth>
+ <MatrixHeight>267</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>9</ows:Identifier>
+ <ScaleDenominator>472.4702380952381</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>517</MatrixWidth>
+ <MatrixHeight>533</MatrixHeight>
+
+ </TileMatrix>
+
+ </TileMatrixSet>
+ <TileMatrixSet>
+ <ows:Title>Native TiledMapService TileMatrixSet</ows:Title>
+ <ows:Abstract>the tile matrix set that has scale values calculated based on the dpi defined by ArcGIS Server tiled map service. The current tile dpi is 96</ows:Abstract>
+ <ows:Identifier>nativeTileMatrixSet</ows:Identifier>
+ <ows:SupportedCRS>urn:ogc:def:crs:EPSG::21781</ows:SupportedCRS>
+
+ <TileMatrix>
+ <ows:Identifier>0</ows:Identifier>
+ <ScaleDenominator>250000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>2</MatrixWidth>
+ <MatrixHeight>2</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>1</ows:Identifier>
+ <ScaleDenominator>125000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>3</MatrixWidth>
+ <MatrixHeight>3</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>2</ows:Identifier>
+ <ScaleDenominator>64000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>5</MatrixWidth>
+ <MatrixHeight>5</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>3</ows:Identifier>
+ <ScaleDenominator>32000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>9</MatrixWidth>
+ <MatrixHeight>9</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>4</ows:Identifier>
+ <ScaleDenominator>16000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>17</MatrixWidth>
+ <MatrixHeight>18</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>5</ows:Identifier>
+ <ScaleDenominator>8000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>34</MatrixWidth>
+ <MatrixHeight>35</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>6</ows:Identifier>
+ <ScaleDenominator>4000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>66</MatrixWidth>
+ <MatrixHeight>68</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>7</ows:Identifier>
+ <ScaleDenominator>2000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>130</MatrixWidth>
+ <MatrixHeight>134</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>8</ows:Identifier>
+ <ScaleDenominator>1000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>259</MatrixWidth>
+ <MatrixHeight>267</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>9</ows:Identifier>
+ <ScaleDenominator>500.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>517</MatrixWidth>
+ <MatrixHeight>533</MatrixHeight>
+
+ </TileMatrix>
+
+ </TileMatrixSet>
+
+</Contents>
+<ServiceMetadataURL xlink:href="http://www.wmts.stadt-zuerich.ch/arcgis/rest/services/Stadtplan/MapServer/WMTS/1.0.0/WMTSCapabilities.xml" />
+</Capabilities>
diff --git a/web/cobrands/zurich/Zurich-WMTSCapabilities.xml b/web/cobrands/zurich/zurich-wmts-satellite.xml
index c8b863c22..c8b863c22 100644
--- a/web/cobrands/zurich/Zurich-WMTSCapabilities.xml
+++ b/web/cobrands/zurich/zurich-wmts-satellite.xml
diff --git a/web/css/core.scss b/web/css/core.scss
index c7fac1717..ed47cb01a 100644
--- a/web/css/core.scss
+++ b/web/css/core.scss
@@ -109,7 +109,7 @@ $map_width: 500px;
margin-top: 0;
}
- #submit {
+ #sub {
font-size: 83%;
}
}
@@ -616,7 +616,7 @@ $map_width: 500px;
display: block;
font-size: 150%;
}
- #submit {
+ #sub {
font-size: 100%;
}
}
diff --git a/web/js/OpenLayers.2.11.zurich.js b/web/js/OpenLayers.2.11.zurich.js
index 671984fb4..62087500d 100644
--- a/web/js/OpenLayers.2.11.zurich.js
+++ b/web/js/OpenLayers.2.11.zurich.js
@@ -23,26 +23,6 @@
*
*--------------------------------------------------------------------------*/
-/**
-*
-* Contains portions of Rico <http://openrico.org/>
-*
-* Copyright 2005 Sabre Airline Solutions
-*
-* Licensed under the Apache License, Version 2.0 (the "License"); you
-* may not use this file except in compliance with the License. You
-* may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-* implied. See the License for the specific language governing
-* permissions and limitations under the License.
-*
-**/
-
/**
* Contains XMLHttpRequest.js <http://code.google.com/p/xmlhttprequest/>
* Copyright 2007 Sergey Ilinsky (http://www.ilinsky.com)
@@ -1381,4 +1361,4 @@ format(date.getMinutes())+':'+
format(date.getSeconds())+'"';}},CLASS_NAME:"OpenLayers.Format.JSON"});OpenLayers.Control.DragFeature=OpenLayers.Class(OpenLayers.Control,{geometryTypes:null,onStart:function(feature,pixel){},onDrag:function(feature,pixel){},onComplete:function(feature,pixel){},onEnter:function(feature){},onLeave:function(feature){},documentDrag:false,layer:null,feature:null,dragCallbacks:{},featureCallbacks:{},lastPixel:null,initialize:function(layer,options){OpenLayers.Control.prototype.initialize.apply(this,[options]);this.layer=layer;this.handlers={drag:new OpenLayers.Handler.Drag(this,OpenLayers.Util.extend({down:this.downFeature,move:this.moveFeature,up:this.upFeature,out:this.cancel,done:this.doneDragging},this.dragCallbacks),{documentDrag:this.documentDrag}),feature:new OpenLayers.Handler.Feature(this,this.layer,OpenLayers.Util.extend({click:this.clickFeature,clickout:this.clickoutFeature,over:this.overFeature,out:this.outFeature},this.featureCallbacks),{geometryTypes:this.geometryTypes})};},clickFeature:function(feature){if(this.handlers.feature.touch&&!this.over&&this.overFeature(feature)){this.handlers.drag.dragstart(this.handlers.feature.evt);this.handlers.drag.stopDown=false;}},clickoutFeature:function(feature){if(this.handlers.feature.touch&&this.over){this.outFeature(feature);this.handlers.drag.stopDown=true;}},destroy:function(){this.layer=null;OpenLayers.Control.prototype.destroy.apply(this,[]);},activate:function(){return(this.handlers.feature.activate()&&OpenLayers.Control.prototype.activate.apply(this,arguments));},deactivate:function(){this.handlers.drag.deactivate();this.handlers.feature.deactivate();this.feature=null;this.dragging=false;this.lastPixel=null;OpenLayers.Element.removeClass(this.map.viewPortDiv,this.displayClass+"Over");return OpenLayers.Control.prototype.deactivate.apply(this,arguments);},overFeature:function(feature){var activated=false;if(!this.handlers.drag.dragging){this.feature=feature;this.handlers.drag.activate();activated=true;this.over=true;OpenLayers.Element.addClass(this.map.viewPortDiv,this.displayClass+"Over");this.onEnter(feature);}else{if(this.feature.id==feature.id){this.over=true;}else{this.over=false;}}
return activated;},downFeature:function(pixel){this.lastPixel=pixel;this.onStart(this.feature,pixel);},moveFeature:function(pixel){var res=this.map.getResolution();this.feature.geometry.move(res*(pixel.x-this.lastPixel.x),res*(this.lastPixel.y-pixel.y));this.layer.drawFeature(this.feature);this.lastPixel=pixel;this.onDrag(this.feature,pixel);},upFeature:function(pixel){if(!this.over){this.handlers.drag.deactivate();}},doneDragging:function(pixel){this.onComplete(this.feature,pixel);},outFeature:function(feature){if(!this.handlers.drag.dragging){this.over=false;this.handlers.drag.deactivate();OpenLayers.Element.removeClass(this.map.viewPortDiv,this.displayClass+"Over");this.onLeave(feature);this.feature=null;}else{if(this.feature.id==feature.id){this.over=false;}}},cancel:function(){this.handlers.drag.deactivate();this.over=false;},setMap:function(map){this.handlers.drag.setMap(map);this.handlers.feature.setMap(map);OpenLayers.Control.prototype.setMap.apply(this,arguments);},CLASS_NAME:"OpenLayers.Control.DragFeature"});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"}); \ No newline at end of file
+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"});
diff --git a/web/js/fixmystreet.js b/web/js/fixmystreet.js
index 1d5ef6b97..e25c2a571 100644
--- a/web/js/fixmystreet.js
+++ b/web/js/fixmystreet.js
@@ -43,18 +43,18 @@ $(function(){
// FIXME - needs to use translated string
jQuery.validator.addMethod('validCategory', function(value, element) {
- return this.optional(element) || value != '-- Pick a category --'; }, validation_strings.category );
+ return this.optional(element) || value != '-- Pick a category --'; }, translation_strings.category );
jQuery.validator.addMethod('validName', function(value, element) {
var validNamePat = /\ba\s*n+on+((y|o)mo?u?s)?(ly)?\b/i;
- return this.optional(element) || value.length > 5 && value.match( /\S/ ) && value.match( /\s/ ) && !value.match( validNamePat ); }, validation_strings.category );
+ return this.optional(element) || value.length > 5 && value.match( /\S/ ) && value.match( /\s/ ) && !value.match( validNamePat ); }, translation_strings.category );
var form_submitted = 0;
var submitted = false;
$("form.validate").validate({
rules: validation_rules,
- messages: validation_strings,
+ messages: translation_strings,
onkeyup: false,
onfocusout: false,
errorElement: 'div',
@@ -128,7 +128,7 @@ $(function(){
// Geolocation
if (geo_position_js.init()) {
- var link = '<a href="#LINK" id="geolocate_link">&hellip; ' + validation_strings.geolocate + '</a>';
+ var link = '<a href="#LINK" id="geolocate_link">&hellip; ' + translation_strings.geolocate + '</a>';
$('form[action="/alert/list"]').append(link.replace('LINK','alert/list'));
if ($('body.frontpage').length) {
$('#postcodeForm').after(link.replace('LINK','around'));
@@ -153,13 +153,13 @@ $(function(){
}, function(err) {
$link.find('img').remove();
if (err.code == 1) { // User said no
- $link.html("You declined; please fill in the box above");
+ $link.html(translation_strings.geolocation_declined);
} else if (err.code == 2) { // No position
- $link.html("Could not look up location");
+ $link.html(translation_strings.geolocation_no_position);
} else if (err.code == 3) { // Too long
- $link.html("No result returned");
+ $link.html(translation_strings.geolocation_no_result);
} else { // Unknown
- $link.html("Unknown error");
+ $link.html(translation_strings.geolocation_unknown);
}
}, {
enableHighAccuracy: true,
diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js
index 85ab09889..e9e51113c 100644
--- a/web/js/map-OpenLayers.js
+++ b/web/js/map-OpenLayers.js
@@ -16,7 +16,7 @@ function fixmystreet_update_pin(lonlat) {
if (!$('#side-form-error').length) {
$('<div id="side-form-error"/>').insertAfter($('#side-form'));
}
- $('#side-form-error').html('<h1>Reporting a problem</h1><p>' + data.error + '</p>').show();
+ $('#side-form-error').html('<h1>' + translation_strings.reporting_a_problem + '</h1><p>' + data.error + '</p>').show();
$('#side-form').hide();
return;
}
@@ -82,6 +82,9 @@ function fixmystreet_onload() {
fixmystreet.map.addLayer(area);
if ( fixmystreet.area.length == 1 ) {
area.events.register('loadend', null, function(a,b,c) {
+ if ( fixmystreet.area_format ) {
+ area.styleMap.styles.default.defaultStyle = fixmystreet.area_format;
+ }
var bounds = area.getDataExtent();
if (bounds) {
var center = bounds.getCenterLonLat();
@@ -171,7 +174,7 @@ function fixmystreet_onload() {
var popup = new OpenLayers.Popup.FramedCloud("popup",
feature.geometry.getBounds().getCenterLonLat(),
null,
- feature.attributes.title + "<br><a href=/report/" + feature.attributes.id + ">More details</a>",
+ feature.attributes.title + "<br><a href=/report/" + feature.attributes.id + ">" + translation_strings.more_details + "</a>",
{ size: new OpenLayers.Size(0,0), offset: new OpenLayers.Pixel(0,-40) },
true, onPopupClose);
feature.popup = popup;
@@ -201,7 +204,8 @@ function fixmystreet_onload() {
var showhide = [
'Show pins', 'Hide pins',
'Dangos pinnau', 'Cuddio pinnau',
- "Vis nåler", "Gjem nåler"
+ "Vis nåler", "Gjem nåler",
+ "Zeige Stecknadeln", "Stecknadeln ausblenden"
];
for (var i=0; i<showhide.length; i+=2) {
if (this.innerHTML == showhide[i]) {
@@ -267,19 +271,24 @@ $(function(){
}
// Set it up our way
- fixmystreet.layer_options = OpenLayers.Util.extend({
- zoomOffset: fixmystreet.zoomOffset,
- transitionEffect: 'resize',
- numZoomLevels: fixmystreet.numZoomLevels
- }, fixmystreet.layer_options);
var layer;
- if (fixmystreet.layer_options.matrixIds) {
- layer = new fixmystreet.map_type(fixmystreet.layer_options);
- } else {
- layer = new fixmystreet.map_type("", fixmystreet.layer_options);
+ if (!fixmystreet.layer_options.length) {
+ fixmystreet.layer_options = [ fixmystreet.layer_options ];
+ }
+ for (var i=0; i<fixmystreet.layer_options.length; i++) {
+ fixmystreet.layer_options[i] = OpenLayers.Util.extend({
+ zoomOffset: fixmystreet.zoomOffset,
+ transitionEffect: 'resize',
+ numZoomLevels: fixmystreet.numZoomLevels
+ }, fixmystreet.layer_options[i]);
+ if (fixmystreet.layer_options[i].matrixIds) {
+ layer = new fixmystreet.map_type(fixmystreet.layer_options[i]);
+ } else {
+ layer = new fixmystreet.map_type("", fixmystreet.layer_options);
+ }
+ fixmystreet.map.addLayer(layer);
}
- fixmystreet.map.addLayer(layer);
if (!fixmystreet.map.getCenter()) {
var centre = new OpenLayers.LonLat( fixmystreet.longitude, fixmystreet.latitude );
@@ -349,7 +358,7 @@ $(function(){
$('#sub_map_links').show();
//only on mobile
$('#mob_sub_map_links').remove();
- $('.mobile-map-banner').html('<a href="/">Home</a> Place pin on map');
+ $('.mobile-map-banner').html('<a href="/">' + translation_strings.home + '</a> ' + translation_strings.place_pin_on_map);
fixmystreet.page = 'around';
});
@@ -538,13 +547,13 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, {
height = $map_box.height();
$map_box.append(
'<p id="mob_sub_map_links">' +
- '<a href="#" id="try_again">Try again</a>' +
- '<a href="#ok" id="mob_ok">OK</a>' +
+ '<a href="#" id="try_again">' + translation_strings.try_again + '</a>' +
+ '<a href="#ok" id="mob_ok">' + translation_strings.ok + '</a>' +
'</p>'
).css({ position: 'relative', width: width, height: height, marginBottom: '1em' });
// Making it relative here makes it much easier to do the scrolling later
- $('.mobile-map-banner').html('<a href="/">Home</a> Right place?');
+ $('.mobile-map-banner').html('<a href="/">' + translation_strings.home + '</a> ' + translation_strings.right_place);
// mobile user clicks 'ok' on map
$('#mob_ok').toggle(function(){
@@ -553,12 +562,12 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, {
//to do this on other pages where #side-form might not be
$('html, body').animate({ scrollTop: height-60 }, 1000, function(){
$('#mob_sub_map_links').addClass('map_complete');
- $('#mob_ok').text('MAP');
+ $('#mob_ok').text(translation_strings.map);
});
}, function(){
$('html, body').animate({ scrollTop: 0 }, 1000, function(){
$('#mob_sub_map_links').removeClass('map_complete');
- $('#mob_ok').text('OK');
+ $('#mob_ok').text(translation_strings.ok);
});
});
}
diff --git a/web/js/map-wmts-zurich.js b/web/js/map-wmts-zurich.js
index 8ecca50a1..682c62f39 100644
--- a/web/js/map-wmts-zurich.js
+++ b/web/js/map-wmts-zurich.js
@@ -2,16 +2,22 @@
* Maps for FMZ using Zurich council's WMTS tile server
*/
+$(function(){
+ $('#map_layer_toggle').toggle(function(){
+ $(this).text('Luftbild');
+ fixmystreet.map.setBaseLayer(fixmystreet.map.layers[1]);
+ }, function(){
+ $(this).text('Stadtplan');
+ fixmystreet.map.setBaseLayer(fixmystreet.map.layers[0]);
+ });
+});
+
/*
* set_map_config() is called on dom ready in map-OpenLayers.js
* to setup the way the map should operate.
*/
function set_map_config(perm) {
// This stuff is copied from js/map-bing-ol.js
- var permalink_id;
- if ($('#map_permalink').length) {
- permalink_id = 'map_permalink';
- }
var nav_opts = { zoomWheelEnabled: false };
if (fixmystreet.page == 'around' && $('html').hasClass('mobile')) {
@@ -22,10 +28,11 @@
fixmystreet.controls = [
new OpenLayers.Control.Attribution(),
new OpenLayers.Control.ArgParser(),
- fixmystreet.nav_control,
- new OpenLayers.Control.Permalink(permalink_id),
- new OpenLayers.Control.PanZoomFMS({id: 'fms_pan_zoom' })
+ fixmystreet.nav_control
];
+ if ( fixmystreet.page != 'report' || !$('html').hasClass('mobile') ) {
+ fixmystreet.controls.push( new OpenLayers.Control.PanZoomFMS({id: 'fms_pan_zoom' }) );
+ }
fixmystreet.map_type = OpenLayers.Layer.WMTS;
@@ -33,22 +40,22 @@
OpenLayers.DOTS_PER_INCH = 96;
fixmystreet.map_options = {
- projection: new OpenLayers.Projection("EPSG:21781"),
maxExtent: new OpenLayers.Bounds(676000, 241000, 690000, 255000),
units: 'm',
- scales: [ '250000', '125000', '64000', '32000', '16000', '8000', '4000', '2000', '1000', '500']
+ scales: [ '64000', '32000', '16000', '8000', '4000', '2000', '1000', '500' ]
};
- fixmystreet.layer_options = {
- name: "Luftbild",
- layer: "Luftbild",
+ var layer_options = {
+ projection: new OpenLayers.Projection("EPSG:21781"),
+ name: "Hybrid",
+ layer: "Hybrid",
matrixSet: "nativeTileMatrixSet",
requestEncoding: "REST",
- url: "http://www.wmts.stadt-zuerich.ch/Luftbild/MapServer/WMTS/tile/",
+ url: "http://www.wmts.stadt-zuerich.ch/Hybrid/MapServer/WMTS/tile/",
style: "default",
matrixIds: [
- { identifier: "0", matrixHeight: 2, matrixWidth: 2, scaleDenominator: 250000, supportedCRS: "urn:ogc:def:crs:EPSG::21781", tileHeight: 256, tileWidth: 256, topLeftCorner: { lat: 30814423, lon: -29386322 } },
- { identifier: "1", matrixHeight: 3, matrixWidth: 3, scaleDenominator: 125000, supportedCRS: "urn:ogc:def:crs:EPSG::21781", tileHeight: 256, tileWidth: 256, topLeftCorner: { lat: 30814423, lon: -29386322 } },
+ //{ identifier: "0", matrixHeight: 2, matrixWidth: 2, scaleDenominator: 250000, supportedCRS: "urn:ogc:def:crs:EPSG::21781", tileHeight: 256, tileWidth: 256, topLeftCorner: { lat: 30814423, lon: -29386322 } },
+ //{ identifier: "1", matrixHeight: 3, matrixWidth: 3, scaleDenominator: 125000, supportedCRS: "urn:ogc:def:crs:EPSG::21781", tileHeight: 256, tileWidth: 256, topLeftCorner: { lat: 30814423, lon: -29386322 } },
{ identifier: "2", matrixHeight: 4, matrixWidth: 5, scaleDenominator: 64000, supportedCRS: "urn:ogc:def:crs:EPSG::21781", tileHeight: 256, tileWidth: 256, topLeftCorner: { lat: 30814423, lon: -29386322 } },
{ identifier: "3", matrixHeight: 7, matrixWidth: 8, scaleDenominator: 32000, supportedCRS: "urn:ogc:def:crs:EPSG::21781", tileHeight: 256, tileWidth: 256, topLeftCorner: { lat: 30814423, lon: -29386322 } },
{ identifier: "4", matrixHeight: 14, matrixWidth: 14, scaleDenominator: 16000, supportedCRS: "urn:ogc:def:crs:EPSG::21781", tileHeight: 256, tileWidth: 256, topLeftCorner: { lat: 30814423, lon: -29386322 } },
@@ -59,10 +66,19 @@
{ identifier: "9", matrixHeight: 415, matrixWidth: 414, scaleDenominator: 500, supportedCRS: "urn:ogc:def:crs:EPSG::21781", tileHeight: 256, tileWidth: 256, topLeftCorner: { lat: 30814423, lon: -29386322 } }
]
};
+ fixmystreet.layer_options = [
+ layer_options, OpenLayers.Util.applyDefaults({
+ name: "Stadtplan",
+ layer: "Stadtplan",
+ url: "http://www.wmts.stadt-zuerich.ch/Stadtplan/MapServer/WMTS/tile/"
+ }, layer_options)
+ ];
// Give main code a new bbox_strategy that translates between
// lat/lon and our swiss coordinates
fixmystreet.bbox_strategy = new OpenLayers.Strategy.ZurichBBOX({ratio: 1});
+
+ fixmystreet.area_format = { fillColor: 'none', strokeWidth: 4, strokeColor: 'black' };
}
OpenLayers.Strategy.ZurichBBOX = OpenLayers.Class(OpenLayers.Strategy.BBOX, {