diff options
Diffstat (limited to 'perllib')
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Report.pm | 2 | ||||
-rw-r--r-- | perllib/Open311/GetServiceRequestUpdates.pm | 10 | ||||
-rw-r--r-- | perllib/Open311/GetServiceRequests.pm | 8 |
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 $@; |