diff options
-rw-r--r-- | CHANGELOG.md | 1 | ||||
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Report/New.pm | 2 | ||||
-rw-r--r-- | perllib/FixMyStreet/DB/Result/Contact.pm | 10 | ||||
-rw-r--r-- | t/app/controller/report_new_open311.t | 1 |
4 files changed, 13 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 89f215660..b16fa561d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,7 @@ - Add new upload_files flag which sends files/photos as part of the POST service request. - Allow description in email template with placeholder. + - Do not store display-only extra fields on new reports. * v2.6 (3rd May 2019) - New features: diff --git a/perllib/FixMyStreet/App/Controller/Report/New.pm b/perllib/FixMyStreet/App/Controller/Report/New.pm index 7822f5cf3..2246f6aea 100644 --- a/perllib/FixMyStreet/App/Controller/Report/New.pm +++ b/perllib/FixMyStreet/App/Controller/Report/New.pm @@ -1077,7 +1077,7 @@ sub set_report_extras : Private { my ($self, $c, $contacts, $param_prefix) = @_; $param_prefix ||= ""; - my @metalist = map { [ $_->get_metadata_for_input, $param_prefix ] } @$contacts; + my @metalist = map { [ $_->get_metadata_for_storage, $param_prefix ] } @$contacts; push @metalist, map { [ $_->get_extra_fields, "extra[" . $_->id . "]" ] } @{$c->stash->{report_extra_fields}}; my @extra; diff --git a/perllib/FixMyStreet/DB/Result/Contact.pm b/perllib/FixMyStreet/DB/Result/Contact.pm index 17620f279..3ce0ec66f 100644 --- a/perllib/FixMyStreet/DB/Result/Contact.pm +++ b/perllib/FixMyStreet/DB/Result/Contact.pm @@ -121,6 +121,16 @@ sub get_metadata_for_input { return \@metadata; } +sub get_metadata_for_storage { + my $self = shift; + my $metadata = $self->get_metadata_for_input; + + # Also ignore any that were only for textual display + my @metadata = grep { ($_->{variable} || '') ne 'false' } @$metadata; + + return \@metadata; +} + sub id_field { my $self = shift; return $self->get_extra_metadata('id_field') || 'fixmystreet_id'; diff --git a/t/app/controller/report_new_open311.t b/t/app/controller/report_new_open311.t index dc9a26791..d2f39f40f 100644 --- a/t/app/controller/report_new_open311.t +++ b/t/app/controller/report_new_open311.t @@ -45,6 +45,7 @@ $mech->create_contact_ok( category => 'Ball lighting', email => '102', extra => { _fields => [ + { description => 'Message', code => 'message', required => 'false', variable => 'false', order => '0' }, { description => 'Size', code => 'size', required => 'True', automated => '' }, { description => 'Speed', code => 'speed', required => 'True', automated => 'server_set' }, { description => 'Colour', code => 'colour', required => 'True', automated => 'hidden_field' }, |