diff options
author | Struan Donald <struan@exo.org.uk> | 2018-06-07 15:32:27 +0100 |
---|---|---|
committer | Struan Donald <struan@exo.org.uk> | 2018-06-11 10:32:53 +0100 |
commit | d8c4befc47afee2da94dbc2411a849f14cd1a7f7 (patch) | |
tree | 123927066bfd6ba0022b8a9fa60cdbf97010b1f5 /perllib/FixMyStreet | |
parent | cfd510fdaa9839e01162c68ce09163f0ac9dbb30 (diff) |
include automated field when editing contacts
Display fields that are automatically filled in the contact editing form
otherwise the data is lost. Also include the automated field in the
form.
Fixes #2136
Diffstat (limited to 'perllib/FixMyStreet')
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Admin.pm | 2 | ||||
-rw-r--r-- | perllib/FixMyStreet/DB/Result/Contact.pm | 14 |
2 files changed, 13 insertions, 3 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm index 7d04f5ff9..95969016f 100644 --- a/perllib/FixMyStreet/App/Controller/Admin.pm +++ b/perllib/FixMyStreet/App/Controller/Admin.pm @@ -2145,6 +2145,8 @@ sub update_extra_fields : Private { $meta->{variable} = $notice ? 'false' : 'true'; $meta->{description} = $c->get_param("metadata[$i].description"); $meta->{datatype_description} = $c->get_param("metadata[$i].datatype_description"); + $meta->{automated} = $c->get_param("metadata[$i].automated") + if $c->get_param("metadata[$i].automated"); if ( $meta->{datatype} eq "singlevaluelist" ) { $meta->{values} = []; diff --git a/perllib/FixMyStreet/DB/Result/Contact.pm b/perllib/FixMyStreet/DB/Result/Contact.pm index c544f084a..4250a20c7 100644 --- a/perllib/FixMyStreet/DB/Result/Contact.pm +++ b/perllib/FixMyStreet/DB/Result/Contact.pm @@ -94,14 +94,12 @@ sub category_display { $self->translate_column('category'); } -sub get_metadata_for_input { +sub get_metadata_for_editing { my $self = shift; my $id_field = $self->id_field; my @metadata = @{$self->get_extra_fields}; # First, ones we always want to ignore (hard-coded, old system) @metadata = grep { $_->{code} !~ /^(easting|northing|closest_address|$id_field)$/ } @metadata; - # Also ignore any we have with a 'server_set' automated attribute - @metadata = grep { !$_->{automated} || $_->{automated} ne 'server_set' } @metadata; # Just in case the extra data is in an old parsed format foreach (@metadata) { @@ -112,6 +110,16 @@ sub get_metadata_for_input { return \@metadata; } +sub get_metadata_for_input { + my $self = shift; + my $metadata = $self->get_metadata_for_editing; + + # Also ignore any we have with a 'server_set' automated attribute + my @metadata = grep { !$_->{automated} || $_->{automated} ne 'server_set' } @$metadata; + + return \@metadata; +} + sub id_field { my $self = shift; return $self->get_extra_metadata('id_field') || 'fixmystreet_id'; |