diff options
author | Matthew Somerville <matthew-github@dracos.co.uk> | 2019-01-21 15:33:25 +0000 |
---|---|---|
committer | Matthew Somerville <matthew-github@dracos.co.uk> | 2019-01-21 17:25:58 +0000 |
commit | bddeaa7f8b8f495879df99eb5a85828c862f071e (patch) | |
tree | 5142e0cfd0af65b7d4e3a05b21cb185ba68df74f | |
parent | e25e1a929c0eff5a3a50da5185c9dbe13ad53028 (diff) |
Factor out two identical loops.
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Report/New.pm | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Report/New.pm b/perllib/FixMyStreet/App/Controller/Report/New.pm index a23a9046f..e6c4fe50d 100644 --- a/perllib/FixMyStreet/App/Controller/Report/New.pm +++ b/perllib/FixMyStreet/App/Controller/Report/New.pm @@ -1069,26 +1069,12 @@ sub set_report_extras : Private { my ($self, $c, $contacts, $param_prefix) = @_; $param_prefix ||= ""; - my @extra; - foreach my $contact (@$contacts) { - my $metas = $contact->get_metadata_for_input; - foreach my $field ( @$metas ) { - if ( lc( $field->{required} ) eq 'true' && !$c->cobrand->category_extra_hidden($field)) { - unless ( $c->get_param($param_prefix . $field->{code}) ) { - $c->stash->{field_errors}->{ $field->{code} } = _('This information is required'); - } - } - push @extra, { - name => $field->{code}, - description => $field->{description}, - value => $c->get_param($param_prefix . $field->{code}) || '', - }; - } - } + my @metalist = map { [ $_->get_metadata_for_input, $param_prefix ] } @$contacts; + push @metalist, map { [ $_->get_extra_fields, "extra[" . $_->id . "]" ] } @{$c->stash->{report_extra_fields}}; - foreach my $extra_fields (@{ $c->stash->{report_extra_fields} }) { - my $metas = $extra_fields->get_extra_fields; - $param_prefix = "extra[" . $extra_fields->id . "]"; + my @extra; + foreach my $item (@metalist) { + my ($metas, $param_prefix) = @$item; foreach my $field ( @$metas ) { if ( lc( $field->{required} ) eq 'true' && !$c->cobrand->category_extra_hidden($field)) { unless ( $c->get_param($param_prefix . $field->{code}) ) { |