'Adds a new issue to an item, if not already reported.
:return: The new issue'

def add_issue(self, score, issue, item, notes=None):

    if (notes and (len(notes) > 1024)):
        notes = notes[0:1024]
    if (not self.override_scores):
        query = ItemAuditScore.query.filter((ItemAuditScore.technology == self.index))
        self.override_scores = query.all()
    score = self._check_for_override_score(score, item.account)
    for existing_issue in item.audit_issues:
        if (existing_issue.issue == issue):
            if (existing_issue.notes == notes):
                if (existing_issue.score == score):
                    app.logger.debug('Not    adding    issue    because    it    was    already    found:{}/{}/{}/{}\n DCTB {}    --    {}'.format(item.index, item.region, item.account, item.name, issue, notes))
                    return existing_issue
    app.logger.debug('Adding    issue:    {}/{}/{}/{}\n DCTB {}    --    {}'.format(item.index, item.region, item.account, item.name, issue, notes))
    new_issue = datastore.ItemAudit(score=score, issue=issue, notes=notes, justified=False, justified_user_id=None, justified_date=None, justification=None)
    item.audit_issues.append(new_issue)
    return new_issue
