def print_domain_summary(self, domain): users_not_blocked = {} user_query = UserES().domain(domain).source(['email', 'username']) total_users = user_query.count() chunk_size = 30 # Hubspot recommends fewer than 100 emails per request num_chunks = int(math.ceil(float(total_users) / float(chunk_size))) for chunk in range(num_chunks): blocked_users = (user_query.size(chunk_size).start( chunk * chunk_size).run().hits) blocked_emails = [] for user in blocked_users: username = user.get('username') user_email = user.get('email') blocked_emails.append(username) if user_email and user_email != username: blocked_emails.append(user_email) users_not_blocked.update( get_first_conversion_status_for_emails( list(set(blocked_emails)))) if users_not_blocked: self.stdout.write( self.style.ERROR( f"\n\nFound {len(users_not_blocked)} users in " f"HubSpot who are members of the project {domain} " f"that is blocking HubSpot data:")) self.stdout.write("\nEmail\tFirst Conversion") for user, status in users_not_blocked.items(): self.stdout.write(f"{user}\t{status}") self.stdout.write('\n\n') else: self.stdout.write( self.style.SUCCESS( f"All users in project {domain} are absent on HubSpot."))