X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/c26ab6ee15974c1133a6d08c459b51199185f25f..6d06a771aabaac998b7f15f91603026dc67a352a:/apps/reporting/views.py diff --git a/apps/reporting/views.py b/apps/reporting/views.py index bf043f238..a23252ec2 100644 --- a/apps/reporting/views.py +++ b/apps/reporting/views.py @@ -11,7 +11,7 @@ from django.shortcuts import render_to_response from django.template import RequestContext from catalogue.models import Book, BookMedia -from reporting.utils import render_to_pdf, generated_file_view +from reporting.utils import render_to_pdf, render_to_csv, generated_file_view @staff_member_required @@ -21,7 +21,7 @@ def stats_page(request): annotate(count=Count('type')).\ order_by('type') for mt in media_types: - mt['size'] = sum(b.file.size for b in BookMedia.objects.filter(type=mt['type'])) + mt['size'] = sum(b.file.size for b in BookMedia.objects.filter(type=mt['type']).iterator()) if mt['type'] in ('mp3', 'ogg'): deprecated = BookMedia.objects.filter( type=mt['type'], source_sha1=None) @@ -30,6 +30,9 @@ def stats_page(request): else: mt['deprecated'] = '-' + licenses = set(((b.extra_info.get('license'), b.extra_info.get('license_description')) + for b in Book.objects.all().iterator() if b.extra_info.get('license'))) + return render_to_response('reporting/main.html', locals(), context_instance=RequestContext(request)) @@ -42,3 +45,11 @@ def catalogue_pdf(path): render_to_pdf(path, 'reporting/catalogue.texml', locals(), { "wl-logo.png": os.path.join(settings.STATIC_ROOT, "img/logo-big.png"), }) + + +@generated_file_view('reports/katalog.csv', 'application/csv', + send_name=lambda: 'wolnelektury_%s.csv' % date.today(), + signals=[Book.published]) +def catalogue_csv(path): + books_by_author, orphans, books_by_parent = Book.book_list() + render_to_csv(path, 'reporting/catalogue.csv', locals())