# -*- coding: utf-8 -*-
# Code for Life
#
# Copyright (C) 2019, Ocado Innovation Limited
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# ADDITIONAL TERMS – Section 7 GNU General Public Licence
#
# This licence does not grant any right, title or interest in any “Ocado” logos,
# trade names or the trademark “Ocado” or any other trademarks or domain names
# owned by Ocado Innovation Limited or the Ocado group of companies or any other
# distinctive brand features of “Ocado” as may be secured from time to time. You
# must not distribute any modification of this program using the trademark
# “Ocado” or claim any affiliation or association with Ocado or its employees.
#
# You are not authorised to use the name Ocado (or any of its trade names) or
# the names of any author or contributor in advertising or for publicity purposes
# pertaining to the distribution of this program, without the prior written
# authorisation of Ocado.
#
# Any propagation, distribution or conveyance of this program must include this
# copyright notice and these terms. You must not misrepresent the origins of this
# program; modified versions of the program must be marked as such and not
# identified as the original program.

PDF_DATA = {
    # .........User Guide........#
    "introduction_to_coding": {
        "title": "Introduction to Coding",
        "description": "This document shows how the progression through Rapid Router levels cover each stage of the "
        "computing curriculum for key stages one and two.",
        "links": None,
        "url": "user_guide_v1/introduction_to_coding.pdf",
        "page_origin": "#user-guide",
    },
    "levels_guide_1-28": {
        "title": "Levels Guide 1 ‒ 28",
        "description": "Road maps for levels 1 to 28 of Rapid Router. You can find the maps for levels 29 ‒ 109 below.",
        "links": ["levels_guide_29-109"],
        "url": "user_guide_v1/levels_guide_KS1_KS2.pdf",
        "page_origin": "#user-guide",
    },
    "glossary": {
        "title": "Glossary",
        "description": "A glossary of coding terminology, for all the key stages of the curriculum.",
        "links": None,
        "url": "user_guide_v1/glossary.pdf",
        "page_origin": "#user-guide",
    },
    "introduction_to_python": {
        "title": "Introduction to Python in Rapid Router",
        "description": "A summary of the python commands specific to Rapid Router as well as general python statements "
        "students will need to use.",
        "links": None,
        "url": "user_guide_v1/introduction_to_python.pdf",
        "page_origin": "#user-guide",
    },
    "levels_guide_29-109": {
        "title": "Levels Guide 29 ‒ 109",
        "description": "Road maps for levels 29 to 109 of Rapid Router.",
        "links": ["levels_guide_1-28"],
        "url": "user_guide_v1/levels_guide_KS3.pdf",
        "page_origin": "#user-guide",
    },
    "blockly_python_phrasebook": {
        "title": "Blockly ‒ Python Phrasebook",
        "description": "A table showing the conversion from Blockly to Python.",
        "links": None,
        "url": "user_guide_v1/blockly_python_phrasebook.pdf",
        "page_origin": "#user-guide",
    },
    "user_guide_aimmo": {
        "title": "Introduction to Kurono",
        "description": "User guide for Kurono.",
        "links": None,
        "url": "user_guide_v1/kurono_user_guide_v1.pdf",
        "page_origin": "#user-guide",
    },
    # ...................KS1 sessions...........#
    "KS1_session_1": {
        "title": "KS1 ‒ Session 1",
        "description": "Unplugged algorithms for moving along a route",
        "links": ["KS1_S1_1", "KS1_S1_2", "KS1_S1_3", "KS1_S1_4"],
        "url": "KS1_v1/sessions/ks1_s1.pdf",
        "page_origin": "#ks1-sessions",
        "levels_covered": "Print outs",
    },
    "KS1_session_2": {
        "title": "KS1 ‒ Session 2",
        "description": "Starting off on–screen with the app",
        "links": None,
        "url": "KS1_v1/sessions/ks1_s2.pdf",
        "video": "https://www.youtube.com/embed/PQFyF3R6Xts",
        "video_download_link": "videos/KS1_2_Introduction_to_Rapid_Router_with_Matt_and_Chris.mp4",
        "page_origin": "#ks1-sessions",
        "levels_covered": "Levels 1–5",
    },
    "KS1_session_3": {
        "title": "KS1 ‒ Session 3",
        "description": "Creating simple algorithms to reach a single destination",
        "links": ["KS1_S3_1"],
        "url": "KS1_v1/sessions/ks1_s3.pdf",
        "page_origin": "#ks1-sessions",
        "levels_covered": "Levels 6–12",
    },
    "KS1_session_4": {
        "title": "KS1 ‒ Session 4",
        "description": "Creating simple algorithms to reach a single destination along the shortest route",
        "links": ["KS1_S4_1", "KS1_S4_2", "KS1_S4_3", "KS1_S4_4"],
        "url": "KS1_v1/sessions/ks1_s4.pdf",
        "page_origin": "#ks1-sessions",
        "levels_covered": "Levels 13–14",
    },
    "KS1_session_5": {
        "title": "KS1 ‒ Session 5",
        "description": "Create a more complex algorithm to deliver one or more packages on the way",
        "links": ["KS1_S5_1"],
        "url": "KS1_v1/sessions/ks1_s5.pdf",
        "page_origin": "#ks1-sessions",
        "levels_covered": "Levels 14–16",
    },
    # .........KS1 Resource Sheets.........#
    # ...Session 1...#
    "KS1_S1_1": {
        "title": "KS1 ‒ Session 1 ‒ Sheet 1",
        "description": "To be used with Session 1 lesson plan.",
        "links": ["KS1_session_1"],
        "url": "KS1_v1/resource_sheets/ks1_s1_1.pdf",
        "page_origin": "#ks1-resource-sheets",
    },
    "KS1_S1_2": {
        "title": "KS1 ‒ Session 1 ‒ Sheet 2",
        "description": "To be used with Session 1 lesson plan.",
        "links": ["KS1_session_1"],
        "url": "KS1_v1/resource_sheets/ks1_s1_2.pdf",
        "page_origin": "#ks1-resource-sheets",
    },
    "KS1_S1_3": {
        "title": "KS1 ‒ Session 1 ‒ Sheet 3",
        "description": "To be used with Session 1 lesson plan.",
        "links": ["KS1_session_1"],
        "url": "KS1_v1/resource_sheets/ks1_s1_3.pdf",
        "page_origin": "#ks1-resource-sheets",
    },
    "KS1_S1_4": {
        "title": "KS1 ‒ Session 1 ‒ Sheet 4",
        "description": "To be used with Session 1 lesson plan.",
        "links": ["KS1_session_1"],
        "url": "KS1_v1/resource_sheets/ks1_s1_4.pdf",
        "page_origin": "#ks1-resource-sheets",
    },
    # ...Session 3...#
    "KS1_S3_1": {
        "title": "KS1 ‒ Session 3 ‒ Sheet 1",
        "description": "To be used with Session 3 lesson plan.",
        "links": ["KS1_session_3"],
        "url": "KS1_v1/resource_sheets/ks1_s3_1.pdf",
        "page_origin": "#ks1-resource-sheets",
    },
    # ...Session 4...#
    "KS1_S4_1": {
        "title": "KS1 ‒ Session 4 ‒ Sheet 1",
        "description": "To be used with Session 4 lesson plan.",
        "links": ["KS1_session_4"],
        "url": "KS1_v1/resource_sheets/ks1_s4_1.pdf",
        "page_origin": "#ks1-resource-sheets",
    },
    "KS1_S4_2": {
        "title": "KS1 ‒ Session 4 ‒ Sheet 2",
        "description": "To be used with Session 4 lesson plan.",
        "links": ["KS1_session_4"],
        "url": "KS1_v1/resource_sheets/ks1_s4_2.pdf",
        "page_origin": "#ks1-resource-sheets",
    },
    "KS1_S4_3": {
        "title": "KS1 ‒ Session 4 ‒ Sheet 3",
        "description": "To be used with Session 4 lesson plan.",
        "links": ["KS1_session_4"],
        "url": "KS1_v1/resource_sheets/ks1_s4_3.pdf",
        "page_origin": "#ks1-resource-sheets",
    },
    "KS1_S4_4": {
        "title": "KS1 ‒ Session 4 ‒ Sheet 4",
        "description": "To be used with Session 4 lesson plan.",
        "links": ["KS1_session_4"],
        "url": "KS1_v1/resource_sheets/ks1_s4_4.pdf",
        "page_origin": "#ks1-resource-sheets",
    },
    # ...Session 5...#
    "KS1_S5_1": {
        "title": "KS1 ‒ Session 5 ‒ Sheet 1",
        "description": "To be used with Session 5 lesson plan.",
        "links": ["KS1_session_5"],
        "url": "KS1_v1/resource_sheets/ks1_s5_1.pdf",
        "page_origin": "#ks1-resource-sheets",
    },
    # ............KS1 Extras............#
    # ...KS1 Program Solutions...#
    "program_solutions_1-16": {
        "title": "Program Solutions 1 ‒ 16",
        "description": "A table showing the best solutions to levels 1 to 16 of Rapid Router.",
        "links": [
            "program_solutions_17-28",
            "program_solutions_19-43",
            "program_solutions_44-79",
            "program_solutions_80-109",
        ],
        "url": "KS1_v1/ks1_program_solutions.pdf",
        "page_origin": "#ks1-solutions",
    },
    # ...KS1 Activity Set...#
    "KS1_activity_set": {
        "title": "KS1 ‒ Activity Set",
        "description": "This activity set gives you an overview of the Key Stage 1 module. It covers the resources "
        "that will be useful, learning expectations and teacher preparation.",
        "links": None,
        "url": "KS1_v1/ks1_activity_set.pdf",
        "page_origin": "#ks1-activity",
    },
    # ...KS1 Assets...#
    "KS1_assets": {
        "title": "KS1 ‒ Assets",
        "description": "Arrows, scenery and blockly statements that can be cut out for offline activities.",
        "links": ["KS1_code_wall_cards"],
        "url": "KS1_v1/assets/ks1_assets.pdf",
        "page_origin": "#ks1-assets",
    },
    "KS1_code_wall_cards": {
        "title": "KS1 ‒ Code Wall Cards",
        "description": "Keywords that can be displayed in the classroom.",
        "links": ["KS1_assets"],
        "url": "KS1_v1/assets/ks1_code_wall_cards.pdf",
        "page_origin": "#ks1-assets",
    },
    # ...KS1 Assessments...#
    "KS1_assessment_guide": {
        "title": "KS1 ‒ Assessment Guide",
        "description": "Information on how to use the assessment sheets available.",
        "links": ["KS1_self_assessment_sheet", "KS1_teacher_record_sheet"],
        "url": "KS1_v1/assessments/ks1_assessment_sheet.pdf",
        "page_origin": "#ks1-assessments",
    },
    "KS1_self_assessment_sheet": {
        "title": "KS1 ‒ Self Assessment Sheet",
        "description": "Document for students to self assess their understanding of key concepts.",
        "links": ["KS1_assessment_guide", "KS1_teacher_record_sheet"],
        "url": "KS1_v1/assessments/ks1_self_assessment_sheet.pdf",
        "page_origin": "#ks1-assessments",
    },
    "KS1_teacher_record_sheet": {
        "title": "KS1 ‒ Teacher Record Sheet",
        "description": "Document for the teacher to record pupils’ progress.",
        "links": ["KS1_assessment_guide", "KS1_self_assessment_sheet"],
        "url": "KS1_v1/assessments/ks1_teacher_record_sheet.pdf",
        "page_origin": "#ks1-assessments",
    },
    # .........KS2 sessions...........#
    "KS2_session_1": {
        "title": "KS2 ‒ Session 1",
        "description": "Recap: Delivering several packages in a sensible sequence",
        "links": ["KS2_S1_1", "KS2_S1_2"],
        "url": "KS2_v1/sessions/ks2_s1.pdf",
        "page_origin": "#ks2-sessions",
        "levels_covered": "Levels 17–18",
    },
    "KS2_session_2": {
        "title": "KS2 ‒ Session 2",
        "description": "Introducing the repeat loop",
        "links": ["KS2_S2_1", "KS2_S2_2", "KS2_S2_3"],
        "url": "KS2_v1/sessions/ks2_s2.pdf",
        "video": "https://www.youtube.com/embed/vFGd0v3msRE",
        "video_download_link": "videos/KS1_7_Mahana_explains_repeat_functions.mp4",
        "page_origin": "#ks2-sessions",
        "levels_covered": "Levels 19–22",
    },
    "KS2_session_3": {
        "title": "KS2 ‒ Session 3",
        "description": "Follow–on and extension work on multiple repeat loops and nested repeats",
        "links": ["KS2_S3_1", "KS2_S3_2"],
        "url": "KS2_v1/sessions/ks2_s3.pdf",
        "page_origin": "#ks2-sessions",
        "levels_covered": "Levels 23–25",
    },
    "KS2_session_4": {
        "title": "KS2 ‒ Session 4",
        "description": "Students create their own routes",
        "links": ["KS2_S4_1"],
        "url": "KS2_v1/sessions/ks2_s4.pdf",
        "page_origin": "#ks2-sessions",
        "levels_covered": "Levels 26–28",
    },
    "KS2_session_5": {
        "title": "KS2 ‒ Session 5",
        "description": "Try out a partner’s route",
        "links": None,
        "url": "KS2_v1/sessions/ks2_s5.pdf",
        "page_origin": "#ks2-sessions",
        "levels_covered": "",
    },
    # .........KS2 Resource Sheets.........#
    # ...Session 1 ...#
    "KS2_S1_1": {
        "title": "KS2 ‒ Session 1 ‒ Sheet 1",
        "description": "To be used with Session 1 lesson plan.",
        "links": ["KS2_session_1"],
        "url": "KS2_v1/resource_sheets/ks2_s1_1.pdf",
        "page_origin": "#ks2-resource-sheets",
    },
    "KS2_S1_2": {
        "title": "KS2 ‒ Session 1 ‒ Sheet 2",
        "description": "To be used with Session 1 lesson plan.",
        "links": ["KS2_session_1"],
        "url": "KS2_v1/resource_sheets/ks2_s1_2.pdf",
        "page_origin": "#ks2-resource-sheets",
    },
    # ...Session 2...#
    "KS2_S2_1": {
        "title": "KS2 ‒ Session 2 ‒ Sheet 1",
        "description": "To be used with Session 2 lesson plan.",
        "links": ["KS2_session_2"],
        "url": "KS2_v1/resource_sheets/ks2_s2_1.pdf",
        "page_origin": "#ks2-resource-sheets",
    },
    "KS2_S2_2": {
        "title": "KS2 ‒ Session 2 ‒ Sheet 2",
        "description": "To be used with Session 2 lesson plan.",
        "links": ["KS2_session_2"],
        "url": "KS2_v1/resource_sheets/ks2_s2_2.pdf",
        "page_origin": "#ks2-resource-sheets",
    },
    "KS2_S2_3": {
        "title": "KS2 ‒ Session 2 ‒ Sheet 3",
        "description": "To be used with Session 2 lesson plan.",
        "links": ["KS2_session_2"],
        "url": "KS2_v1/resource_sheets/ks2_s2_3.pdf",
        "page_origin": "#ks2-resource-sheets",
    },
    # ...Session 3...#
    "KS2_S3_1": {
        "title": "KS2 ‒ Session 3 ‒ Sheet 1",
        "description": "To be used with Session 3 lesson plan.",
        "links": ["KS2_session_3"],
        "url": "KS2_v1/resource_sheets/ks2_s3_1.pdf",
        "page_origin": "#ks2-resource-sheets",
    },
    "KS2_S3_2": {
        "title": "KS2 ‒ Session 3 ‒ Sheet 2",
        "description": "To be used with Session 3 lesson plan.",
        "links": ["KS2_session_3"],
        "url": "KS2_v1/resource_sheets/ks2_s3_2.pdf",
        "page_origin": "#ks2-resource-sheets",
    },
    # ...Session 4...#
    "KS2_S4_1": {
        "title": "KS2 ‒ Session 4 ‒ Sheet 1",
        "description": "To be used with Session 4 lesson plan.",
        "links": ["KS2_session_4"],
        "url": "KS2_v1/resource_sheets/ks2_s4_1.pdf",
        "page_origin": "#ks2-resource-sheets",
    },
    # ............KS2 Extras............#
    # ...KS2 Program Solutions...#
    "program_solutions_17-28": {
        "title": "Program Solutions 17 ‒ 28",
        "description": "A table showing the best solutions to levels 17 to 28 of Rapid Router.",
        "links": [
            "program_solutions_1-16",
            "program_solutions_19-43",
            "program_solutions_44-79",
            "program_solutions_80-109",
        ],
        "url": "KS2_v1/ks2_program_solutions.pdf",
        "page_origin": "#ks2-solutions",
    },
    # ...KS2 Activity Set...#
    "KS2_activity_set": {
        "title": "KS2 ‒ Activity Set",
        "description": "This activity set gives you an overview of the Key Stage 2 module. It covers the "
        "resources that will be useful, learning expectations and teacher preparation.",
        "links": None,
        "url": "KS2_v1/ks2_activity_set.pdf",
        "page_origin": "#ks2-activity",
    },
    # ...KS2 Assets...#
    "KS2_assets": {
        "title": "KS2 ‒ Assets",
        "description": "Blockly statements for Key Stage 2 students that can be cut out for offline activities.",
        "links": ["KS2_code_wall_cards"],
        "url": "KS2_v1/assets/ks2_assets.pdf",
        "page_origin": "#ks2-assets",
    },
    "KS2_code_wall_cards": {
        "title": "KS2 ‒ Code Wall Cards",
        "description": "Keywords that can be displayed in the classroom.",
        "links": ["KS2_assets"],
        "url": "KS2_v1/assets/ks2_code_wall_cards.pdf",
        "page_origin": "#ks2-assets",
    },
    # ...KS2 Assessments...#
    "KS2_assessment_guide": {
        "title": "KS2 ‒ Assessment Guide",
        "description": "Information on how to use the assessment sheets available.",
        "links": ["KS2_self_assessment_sheet", "KS2_teacher_record_sheet"],
        "url": "KS2_v1/assessments/ks2_assessment_sheet.pdf",
        "page_origin": "#ks2-assessments",
    },
    "KS2_self_assessment_sheet": {
        "title": "KS2 ‒ Self Assessment Sheet",
        "description": "Document for students to self assess their understanding of key concepts.",
        "links": ["KS2_assessment_guide", "KS2_teacher_record_sheet"],
        "url": "KS2_v1/assessments/ks2_self_assessment_sheet.pdf",
        "page_origin": "#ks2-assessments",
    },
    "KS2_teacher_record_sheet": {
        "title": "KS2 ‒ Teacher Record Sheet",
        "description": "Document for the teacher to record pupils’ progress.",
        "links": ["KS2_assessment_guide", "KS2_self_assessment_sheet"],
        "url": "KS2_v1/assessments/ks2_teacher_record_sheet.pdf",
        "page_origin": "#ks2-assessments",
    },
    # .........LKS3 sessions...........#
    "Lower_KS3_session_1": {
        "title": "LKS3 ‒ Session 1",
        "description": "Recap: Using a simple ‘repeat’ loop",
        "links": ["Lower_KS3_S1_1"],
        "url": "KS3_v1/sessions/ks3_s1.pdf",
        "page_origin": "#lks3-sessions",
        "levels_covered": "Levels 19–28",
    },
    "Lower_KS3_session_2": {
        "title": "LKS3 ‒ Session 2",
        "description": "Using repeat with a condition on a simple route: ‘repeat until’",
        "links": ["Lower_KS3_S2_1", "Lower_KS3_S2_2"],
        "url": "KS3_v1/sessions/ks3_s2.pdf",
        "video": "https://www.youtube.com/embed/EDwc80X_LQI",
        "video_download_link": "videos/LKS2_2_Ana_discusses_repeat_until_and_repeat_while_functions.mp4",
        "page_origin": "#lks3-sessions",
        "levels_covered": "Levels 29–32",
    },
    "Lower_KS3_session_3": {
        "title": "LKS3 ‒ Session 3",
        "description": "Using simple selection and repetition: Repeat until at destination ‘if…do’",
        "links": ["Lower_KS3_S3_1"],
        "url": "KS3_v1/sessions/ks3_s3.pdf",
        "video": "https://www.youtube.com/embed/O0RXbJyYq8o",
        "video_download_link": "videos/LKS2_3_Chris_and_Matt_introduce_if_statements.mp4",
        "page_origin": "#lks3-sessions",
        "levels_covered": "Levels 33–35",
    },
    "Lower_KS3_session_4": {
        "title": "LKS3 ‒ Session 4",
        "description": "General solution using repeat until and if…do… (including else if for more able students)",
        "links": [
            "Lower_KS3_S4_1",
            "Lower_KS3_S4_2",
            "Lower_KS3_S4_3",
            "Lower_KS3_S4_4",
        ],
        "url": "KS3_v1/sessions/ks3_s4.pdf",
        "video": "https://www.youtube.com/embed/GUUJSRuAyU0",
        "video_download_link": "videos/LKS2_4_Helen_explains_if_else_statements.mp4",
        "page_origin": "#lks3-sessions",
        "levels_covered": "Levels 36–38",
    },
    "Lower_KS3_session_5": {
        "title": "LKS3 ‒ Session 5",
        "description": "Group extension ‒ Explain why the general program does not work for some more complex maps",
        "links": ["Lower_KS3_S5_1"],
        "url": "KS3_v1/sessions/ks3_s5.pdf",
        "page_origin": "#lks3-sessions",
        "levels_covered": "Levels 39–43",
    },
    # .........IKS3 sessions...........#
    "Intermediate_KS3_session_6": {
        "title": "IKS3 ‒ Session 6",
        "description": "Traffic lights: understanding variables and the if do…if else statements",
        "links": ["Intermediate_KS3_S6_1"],
        "url": "KS3_v1/sessions/ks3_s6.pdf",
        "video": "https://www.youtube.com/embed/UFpsEjaB_DI",
        "video_download_link": "videos/LKS2_6_Will_discusses_variables.mp4",
        "page_origin": "#iks3-sessions",
        "levels_covered": "Levels 44–47",
    },
    "Intermediate_KS3_session_7": {
        "title": "IKS3 ‒ Session 7",
        "description": "Applying their programming knowledge to create a game challenge",
        "links": ["Intermediate_KS3_S7_1", "Intermediate_KS3_S7_2"],
        "url": "KS3_v1/sessions/ks3_s7.pdf",
        "video": "https://www.youtube.com/embed/vFGd0v3msRE",
        "video_download_link": "videos/KS1_7_Mahana_explains_repeat_functions.mp4",
        "page_origin": "#iks3-sessions",
        "levels_covered": "Level creator",
    },
    "Intermediate_KS3_session_8": {
        "title": "IKS3 ‒ Session 8",
        "description": "Applying their programming knowledge to play and evaluate a game challenge",
        "links": ["Intermediate_KS3_self_assessment_sheet"],
        "url": "KS3_v1/sessions/ks3_s8.pdf",
        "page_origin": "#iks3-sessions",
        "levels_covered": "Shared level",
    },
    "Intermediate_KS3_session_9": {
        "title": "IKS3 ‒ Session 9",
        "description": "What do we already know? (Recap the Blockly commands previously encountered)",
        "links": ["Intermediate_KS3_S9_1"],
        "url": "KS3_v1/sessions/ks3_s9.pdf",
        "page_origin": "#iks3-sessions",
        "levels_covered": "Levels 51–60",
    },
    "Intermediate_KS3_session_10": {
        "title": "IKS3 ‒ Session 10",
        "description": "Breaking down the problem in chunks (understanding procedures)",
        "links": ["Intermediate_KS3_S10_1", "Intermediate_KS3_S10_2"],
        "url": "KS3_v1/sessions/ks3_s10.pdf",
        "video": "https://www.youtube.com/embed/zsWwscJrEhs",
        "video_download_link": "videos/LKS3_Ed_Armitage_explains_functions_procedures.mp4",
        "page_origin": "#iks3-sessions",
        "levels_covered": "Levels 61–67",
    },
    # ........UKS3 sessions...........#
    "Upper_KS3_session_11": {
        "title": "UKS3 ‒ Session 11",
        "description": "Switching from Blockly to Python",
        "links": ["Upper_KS3_S11_1", "Upper_KS3_S11_2"],
        "url": "KS3_v1/sessions/ks3_s11.pdf",
        "video": "https://www.youtube.com/embed/5atj2caRjyA",
        "video_download_link": "videos/LKS3_Kenny_introduces_real_programming_language_Python.mp4",
        "page_origin": "#uks3-sessions",
        "levels_covered": "Levels 80–84",
    },
    "Upper_KS3_session_12": {
        "title": "UKS3 ‒ Session 12",
        "description": "Understanding more Python commands (while, if…elif…else)",
        "links": ["Upper_KS3_S12_1"],
        "url": "KS3_v1/sessions/ks3_s12.pdf",
        "page_origin": "#uks3-sessions",
        "levels_covered": "Levels 85–91",
    },
    "Upper_KS3_session_13": {
        "title": "UKS3 ‒ Session 13",
        "description": "Writing basic code directly in Python (forwards, turn, print, repetition)",
        "links": ["Upper_KS3_S13_1", "Upper_KS3_S13_2", "Upper_KS3_S13_3"],
        "url": "KS3_v1/sessions/ks3_s13.pdf",
        "page_origin": "#uks3-sessions",
        "levels_covered": "Levels 92–97",
    },
    "Upper_KS3_session_14": {
        "title": "UKS3 ‒ Session 14",
        "description": "Flying Solo with Python! Programming independently using selection, defining "
        "procedures/functions",
        "links": ["Upper_KS3_S14_1", "Upper_KS3_S14_2"],
        "url": "KS3_v1/sessions/ks3_s14.pdf",
        "page_origin": "#uks3-sessions",
        "levels_covered": "Levels 98–105",
    },
    "Upper_KS3_session_15": {
        "title": "UKS3 ‒ Session 15",
        "description": "Increase the challenge ‒ creating new Python variables, incrementing variables",
        "links": ["Upper_KS3_S15_1", "Upper_KS3_S15_2"],
        "url": "KS3_v1/sessions/ks3_s15.pdf",
        "page_origin": "#uks3-sessions",
        "levels_covered": "Levels 106–109",
    },
    "Upper_KS3_session_16": {
        "title": "UKS3 ‒ Session 16",
        "description": "Assessment session ‒ applying your coding knowledge to create a game challenge for a partner",
        "links": ["Upper_KS3_S16_1", "Upper_KS3_S16_2"],
        "url": "KS3_v1/sessions/ks3_s16.pdf",
        "page_origin": "#uks3-sessions",
        "levels_covered": "Level creator",
    },
    # .........LKS3 Resource Sheets.........#
    # ...Session 1...#
    "Lower_KS3_S1_1": {
        "title": "LKS3 ‒ Session 1 ‒ Sheet 1",
        "description": "To be used with Session 1 lesson plan.",
        "links": ["Lower_KS3_session_1"],
        "url": "KS3_v1/resource_sheets/ks3_s1_1.pdf",
        "page_origin": "#lks3-resource-sheets",
    },
    # ... Session 2 ... #
    "Lower_KS3_S2_1": {
        "title": "LKS3 ‒ Session 2 ‒ Sheet 1",
        "description": "To be used with Session 2 lesson plan.",
        "links": ["Lower_KS3_session_2"],
        "url": "KS3_v1/resource_sheets/ks3_s2_1.pdf",
        "page_origin": "#lks3-resource-sheets",
    },
    "Lower_KS3_S2_2": {
        "title": "LKS3 ‒ Session 2 ‒ Sheet 2",
        "description": "To be used with Session 2 lesson plan.",
        "links": ["Lower_KS3_session_2"],
        "url": "KS3_v1/resource_sheets/ks3_s2_2.pdf",
        "page_origin": "#lks3-resource-sheets",
    },
    # ...Session 3...#
    "Lower_KS3_S3_1": {
        "title": "LKS3 ‒ Session 3 ‒ Sheet 1",
        "description": "To be used with Session 3 lesson plan.",
        "links": ["Lower_KS3_session_3"],
        "url": "KS3_v1/resource_sheets/ks3_s3_1.pdf",
        "page_origin": "#lks3-resource-sheets",
    },
    # ...Session 4...#
    "Lower_KS3_S4_1": {
        "title": "LKS3 ‒ Session 4 ‒ Sheet 1",
        "description": "To be used with Session 4 lesson plan.",
        "links": ["Lower_KS3_session_4"],
        "url": "KS3_v1/resource_sheets/ks3_s4_1.pdf",
        "page_origin": "#lks3-resource-sheets",
    },
    "Lower_KS3_S4_2": {
        "title": "LKS3 ‒ Session 4 ‒ Sheet 2",
        "description": "To be used with Session 4 lesson plan.",
        "links": ["Lower_KS3_session_4"],
        "url": "KS3_v1/resource_sheets/ks3_s4_2.pdf",
        "page_origin": "#lks3-resource-sheets",
    },
    "Lower_KS3_S4_3": {
        "title": "LKS3 ‒ Session 4 ‒ Sheet 3",
        "description": "To be used with Session 4 lesson plan.",
        "links": ["Lower_KS3_session_4"],
        "url": "KS3_v1/resource_sheets/ks3_s4_3.pdf",
        "page_origin": "#lks3-resource-sheets",
    },
    "Lower_KS3_S4_4": {
        "title": "LKS3 ‒ Session 4 ‒ Sheet 4",
        "description": "To be used with Session 4 lesson plan.",
        "links": ["Lower_KS3_session_4"],
        "url": "KS3_v1/resource_sheets/ks3_s4_4.pdf",
        "page_origin": "#lks3-resource-sheets",
    },
    # ...Session 5...#
    "Lower_KS3_S5_1": {
        "title": "LKS3 ‒ Session 5 ‒ Sheet 1",
        "description": "To be used with Session 5 lesson plan.",
        "links": ["Lower_KS3_session_5"],
        "url": "KS3_v1/resource_sheets/ks3_s5_1.pdf",
        "page_origin": "#lks3-resource-sheets",
    },
    # .........IKS3 Resource Sheets.........#
    # ...Session 6...#
    "Intermediate_KS3_S6_1": {
        "title": "IKS3 ‒ Session 6 ‒ Sheet 1",
        "description": "To be used with Session 6 lesson plan.",
        "links": ["Intermediate_KS3_session_6"],
        "url": "KS3_v1/resource_sheets/ks3_s6_1.pdf",
        "page_origin": "#iks3-resource-sheets",
    },
    "Intermediate_KS3_S6_2": {
        "title": "IKS3 ‒ Session 6 ‒ Sheet 2",
        "description": "To be used with Session 6 lesson plan.",
        "links": ["Intermediate_KS3_session_6"],
        "url": "KS3_v1/resource_sheets/ks3_s6_2.pdf",
        "page_origin": "#iks3-resource-sheets",
    },
    # ...Session 7...#
    "Intermediate_KS3_S7_1": {
        "title": "IKS3 ‒ Session 7 ‒ Sheet 1",
        "description": "To be used with Session 7 lesson plan.",
        "links": ["Intermediate_KS3_session_7"],
        "url": "KS3_v1/resource_sheets/ks3_s7_1.pdf",
        "page_origin": "#iks3-resource-sheets",
    },
    "Intermediate_KS3_S7_2": {
        "title": "IKS3 ‒ Session 7 ‒ Sheet 2",
        "description": "To be used with Session 7 lesson plan.",
        "links": ["Intermediate_KS3_session_7"],
        "url": "KS3_v1/resource_sheets/ks3_s7_2.pdf",
        "page_origin": "#iks3-resource-sheets",
    },
    # ...Session 9...#
    "Intermediate_KS3_S9_1": {
        "title": "IKS3 ‒ Session 9 ‒ Sheet 1",
        "description": "To be used with Session 9 lesson plan.",
        "links": ["Intermediate_KS3_session_9"],
        "url": "KS3_v1/resource_sheets/ks3_s9_1.pdf",
        "page_origin": "#iks3-resource-sheets",
    },
    "Intermediate_KS3_S9_2": {
        "title": "IKS3 ‒ Session 9 ‒ Sheet 2",
        "description": "To be used with Session 9 lesson plan.",
        "links": ["Intermediate_KS3_session_9"],
        "url": "KS3_v1/resource_sheets/ks3_s9_2.pdf",
        "page_origin": "#iks3-resource-sheets",
    },
    # ...Session 10...#
    "Intermediate_KS3_S10_1": {
        "title": "IKS3 ‒ Session 10 ‒ Sheet 1",
        "description": "To be used with Session 10 lesson plan.",
        "links": ["Intermediate_KS3_session_10"],
        "url": "KS3_v1/resource_sheets/ks3_s10_1.pdf",
        "page_origin": "#iks3-resource-sheets",
    },
    "Intermediate_KS3_S10_2": {
        "title": "IKS3 ‒ Session 10 ‒ Sheet 2",
        "description": "To be used with Session 10 lesson plan.",
        "links": ["Intermediate_KS3_session_10"],
        "url": "KS3_v1/resource_sheets/ks3_s10_2.pdf",
        "page_origin": "#iks3-resource-sheets",
    },
    # .........UKS3 Resource Sheets.........#
    # ...Session 11...#
    "Upper_KS3_S11_1": {
        "title": "UKS3 ‒ Session 11 ‒ Sheet 1",
        "description": "To be used with Session 11 lesson plan.",
        "links": ["Upper_KS3_session_11"],
        "url": "KS3_v1/resource_sheets/ks3_s11_1.pdf",
        "page_origin": "#uks3-resource-sheets",
    },
    "Upper_KS3_S11_2": {
        "title": "UKS3 ‒ Session 11 ‒ Sheet 2",
        "description": "To be used with Session 11 lesson plan.",
        "links": ["Upper_KS3_session_11"],
        "url": "KS3_v1/resource_sheets/ks3_s11_2.pdf",
        "page_origin": "#uks3-resource-sheets",
    },
    # ...Session 12...#
    "Upper_KS3_S12_1": {
        "title": "UKS3 ‒ Session 12 ‒ Sheet 1",
        "description": "To be used with Session 12 lesson plan.",
        "links": ["Upper_KS3_session_12"],
        "url": "KS3_v1/resource_sheets/ks3_s12_1.pdf",
        "page_origin": "#uks3-resource-sheets",
    },
    # ...Session 13...#
    "Upper_KS3_S13_1": {
        "title": "UKS3 ‒ Session 13 ‒ Sheet 1",
        "description": "To be used with Session 13 lesson plan.",
        "links": ["Upper_KS3_session_13"],
        "url": "KS3_v1/resource_sheets/ks3_s13_1.pdf",
        "page_origin": "#uks3-resource-sheets",
    },
    "Upper_KS3_S13_2": {
        "title": "UKS3 ‒ Session 13 ‒ Sheet 2",
        "description": "To be used with Session 13 lesson plan.",
        "links": ["Upper_KS3_session_13"],
        "url": "KS3_v1/resource_sheets/ks3_s13_2.pdf",
        "page_origin": "#uks3-resource-sheets",
    },
    "Upper_KS3_S13_3": {
        "title": "UKS3 ‒ Session 13 ‒ Sheet 3",
        "description": "To be used with Session 13 lesson plan.",
        "links": ["Upper_KS3_session_13"],
        "url": "KS3_v1/resource_sheets/ks3_s13_3.pdf",
        "page_origin": "#uks3-resource-sheets",
    },
    # ...Session 14...#
    "Upper_KS3_S14_1": {
        "title": "UKS3 ‒ Session 14 ‒ Sheet 1",
        "description": "To be used with Session 14 lesson plan.",
        "links": ["Upper_KS3_session_14"],
        "url": "KS3_v1/resource_sheets/ks3_s14_1.pdf",
        "page_origin": "#uks3-resource-sheets",
    },
    # ...Session 15...#
    "Upper_KS3_S15_1": {
        "title": "UKS3 ‒ Session 15 ‒ Sheet 1",
        "description": "To be used with Session 15 lesson plan.",
        "links": ["Upper_KS3_session_15"],
        "url": "KS3_v1/resource_sheets/ks3_s15_1.pdf",
        "page_origin": "#uks3-resource-sheets",
    },
    "Upper_KS3_S15_2": {
        "title": "UKS3 ‒ Session 15 ‒ Sheet 2",
        "description": "To be used with Session 15 lesson plan.",
        "links": ["Upper_KS3_session_15"],
        "url": "KS3_v1/resource_sheets/ks3_s15_2.pdf",
        "page_origin": "#uks3-resource-sheets",
    },
    # ...Session 16...#
    "Upper_KS3_S16_1": {
        "title": "UKS3 ‒ Session 16 ‒ Sheet 1",
        "description": "To be used with Session 16 lesson plan.",
        "links": ["Upper_KS3_session_16"],
        "url": "KS3_v1/resource_sheets/ks3_s16_1.pdf",
        "page_origin": "#uks3-resource-sheets",
    },
    "Upper_KS3_S16_2": {
        "title": "UKS3 ‒ Session 16 ‒ Sheet 2",
        "description": "To be used with Session 16 lesson plan.",
        "links": ["Upper_KS3_session_16"],
        "url": "KS3_v1/resource_sheets/ks3_s16_2.pdf",
        "page_origin": "#uks3-resource-sheets",
    },
    # ............KS3 Extras............#
    # ...KS3 Program Solutions...#
    "program_solutions_19-43": {
        "title": "Program Solutions 19 ‒ 43",
        "description": "A table showing the best solutions to levels 19 to 43 of Rapid Router.",
        "links": [
            "program_solutions_1-16",
            "program_solutions_17-28",
            "program_solutions_44-79",
            "program_solutions_80-109",
        ],
        "url": "KS3_v1/program_solutions/lks3_program_solutions.pdf",
        "page_origin": "#ks3-solutions",
    },
    "program_solutions_44-79": {
        "title": "Program Solutions 44 ‒ 79",
        "description": "A table showing the best solutions to levels 44 to 79 of Rapid Router.",
        "links": [
            "program_solutions_1-16",
            "program_solutions_17-28",
            "program_solutions_19-43",
            "program_solutions_80-109",
        ],
        "url": "KS3_v1/program_solutions/iks3_program_solutions.pdf",
        "page_origin": "#ks3-solutions",
    },
    "program_solutions_80-109": {
        "title": "Program Solutions 80 ‒ 109",
        "description": "A table showing the best solutions to levels 80 to 109 of Rapid Router.",
        "links": [
            "program_solutions_1-16",
            "program_solutions_17-28",
            "program_solutions_19-43",
            "program_solutions_44-79",
        ],
        "url": "KS3_v1/program_solutions/uks3_program_solutions.pdf",
        "page_origin": "#ks3-solutions",
    },
    # ...KS3 Activity Sets...#
    "Lower_KS3_activity_set": {
        "title": "Lower KS3 ‒ Activity Set",
        "description": "This activity set gives you an overview of the Lower Key Stage 3 module. It covers the "
        "resources that will be useful, learning expectations and teacher preparation.",
        "links": ["Intermediate_KS3_activity_set", "Upper_KS3_activity_set"],
        "url": "KS3_v1/activity_sets/lks3_activity_set.pdf",
        "page_origin": "#ks3-activity",
    },
    "Intermediate_KS3_activity_set": {
        "title": "Intermediate KS3 ‒ Activity Set",
        "description": "This activity set gives you an overview of the Intermediate Key Stage 3 module. It covers the "
        "resources that will be useful, learning expectations and teacher preparation.",
        "links": ["Lower_KS3_activity_set", "Upper_KS3_activity_set"],
        "url": "KS3_v1/activity_sets/iks3_activity_set.pdf",
        "page_origin": "#ks3-activity",
    },
    "Upper_KS3_activity_set": {
        "title": "Upper KS3 ‒ Activity Set",
        "description": "This activity set gives you an overview of the Upper Key Stage 3 module. It covers the "
        "resources that will be useful, learning expectations and teacher preparation.",
        "links": ["Lower_KS3_activity_set", "Intermediate_KS3_activity_set"],
        "url": "KS3_v1/activity_sets/uks3_activity_set.pdf",
        "page_origin": "#ks3-activity",
    },
    # ...KS3 Assets...#
    "Lower_KS3_assets": {
        "title": "Lower KS3 ‒ Assets",
        "description": "Blockly and Python statements for Lower Key Stage 3 students that can be cut out for offline "
        "activities.",
        "links": ["Intermediate_KS3_assets", "Upper_KS3_assets"],
        "url": "KS3_v1/assets/lks3_assets.pdf",
        "page_origin": "#ks3-assets",
    },
    "Intermediate_KS3_assets": {
        "title": "Intermediate KS3 ‒ Assets",
        "description": "Blockly and Python statements for Intermediate Key Stage 3 students that can be cut out for "
        "offline activities.",
        "links": ["Lower_KS3_assets", "Upper_KS3_assets"],
        "url": "KS3_v1/assets/iks3_assets.pdf",
        "page_origin": "#ks3-assets",
    },
    "Upper_KS3_assets": {
        "title": "Upper KS3 ‒ Assets",
        "description": "Blockly and Python statements for Upper Key Stage 3 students that can be cut out for offline "
        "activities.",
        "links": ["Lower_KS3_assets", "Intermediate_KS3_assets"],
        "url": "KS3_v1/assets/uks3_assets.pdf",
        "page_origin": "#ks3-assets",
    },
    # ...KS3 Assessments...#
    "Lower_KS3_assessment_sheet": {
        "title": "Lower KS3 ‒ Assessment Guide",
        "description": "Information on how to use the assessment sheets available.",
        "links": ["Intermediate_KS3_assessment_sheet", "Upper_KS3_assessment_sheet"],
        "url": "KS3_v1/assessments/lks3_assessment_sheet.pdf",
        "page_origin": "#ks3-assessments",
    },
    "Lower_KS3_self_assessment_sheet": {
        "title": "Lower KS3 ‒ Self Assessment Sheet",
        "description": "Document for students to self assess their understanding of key concepts.",
        "links": [
            "Intermediate_KS3_self_assessment_sheet",
            "Upper_KS3_self_assessment_sheet",
        ],
        "url": "KS3_v1/assessments/lks3_self_assessment_sheet.pdf",
        "page_origin": "#ks3-assessments",
    },
    "Lower_KS3_teacher_record_sheet": {
        "title": "Lower KS3 ‒ Teacher Record Sheet",
        "description": "Document to record students' progress.",
        "links": [
            "Intermediate_KS3_teacher_record_sheet",
            "Upper_KS3_teacher_record_sheet",
        ],
        "url": "KS3_v1/assessments/lks3_teacher_record_sheet.pdf",
        "page_origin": "#ks3-assessments",
    },
    "Intermediate_KS3_assessment_sheet": {
        "title": "Intermediate KS3 ‒ Assessment Guide",
        "description": "Information on how to use the assessment sheets available.",
        "links": ["Lower_KS3_assessment_sheet", "Upper_KS3_assessment_sheet"],
        "url": "KS3_v1/assessments/iks3_assessment_sheet.pdf",
        "page_origin": "#ks3-assessments",
    },
    "Intermediate_KS3_self_assessment_sheet": {
        "title": "Intermediate KS3 ‒ Self Assessment Guide",
        "description": "Document for students to self assess their understanding of key concepts.",
        "links": ["Lower_KS3_self_assessment_sheet", "Upper_KS3_self_assessment_sheet"],
        "url": "KS3_v1/assessments/iks3_self_assessment_sheet.pdf",
        "page_origin": "#ks3-assessments",
    },
    "Intermediate_KS3_teacher_record_sheet": {
        "title": "Intermediate KS3 ‒ Teacher Record Sheet",
        "description": "Document to record students' progress.",
        "links": ["Lower_KS3_teacher_record_sheet", "Upper_KS3_teacher_record_sheet"],
        "url": "KS3_v1/assessments/iks3_teacher_record_sheet.pdf",
        "page_origin": "#ks3-assessments",
    },
    "Upper_KS3_assessment_sheet": {
        "title": "Upper KS3 ‒ Assessment Guide",
        "description": "Information on how to use the assessment sheets available.",
        "links": ["Lower_KS3_assessment_sheet", "Intermediate_KS3_assessment_sheet"],
        "url": "KS3_v1/assessments/uks3_assessment_sheet.pdf",
        "page_origin": "#ks3-assessments",
    },
    "Upper_KS3_self_assessment_sheet": {
        "title": "Upper KS3 ‒ Self Assessment Guide",
        "description": "Information on how to use the assessment sheets available.",
        "links": [
            "Lower_KS3_self_assessment_sheet",
            "Intermediate_KS3_self_assessment_sheet",
        ],
        "url": "KS3_v1/assessments/uks3_self_assessment_sheet.pdf",
        "page_origin": "#ks3-assessments",
    },
    "Upper_KS3_teacher_record_sheet": {
        "title": "Upper KS3 ‒ Teacher Record Sheet",
        "description": "Document to record students' progress.",
        "links": [
            "Lower_KS3_teacher_record_sheet",
            "Intermediate_KS3_teacher_record_sheet",
        ],
        "url": "KS3_v1/assessments/uks3_teacher_record_sheet.pdf",
        "page_origin": "#ks3-assessments",
    },
    # ...Kurono...#
    # ...Teacher Guides...#
    "Kurono_teacher_guide_1": {
        "title": "Teacher Guide 1",
        "description": "Challenge 1",
        "links": ["Kurono_challenge_1", "Kurono_teacher_guide_2"],
        "url": "kurono_v2/teacher_guides/teacher_guide_S1_v1.pdf",
        "page_origin": "#ks3-sessions",
    },
    "Kurono_teacher_guide_2": {
        "title": "Teacher Guide 2",
        "description": "Challenge 2",
        "links": ["Kurono_challenge_2", "Kurono_teacher_guide_1"],
        "url": "kurono_v2/teacher_guides/teacher_guide_S2_v1.pdf",
        "page_origin": "#ks3-sessions",
    },
    # ...Resource Sheets...#
    "Kurono_API_guide": {
        "title": "Kurono API guide",
        "description": "To be used to code the Kurono game.",
        "links": [],
        "url": "kurono_v2/resource_sheets/kurono_API_guide_v1.pdf",
        "page_origin": "#ks3-resource-sheets",
    },
    "Kurono_user_guide": {
        "title": "Kurono User Guide",
        "description": "",
        "links": [],
        "url": "kurono_v2/resource_sheets/user_guide_v1.pdf",
        "page_origin": "#ks3-resource-sheets",
    },
    # ...Intermediate Python Challenges...#
    "Kurono_challenge_1": {
        "title": "Student Challenge 1",
        "description": "Move your avatar",
        "links": ["Kurono_challenge_2"],
        "url": "kurono_v2/student_challenges/SC1_v1.pdf",
        "page_origin": "#ks3-challenges",
    },
    "Kurono_challenge_2": {
        "title": "Student Challenge 2",
        "description": "Obstacles and Artefacts",
        "links": ["Kurono_challenge_1"],
        "url": "kurono_v2/student_challenges/SC2_v1.pdf",
        "page_origin": "#ks3-challenges",
    },
}
