Exemple #1
0
    def get(self, request, *args, **kwargs):
        asset_qs = Asset.objects.filter(
            item__project__campaign__slug=self.kwargs["campaign_slug"]
        )
        assets = get_latest_transcription_data(asset_qs)

        headers, data = flatten_queryset(
            assets,
            field_names=[
                "item__project__campaign__title",
                "item__project__title",
                "item__title",
                "item__item_id",
                "title",
                "transcription_status",
                "download_url",
                "latest_transcription",
            ],
            extra_verbose_names={
                "item__project__campaign__title": "Campaign",
                "item__project__title": "Project",
                "item__title": "Item",
                "item__item_id": "ItemId",
                "item_id": "ItemId",
                "title": "Asset",
                "transcription_status": "AssetStatus",
                "download_url": "DownloadUrl",
                "latest_transcription": "Transcription",
            },
        )

        return export_to_csv_response(
            "%s.csv" % self.kwargs["campaign_slug"], headers, data
        )
Exemple #2
0
def events_csv(request):
    headers, data = flatten_queryset(
        models.LoadBatchEvent.objects.all().order_by("-created"),
        field_names=["created", "batch_name", "message"],
        extra_verbose_names={
            "created": "Time",
            "batch_name": "Batch name"
        },
    )
    return export_to_csv_response("chronam_events.csv", headers, data)
Exemple #3
0
def admin_site_report_view(request):

    site_reports = SiteReport.objects.all()

    headers, data = flatten_queryset(
        site_reports,
        field_names=SiteReport.DEFAULT_EXPORT_FIELDNAMES,
        extra_verbose_names={"created_on": "Date", "campaign__title": "Campaign"},
    )

    return export_to_csv_response("site-report.csv", headers, data)
    def test_flatten_queryset(self):
        TestModel.objects.create(pk=1, title='ABC')

        headers, rows = flatten_queryset(TestModel.objects.all())
        self.assertListEqual(['ID', 'title'], headers)
        self.assertListEqual(list(rows), [(1, 'ABC')])

        headers, rows = flatten_queryset(TestModel.objects.all(),
                                         field_names=['title'])
        self.assertListEqual(['title'], headers)
        self.assertListEqual(list(rows), [('ABC', )])

        headers, rows = flatten_queryset(
            TestModel.objects.all(),
            field_names=['title'],
            extra_verbose_names={'title': 'The Title'})
        self.assertListEqual(
            ['The Title'],
            headers,
            msg='extra_verbose_names must override default headers')
        self.assertListEqual(list(rows), [('ABC', )])
Exemple #5
0
def batches_csv(request):
    qs = models.Batch.viewable_batches()
    qs = qs.annotate(page_count=Count("issues__pages"))
    headers, data = flatten_queryset(
        qs,
        field_names=[
            "created", "name", "awardee__name", "page_count", "released"
        ],
        extra_verbose_names={"awardee__name": "Awardee"},
    )

    return export_to_csv_response("chronam_batches.csv", headers, data)