diff options
author | Struan Donald <struan@exo.org.uk> | 2018-04-19 17:16:50 +0100 |
---|---|---|
committer | Struan Donald <struan@exo.org.uk> | 2018-04-26 16:27:37 +0100 |
commit | 0d80aa2f5e71ca6de5d70d81e795124703c1c3f7 (patch) | |
tree | 4a407a02ca1fdeed3a49808d26c049e2deeeb22c /perllib/FixMyStreet/App/Controller/Admin.pm | |
parent | b002374a885736b7436fc1c3132e50b6a1f8bdf9 (diff) |
display the contents of report's extra field in admin
Instead of just a Yes/No display a formatted list of values in extra.
Has special handling for known fields otherwise just prints them out
dumbly.
Fixes #1809
Diffstat (limited to 'perllib/FixMyStreet/App/Controller/Admin.pm')
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Admin.pm | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm index 2cd34b7e2..a923a3407 100644 --- a/perllib/FixMyStreet/App/Controller/Admin.pm +++ b/perllib/FixMyStreet/App/Controller/Admin.pm @@ -843,6 +843,27 @@ sub report_edit : Path('report_edit') : Args(1) { } $c->stash->{problem} = $problem; + if ( $problem->extra ) { + my @fields; + if ( my $fields = $problem->get_extra_fields ) { + for my $field ( @{$fields} ) { + my $name = $field->{description} ? + "$field->{description} ($field->{name})" : + "$field->{name}"; + push @fields, { name => $name, val => $field->{value} }; + } + } + my $extra = $problem->get_extra_metadata; + if ( $extra->{duplicates} ) { + push @fields, { name => 'Duplicates', val => join( ',', @{ $problem->get_extra_metadata('duplicates') } ) }; + delete $extra->{duplicates}; + } + for my $key ( keys %$extra ) { + push @fields, { name => $key, val => $extra->{$key} }; + } + + $c->stash->{extra_fields} = \@fields; + } $c->forward('/auth/get_csrf_token'); |