Exemplo n.º 1
0
    def transformer_promoted(cls, versions):
        """Attach the promoted approvals to the versions."""
        if not versions:
            return

        PromotedApproval = versions[0].promoted_approvals.model

        ids = {v.id for v in versions}

        approvals = list(
            PromotedApproval.objects.filter(version_id__in=ids).values_list(
                'version_id', 'group_id', 'application_id', named=True))

        approval_dict = {
            version_id: list(groups)
            for version_id, groups in sorted_groupby(approvals, 'version_id')
        }
        for version in versions:
            v_id = version.id
            groups = [(
                PROMOTED_GROUPS_BY_ID.get(approval.group_id),
                APP_IDS.get(approval.application_id),
            ) for approval in approval_dict.get(v_id, [])
                      if approval.group_id in PROMOTED_GROUPS_BY_ID]
            version.approved_for_groups = groups
Exemplo n.º 2
0
 def approved_for_groups(self):
     approvals = list(self.promoted_approvals.all())
     return [
         (PROMOTED_GROUPS_BY_ID.get(approval.group_id), approval.application)
         for approval in approvals
         if approval.group_id in PROMOTED_GROUPS_BY_ID
     ]
Exemplo n.º 3
0
 def group(self):
     return PROMOTED_GROUPS_BY_ID.get(self.group_id, NOT_PROMOTED)
Exemplo n.º 4
0
 def promoted(self):
     return PROMOTED_GROUPS_BY_ID.get(self.promoted_group_id, NOT_PROMOTED)
Exemplo n.º 5
0
 def approved_for_groups(self):
     approvals = list(self.promoted_approvals.all())
     return [
         PROMOTED_GROUPS_BY_ID.get(pro.group_id) for pro in approvals
         if pro.group_id in PROMOTED_GROUPS_BY_ID
     ]