コード例 #1
0
ファイル: report.py プロジェクト: xliiv/ralph_assets
    def prepare(self, mode):
        queryset = Asset.objects
        if mode:
            queryset = queryset.filter(type=mode)
        queryset = queryset.select_related('model', 'category').values(
            'model__category__name',
            'model__name',
            'status',
        ).annotate(
            num=Count('status')
        ).order_by('model__category__name')

        for item in queryset:
            parent = item['model__category__name'] or 'Without category'
            name = item['model__name']
            node = self.report.add(
                name=name,
                parent=parent,
            )
            self.report.add(
                name=AssetStatus.from_id(item['status']),
                parent=node,
                count=item['num'],
                unique=False
            )