|
|
|
def populate():
|
|
|
|
from polls.models import Poll, Option
|
|
|
|
|
|
|
|
from random import randint
|
|
|
|
|
|
|
|
from faker import Faker
|
|
|
|
|
|
|
|
data_maker = Faker()
|
|
|
|
|
|
|
|
number_of_polls = 100
|
|
|
|
options_per_poll = (2, 5)
|
|
|
|
|
|
|
|
for i in range(number_of_polls):
|
|
|
|
poll = Poll()
|
|
|
|
question = data_maker.sentence()
|
|
|
|
question = question.replace(".", "?")
|
|
|
|
poll.question = question
|
|
|
|
poll.save()
|
|
|
|
|
|
|
|
for o in range(randint(*options_per_poll)):
|
|
|
|
option = Option()
|
|
|
|
option.poll = poll
|
|
|
|
option.text = data_maker.sentence()
|
|
|
|
option.save()
|
|
|
|
|
|
|
|
|
|
|
|
def create_users_and_votes():
|
|
|
|
from django.contrib.auth.models import User
|
|
|
|
from polls.models import Poll, Option, Vote
|
|
|
|
|
|
|
|
from random import choice, shuffle
|
|
|
|
|
|
|
|
from faker import Faker
|
|
|
|
|
|
|
|
data_maker = Faker()
|
|
|
|
|
|
|
|
users_to_create = 16
|
|
|
|
for i in range(users_to_create):
|
|
|
|
user = User.objects.create_user(
|
|
|
|
data_maker.unique.name(),
|
|
|
|
)
|
|
|
|
polls = list(Poll.objects.values_list("pk", flat=True))
|
|
|
|
# Shuffle polls list
|
|
|
|
shuffle(polls)
|
|
|
|
# Vote on 75% of the polls
|
|
|
|
for o in range(int(len(polls) * 0.75)):
|
|
|
|
poll = Poll.objects.get(pk=polls[o])
|
|
|
|
# Select a random option to cast as vote
|
|
|
|
option_id = choice(Option.objects.filter(poll=poll).values_list("pk", flat=True))
|
|
|
|
vote = Vote()
|
|
|
|
vote.poll = poll
|
|
|
|
vote.option = Option.objects.get(pk=option_id)
|
|
|
|
vote.user = user
|
|
|
|
vote.save()
|
|
|
|
|
|
|
|
|
|
|
|
def create_blank_users():
|
|
|
|
from django.contrib.auth.models import User
|
|
|
|
|
|
|
|
users_to_create = 16
|
|
|
|
for i in range(users_to_create):
|
|
|
|
User.objects.create_user(
|
|
|
|
f"user{i}",
|
|
|
|
password="password",
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
def run_all():
|
|
|
|
populate()
|
|
|
|
create_users_and_votes()
|
|
|
|
create_blank_users()
|