aboutsummaryrefslogtreecommitdiffstats
path: root/perllib
diff options
context:
space:
mode:
Diffstat (limited to 'perllib')
-rw-r--r--perllib/FixMyStreet/App/Controller/Report.pm2
-rw-r--r--perllib/Open311/GetServiceRequestUpdates.pm10
-rw-r--r--perllib/Open311/GetServiceRequests.pm8
3 files changed, 11 insertions, 9 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Report.pm b/perllib/FixMyStreet/App/Controller/Report.pm
index e032caa09..7f798f4f4 100644
--- a/perllib/FixMyStreet/App/Controller/Report.pm
+++ b/perllib/FixMyStreet/App/Controller/Report.pm
@@ -534,7 +534,7 @@ sub inspect : Private {
# to have the FMS timezone so we need to add the timezone otherwise
# dates come back out the database at time +/- timezone offset.
$timestamp = DateTime->from_epoch(
- time_zone => FixMyStreet->time_zone || FixMyStreet->local_time_zone,
+ time_zone => FixMyStreet->local_time_zone,
epoch => $saved_at
);
}
diff --git a/perllib/Open311/GetServiceRequestUpdates.pm b/perllib/Open311/GetServiceRequestUpdates.pm
index 263877e0a..3b436aaa7 100644
--- a/perllib/Open311/GetServiceRequestUpdates.pm
+++ b/perllib/Open311/GetServiceRequestUpdates.pm
@@ -94,7 +94,8 @@ sub update_comments {
next unless $request_id || $request->{fixmystreet_id};
my $comment_time = eval {
- DateTime::Format::W3CDTF->parse_datetime( $request->{updated_datetime} || "" );
+ DateTime::Format::W3CDTF->parse_datetime( $request->{updated_datetime} || "" )
+ ->set_time_zone(FixMyStreet->local_time_zone);
};
next if $@;
my $updated = DateTime::Format::W3CDTF->format_datetime($comment_time->clone->set_time_zone('UTC'));
@@ -190,7 +191,12 @@ sub update_comments {
$comment->state('hidden') unless $comment->text || $comment->photo
|| ($comment->problem_state && $state ne $old_state);
- $p->lastupdate( $comment->created );
+ # As comment->created has been looked at above, its time zone has been shifted
+ # to TIME_ZONE (if set). We therefore need to set it back to local before
+ # insertion. We also then need a clone, otherwise the setting of lastupdate
+ # will *also* reshift comment->created's time zone to TIME_ZONE.
+ my $created = $comment->created->set_time_zone(FixMyStreet->local_time_zone);
+ $p->lastupdate($created->clone);
$p->update;
$comment->insert();
diff --git a/perllib/Open311/GetServiceRequests.pm b/perllib/Open311/GetServiceRequests.pm
index 215361a10..194d8d296 100644
--- a/perllib/Open311/GetServiceRequests.pm
+++ b/perllib/Open311/GetServiceRequests.pm
@@ -109,9 +109,7 @@ sub create_problems {
my $updated_time = eval {
DateTime::Format::W3CDTF->parse_datetime(
$request->{updated_datetime} || ""
- )->set_time_zone(
- FixMyStreet->time_zone || FixMyStreet->local_time_zone
- );
+ )->set_time_zone(FixMyStreet->local_time_zone);
};
if ($@) {
warn "Not creating problem $request_id for @{[$body->name]}, bad update time"
@@ -125,9 +123,7 @@ sub create_problems {
my $created_time = eval {
DateTime::Format::W3CDTF->parse_datetime(
$request->{requested_datetime} || ""
- )->set_time_zone(
- FixMyStreet->time_zone || FixMyStreet->local_time_zone
- );
+ )->set_time_zone(FixMyStreet->local_time_zone);
};
$created_time = $updated_time if $@;