# Generated by Django 4.0.6 on 2022-08-19 10:06

from django.db import migrations


class Migration(migrations.Migration):

    dependencies = [
        ('question', '0012_manually_add_solution_to_questions'),
    ]

    # On 2022.11.20 It took 4 minutes to perform this migration on HAROON's local machine
    def modify(apps, schema_editor):

        Question = apps.get_model("question", "Question")

        print("reading Question data from database")

        db_alias = schema_editor.connection.alias
        questions = Question.objects.using(db_alias).filter(
            question_type='multiple-choice')

        i = 0
        count = len(questions)
        previous_percent = -1

        for question in questions:

            percent = 100 * i // count
            if previous_percent != percent:
                print(str(percent) + "%")
                previous_percent = percent
            i += 1

            choices = {}
            correct_choices = []
            origin_choices = question.answer_rules['choices']
            for origin_choice in origin_choices:
                id = origin_choice['id']
                text = origin_choice['answer_text']
                is_correct = origin_choice['is_correct_choice']
                choices[id] = text
                if is_correct:
                    correct_choices.append(id)
            question.choices = choices
            question.correct_choices = correct_choices
            question.save()

    operations = [
        migrations.RunPython(modify),
    ]
