added management command to create random campaigns for any works that lack a campaign

pull/1/head
Ed Summers 2011-09-12 00:04:22 -04:00
parent ca5af54134
commit 8e3fc4ac6f
2 changed files with 38 additions and 1 deletions

View File

@ -0,0 +1,37 @@
from random import randint, randrange
from datetime import datetime, timedelta
from django.core.management.base import BaseCommand
from regluit.core.models import Work, Campaign
class Command(BaseCommand):
help = "creates random campaigns for any works that lack one for testing"
def handle(self, *args, **options):
for work in Work.objects.all():
if work.campaigns.all().count() > 0:
continue
campaign = Campaign()
campaign.name = work.title
campaign.work = work
campaign.description = "Test Campaign"
# random campaign target between $200 and $10,000
campaign.target = float(randint(200,10000))
# random deadline between 5 days from now and 180 days from now
now = datetime.now()
campaign.deadline = random_date(now + timedelta(days=5),
now + timedelta(days=180))
campaign.save()
print "created %s" % campaign
def random_date(start, end):
delta = end - start
int_delta = (delta.days * 24 * 60 * 60) + delta.seconds
random_second = randrange(int_delta)
return (start + timedelta(seconds=random_second))

View File

@ -11,7 +11,7 @@ class Campaign(models.Model):
deadline = models.DateTimeField()
paypal_receiver = models.CharField(max_length=100, null=True)
amazon_receiver = models.CharField(max_length=100, null=True)
work = models.ForeignKey("Work", related_name="campaign")
work = models.ForeignKey("Work", related_name="campaigns")
def __unicode__(self):
return u"Campaign for %s" % self.work.title