From e54d9af969b7e060b0b0ba3fccac5be0f55a7382 Mon Sep 17 00:00:00 2001 From: Eve Martin Date: Thu, 15 Aug 2024 17:56:34 +0000 Subject: [PATCH] continue work on levels page and python den general setup --- game/messages.py | 6 +-- game/migrations/0099_reorder_python_levels.py | 54 +++++++++++++++++++ .../game/python_den_level_selection.html | 22 +++++--- game/views/level_selection.py | 8 +-- 4 files changed, 77 insertions(+), 13 deletions(-) create mode 100644 game/migrations/0099_reorder_python_levels.py diff --git a/game/messages.py b/game/messages.py index 3543f1e60..8ba9323f3 100644 --- a/game/messages.py +++ b/game/messages.py @@ -3646,9 +3646,9 @@ def get_episode_title(episode_id): 10: "Introduction to Python", 11: "Python", 12: "Counted Loops Using While", - 13: "Indeterminate Loops - coming soon", - 14: "Selection in a Loop - coming soon", - 15: "For Loops - coming soon", + 13: "Indeterminate Loops", + 14: "Selection in a Loop", + 15: "For Loops", 16: "Output, Operators, and Data", 17: "Variables, Input, and Casting", 18: "Selection", diff --git a/game/migrations/0099_reorder_python_levels.py b/game/migrations/0099_reorder_python_levels.py new file mode 100644 index 000000000..0ce9b75bb --- /dev/null +++ b/game/migrations/0099_reorder_python_levels.py @@ -0,0 +1,54 @@ +from django.apps.registry import Apps +from django.db import migrations, models + +def rename_episode_12_levels(apps: Apps, *args): + Level = apps.get_model("game", "Level") + new_name = 1001 + + for i in range(110, 123): + level = Level.objects.get(name=i, default=True) + level.name = str(new_name) + level.save() + new_name += 1 + + +def undo_rename_episode_12_levels(apps: Apps, *args): + Level = apps.get_model("game", "Level") + new_name = 110 + for i in range(1001, 1014): + level = Level.objects.get(name=i, default=True) + level.name = str(new_name) + level.save() + new_name += 1 + + +def delete_old_python_levels(apps: Apps, *args): + + + +def add_back_old_python_levels(apps: Apps, *args): + + + +def set_order_of_levels(apps: Apps, *args): + Level = apps.get_model("game", "Level") + + level79 = Level.objects.get(name="79", default=True) + level79.next_level = None + + level1013 = Level.objects.get(name="1013", default=True) + level1013.next_level = Level.objects.get(name="1014", default=True) + + +class Migration(migrations.Migration): + + dependencies = [ + ('game', '0098_add_episode_resource_link_fields'), + ] + + operations = [ + migrations.RunPython( + code=rename_episode_12_levels, + reverse_code=undo_rename_episode_12_levels + ) + ] \ No newline at end of file diff --git a/game/templates/game/python_den_level_selection.html b/game/templates/game/python_den_level_selection.html index bf8afe416..37e4e5425 100644 --- a/game/templates/game/python_den_level_selection.html +++ b/game/templates/game/python_den_level_selection.html @@ -73,9 +73,11 @@

Introduction to Python

@@ -157,9 +159,17 @@

Introduction to Python

id="episode-{{episode.id}}"> diff --git a/game/views/level_selection.py b/game/views/level_selection.py index 704d07b28..79ba18b59 100644 --- a/game/views/level_selection.py +++ b/game/views/level_selection.py @@ -62,12 +62,12 @@ def fetch_episode_data_from_database(early_access, start, end): } episode_data.append(e) - episode = episode.next_episode - current += 1 - if current > end: + if episode.id == end: break + episode = episode.next_episode + return episode_data @@ -123,7 +123,7 @@ def get_blockly_episodes(request): def get_python_episodes(request): - return fetch_episode_data(app_settings.EARLY_ACCESS_FUNCTION(request), 10, 12) + return fetch_episode_data(app_settings.EARLY_ACCESS_FUNCTION(request), 16, 22) def levels(request, language):