aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perllib/FixMyStreet/Cobrand/Oxfordshire.pm2
-rw-r--r--perllib/FixMyStreet/Integrations/ExorRDI.pm21
-rw-r--r--t/app/controller/report_inspect.t26
-rw-r--r--t/cobrand/oxfordshire.t7
4 files changed, 32 insertions, 24 deletions
diff --git a/perllib/FixMyStreet/Cobrand/Oxfordshire.pm b/perllib/FixMyStreet/Cobrand/Oxfordshire.pm
index cdd186fef..23324e763 100644
--- a/perllib/FixMyStreet/Cobrand/Oxfordshire.pm
+++ b/perllib/FixMyStreet/Cobrand/Oxfordshire.pm
@@ -217,7 +217,7 @@ sub user_extra_fields {
sub display_days_ago_threshold { 28 }
-sub max_detailed_info_length { 172 }
+sub max_detailed_info_length { 164 }
sub defect_type_extra_fields {
return [
diff --git a/perllib/FixMyStreet/Integrations/ExorRDI.pm b/perllib/FixMyStreet/Integrations/ExorRDI.pm
index 093688e47..dc865e1ad 100644
--- a/perllib/FixMyStreet/Integrations/ExorRDI.pm
+++ b/perllib/FixMyStreet/Integrations/ExorRDI.pm
@@ -46,6 +46,9 @@ sub construct {
time_zone => FixMyStreet->time_zone || FixMyStreet->local_time_zone
);
+ my $tmo = $cobrand->traffic_management_options;
+ my %tm_lookup = map { $tmo->[$_] => $_ + 1 } 0..$#$tmo;
+
my $missed_cutoff = $now - DateTime::Duration->new( hours => 24 );
my %params = (
-and => [
@@ -102,7 +105,7 @@ sub construct {
my $i = 0;
foreach my $inspector_id (keys %$inspectors) {
my $inspections = $inspectors->{$inspector_id};
- my $initials = $inspector_initials->{$inspector_id};
+ my $initials = $inspector_initials->{$inspector_id} || "XX";
my %body_by_activity_code;
foreach my $report (@$inspections) {
@@ -116,13 +119,17 @@ sub construct {
$location .= " Nearest postcode: $closest_address->{postcode}{postcode}." if $closest_address->{postcode};
}
- my $description = sprintf("%s %s", $report->external_id || "", $report->get_extra_metadata('detailed_information') || "");
+ my $traffic_information = $report->get_extra_metadata('traffic_information') || 'none';
+ my $description = sprintf("%s %s %s %s",
+ $report->external_id || "",
+ $initials,
+ 'TM' . ($tm_lookup{$traffic_information} || '0'),
+ $report->get_extra_metadata('detailed_information') || "");
+ # Maximum length of 180 characters total
+ $description = substr($description, 0, 180);
my $activity_code = $report->defect_type ?
$report->defect_type->get_extra_metadata('activity_code')
: 'MC';
- my $traffic_information = $report->get_extra_metadata('traffic_information') ?
- 'TM ' . $report->get_extra_metadata('traffic_information')
- : 'TM none';
$body_by_activity_code{$activity_code} ||= [];
$csv->add_row($body_by_activity_code{$activity_code},
@@ -133,7 +140,7 @@ sub construct {
$location, # defect location field, which we don't capture from inspectors
$report->inspection_log_entry->whenedited->strftime("%H%M"), # defect time raised
"","","","","","","", # empty fields
- $traffic_information,
+ "TM $traffic_information",
$description, # defect description
);
@@ -169,7 +176,7 @@ sub construct {
"G", # start of an area/sequence
$link_id, # area/link id, fixed value for our purposes
"","", # must be empty
- $initials || "XX", # inspector initials
+ $initials, # inspector initials
$self->inspection_date->strftime("%y%m%d"), # date of inspection yymmdd
"1600", # time of inspection hhmm, set to static value for now
"D", # inspection variant, should always be D
diff --git a/t/app/controller/report_inspect.t b/t/app/controller/report_inspect.t
index b3a3990a3..74d99c0a9 100644
--- a/t/app/controller/report_inspect.t
+++ b/t/app/controller/report_inspect.t
@@ -447,36 +447,36 @@ foreach my $test (
button => 'save',
with_fields => {
include_update => 0,
- detailed_information => 'XXX172XXX' . 'x' x 163,
+ detailed_information => 'XXX164XXX' . 'x' x (164-9)
}
});
$report->discard_changes;
- like $report->get_extra_metadata('detailed_information'), qr/XXX172XXX/, 'detailed information saved';
- $mech->content_lacks('limited to 172 characters', "172 charcters of detailed information ok");
- $mech->content_contains('XXX172XXX', "Detailed information field contains submitted text");
+ like $report->get_extra_metadata('detailed_information'), qr/XXX164XXX/, 'detailed information saved';
+ $mech->content_lacks('limited to 164 characters', "164 charcters of detailed information ok");
+ $mech->content_contains('XXX164XXX', "Detailed information field contains submitted text");
$mech->submit_form_ok({
button => 'save',
with_fields => {
include_update => 0,
- detailed_information => 'XXX173XXX' . 'x' x 164,
+ detailed_information => 'XXX165XXX' . 'x' x (164-8)
}
});
if ($test->{limited}) {
- $mech->content_contains('172 characters maximum');
- $mech->content_contains('limited to 172 characters', "173 charcters of detailed information not ok");
- $mech->content_contains('XXX173XXX', "Detailed information field contains submitted text");
+ $mech->content_contains('164 characters maximum');
+ $mech->content_contains('limited to 164 characters', "165 charcters of detailed information not ok");
+ $mech->content_contains('XXX165XXX', "Detailed information field contains submitted text");
$report->discard_changes;
- like $report->get_extra_metadata('detailed_information'), qr/XXX172XXX/, 'detailed information not saved';
+ like $report->get_extra_metadata('detailed_information'), qr/XXX164XXX/, 'detailed information not saved';
} else {
$mech->content_lacks(' characters maximum');
- $mech->content_lacks('limited to 172 characters', "173 charcters of detailed information ok");
- $mech->content_contains('XXX173XXX', "Detailed information field contains submitted text");
+ $mech->content_lacks('limited to 164 characters', "165 charcters of detailed information ok");
+ $mech->content_contains('XXX165XXX', "Detailed information field contains submitted text");
$report->discard_changes;
- like $report->get_extra_metadata('detailed_information'), qr/XXX173XXX/, 'detailed information saved';
+ like $report->get_extra_metadata('detailed_information'), qr/XXX165XXX/, 'detailed information saved';
}
};
};
@@ -559,7 +559,7 @@ FixMyStreet::override_config {
public_update => '',
priority => $rp->id,
include_update => '1',
- detailed_information => 'XXX172XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
+ detailed_information => 'XXX164XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
defect_type => '',
traffic_information => ''
};
diff --git a/t/cobrand/oxfordshire.t b/t/cobrand/oxfordshire.t
index abafa1fe8..dcf8b25c9 100644
--- a/t/cobrand/oxfordshire.t
+++ b/t/cobrand/oxfordshire.t
@@ -107,6 +107,7 @@ subtest 'Exor file looks okay' => sub {
foreach my $problem (@problems) {
$problem->update({ state => 'action scheduled', external_id => $i });
$problem->update({ defect_type => $dt }) if $i == 123;
+ $problem->set_extra_metadata(traffic_information => 'Signs and Cones') if $i == 124;
$problem->update({ defect_type => $dt2 }) if $i == 124;
FixMyStreet::DB->resultset('AdminLog')->create({
admin_user => $inspector->name,
@@ -129,19 +130,19 @@ subtest 'Exor file looks okay' => sub {
"1,1.8,1.0.0.0,ENHN,"
"G,1989169,,,XX,170505,1600,D,INS,N,,,,"
"H,FC"
-"I,FC,,XXX,"434970E 209683N Nearest postcode: OX28 4DS.",1200,,,,,,,,"TM none","123 ""
+"I,FC,,XXX,"434970E 209683N Nearest postcode: OX28 4DS.",1200,,,,,,,,"TM none","123 XX TM0 ""
"J,SFP1,2,,,434970,209683,,,,,"
"M,resolve,,,/CFC,,"
"P,0,999999"
"G,1989169,,,XX,170505,1600,D,INS,N,,,,"
"H,MC"
-"I,MC,,XXX,"434970E 209683N Nearest postcode: OX28 4DS.",1200,,,,,,,,"TM none","125 ""
+"I,MC,,XXX,"434970E 209683N Nearest postcode: OX28 4DS.",1200,,,,,,,,"TM none","125 XX TM0 ""
"J,SFP2,2,,,434970,209683,,,,,"
"M,resolve,,,/CMC,,"
"P,0,999999"
"G,1989169,,,XX,170505,1600,D,INS,N,,,,"
"H,S"
-"I,S,,XXX,"434970E 209683N Nearest postcode: OX28 4DS.",1200,,,,,,,,"TM none","124 ""
+"I,S,,XXX,"434970E 209683N Nearest postcode: OX28 4DS.",1200,,,,,,,,"TM Signs and Cones","124 XX TM1 ""
"J,ACC2,2,,,434970,209683,,,,,"
"M,resolve,,,/CSI,,"
"P,0,999999"