aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Somerville <matthew-github@dracos.co.uk>2018-08-06 17:05:52 +0100
committerMatthew Somerville <matthew-github@dracos.co.uk>2018-08-06 17:05:52 +0100
commit4223fc78261aad3f16b8ed8000a6bef77f41f708 (patch)
treed2b70a12cd1737cae5fc158735fc6c3ecd5d02d8
parente46125e56cb922ebe8bbae527a53d06b28c173cc (diff)
parenta292b3a8bcca53f870a46d6868d288e22a595c58 (diff)
Merge branch 'issues/commercial/1123-fixed-state-thing'
-rw-r--r--CHANGELOG.md1
-rw-r--r--perllib/Open311/GetServiceRequestUpdates.pm6
-rw-r--r--t/open311/getservicerequestupdates.t20
3 files changed, 25 insertions, 2 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b26064f0a..97b7386d1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -31,6 +31,7 @@
- Update Google Maps directions link.
- Open311 improvements:
- CLOSED status maps to 'closed' state if extended statuses are enabled.
+ - Don't generate template comment text on move between fixed states.
- Development improvements:
- Cobrand hook for presenting custom search results. #2183
- Cobrand hook to allow extra login conditions #2092
diff --git a/perllib/Open311/GetServiceRequestUpdates.pm b/perllib/Open311/GetServiceRequestUpdates.pm
index 4b1642506..480a78cf1 100644
--- a/perllib/Open311/GetServiceRequestUpdates.pm
+++ b/perllib/Open311/GetServiceRequestUpdates.pm
@@ -201,8 +201,10 @@ sub comment_text_for_request {
return $request->{description} if $request->{description};
- # Response templates are only triggered if the state/external status has changed
- my $state_changed = $state ne $old_state;
+ # Response templates are only triggered if the state/external status has changed.
+ # And treat any fixed state as fixed.
+ my $state_changed = $state ne $old_state
+ && !( $problem->is_fixed && FixMyStreet::DB::Result::Problem->fixed_states()->{$state} );
my $ext_code_changed = $ext_code ne $old_ext_code;
if ($state_changed || $ext_code_changed) {
my $state_params = {
diff --git a/t/open311/getservicerequestupdates.t b/t/open311/getservicerequestupdates.t
index 27064574b..9383b8476 100644
--- a/t/open311/getservicerequestupdates.t
+++ b/t/open311/getservicerequestupdates.t
@@ -32,6 +32,12 @@ my $response_template = $bodies{2482}->response_templates->create({
auto_response => 1,
state => "investigating"
});
+my $response_template_fixed = $bodies{2482}->response_templates->create({
+ title => "fixed template",
+ text => "We have fixed this report.",
+ auto_response => 1,
+ state => "fixed - council"
+});
my $requests_xml = qq{<?xml version="1.0" encoding="utf-8"?>
<service_requests_updates>
@@ -370,6 +376,19 @@ for my $test (
end_state => 'investigating',
},
{
+ desc => 'change in fixed state does not trigger auto-response template',
+ description => '',
+ xml_description => '',
+ external_id => 638344,
+ start_state => 'fixed - user',
+ comment_status => 'FIXED',
+ mark_fixed => 0,
+ mark_open => 0,
+ problem_state => undef,
+ end_state => 'fixed - user',
+ comment_state => 'hidden',
+ },
+ {
desc => 'unchanging state does not trigger auto-response template',
description => '',
xml_description => '',
@@ -898,6 +917,7 @@ foreach my $test ( {
}
}
+$response_template_fixed->delete;
foreach my $test ( {
desc => 'normally blank text produces a warning',
num_alerts => 1,