diff options
-rw-r--r-- | perllib/FixMyStreet/Cobrand/Oxfordshire.pm | 2 | ||||
-rw-r--r-- | perllib/FixMyStreet/Integrations/ExorRDI.pm | 21 | ||||
-rw-r--r-- | t/app/controller/report_inspect.t | 26 | ||||
-rw-r--r-- | t/cobrand/oxfordshire.t | 7 |
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" |