aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Somerville <matthew-github@dracos.co.uk>2019-01-21 15:33:25 +0000
committerMatthew Somerville <matthew-github@dracos.co.uk>2019-01-21 17:25:58 +0000
commitbddeaa7f8b8f495879df99eb5a85828c862f071e (patch)
tree5142e0cfd0af65b7d4e3a05b21cb185ba68df74f
parente25e1a929c0eff5a3a50da5185c9dbe13ad53028 (diff)
Factor out two identical loops.
-rw-r--r--perllib/FixMyStreet/App/Controller/Report/New.pm24
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}) ) {