'Collect change summaries from watchers defined and send out an email'

def report(self):

    changed_watchers = [watcher_auditor.watcher for watcher_auditor in self.watchers_auditors if watcher_auditor.watcher.is_changed()]
    has_issues = has_new_issue = has_unjustified_issue = False
    for watcher in changed_watchers:
        (has_issues, has_new_issue, has_unjustified_issue) = watcher.issues_found()
        if has_issues:
            users = User.query.filter(User.accounts.any(name=self.account)).filter((User.change_reports == 'ISSUES')).all()
            new_emails = [user.email for user in users]
            self.emails.extend(new_emails)
            break
    watcher_types = [watcher.index for watcher in changed_watchers]
    watcher_str = ',    '.join(watcher_types)
    if (len(changed_watchers) == 0):
        app.logger.info('Alerter:    no    changes    found')
        return
    app.logger.info('Alerter:    Found    some    changes    in    {}:    {}'.format(self.account, watcher_str))
    content = {u'watchers': changed_watchers}
    body = report_content(content)
    subject = get_subject(has_issues, has_new_issue, has_unjustified_issue, self.account, watcher_str)
    return send_email(subject=subject, recipients=self.emails, html=body)
