aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md4
-rw-r--r--Dockerfile8
-rw-r--r--docker-compose.yml1
-rw-r--r--perllib/FixMyStreet/App/Controller/Admin.pm3
-rw-r--r--perllib/FixMyStreet/App/Controller/Location.pm2
-rw-r--r--perllib/FixMyStreet/App/Controller/Report/New.pm2
-rw-r--r--perllib/FixMyStreet/Cobrand/UK.pm9
-rw-r--r--perllib/FixMyStreet/Map/UKCouncilWMTS.pm1
-rwxr-xr-xscript/bootstrap7
-rw-r--r--t/cobrand/cheshireeast.t3
10 files changed, 25 insertions, 15 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 81977b14e..b858ac0d1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,10 @@
## Releases
* Unreleased
+ - Admin improvements:
+ - order unsent reports by confirmed date
+ - Bugfixes
+ - Application user in Docker container can't install packages. #2914
* v3.0 (4th March 2020)
- Security:
diff --git a/Dockerfile b/Dockerfile
index e3a747ca1..f6bc9436f 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -2,11 +2,15 @@ FROM jgoerzen/debian-base-standard:stretch
MAINTAINER sysadmin@mysociety.org
ARG DEBIAN_FRONTEND=noninteractive
+ARG VERSION_OVERRIDE
RUN apt-get -qq update \
- && apt-get -qq -y install ca-certificates \
+ && apt-get -qq -y install ca-certificates sudo \
&& wget -O install-site.sh --no-verbose https://raw.githubusercontent.com/mysociety/commonlib/master/bin/install-site.sh \
- && chmod +x /install-site.sh
+ && chmod +x /install-site.sh \
+ && echo 'fms ALL=(ALL) NOPASSWD: /var/www/fixmystreet/fixmystreet/bin/install_packages' \
+ >/etc/sudoers.d/10_fms_install_packages \
+ && chmod 0440 /etc/sudoers.d/10_fms_install_packages
RUN /install-site.sh --docker fixmystreet fms 127.0.0.1.xip.io \
&& apt-get purge -y --auto-remove \
diff --git a/docker-compose.yml b/docker-compose.yml
index 80f0b56f1..cc653c922 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -30,6 +30,7 @@ services:
FMS_ROOT: '/var/www/fixmystreet/fixmystreet'
SUPERUSER_EMAIL: 'superuser@example.org'
SUPERUSER_PASSWORD: '5up3r53cr3t'
+ SKIP_PACKAGES_INSTALL:
networks:
default:
aliases:
diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm
index 047d15fe3..bd45ad55e 100644
--- a/perllib/FixMyStreet/App/Controller/Admin.pm
+++ b/perllib/FixMyStreet/App/Controller/Admin.pm
@@ -73,6 +73,9 @@ sub index : Path : Args(0) {
bodies_str => { '!=', undef },
# Ignore very recent ones that probably just haven't been sent yet
confirmed => { '<', \"current_timestamp - '5 minutes'::interval" },
+ },
+ {
+ order_by => 'confirmed',
} )->all;
$c->stash->{unsent_reports} = \@unsent;
diff --git a/perllib/FixMyStreet/App/Controller/Location.pm b/perllib/FixMyStreet/App/Controller/Location.pm
index 81c2c33fc..416fb942a 100644
--- a/perllib/FixMyStreet/App/Controller/Location.pm
+++ b/perllib/FixMyStreet/App/Controller/Location.pm
@@ -112,7 +112,7 @@ sub determine_location_from_pc : Private {
# Log failure in a log db
try {
my $dbfile = FixMyStreet->path_to('../data/analytics.sqlite');
- my $db = DBI->connect("dbi:SQLite:dbname=$dbfile", undef, undef) or die "$DBI::errstr\n";
+ my $db = DBI->connect("dbi:SQLite:dbname=$dbfile", undef, undef, { PrintError => 0 }) or die "$DBI::errstr\n";
my $sth = $db->prepare("INSERT INTO location_searches_with_no_results
(datetime, cobrand, geocoder, url, user_input)
VALUES (?, ?, ?, ?, ?)") or die $db->errstr . "\n";
diff --git a/perllib/FixMyStreet/App/Controller/Report/New.pm b/perllib/FixMyStreet/App/Controller/Report/New.pm
index faa02f9fe..1a300da21 100644
--- a/perllib/FixMyStreet/App/Controller/Report/New.pm
+++ b/perllib/FixMyStreet/App/Controller/Report/New.pm
@@ -1247,7 +1247,7 @@ sub check_for_errors : Private {
if ( $c->cobrand->allow_anonymous_reports ) {
my $anon_details = $c->cobrand->anonymous_account;
$report->user->email(undef) if $report->user->email eq $anon_details->{email};
- $report->name(undef) if $report->name eq $anon_details->{name};
+ $report->name(undef) if $report->name && $report->name eq $anon_details->{name};
}
return;
diff --git a/perllib/FixMyStreet/Cobrand/UK.pm b/perllib/FixMyStreet/Cobrand/UK.pm
index e44577bab..a9f8c2f01 100644
--- a/perllib/FixMyStreet/Cobrand/UK.pm
+++ b/perllib/FixMyStreet/Cobrand/UK.pm
@@ -93,15 +93,6 @@ sub geocode_postcode {
return {};
}
-sub remove_redundant_areas {
- my $self = shift;
- my $all_areas = shift;
-
- # Norwich is responsible for everything in its areas, not Norfolk
- delete $all_areas->{2233} #
- if $all_areas->{2391};
-}
-
sub short_name {
my $self = shift;
my ($area) = @_;
diff --git a/perllib/FixMyStreet/Map/UKCouncilWMTS.pm b/perllib/FixMyStreet/Map/UKCouncilWMTS.pm
index 7e3522714..53b6859bf 100644
--- a/perllib/FixMyStreet/Map/UKCouncilWMTS.pm
+++ b/perllib/FixMyStreet/Map/UKCouncilWMTS.pm
@@ -45,6 +45,7 @@ sub reproject_from_latlon($$$) {
# Reproject a BNG easting/northing into WGS84 lat/lon
sub reproject_to_latlon($$$) {
my ($self, $x, $y) = @_;
+ return (0,0) if $x<0 || $y<0;
my ($lat, $lon) = Utils::convert_en_to_latlon($x, $y);
return ($lat, $lon);
}
diff --git a/script/bootstrap b/script/bootstrap
index 5345b163e..10dc94bdf 100755
--- a/script/bootstrap
+++ b/script/bootstrap
@@ -7,10 +7,13 @@ git submodule --quiet update --init --recursive --rebase
# Let's see if we can't work out where we might be running.
if cut -d/ -f2 /proc/self/cgroup | sort -u | grep -q docker ; then
- # Docker
- sudo bin/install_packages docker
+ if [ -z ${SKIP_PACKAGES_INSTALL:+x} ] ; then
+ echo "==> Installing Docker packages..."
+ sudo bin/install_packages docker
+ fi
else
# Fallback
+ echo "==> Installing generic packages..."
sudo bin/install_packages generic
fi
diff --git a/t/cobrand/cheshireeast.t b/t/cobrand/cheshireeast.t
index c6c8198ab..4924a96ee 100644
--- a/t/cobrand/cheshireeast.t
+++ b/t/cobrand/cheshireeast.t
@@ -4,6 +4,9 @@ use FixMyStreet::TestMech;
use FixMyStreet::Script::Alerts;
use FixMyStreet::Script::Reports;
+FixMyStreet::App->log->disable('info');
+END { FixMyStreet::App->log->enable('info'); }
+
my $mech = FixMyStreet::TestMech->new;
my $body = $mech->create_body_ok( 21069, 'Cheshire East Council', {