aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet
diff options
context:
space:
mode:
Diffstat (limited to 'perllib/FixMyStreet')
-rw-r--r--perllib/FixMyStreet/App/Controller/Admin/Templates.pm5
-rw-r--r--perllib/FixMyStreet/Cobrand/Bromley.pm22
2 files changed, 24 insertions, 3 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Admin/Templates.pm b/perllib/FixMyStreet/App/Controller/Admin/Templates.pm
index f933c5f8a..9fb401e2b 100644
--- a/perllib/FixMyStreet/App/Controller/Admin/Templates.pm
+++ b/perllib/FixMyStreet/App/Controller/Admin/Templates.pm
@@ -100,7 +100,10 @@ sub edit : Path : Args(2) {
$template->text( $c->get_param('text') );
$template->state( $c->get_param('state') );
- $template->external_status_code( $c->get_param('external_status_code') );
+
+ my $ext_code = $c->cobrand->call_hook('admin_templates_external_status_code_hook');
+ $ext_code ||= $c->get_param('external_status_code');
+ $template->external_status_code($ext_code);
if ( $template->state && $template->external_status_code ) {
$c->stash->{errors} ||= {};
diff --git a/perllib/FixMyStreet/Cobrand/Bromley.pm b/perllib/FixMyStreet/Cobrand/Bromley.pm
index c984f1728..e098815db 100644
--- a/perllib/FixMyStreet/Cobrand/Bromley.pm
+++ b/perllib/FixMyStreet/Cobrand/Bromley.pm
@@ -571,13 +571,20 @@ sub bin_services_for_address {
my $ref = join(',', @{$_->{Ref}{Value}{anyType}});
my $completed = construct_bin_date($_->{CompletedDate});
my $state = $_->{State}{Name} || '';
+ my $task_type_id = $_->{TaskTypeId} || '';
my $resolution = $_->{Resolution}{Name} || '';
my $resolution_id = $_->{Resolution}{Ref}{Value}{anyType};
if ($resolution_id) {
my $template = FixMyStreet::DB->resultset('ResponseTemplate')->search({
'me.body_id' => $self->body->id,
- 'me.external_status_code' => $resolution_id,
+ 'me.external_status_code' => [
+ "$resolution_id,$task_type_id,$state",
+ "$resolution_id,$task_type_id,",
+ "$resolution_id,,$state",
+ "$resolution_id,,",
+ $resolution_id,
+ ],
})->first;
$resolution = $template->text if $template;
}
@@ -803,7 +810,7 @@ sub construct_waste_open311_update {
description => $description,
status => $status,
update_id => 'waste',
- external_status_code => $resolution_id,
+ external_status_code => "$resolution_id,,",
};
}
@@ -866,4 +873,15 @@ sub waste_check_last_update {
return 1;
}
+sub admin_templates_external_status_code_hook {
+ my ($self) = @_;
+ my $c = $self->{c};
+
+ my $res_code = $c->get_param('resolution_code') || '';
+ my $task_type = $c->get_param('task_type') || '';
+ my $task_state = $c->get_param('task_state') || '';
+
+ return "$res_code,$task_type,$task_state";
+}
+
1;