Exemplo n.º 1
0
    def handle(self, *args, **options):
        count = options['n']
        # for answer in Answer.objects.all():
        #     answer.delete()
        # for question in Question.objects.all():
        #     question.delete()
        for q in Question.objects.all():
            q.delete()
        for r in Rates.objects.all():
            r.delete()
        for i in range(0, count):
            number = randint(0, len(titles) - 1)
            question = Question()
            question.title = titles[number]
            number = randint(0, len(titles) - 1)
            question.text = titles[number]
            User = get_user_model()
            number = randint(0, User.objects.count() - 1)
            question.author = User.objects.all()[number]
            d1 = datetime.strptime('1/1/2014 1:30 PM', '%m/%d/%Y %I:%M %p')
            d2 = datetime.strptime('1/1/2015 4:50 AM', '%m/%d/%Y %I:%M %p')
            question.data = random_date(d1, d2)
            rate = Rates()

            number = randint(0, User.objects.count())
            rate.count = number
            rate.save()
            for i in range(number):
                rate.users.add(User.objects.all()[i])
            question.rate = rate
            number = randint(0, len(tags) - 1)
            question.save()

            for i in range(number):
                question.addTag(tags[i])
            for j in range(0, randint(0, 10)):
                answer = Answer()
                number = randint(0, len(answers) - 1)
                answer.text = answers[number]
                d1 = datetime.strptime('1/1/2014 1:30 PM', '%m/%d/%Y %I:%M %p')
                d2 = datetime.strptime('1/1/2015 4:50 AM', '%m/%d/%Y %I:%M %p')
                answer.data = random_date(d1, d2)
                rate = Rates()
                rate.count = number
                rate.save()
                number = randint(0, User.objects.count())
                for i in range(number):
                    rate.users.add(User.objects.all()[i])
                answer.rate = rate
                number = randint(0, len(titles) - 1)
                answer.title = titles[number]
                number = randint(0, User.objects.count() - 1)
                answer.author = User.objects.all()[number]
                answer.question = question
                answer.save()
Exemplo n.º 2
0
    def handle(self, *args, **options):
        count = options['n']
        # for answer in Answer.objects.all():
        #     answer.delete()
        # for question in Question.objects.all():
        #     question.delete()
        for q in Question.objects.all():
            q.delete()
        for r in Rates.objects.all():
            r.delete()
        for i in range(0, count):
            number = randint(0,len(titles)-1)
            question = Question()
            question.title = titles[ number ]
            number = randint(0,len(titles)-1)
            question.text = titles[ number ]
            User = get_user_model()
            number = randint(0,User.objects.count()-1)
            question.author = User.objects.all()[number]
            d1 = datetime.strptime('1/1/2014 1:30 PM', '%m/%d/%Y %I:%M %p')
            d2 = datetime.strptime('1/1/2015 4:50 AM', '%m/%d/%Y %I:%M %p')
            question.data = random_date(d1, d2)
            rate = Rates()

            number = randint(0,User.objects.count())
            rate.count = number
            rate.save()
            for i in range(number):
                rate.users.add(User.objects.all()[i])
            question.rate = rate
            number = randint(0,len(tags)-1)
            question.save()

            for i in range(number):
                question.addTag(tags[i])
            for j in range(0,randint(0,10)):
                answer = Answer()
                number = randint(0,len(answers)-1)
                answer.text = answers[number]
                d1 = datetime.strptime('1/1/2014 1:30 PM', '%m/%d/%Y %I:%M %p')
                d2 = datetime.strptime('1/1/2015 4:50 AM', '%m/%d/%Y %I:%M %p')
                answer.data = random_date(d1, d2)
                rate = Rates()
                rate.count = number
                rate.save()
                number = randint(0,User.objects.count())
                for i in range(number):
                    rate.users.add(User.objects.all()[i])
                answer.rate = rate
                number = randint(0,len(titles)-1)
                answer.title = titles[ number ]
                number = randint(0,User.objects.count()-1)
                answer.author = User.objects.all()[number]
                answer.question = question
                answer.save()
Exemplo n.º 3
0
from question.models import Answer, Question, AnswerType


def read(qno, filename):
    path = os.path.join(str(qno), filename)
    with open(path, 'r') as fl:
        data = fl.read()
    return data

print('Adding questions')
questions = ''.join(map(str, range(1, 100)))
for ques in questions:
    q = Question()
    q.qno = int(ques)
    try:
        q.title = read(ques, 'title')
        q.text = read(ques, 'text')
        if (ques == '1') or (ques == '2'):
            q.practice = True
        q.save()
    except:
        print('Could not add Q-', ques)
    else:
        try:
            ans = Answer()
            ans.question = q
            ans.infile = File(open(ques + '/inp', 'r'))
            ans.outfile = File(open(ques + '/out', 'r'))
            ans.sample_code = File(open(ques + '/sample', 'r'))
            ans.answer_type = AnswerType.objects.first()
            ans.save()
