Mercurial > public > sg101
view downloads/management/commands/dlcatreport.py @ 989:2908859c2fe4
Smilies now use relative links.
This is for upcoming switch to SSL. Currently we do not need absolute URLs for
smilies. If this changes we can add it later.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Thu, 29 Oct 2015 20:54:34 -0500 |
parents | b59c154d0163 |
children | cb712b2c34af |
line wrap: on
line source
""" dlcatreport - a management command to produce a HTML report of all the downloads in a given category. """ from optparse import make_option from django.core.management.base import LabelCommand, CommandError from django.template.loader import render_to_string from downloads.models import Category, Download class Command(LabelCommand): help = "Produce on standard output a report of all downloads in a category." args = "category-slug" option_list = LabelCommand.option_list + ( make_option('--titles-only', action='store_true', default=False, help='Output a text listing of titles only'), ) def handle_label(self, slug, **options): """ Render a template using the downloads in a given category and send it to stdout. """ try: category = Category.objects.get(slug=slug) except Category.DoesNotExist: raise CommandError("category slug '%s' does not exist" % slug) downloads = Download.public_objects.filter(category=category).order_by( 'title').select_related() if options.get('titles_only'): self.print_titles(downloads) return report = render_to_string('downloads/commands/category_report.html', { 'category': category, 'downloads': downloads, }) self.stdout.write(report) def print_titles(self, dls): """Print out the download titles""" for dl in dls: self.stdout.write(dl.title)