aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet
diff options
context:
space:
mode:
authorStruan Donald <struan@exo.org.uk>2018-06-07 15:32:27 +0100
committerStruan Donald <struan@exo.org.uk>2018-06-11 10:32:53 +0100
commitd8c4befc47afee2da94dbc2411a849f14cd1a7f7 (patch)
tree123927066bfd6ba0022b8a9fa60cdbf97010b1f5 /perllib/FixMyStreet
parentcfd510fdaa9839e01162c68ce09163f0ac9dbb30 (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.pm2
-rw-r--r--perllib/FixMyStreet/DB/Result/Contact.pm14
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';