Exemplo n.º 4
0
    def handle(self, *args, **options):
        if options["flush"]:
            call_command("flush", "--noinput")

        fake = Faker("hu_HU")
        users = []

        if not User.objects.filter(username="******").exists():
            admin = User()
            admin.username = "******"
            admin.is_superuser = True
            admin.is_staff = True
            admin.first_name = "Admin"
            admin.last_name = "Adminsson"
            admin.set_password("admin")
            admin.save()
            Profile.objects.create(user=User.objects.get(username="******"))
        users.append("admin")

        if not User.objects.filter(username="******").exists():
            User.objects.create(username="******",
                                is_staff=True,
                                first_name="Mod",
                                last_name="Mod")
            Profile.objects.create(user=User.objects.get(username="******"))
        users.append("mod")

        if not User.objects.filter(username="******").exists():
            User.objects.create(username="******",
                                first_name="User",
                                last_name="User")
            Profile.objects.create(user=User.objects.get(username="******"))
        users.append("user")

        # Accounts
        for i in range(random.choice(range(3, 9))):
            # Users
            fakedata = fake.simple_profile()
            u = User()
            u.username = fakedata["username"]
            name = fakedata["name"].split(" ")
            u.first_name = name[0]
            u.last_name = name[1]
            u.save()
            # Profiles
            Profile.objects.create(user=u)
            users.append(u.username)

        # Tags
        tag_choices = []
        for t in range(random.choice(range(5, 11))):
            tag_choices.append(fake.word())

        # Questions
        for i in range(random.choice(range(3, 11))):
            ov_q = self.generate_owner_votes(users)
            q = Question()
            q.title = fake.text(max_nb_chars=50)
            q.text = fake.paragraph(nb_sentences=4)
            q.owner = Profile.objects.get(user__username=ov_q["owner"])
            q.show_username = bool(random.getrandbits(1))
            q.votes = ov_q["votes"]
            q.created_at = datetime.datetime.now()
            q.save()
            for t in random.sample(tag_choices,
                                   random.randint(0, len(tag_choices))):
                q.tags.add(t)
            # Comments
            for j in range(random.choice(range(0, 4))):
                ov_cq = self.generate_owner_votes(users)
                Comment.objects.create(
                    parent_question=q,
                    text=fake.paragraph(nb_sentences=4),
                    owner=Profile.objects.get(user__username=ov_cq["owner"]),
                    show_username=bool(random.getrandbits(1)),
                    votes=ov_cq["votes"],
                )
            # Answers
            accepted_answer = -1
            answer_count = random.choice(range(0, 6))
            has_accepted = bool(random.getrandbits(1))
            if has_accepted and answer_count > 0:
                accepted_answer = random.choice(range(answer_count))
            for k in range(answer_count):
                ov_a = self.generate_owner_votes(users)
                a = Answer()
                a.text = fake.paragraph(nb_sentences=4)
                a.owner = Profile.objects.get(user__username=ov_a["owner"])
                a.show_username = bool(random.getrandbits(1))
                if k == accepted_answer:
                    a.is_accepted = True
                else:
                    a.is_accepted = False
                a.votes = ov_a["votes"]
                a.parent = q
                a.save()
                # Comments to answers
                for l in range(random.choice(range(0, 4))):
                    ov_ca = self.generate_owner_votes(users)
                    Comment.objects.create(
                        parent_answer=a,
                        text=fake.paragraph(nb_sentences=4),
                        owner=Profile.objects.get(
                            user__username=ov_ca["owner"]),
                        show_username=bool(random.getrandbits(1)),
                        votes=ov_ca["votes"],
                    )
Exemplo n.º 5
0

def read(qno, filename):
    path = os.path.join(str(qno), filename)
    with open(path, 'r') as fl:
        data = fl.read()
    return data


print('Adding questions')
questions = ''.join(map(str, range(1, 100)))
for ques in questions:
    q = Question()
    q.qno = int(ques)
    try:
        q.title = read(ques, 'title')
        q.text = read(ques, 'text')
        if (ques == '1') or (ques == '2'):
            q.practice = True
        q.save()
    except:
        print('Could not add Q-', ques)
    else:
        try:
            ans = Answer()
            ans.question = q
            ans.infile = File(open(ques + '/inp', 'r'))
            ans.outfile = File(open(ques + '/out', 'r'))
            ans.sample_code = File(open(ques + '/sample', 'r'))
            ans.answer_type = AnswerType.objects.first()
            ans.save()