def prepare_mails()

in bugbot/nag_me.py [0:0]


    def prepare_mails(self):
        if not self.data:
            return []

        template = self.nag_template()
        if not template:
            return []

        # If we escalating only to hierarchical managers, we should always have a
        # management chain.
        fail_on_missing_mgmt_chain = self.escalation.is_hierarchical_escalation_only()

        extra = self.get_extra_for_nag_template()
        env = Environment(loader=FileSystemLoader("templates"))
        template = env.get_template(template)
        mails = []
        for manager, info in self.data.items():
            # The same bug can be several times in the list
            # because we send an email to a team.
            added_bug_ids = set()

            data = []
            To = sorted(info.keys())
            components = set()
            management_chain = set()
            for person in To:
                data += [
                    bug_data
                    for bug_data in info[person]
                    if bug_data["id"] not in added_bug_ids
                ]
                added_bug_ids.update(bug_data["id"] for bug_data in info[person])
                if person in self.triage_owners_components:
                    components |= self.triage_owners_components[person]

                management_chain |= self.people.get_management_chain_mails(
                    person, manager, fail_on_missing_mgmt_chain
                )

            if components:
                query_url = self.get_query_url_for_components(sorted(components))
            else:
                query_url = None

            body = template.render(
                date=self.nag_date,
                extra=extra,
                plural=utils.plural,
                enumerate=enumerate,
                data=self.organize_nag(data),
                nag=True,
                query_url_nag=utils.shorten_long_bz_url(query_url),
                table_attrs=self.get_config("table_attrs"),
                nag_preamble=self.nag_preamble(),
            )

            m = {
                "manager": manager,
                "management_chain": management_chain,
                "to": set(To),
                "body": body,
            }
            mails.append(m)

        return mails