def get_responsibles_data(self, reports): """Responsibles data to be used in the template """ if not reports: return [] recipients = [] recipient_names = [] for num, report in enumerate(reports): # get the linked AR of this ARReport ar = report.getAnalysisRequest() # recipient names of this report report_recipient_names = [] responsibles = ar.getResponsible() for manager_id in responsibles.get("ids", []): responsible = responsibles["dict"][manager_id] name = responsible.get("name") email = responsible.get("email") address = mailapi.to_email_address(email, name=name) record = { "name": name, "email": email, "address": address, "valid": True, } if record not in recipients: recipients.append(record) # remember the name of the recipient for this report report_recipient_names.append(name) recipient_names.append(report_recipient_names) # recipient names, which all of the reports have in common common_names = set(recipient_names[0]).intersection(*recipient_names) # mark recipients not in common for recipient in recipients: if recipient.get("name") not in common_names: recipient["valid"] = False return recipients
def get_recipients_data(self, reports): """Recipients data to be used in the template """ if not reports: return [] recipients = [] recipient_names = [] for num, report in enumerate(reports): sample = report.getAnalysisRequest() # recipient names of this report report_recipient_names = [] for recipient in self.get_recipients(sample): name = recipient.get("Fullname") email = recipient.get("EmailAddress") address = mailapi.to_email_address(email, name=name) record = { "name": name, "email": email, "address": address, "valid": True, } if record not in recipients: recipients.append(record) # remember the name of the recipient for this report report_recipient_names.append(name) recipient_names.append(report_recipient_names) # recipient names, which all of the reports have in common common_names = set(recipient_names[0]).intersection(*recipient_names) # mark recipients not in common for recipient in recipients: if recipient.get("name") not in common_names: recipient["valid"] = False return recipients