diff --git a/interaction_resume/models/abstract_interaction_source.py b/interaction_resume/models/abstract_interaction_source.py index b441a713f..d57a433be 100644 --- a/interaction_resume/models/abstract_interaction_source.py +++ b/interaction_resume/models/abstract_interaction_source.py @@ -22,6 +22,8 @@ def fetch_interaction( @param until: """ search_domain = self._get_interaction_partner_domain(partner) + if not search_domain: + return True records = self.search( [ *search_domain, diff --git a/interaction_resume/models/crm_request.py b/interaction_resume/models/crm_request.py index 80931c1dc..0672d9e9e 100644 --- a/interaction_resume/models/crm_request.py +++ b/interaction_resume/models/crm_request.py @@ -35,6 +35,12 @@ def _get_interaction_data(self, partner_id): return res def _get_interaction_partner_domain(self, partner): + if not partner.email: + return [ + "|", + ("partner_id", "=", partner.id), + ("partner_id", "in", partner.other_contact_ids.ids), + ] return [ "|", "|", diff --git a/interaction_resume/models/mailing_trace.py b/interaction_resume/models/mailing_trace.py index f55391dcb..8dfe8814e 100644 --- a/interaction_resume/models/mailing_trace.py +++ b/interaction_resume/models/mailing_trace.py @@ -45,4 +45,5 @@ def _get_interaction_data(self, partner_id): def _get_interaction_partner_domain(self, partner): return [ ("email", "=", partner.email), + ("email", "!=", False), ] diff --git a/interaction_resume/models/res_partner.py b/interaction_resume/models/res_partner.py index 6147c610c..ff8e215ce 100644 --- a/interaction_resume/models/res_partner.py +++ b/interaction_resume/models/res_partner.py @@ -7,6 +7,8 @@ # The licence is in the file __manifest__.py # ############################################################################## +from datetime import datetime as dt + from dateutil.relativedelta import relativedelta from odoo import _, fields, models @@ -63,7 +65,11 @@ def fetch_interactions( self.ensure_one() # Each page shows interactions for one year years_to_fetch = 1 - until = fields.Datetime.now() - relativedelta(years=page * years_to_fetch) + years = page * years_to_fetch + # Do not fetch invalid negative years interactions + if years > dt.now().year: + return True + until = fields.Datetime.now() - relativedelta(years=years) since = until - relativedelta(years=years_to_fetch) models = [ "partner.communication.job",