From 1c8f7efec8e04919ad43c63ce9bcf148ee72a2cc Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Wed, 3 Jun 2020 15:31:15 +0100 Subject: [Open311] Do not remove any devolved contacts. --- perllib/Open311/PopulateServiceList.pm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'perllib/Open311/PopulateServiceList.pm') diff --git a/perllib/Open311/PopulateServiceList.pm b/perllib/Open311/PopulateServiceList.pm index 9be17946e..20fca90b3 100644 --- a/perllib/Open311/PopulateServiceList.pm +++ b/perllib/Open311/PopulateServiceList.pm @@ -350,10 +350,10 @@ sub _delete_contacts_not_in_service_list { ); if ($self->_current_body->can_be_devolved) { - # If the body has can_be_devolved switched on, it's most likely a - # combination of Open311/email, so ignore any email addresses. + # If the body has can_be_devolved switched on, ignore any + # contact with its own send method $found_contacts = $found_contacts->search( - { email => { -not_like => '%@%' } } + { send_method => [ "", undef ] }, ); } -- cgit v1.2.3 From aa9d3cce479c7b28ba3f5f09cac0231111aeebf8 Mon Sep 17 00:00:00 2001 From: Dave Arter Date: Mon, 8 Jun 2020 13:05:40 +0100 Subject: [Hackney] Extend open311_protect flag to entire contact, not just name/group --- perllib/Open311/PopulateServiceList.pm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'perllib/Open311/PopulateServiceList.pm') diff --git a/perllib/Open311/PopulateServiceList.pm b/perllib/Open311/PopulateServiceList.pm index 20fca90b3..a3672770c 100644 --- a/perllib/Open311/PopulateServiceList.pm +++ b/perllib/Open311/PopulateServiceList.pm @@ -145,6 +145,8 @@ sub _handle_existing_contact { my $service_name = $self->_normalize_service_name; my $protected = $contact->get_extra_metadata("open311_protect"); + return if $self->_current_body_cobrand && $self->_current_body_cobrand->call_hook(open311_skip_existing_contact => $contact); + print $self->_current_body->id . " already has a contact for service code " . $self->_current_service->{service_code} . "\n" if $self->verbose >= 2; if ( $contact->state eq 'deleted' || $service_name ne $contact->category || $self->_current_service->{service_code} ne $contact->email ) { @@ -370,7 +372,11 @@ sub _delete_contacts_not_in_service_list { sub _delete_contacts_not_in_service_list_cobrand_overrides { my ( $self, $found_contacts ) = @_; - return $found_contacts; + if ($self->_current_body_cobrand && $self->_current_body_cobrand->can('open311_filter_contacts_for_deletion')) { + return $self->_current_body_cobrand->open311_filter_contacts_for_deletion($found_contacts); + } else { + return $found_contacts; + } } 1; -- cgit v1.2.3