diff downloads/management/commands/dlcatreport.py @ 634:d6489e6a40f6

Add an encoding header to the downloads category report. Added a --titles-only option to the downloads category report.
author Brian Neal <bgneal@gmail.com>
date Fri, 21 Dec 2012 10:28:52 -0600
parents ee87ea74d46b
children 161b56849114
line wrap: on
line diff
--- a/downloads/management/commands/dlcatreport.py	Sun Dec 02 14:42:08 2012 -0600
+++ b/downloads/management/commands/dlcatreport.py	Fri Dec 21 10:28:52 2012 -0600
@@ -3,16 +3,32 @@
 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
 
 
+def print_titles(dls):
+    """Print out the download titles"""
+
+    for dl in dls:
+        print dl.title.encode('utf-8')
+
+
 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
@@ -27,6 +43,10 @@
         downloads = Download.public_objects.filter(category=category).order_by(
                 'title').select_related()
 
+        if options.get('titles_only'):
+            print_titles(downloads)
+            return
+
         report = render_to_string('downloads/commands/category_report.html', {
             'category': category,
             'downloads': downloads,