added management command to create random campaigns for any works that lack a campaign
parent
ca5af54134
commit
8e3fc4ac6f
|
@ -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))
|
||||
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue