diff options
Diffstat (limited to 'perllib')
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Report/New.pm | 2 | ||||
-rw-r--r-- | perllib/FixMyStreet/Cobrand/Default.pm | 12 | ||||
-rw-r--r-- | perllib/Open311.pm | 1 | ||||
-rw-r--r-- | perllib/Open311/PopulateServiceList.pm | 16 |
4 files changed, 5 insertions, 26 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Report/New.pm b/perllib/FixMyStreet/App/Controller/Report/New.pm index 9a18d0e32..554fbc3b7 100644 --- a/perllib/FixMyStreet/App/Controller/Report/New.pm +++ b/perllib/FixMyStreet/App/Controller/Report/New.pm @@ -771,8 +771,6 @@ sub setup_categories_and_bodies : Private { my %category_groups = (); for my $category (@category_options) { my $group = $category->{group} // $category->get_extra_metadata('group') // ['']; - # multiple groups from open311 can contain " which upsets the html so strip them - $group =~ s/^"|"$//g; # this could be an array ref or a string my @groups = ref $group eq 'ARRAY' ? @$group : ($group); push( @{$category_groups{$_}}, $category ) for @groups; diff --git a/perllib/FixMyStreet/Cobrand/Default.pm b/perllib/FixMyStreet/Cobrand/Default.pm index 829c85f5d..d2929dcc0 100644 --- a/perllib/FixMyStreet/Cobrand/Default.pm +++ b/perllib/FixMyStreet/Cobrand/Default.pm @@ -1112,18 +1112,6 @@ sub enable_category_groups { return $self->feature('category_groups'); } -=item enable_multiple_category_groups - -Whether a category can be included in multiple groups. Required enable_category_groups -to alse be true. - -=cut - -sub enable_multiple_category_groups { - my $self = shift; - return $self->enable_category_groups && $self->feature('multiple_category_groups'); -} - sub default_problem_state { 'unconfirmed' } sub state_groups_admin { diff --git a/perllib/Open311.pm b/perllib/Open311.pm index d1659bea1..3573409e2 100644 --- a/perllib/Open311.pm +++ b/perllib/Open311.pm @@ -614,6 +614,7 @@ sub _get_xml_object { service_requests => 'request', errors => 'error', service_request_updates => 'request_update', + groups => 'group', }; my $simple = XML::Simple->new( ForceArray => [ values %$group_tags ], diff --git a/perllib/Open311/PopulateServiceList.pm b/perllib/Open311/PopulateServiceList.pm index f6e8c8668..f1bfc0f21 100644 --- a/perllib/Open311/PopulateServiceList.pm +++ b/perllib/Open311/PopulateServiceList.pm @@ -2,7 +2,6 @@ package Open311::PopulateServiceList; use Moo; use Open311; -use Text::CSV; has bodies => ( is => 'ro' ); has found_contacts => ( is => 'rw', default => sub { [] } ); @@ -282,23 +281,16 @@ sub _set_contact_group { my ($self, $contact) = @_; my $groups_enabled = $self->_current_body_cobrand && $self->_current_body_cobrand->enable_category_groups; - my $multi_groups_enabled = $self->_current_body_cobrand && $self->_current_body_cobrand->enable_multiple_category_groups; my $old_group = $contact->get_extra_metadata('group') || ''; my $new_group = $groups_enabled ? $self->_current_service->{group} || '' : ''; - - if ($multi_groups_enabled && $new_group =~ /,/) { - my $csv = Text::CSV->new; - if ( $csv->parse($new_group) ) { - $new_group = [ $csv->fields ]; - } else { - warn "error parsing groups for " . $self->_current_body_cobrand->moniker . "contact " . $contact->category . ": $new_group\n"; - $new_group = [ $new_group ]; - } + my $new_group_multi = $groups_enabled ? $self->_current_service->{groups} || [] : []; + if (@$new_group_multi) { + $new_group = $new_group_multi; } if ($self->_groups_different($old_group, $new_group)) { if ($new_group) { - $contact->set_extra_metadata(group => $new_group); + $contact->set_extra_metadata(group => @$new_group == 1 ? $new_group->[0] : $new_group); $contact->update({ editor => $0, whenedited => \'current_timestamp', |