Mercurial > public > sg101
diff donations/management/commands/top_donors.py @ 761:1ddd72f48d73
Added mgmt command to display donor info. Hall of fame donors bumped to 20.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Sat, 11 Jan 2014 19:43:37 -0600 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/donations/management/commands/top_donors.py Sat Jan 11 19:43:37 2014 -0600 @@ -0,0 +1,35 @@ +"""top_donors.py + +A management command to display top donor data. + +""" +from optparse import make_option + +from django.core.management.base import BaseCommand + +from donations.models import Donation + + +ROW_FMT = '{n:<5} {name:<32} ${amount}\n' + + +class Command(BaseCommand): + help = "Display the top N donors and stats" + args = "<n>" + option_list = BaseCommand.option_list + ( + make_option('-n', '--number', + action='store', + type='int', + default=10, + help='number of donors to display'), + ) + + def handle(self, *args, **kwargs): + """Display the top n donors and their amounts.""" + + n = kwargs['number'] + + donors = Donation.objects.top_donors(n) + for i, donor in enumerate(donors, start=1): + self.stdout.write(ROW_FMT.format(n=i, name=donor.username, + amount=donor.total_donations))