codeforlife-portal 8.9.0__tar.gz → 8.9.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of codeforlife-portal might be problematic. Click here for more details.

Files changed (556) hide show
  1. {codeforlife_portal-8.9.0/codeforlife_portal.egg-info → codeforlife_portal-8.9.1}/PKG-INFO +48 -4
  2. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1/codeforlife_portal.egg-info}/PKG-INFO +48 -4
  3. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/codeforlife_portal.egg-info/requires.txt +61 -3
  4. codeforlife_portal-8.9.1/portal/__init__.py +1 -0
  5. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/partials/_header.scss +19 -13
  6. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/partials/_images.scss +1 -1
  7. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/partials/header.html +63 -70
  8. codeforlife_portal-8.9.0/portal/__init__.py +0 -1
  9. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/LICENSE.md +0 -0
  10. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/MANIFEST.in +0 -0
  11. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/README.md +0 -0
  12. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/codeforlife_portal.egg-info/SOURCES.txt +0 -0
  13. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/codeforlife_portal.egg-info/dependency_links.txt +0 -0
  14. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/codeforlife_portal.egg-info/not-zip-safe +0 -0
  15. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/codeforlife_portal.egg-info/top_level.txt +0 -0
  16. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/deploy/__init__.py +0 -0
  17. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/deploy/captcha.py +0 -0
  18. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/deploy/middleware/__init__.py +0 -0
  19. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/deploy/middleware/admin_access.py +0 -0
  20. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/deploy/middleware/basicauth.py +0 -0
  21. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/deploy/middleware/exceptionlogging.py +0 -0
  22. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/deploy/middleware/maintenance.py +0 -0
  23. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/deploy/middleware/screentime_warning.py +0 -0
  24. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/deploy/middleware/security.py +0 -0
  25. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/deploy/middleware/session_timeout.py +0 -0
  26. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/deploy/middleware/tmp_basic_auth.py +0 -0
  27. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/deploy/static/apple-touch-icon-120x120.png +0 -0
  28. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/deploy/static/apple-touch-icon-152x152.png +0 -0
  29. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/deploy/static/apple-touch-icon-180x180.png +0 -0
  30. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/deploy/static/apple-touch-icon-76x76.png +0 -0
  31. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/deploy/static/apple-touch-icon.png +0 -0
  32. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/deploy/static/robots.txt +0 -0
  33. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/deploy/templates/deploy/csrf_failure.html +0 -0
  34. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/deploy/views.py +0 -0
  35. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/admin.py +0 -0
  36. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/app_settings.py +0 -0
  37. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/backends.py +0 -0
  38. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/beta.py +0 -0
  39. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/context_processors.py +0 -0
  40. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/forms/__init__.py +0 -0
  41. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/forms/admin.py +0 -0
  42. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/forms/dotmailer.py +0 -0
  43. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/forms/error_messages.py +0 -0
  44. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/forms/invite_teacher.py +0 -0
  45. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/forms/organisation.py +0 -0
  46. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/forms/play.py +0 -0
  47. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/forms/registration.py +0 -0
  48. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/forms/teach.py +0 -0
  49. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/handlers.py +0 -0
  50. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/helpers/__init__.py +0 -0
  51. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/helpers/captcha.py +0 -0
  52. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/helpers/decorators.py +0 -0
  53. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/helpers/password.py +0 -0
  54. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/helpers/ratelimit.py +0 -0
  55. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/helpers/regexes.py +0 -0
  56. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/helpers/request_handlers.py +0 -0
  57. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/migrations/0001_squashed_0041_new_news.py +0 -0
  58. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/migrations/0042_school_country.py +0 -0
  59. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/migrations/0043_auto_20150430_0952.py +0 -0
  60. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/migrations/0044_auto_20150430_0959.py +0 -0
  61. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/migrations/0045_auto_20150430_1446.py +0 -0
  62. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/migrations/0046_auto_20150723_1101.py +0 -0
  63. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/migrations/0047_remove_userprofile_avatar.py +0 -0
  64. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/migrations/0048_plural_management_frontnews.py +0 -0
  65. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/migrations/0049_refactor_emailverifications.py +0 -0
  66. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/migrations/0050_refactor_emailverifications_2.py +0 -0
  67. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/migrations/0051_add_missing_ev_records.py +0 -0
  68. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/migrations/0052_refactor_emailverifications_3.py +0 -0
  69. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/migrations/0053_refactor_teacher_student_1.py +0 -0
  70. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/migrations/0054_pending_join_request_can_be_blank.py +0 -0
  71. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/migrations/0055_add_preview_user.py +0 -0
  72. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/migrations/0056_remove_preview_user.py +0 -0
  73. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/migrations/0057_delete_frontpagenews.py +0 -0
  74. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/migrations/0058_move_to_common_models.py +0 -0
  75. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/migrations/0059_move_email_verifications_to_common.py +0 -0
  76. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/migrations/0060_delete_guardian.py +0 -0
  77. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/migrations/0061_make_portaladmin_teacher.py +0 -0
  78. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/migrations/0062_verify_portaladmin.py +0 -0
  79. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/migrations/__init__.py +0 -0
  80. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/mixins/__init__.py +0 -0
  81. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/mixins/cron_mixin.py +0 -0
  82. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/models.py +0 -0
  83. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/permissions/__init__.py +0 -0
  84. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/permissions/is_cron_request_from_google.py +0 -0
  85. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/pipeline_compilers/__init__.py +0 -0
  86. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/pipeline_compilers/libsass_compiler.py +0 -0
  87. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
  88. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/fonts/bootstrap/glyphicons-halflings-regular.svg +0 -0
  89. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  90. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
  91. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
  92. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/10_years_anniversary.png +0 -0
  93. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/10x_logo.png +0 -0
  94. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/RR_logo_grass_background.png +0 -0
  95. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/RR_logo_green.svg +0 -0
  96. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/RR_logo_simple.png +0 -0
  97. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/about_us_cfl.jpg +0 -0
  98. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/about_us_hero.jpg +0 -0
  99. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/about_us_ocado.jpg +0 -0
  100. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/barefoot_logo.png +0 -0
  101. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/bcs_logo.png +0 -0
  102. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/clubs.png +0 -0
  103. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/coding_club_hero.jpg +0 -0
  104. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/coding_club_python_pack.png +0 -0
  105. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/colorboxImages/border.png +0 -0
  106. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/colorboxImages/controls.png +0 -0
  107. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/colorboxImages/loading.gif +0 -0
  108. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/colorboxImages/loading_background.png +0 -0
  109. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/colorboxImages/overlay.png +0 -0
  110. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/confirmation_tick.png +0 -0
  111. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/cross.png +0 -0
  112. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/dee.png +0 -0
  113. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/facebook.png +0 -0
  114. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/favicon.ico +0 -0
  115. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/get_involved_hero.png +0 -0
  116. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/gitbook.png +0 -0
  117. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/gitbook_space.png +0 -0
  118. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/github.png +0 -0
  119. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/github_hero.png +0 -0
  120. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/gla_logo.png +0 -0
  121. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/hamburger.png +0 -0
  122. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/help_and_support_hero.jpg +0 -0
  123. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/home_educate.png +0 -0
  124. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/home_educate_hero.jpg +0 -0
  125. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/home_learning_hero.jpg +0 -0
  126. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/home_play.png +0 -0
  127. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/home_play_hero.jpg +0 -0
  128. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/hope_logo.png +0 -0
  129. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/howe_dell_1.png +0 -0
  130. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/howe_dell_2.png +0 -0
  131. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/howe_dell_3.png +0 -0
  132. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/icl_logo.png +0 -0
  133. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/icon_controller.png +0 -0
  134. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/icon_free.png +0 -0
  135. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/icon_globe.png +0 -0
  136. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/icon_piechart.png +0 -0
  137. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/icon_step_by_step.png +0 -0
  138. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/icon_tracking.png +0 -0
  139. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/icon_uk_flag.png +0 -0
  140. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/kirsty.png +0 -0
  141. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/logo_cfl.png +0 -0
  142. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/logo_cfl_powered.svg +0 -0
  143. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/logo_cfl_reminder_cards.jpg +0 -0
  144. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/logo_cfl_white_landscape.png +0 -0
  145. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/logo_ocado.png +0 -0
  146. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/logo_ocado_group.png +0 -0
  147. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/logo_ocado_group.svg +0 -0
  148. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/logo_ocado_group_white.svg +0 -0
  149. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/logo_python_den.svg +0 -0
  150. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/long_europe_map.png +0 -0
  151. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/mc_saatchi_logo.png +0 -0
  152. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/nigel.png +0 -0
  153. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/oval_blue.svg +0 -0
  154. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/oval_pink.svg +0 -0
  155. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/oval_yellow.svg +0 -0
  156. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/paper_plane.png +0 -0
  157. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/phil.png +0 -0
  158. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/polygon_blue.svg +0 -0
  159. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/polygon_pink.svg +0 -0
  160. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/polygon_yellow.svg +0 -0
  161. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/pressure_cooker_logo.png +0 -0
  162. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/python_den.png +0 -0
  163. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/python_den_banner.svg +0 -0
  164. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/rapid_router.png +0 -0
  165. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/rapid_router_landing_hero.png +0 -0
  166. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/rapidrouter.png +0 -0
  167. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/resources_hero.jpg +0 -0
  168. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/resources_montage.jpg +0 -0
  169. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/reuben.png +0 -0
  170. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/rob.png +0 -0
  171. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/rr_advanced.png +0 -0
  172. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/rr_beginner.png +0 -0
  173. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/rr_intermediate.png +0 -0
  174. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/sadface.png +0 -0
  175. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/sharon_harrison.jpg +0 -0
  176. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/sian.png +0 -0
  177. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/teaching_resources_hero.jpg +0 -0
  178. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/ten_year_map_pin.svg +0 -0
  179. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/thumbnail_educate_rapid_router.png +0 -0
  180. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/thumbnail_educate_resources.png +0 -0
  181. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/thumbnail_intro_c4l.jpg +0 -0
  182. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/thumbnail_play_rapid_router.png +0 -0
  183. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/thumbnail_python_den.png +0 -0
  184. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/twitter.png +0 -0
  185. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/universities.png +0 -0
  186. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/img/wes.png +0 -0
  187. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/bootstrap.min.js +0 -0
  188. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/carouselCards.js +0 -0
  189. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/common.js +0 -0
  190. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/independentLogin.js +0 -0
  191. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/independentRegistration.js +0 -0
  192. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/join_create_game_toggle.js +0 -0
  193. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/jquery.placeholder.js +0 -0
  194. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/levelControl.js +0 -0
  195. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/lib/jquery-video-lightning.js +0 -0
  196. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/lib/jquery.colorbox.js +0 -0
  197. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/lib/jquery.easy-ticker.js +0 -0
  198. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/lib/jquery.min.js +0 -0
  199. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/lib/modernizr-build.js +0 -0
  200. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/lib/papaparse.min.js +0 -0
  201. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/organisation_manage.js +0 -0
  202. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/passwordStrength.js +0 -0
  203. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/play.js +0 -0
  204. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/resetPassword.js +0 -0
  205. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/riveted.min.js +0 -0
  206. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/school.js +0 -0
  207. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/sticky_subnav.js +0 -0
  208. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/studentLogin.js +0 -0
  209. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/teach_browser.js +0 -0
  210. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/teach_class.js +0 -0
  211. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/teacherEditStudent.js +0 -0
  212. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/teacherLogin.js +0 -0
  213. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/js/tenYearMap.js +0 -0
  214. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_alerts.scss +0 -0
  215. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_badges.scss +0 -0
  216. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_breadcrumbs.scss +0 -0
  217. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_button-groups.scss +0 -0
  218. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_buttons.scss +0 -0
  219. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_carousel.scss +0 -0
  220. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_close.scss +0 -0
  221. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_code.scss +0 -0
  222. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_component-animations.scss +0 -0
  223. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_dropdowns.scss +0 -0
  224. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_forms.scss +0 -0
  225. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_glyphicons.scss +0 -0
  226. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_grid.scss +0 -0
  227. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_input-groups.scss +0 -0
  228. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_jumbotron.scss +0 -0
  229. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_labels.scss +0 -0
  230. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_list-group.scss +0 -0
  231. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_media.scss +0 -0
  232. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_mixins.scss +0 -0
  233. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_modals.scss +0 -0
  234. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_navbar.scss +0 -0
  235. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_navs.scss +0 -0
  236. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_normalize.scss +0 -0
  237. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_pager.scss +0 -0
  238. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_pagination.scss +0 -0
  239. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_panels.scss +0 -0
  240. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_popovers.scss +0 -0
  241. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_print.scss +0 -0
  242. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_progress-bars.scss +0 -0
  243. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_responsive-embed.scss +0 -0
  244. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_responsive-utilities.scss +0 -0
  245. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_scaffolding.scss +0 -0
  246. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_tables.scss +0 -0
  247. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_theme.scss +0 -0
  248. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_thumbnails.scss +0 -0
  249. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_tooltip.scss +0 -0
  250. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_type.scss +0 -0
  251. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_utilities.scss +0 -0
  252. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_variables.scss +0 -0
  253. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/_wells.scss +0 -0
  254. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_alerts.scss +0 -0
  255. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_background-variant.scss +0 -0
  256. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_border-radius.scss +0 -0
  257. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_breakpoints.scss +0 -0
  258. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_buttons.scss +0 -0
  259. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_center-block.scss +0 -0
  260. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_clearfix.scss +0 -0
  261. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_forms.scss +0 -0
  262. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_gradients.scss +0 -0
  263. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_grid-framework.scss +0 -0
  264. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_grid.scss +0 -0
  265. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_hide-text.scss +0 -0
  266. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_image.scss +0 -0
  267. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_labels.scss +0 -0
  268. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_list-group.scss +0 -0
  269. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_nav-divider.scss +0 -0
  270. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_nav-vertical-align.scss +0 -0
  271. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_opacity.scss +0 -0
  272. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_pagination.scss +0 -0
  273. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_panels.scss +0 -0
  274. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_progress-bar.scss +0 -0
  275. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_reset-filter.scss +0 -0
  276. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_reset-text.scss +0 -0
  277. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_resize.scss +0 -0
  278. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_responsive-visibility.scss +0 -0
  279. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_size.scss +0 -0
  280. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_tab-focus.scss +0 -0
  281. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_table-row.scss +0 -0
  282. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_text-emphasis.scss +0 -0
  283. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_text-overflow.scss +0 -0
  284. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_text-truncate.scss +0 -0
  285. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap/mixins/_vendor-prefixes.scss +0 -0
  286. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap.scss +0 -0
  287. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap_mixins/_all.scss +0 -0
  288. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap_mixins/_border-radius.scss +0 -0
  289. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap_mixins/_box-shadow.scss +0 -0
  290. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap_mixins/_hover.scss +0 -0
  291. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap_mixins/_nav-divider.scss +0 -0
  292. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap_partials/_dropdown.scss +0 -0
  293. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap_partials/_glyphicons.scss +0 -0
  294. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap_partials/_grid.scss +0 -0
  295. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap_partials/_variables.scss +0 -0
  296. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap_utilities/_align.scss +0 -0
  297. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap_utilities/_background.scss +0 -0
  298. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap_utilities/_borders.scss +0 -0
  299. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap_utilities/_clearfix.scss +0 -0
  300. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap_utilities/_cursor.scss +0 -0
  301. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap_utilities/_display.scss +0 -0
  302. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap_utilities/_flex.scss +0 -0
  303. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap_utilities/_float.scss +0 -0
  304. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap_utilities/_position.scss +0 -0
  305. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap_utilities/_screenreaders.scss +0 -0
  306. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap_utilities/_sizing.scss +0 -0
  307. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap_utilities/_spacing.scss +0 -0
  308. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap_utilities/_text.scss +0 -0
  309. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/bootstrap_utilities/_visibility.scss +0 -0
  310. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/colorbox.scss +0 -0
  311. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/modules/_all.scss +0 -0
  312. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/modules/_animation.scss +0 -0
  313. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/modules/_breakpoints.scss +0 -0
  314. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/modules/_card_constants.scss +0 -0
  315. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/modules/_colours.scss +0 -0
  316. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/modules/_homepage_constants.scss +0 -0
  317. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/modules/_levels.scss +0 -0
  318. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/modules/_mixins.scss +0 -0
  319. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/modules/_spacing.scss +0 -0
  320. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/partials/_banners.scss +0 -0
  321. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/partials/_base.scss +0 -0
  322. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/partials/_buttons.scss +0 -0
  323. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/partials/_carousel.scss +0 -0
  324. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/partials/_footer.scss +0 -0
  325. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/partials/_forms.scss +0 -0
  326. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/partials/_grids.scss +0 -0
  327. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/partials/_popup.scss +0 -0
  328. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/partials/_progress-bars.scss +0 -0
  329. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/partials/_subnavs.scss +0 -0
  330. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/partials/_tables.scss +0 -0
  331. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/partials/_text.scss +0 -0
  332. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/partials/_ui-dialog.scss +0 -0
  333. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/partials/_utils.scss +0 -0
  334. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/sass/styles.scss +0 -0
  335. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/static/portal/video/code for life .pdf +0 -0
  336. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/strings/__init__.py +0 -0
  337. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/strings/about.py +0 -0
  338. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/strings/coding_club.py +0 -0
  339. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/strings/help_and_support.py +0 -0
  340. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/strings/home_learning.py +0 -0
  341. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/strings/materials.py +0 -0
  342. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/strings/play.py +0 -0
  343. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/strings/teach.py +0 -0
  344. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/strings/teacher_resources.py +0 -0
  345. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/strings/ten_year_map.py +0 -0
  346. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/403.html +0 -0
  347. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/404.html +0 -0
  348. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/500.html +0 -0
  349. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/django_recaptcha/includes/js_v2_invisible.html +0 -0
  350. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/django_recaptcha/widget_v2_invisible.html +0 -0
  351. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/email.html +0 -0
  352. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/email.txt +0 -0
  353. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/maintenance.html +0 -0
  354. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/about.html +0 -0
  355. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/base.html +0 -0
  356. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/base_no_userprofile.html +0 -0
  357. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/coding_club.html +0 -0
  358. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/contribute.html +0 -0
  359. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/dotmailer_consent_form.html +0 -0
  360. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/email_invitation_sent.html +0 -0
  361. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/email_style_template.html +0 -0
  362. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/email_verification_failed.html +0 -0
  363. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/email_verification_needed.html +0 -0
  364. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/form_shapes.html +0 -0
  365. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/getinvolved.html +0 -0
  366. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/home.html +0 -0
  367. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/home_learning.html +0 -0
  368. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/locked_out.html +0 -0
  369. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/locked_out_school_student.html +0 -0
  370. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/login/independent_student.html +0 -0
  371. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/login/student.html +0 -0
  372. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/login/student_class_code.html +0 -0
  373. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/login/teacher.html +0 -0
  374. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/partials/banner.html +0 -0
  375. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/partials/benefits.html +0 -0
  376. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/partials/card_list.html +0 -0
  377. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/partials/character_list.html +0 -0
  378. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/partials/cookie_list.html +0 -0
  379. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/partials/delete_popup.html +0 -0
  380. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/partials/footer.html +0 -0
  381. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/partials/headline.html +0 -0
  382. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/partials/hero_card.html +0 -0
  383. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/partials/info_popup.html +0 -0
  384. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/partials/invite_admin_teacher.html +0 -0
  385. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/partials/popup.html +0 -0
  386. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/partials/register_newsletter_tickbox.html +0 -0
  387. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/partials/screentime_popup.html +0 -0
  388. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/partials/service_unavailable_popup.html +0 -0
  389. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/partials/session_popup.html +0 -0
  390. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/partials/teacher_non_dashboard_subnav.html +0 -0
  391. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/partials/teacher_non_dashboard_subnav_account.html +0 -0
  392. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/play/student_dashboard.html +0 -0
  393. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/play/student_edit_account.html +0 -0
  394. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/play/student_join_organisation.html +0 -0
  395. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/play.html +0 -0
  396. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/privacy_notice.html +0 -0
  397. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/register.html +0 -0
  398. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/reset_password.html +0 -0
  399. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/reset_password_confirm.html +0 -0
  400. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/reset_password_done.html +0 -0
  401. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/reset_password_email_sent.html +0 -0
  402. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/tag_manager/tag_manager_body.html +0 -0
  403. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/tag_manager/tag_manager_head.html +0 -0
  404. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/teach/base_registering.html +0 -0
  405. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/teach/class.html +0 -0
  406. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/teach/dashboard.html +0 -0
  407. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/teach/invited.html +0 -0
  408. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/teach/onboarding_classes.html +0 -0
  409. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/teach/onboarding_print.html +0 -0
  410. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/teach/onboarding_school.html +0 -0
  411. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/teach/onboarding_students.html +0 -0
  412. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/teach/teacher_add_external_student.html +0 -0
  413. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/teach/teacher_added_external_student.html +0 -0
  414. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/teach/teacher_dismiss_students.html +0 -0
  415. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/teach/teacher_edit_class.html +0 -0
  416. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/teach/teacher_edit_student.html +0 -0
  417. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/teach/teacher_move_all_classes.html +0 -0
  418. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/teach/teacher_move_students.html +0 -0
  419. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/teach/teacher_move_students_to_class.html +0 -0
  420. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/teach.html +0 -0
  421. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/ten_year_map.html +0 -0
  422. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/portal/terms.html +0 -0
  423. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/two_factor/_base.html +0 -0
  424. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/two_factor/_wizard_actions.html +0 -0
  425. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/two_factor/_wizard_actions_enable_2fa.html +0 -0
  426. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/two_factor/_wizard_actions_submit.html +0 -0
  427. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/two_factor/_wizard_forms.html +0 -0
  428. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/two_factor/_wizard_forms_token.html +0 -0
  429. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/two_factor/backup_token.html +0 -0
  430. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/two_factor/core/backup_tokens.html +0 -0
  431. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/two_factor/core/login.html +0 -0
  432. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/two_factor/core/setup.html +0 -0
  433. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/two_factor/core/setup_complete.html +0 -0
  434. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/two_factor/profile/disable.html +0 -0
  435. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/two_factor/profile/profile.html +0 -0
  436. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templates/two_factor/setup_wizard_token.html +0 -0
  437. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templatetags/__init__.py +0 -0
  438. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templatetags/app_tags.py +0 -0
  439. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templatetags/banner_tags.py +0 -0
  440. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templatetags/benefits_tags.py +0 -0
  441. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templatetags/card_list_tags.py +0 -0
  442. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templatetags/future.py +0 -0
  443. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templatetags/headline_tags.py +0 -0
  444. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templatetags/hero_card_tags.py +0 -0
  445. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/templatetags/table_tags.py +0 -0
  446. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/__init__.py +0 -0
  447. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/base_test.py +0 -0
  448. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/conftest.py +0 -0
  449. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/migrations/__init__.py +0 -0
  450. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/migrations/test_migration_make_portaladmin_teacher.py +0 -0
  451. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/migrations/test_migration_preview_user_remove.py +0 -0
  452. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/migrations/test_migration_preview_users.py +0 -0
  453. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/migrations/test_migration_remove_front_page_news.py +0 -0
  454. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/migrations/test_migration_remove_guardian.py +0 -0
  455. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/migrations/test_migration_use_common_models.py +0 -0
  456. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/migrations/test_migration_verify_portaladmin.py +0 -0
  457. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/__init__.py +0 -0
  458. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/__init__.py +0 -0
  459. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/admin/__init__.py +0 -0
  460. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/admin/admin_base_page.py +0 -0
  461. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/admin/admin_data_page.py +0 -0
  462. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/admin/admin_map_page.py +0 -0
  463. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/base_page.py +0 -0
  464. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/email_verification_needed_page.py +0 -0
  465. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/forbidden_page.py +0 -0
  466. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/game_page.py +0 -0
  467. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/home_page.py +0 -0
  468. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/independent_login_page.py +0 -0
  469. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/password_reset_form_page.py +0 -0
  470. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/password_reset_page.py +0 -0
  471. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/play/__init__.py +0 -0
  472. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/play/account_page.py +0 -0
  473. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/play/dashboard_page.py +0 -0
  474. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/play/join_school_or_club_page.py +0 -0
  475. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/play/play_base_page.py +0 -0
  476. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/play_page.py +0 -0
  477. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/resources_page.py +0 -0
  478. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/signup_page.py +0 -0
  479. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/student_login_class_code.py +0 -0
  480. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/student_login_page.py +0 -0
  481. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/teach/__init__.py +0 -0
  482. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/teach/add_independent_student_to_class_page.py +0 -0
  483. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/teach/added_independent_student_to_class_page.py +0 -0
  484. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/teach/class_page.py +0 -0
  485. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/teach/dashboard_page.py +0 -0
  486. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/teach/dismiss_students_page.py +0 -0
  487. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/teach/edit_student_page.py +0 -0
  488. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/teach/move_class_page.py +0 -0
  489. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/teach/move_classes_page.py +0 -0
  490. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/teach/move_students_disambiguate_page.py +0 -0
  491. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/teach/move_students_page.py +0 -0
  492. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/teach/onboarding_classes_page.py +0 -0
  493. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/teach/onboarding_organisation_page.py +0 -0
  494. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/teach/onboarding_student_list_page.py +0 -0
  495. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/teach/onboarding_students_page.py +0 -0
  496. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/teach/teach_base_page.py +0 -0
  497. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/pageObjects/portal/teacher_login_page.py +0 -0
  498. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/selenium_test_case.py +0 -0
  499. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/snapshots/__init__.py +0 -0
  500. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/snapshots/snap_test_partials.py +0 -0
  501. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/test_2FA.py +0 -0
  502. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/test_admin.py +0 -0
  503. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/test_api.py +0 -0
  504. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/test_captcha_forms.py +0 -0
  505. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/test_class.py +0 -0
  506. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/test_emails.py +0 -0
  507. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/test_global_forms.py +0 -0
  508. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/test_helper_methods.py +0 -0
  509. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/test_independent_student.py +0 -0
  510. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/test_invite_teacher.py +0 -0
  511. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/test_middleware.py +0 -0
  512. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/test_organisation.py +0 -0
  513. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/test_partials.py +0 -0
  514. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/test_ratelimit.py +0 -0
  515. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/test_school_student.py +0 -0
  516. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/test_security.py +0 -0
  517. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/test_teacher.py +0 -0
  518. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/test_teacher_student.py +0 -0
  519. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/test_views.py +0 -0
  520. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/utils/__init__.py +0 -0
  521. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/utils/classes.py +0 -0
  522. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/tests/utils/messages.py +0 -0
  523. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/urls.py +0 -0
  524. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/__init__.py +0 -0
  525. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/about.py +0 -0
  526. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/admin.py +0 -0
  527. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/api.py +0 -0
  528. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/cron/__init__.py +0 -0
  529. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/cron/user.py +0 -0
  530. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/dotmailer.py +0 -0
  531. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/email.py +0 -0
  532. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/google_analytics.py +0 -0
  533. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/home.py +0 -0
  534. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/legal.py +0 -0
  535. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/login/__init__.py +0 -0
  536. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/login/independent_student.py +0 -0
  537. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/login/student.py +0 -0
  538. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/login/teacher.py +0 -0
  539. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/organisation.py +0 -0
  540. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/play_landing_page.py +0 -0
  541. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/registration.py +0 -0
  542. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/student/__init__.py +0 -0
  543. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/student/edit_account_details.py +0 -0
  544. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/student/play.py +0 -0
  545. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/teach.py +0 -0
  546. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/teacher/__init__.py +0 -0
  547. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/teacher/dashboard.py +0 -0
  548. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/teacher/teach.py +0 -0
  549. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/two_factor/__init__.py +0 -0
  550. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/two_factor/core.py +0 -0
  551. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/two_factor/form.py +0 -0
  552. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/views/two_factor/profile.py +0 -0
  553. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/portal/wsgi.py +0 -0
  554. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/pyproject.toml +0 -0
  555. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/setup.cfg +0 -0
  556. {codeforlife_portal-8.9.0 → codeforlife_portal-8.9.1}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codeforlife-portal
3
- Version: 8.9.0
3
+ Version: 8.9.1
4
4
  Classifier: Programming Language :: Python
5
5
  Classifier: Programming Language :: Python :: 3.12
6
6
  Classifier: Framework :: Django
@@ -14,7 +14,7 @@ Requires-Dist: botocore==1.36.26; python_version >= "3.8"
14
14
  Requires-Dist: celery[sqs]==5.4.0; python_version >= "3.8"
15
15
  Requires-Dist: certifi==2025.8.3; python_version >= "3.7"
16
16
  Requires-Dist: cffi==1.17.1; platform_python_implementation != "PyPy"
17
- Requires-Dist: cfl-common==8.9.0
17
+ Requires-Dist: cfl-common==8.9.1
18
18
  Requires-Dist: charset-normalizer==3.4.3; python_version >= "3.7"
19
19
  Requires-Dist: click==8.2.1; python_version >= "3.10"
20
20
  Requires-Dist: click-didyoumean==0.3.1; python_full_version >= "3.6.2"
@@ -83,31 +83,64 @@ Requires-Dist: whitenoise==6.9.0; python_version >= "3.9"
83
83
  Requires-Dist: zipp==3.23.0; python_version >= "3.9"
84
84
  Provides-Extra: dev
85
85
  Requires-Dist: asgiref==3.9.1; python_version >= "3.9" and extra == "dev"
86
+ Requires-Dist: asttokens==3.0.0; python_version >= "3.8" and extra == "dev"
86
87
  Requires-Dist: attrs==25.3.0; python_version >= "3.8" and extra == "dev"
87
88
  Requires-Dist: black==25.1.0; python_version >= "3.9" and extra == "dev"
88
89
  Requires-Dist: certifi==2025.8.3; python_version >= "3.7" and extra == "dev"
90
+ Requires-Dist: cffi==1.17.1; platform_python_implementation != "PyPy" and extra == "dev"
91
+ Requires-Dist: cfl-common==8.9.1; extra == "dev"
89
92
  Requires-Dist: charset-normalizer==3.4.3; python_version >= "3.7" and extra == "dev"
90
93
  Requires-Dist: click==8.2.1; python_version >= "3.10" and extra == "dev"
91
94
  Requires-Dist: coverage[toml]==7.10.3; python_version >= "3.9" and extra == "dev"
95
+ Requires-Dist: cryptography==44.0.1; (python_version >= "3.7" and python_full_version not in "3.9.0, 3.9.1") and extra == "dev"
96
+ Requires-Dist: decorator==5.2.1; python_version >= "3.8" and extra == "dev"
97
+ Requires-Dist: diff-match-patch==20241021; python_version >= "3.7" and extra == "dev"
92
98
  Requires-Dist: django==5.1.10; python_version >= "3.10" and extra == "dev"
93
- Requires-Dist: django-reverse-js==0.1.7; python_version >= "3.10" and extra == "dev"
99
+ Requires-Dist: django-countries==7.6.1; extra == "dev"
100
+ Requires-Dist: django-csp==3.8; extra == "dev"
101
+ Requires-Dist: django-formtools==2.5.1; python_version >= "3.8" and extra == "dev"
102
+ Requires-Dist: django-import-export==4.2.0; python_version >= "3.9" and extra == "dev"
103
+ Requires-Dist: django-otp==1.6.1; python_version >= "3.7" and extra == "dev"
104
+ Requires-Dist: django-phonenumber-field==8.1.0; python_version >= "3.9" and extra == "dev"
105
+ Requires-Dist: django-pipeline==4.0.0; python_version >= "3.9" and extra == "dev"
106
+ Requires-Dist: django-reverse-js==0.1.8; python_version >= "3.10" and extra == "dev"
94
107
  Requires-Dist: django-selenium-clean==1.0.1; extra == "dev"
95
108
  Requires-Dist: django-test-migrations==1.4.0; (python_version >= "3.9" and python_version < "4.0") and extra == "dev"
109
+ Requires-Dist: django-two-factor-auth==1.17.0; python_version >= "3.8" and extra == "dev"
110
+ Requires-Dist: djangorestframework==3.16.0; python_version >= "3.9" and extra == "dev"
96
111
  Requires-Dist: execnet==2.1.1; python_version >= "3.8" and extra == "dev"
112
+ Requires-Dist: executing==2.2.0; python_version >= "3.8" and extra == "dev"
97
113
  Requires-Dist: fastdiff==0.3.0; extra == "dev"
98
114
  Requires-Dist: h11==0.16.0; python_version >= "3.8" and extra == "dev"
99
115
  Requires-Dist: idna==3.10; python_version >= "3.6" and extra == "dev"
100
116
  Requires-Dist: iniconfig==2.1.0; python_version >= "3.8" and extra == "dev"
117
+ Requires-Dist: ipython==9.4.0; python_version >= "3.11" and extra == "dev"
118
+ Requires-Dist: ipython-pygments-lexers==1.1.1; python_version >= "3.8" and extra == "dev"
101
119
  Requires-Dist: isort==6.0.1; python_full_version >= "3.9.0" and extra == "dev"
120
+ Requires-Dist: jedi==0.19.2; python_version >= "3.6" and extra == "dev"
121
+ Requires-Dist: libsass==0.23.0; python_version >= "3.8" and extra == "dev"
122
+ Requires-Dist: matplotlib-inline==0.1.7; python_version >= "3.8" and extra == "dev"
123
+ Requires-Dist: more-itertools==8.7.0; python_version >= "3.5" and extra == "dev"
102
124
  Requires-Dist: mypy-extensions==1.1.0; python_version >= "3.8" and extra == "dev"
125
+ Requires-Dist: numpy==2.3.2; python_version >= "3.11" and extra == "dev"
103
126
  Requires-Dist: outcome==1.3.0.post0; python_version >= "3.7" and extra == "dev"
104
127
  Requires-Dist: packaging==25.0; python_version >= "3.8" and extra == "dev"
128
+ Requires-Dist: pandas==2.3.1; python_version >= "3.9" and extra == "dev"
129
+ Requires-Dist: parso==0.8.4; python_version >= "3.6" and extra == "dev"
105
130
  Requires-Dist: pathspec==0.12.1; python_version >= "3.8" and extra == "dev"
131
+ Requires-Dist: pexpect==4.9.0; (sys_platform != "win32" and sys_platform != "emscripten") and extra == "dev"
132
+ Requires-Dist: pgeocode==0.4.0; python_version >= "3.8" and extra == "dev"
106
133
  Requires-Dist: platformdirs==4.3.8; python_version >= "3.9" and extra == "dev"
107
134
  Requires-Dist: pluggy==1.6.0; python_version >= "3.9" and extra == "dev"
135
+ Requires-Dist: prompt-toolkit==3.0.51; python_version >= "3.8" and extra == "dev"
136
+ Requires-Dist: ptyprocess==0.7.0; extra == "dev"
137
+ Requires-Dist: pure-eval==0.2.3; extra == "dev"
138
+ Requires-Dist: pycparser==2.22; python_version >= "3.8" and extra == "dev"
108
139
  Requires-Dist: pygments==2.19.2; python_version >= "3.8" and extra == "dev"
109
140
  Requires-Dist: pyhamcrest==2.0.2; python_version >= "3.5" and extra == "dev"
141
+ Requires-Dist: pyjwt==2.6.0; python_version >= "3.7" and extra == "dev"
110
142
  Requires-Dist: pypdf==5.1.0; python_version >= "3.8" and extra == "dev"
143
+ Requires-Dist: pypng==0.20220715.0; extra == "dev"
111
144
  Requires-Dist: pysocks==1.7.1; extra == "dev"
112
145
  Requires-Dist: pytest==8.4.1; python_version >= "3.9" and extra == "dev"
113
146
  Requires-Dist: pytest-cov==6.2.1; python_version >= "3.9" and extra == "dev"
@@ -115,23 +148,34 @@ Requires-Dist: pytest-django==4.8.0; python_version >= "3.8" and extra == "dev"
115
148
  Requires-Dist: pytest-mock==3.14.1; python_version >= "3.8" and extra == "dev"
116
149
  Requires-Dist: pytest-order==1.3.0; python_version >= "3.7" and extra == "dev"
117
150
  Requires-Dist: pytest-xdist==3.8.0; python_version >= "3.9" and extra == "dev"
151
+ Requires-Dist: python-dateutil==2.9.0.post0; (python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2") and extra == "dev"
152
+ Requires-Dist: pytz==2025.2; extra == "dev"
118
153
  Requires-Dist: pyvirtualdisplay==3.0; extra == "dev"
119
- Requires-Dist: rapid-router==7.3.6; extra == "dev"
154
+ Requires-Dist: qrcode==7.4.2; python_version >= "3.7" and extra == "dev"
155
+ Requires-Dist: rapid-router==7.5.21; extra == "dev"
120
156
  Requires-Dist: requests==2.32.4; python_version >= "3.8" and extra == "dev"
121
157
  Requires-Dist: responses==0.18.0; python_version >= "3.7" and extra == "dev"
122
158
  Requires-Dist: selenium==4.29.0; python_version >= "3.9" and extra == "dev"
159
+ Requires-Dist: setuptools==80.9.0; python_version >= "3.9" and extra == "dev"
160
+ Requires-Dist: six==1.17.0; (python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3") and extra == "dev"
123
161
  Requires-Dist: snapshottest==1.0.0a1; extra == "dev"
124
162
  Requires-Dist: sniffio==1.3.1; python_version >= "3.7" and extra == "dev"
125
163
  Requires-Dist: sortedcontainers==2.4.0; extra == "dev"
126
164
  Requires-Dist: sqlparse==0.5.3; python_version >= "3.8" and extra == "dev"
165
+ Requires-Dist: stack-data==0.6.3; extra == "dev"
166
+ Requires-Dist: tablib==3.7.0; python_version >= "3.9" and extra == "dev"
127
167
  Requires-Dist: termcolor==3.1.0; python_version >= "3.9" and extra == "dev"
168
+ Requires-Dist: traitlets==5.14.3; python_version >= "3.8" and extra == "dev"
128
169
  Requires-Dist: trio==0.30.0; python_version >= "3.9" and extra == "dev"
129
170
  Requires-Dist: trio-websocket==0.12.2; python_version >= "3.8" and extra == "dev"
130
171
  Requires-Dist: typing-extensions==4.14.1; python_version >= "3.9" and extra == "dev"
172
+ Requires-Dist: tzdata==2025.2; python_version >= "2" and extra == "dev"
131
173
  Requires-Dist: urllib3==2.5.0; extra == "dev"
132
174
  Requires-Dist: wasmer==1.1.0; extra == "dev"
133
175
  Requires-Dist: wasmer-compiler-cranelift==1.1.0; extra == "dev"
176
+ Requires-Dist: wcwidth==0.2.13; extra == "dev"
134
177
  Requires-Dist: websocket-client==1.8.0; python_version >= "3.8" and extra == "dev"
178
+ Requires-Dist: wheel==0.45.1; python_version >= "3.8" and extra == "dev"
135
179
  Requires-Dist: wsproto==1.2.0; python_full_version >= "3.7.0" and extra == "dev"
136
180
  Dynamic: classifier
137
181
  Dynamic: description
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codeforlife-portal
3
- Version: 8.9.0
3
+ Version: 8.9.1
4
4
  Classifier: Programming Language :: Python
5
5
  Classifier: Programming Language :: Python :: 3.12
6
6
  Classifier: Framework :: Django
@@ -14,7 +14,7 @@ Requires-Dist: botocore==1.36.26; python_version >= "3.8"
14
14
  Requires-Dist: celery[sqs]==5.4.0; python_version >= "3.8"
15
15
  Requires-Dist: certifi==2025.8.3; python_version >= "3.7"
16
16
  Requires-Dist: cffi==1.17.1; platform_python_implementation != "PyPy"
17
- Requires-Dist: cfl-common==8.9.0
17
+ Requires-Dist: cfl-common==8.9.1
18
18
  Requires-Dist: charset-normalizer==3.4.3; python_version >= "3.7"
19
19
  Requires-Dist: click==8.2.1; python_version >= "3.10"
20
20
  Requires-Dist: click-didyoumean==0.3.1; python_full_version >= "3.6.2"
@@ -83,31 +83,64 @@ Requires-Dist: whitenoise==6.9.0; python_version >= "3.9"
83
83
  Requires-Dist: zipp==3.23.0; python_version >= "3.9"
84
84
  Provides-Extra: dev
85
85
  Requires-Dist: asgiref==3.9.1; python_version >= "3.9" and extra == "dev"
86
+ Requires-Dist: asttokens==3.0.0; python_version >= "3.8" and extra == "dev"
86
87
  Requires-Dist: attrs==25.3.0; python_version >= "3.8" and extra == "dev"
87
88
  Requires-Dist: black==25.1.0; python_version >= "3.9" and extra == "dev"
88
89
  Requires-Dist: certifi==2025.8.3; python_version >= "3.7" and extra == "dev"
90
+ Requires-Dist: cffi==1.17.1; platform_python_implementation != "PyPy" and extra == "dev"
91
+ Requires-Dist: cfl-common==8.9.1; extra == "dev"
89
92
  Requires-Dist: charset-normalizer==3.4.3; python_version >= "3.7" and extra == "dev"
90
93
  Requires-Dist: click==8.2.1; python_version >= "3.10" and extra == "dev"
91
94
  Requires-Dist: coverage[toml]==7.10.3; python_version >= "3.9" and extra == "dev"
95
+ Requires-Dist: cryptography==44.0.1; (python_version >= "3.7" and python_full_version not in "3.9.0, 3.9.1") and extra == "dev"
96
+ Requires-Dist: decorator==5.2.1; python_version >= "3.8" and extra == "dev"
97
+ Requires-Dist: diff-match-patch==20241021; python_version >= "3.7" and extra == "dev"
92
98
  Requires-Dist: django==5.1.10; python_version >= "3.10" and extra == "dev"
93
- Requires-Dist: django-reverse-js==0.1.7; python_version >= "3.10" and extra == "dev"
99
+ Requires-Dist: django-countries==7.6.1; extra == "dev"
100
+ Requires-Dist: django-csp==3.8; extra == "dev"
101
+ Requires-Dist: django-formtools==2.5.1; python_version >= "3.8" and extra == "dev"
102
+ Requires-Dist: django-import-export==4.2.0; python_version >= "3.9" and extra == "dev"
103
+ Requires-Dist: django-otp==1.6.1; python_version >= "3.7" and extra == "dev"
104
+ Requires-Dist: django-phonenumber-field==8.1.0; python_version >= "3.9" and extra == "dev"
105
+ Requires-Dist: django-pipeline==4.0.0; python_version >= "3.9" and extra == "dev"
106
+ Requires-Dist: django-reverse-js==0.1.8; python_version >= "3.10" and extra == "dev"
94
107
  Requires-Dist: django-selenium-clean==1.0.1; extra == "dev"
95
108
  Requires-Dist: django-test-migrations==1.4.0; (python_version >= "3.9" and python_version < "4.0") and extra == "dev"
109
+ Requires-Dist: django-two-factor-auth==1.17.0; python_version >= "3.8" and extra == "dev"
110
+ Requires-Dist: djangorestframework==3.16.0; python_version >= "3.9" and extra == "dev"
96
111
  Requires-Dist: execnet==2.1.1; python_version >= "3.8" and extra == "dev"
112
+ Requires-Dist: executing==2.2.0; python_version >= "3.8" and extra == "dev"
97
113
  Requires-Dist: fastdiff==0.3.0; extra == "dev"
98
114
  Requires-Dist: h11==0.16.0; python_version >= "3.8" and extra == "dev"
99
115
  Requires-Dist: idna==3.10; python_version >= "3.6" and extra == "dev"
100
116
  Requires-Dist: iniconfig==2.1.0; python_version >= "3.8" and extra == "dev"
117
+ Requires-Dist: ipython==9.4.0; python_version >= "3.11" and extra == "dev"
118
+ Requires-Dist: ipython-pygments-lexers==1.1.1; python_version >= "3.8" and extra == "dev"
101
119
  Requires-Dist: isort==6.0.1; python_full_version >= "3.9.0" and extra == "dev"
120
+ Requires-Dist: jedi==0.19.2; python_version >= "3.6" and extra == "dev"
121
+ Requires-Dist: libsass==0.23.0; python_version >= "3.8" and extra == "dev"
122
+ Requires-Dist: matplotlib-inline==0.1.7; python_version >= "3.8" and extra == "dev"
123
+ Requires-Dist: more-itertools==8.7.0; python_version >= "3.5" and extra == "dev"
102
124
  Requires-Dist: mypy-extensions==1.1.0; python_version >= "3.8" and extra == "dev"
125
+ Requires-Dist: numpy==2.3.2; python_version >= "3.11" and extra == "dev"
103
126
  Requires-Dist: outcome==1.3.0.post0; python_version >= "3.7" and extra == "dev"
104
127
  Requires-Dist: packaging==25.0; python_version >= "3.8" and extra == "dev"
128
+ Requires-Dist: pandas==2.3.1; python_version >= "3.9" and extra == "dev"
129
+ Requires-Dist: parso==0.8.4; python_version >= "3.6" and extra == "dev"
105
130
  Requires-Dist: pathspec==0.12.1; python_version >= "3.8" and extra == "dev"
131
+ Requires-Dist: pexpect==4.9.0; (sys_platform != "win32" and sys_platform != "emscripten") and extra == "dev"
132
+ Requires-Dist: pgeocode==0.4.0; python_version >= "3.8" and extra == "dev"
106
133
  Requires-Dist: platformdirs==4.3.8; python_version >= "3.9" and extra == "dev"
107
134
  Requires-Dist: pluggy==1.6.0; python_version >= "3.9" and extra == "dev"
135
+ Requires-Dist: prompt-toolkit==3.0.51; python_version >= "3.8" and extra == "dev"
136
+ Requires-Dist: ptyprocess==0.7.0; extra == "dev"
137
+ Requires-Dist: pure-eval==0.2.3; extra == "dev"
138
+ Requires-Dist: pycparser==2.22; python_version >= "3.8" and extra == "dev"
108
139
  Requires-Dist: pygments==2.19.2; python_version >= "3.8" and extra == "dev"
109
140
  Requires-Dist: pyhamcrest==2.0.2; python_version >= "3.5" and extra == "dev"
141
+ Requires-Dist: pyjwt==2.6.0; python_version >= "3.7" and extra == "dev"
110
142
  Requires-Dist: pypdf==5.1.0; python_version >= "3.8" and extra == "dev"
143
+ Requires-Dist: pypng==0.20220715.0; extra == "dev"
111
144
  Requires-Dist: pysocks==1.7.1; extra == "dev"
112
145
  Requires-Dist: pytest==8.4.1; python_version >= "3.9" and extra == "dev"
113
146
  Requires-Dist: pytest-cov==6.2.1; python_version >= "3.9" and extra == "dev"
@@ -115,23 +148,34 @@ Requires-Dist: pytest-django==4.8.0; python_version >= "3.8" and extra == "dev"
115
148
  Requires-Dist: pytest-mock==3.14.1; python_version >= "3.8" and extra == "dev"
116
149
  Requires-Dist: pytest-order==1.3.0; python_version >= "3.7" and extra == "dev"
117
150
  Requires-Dist: pytest-xdist==3.8.0; python_version >= "3.9" and extra == "dev"
151
+ Requires-Dist: python-dateutil==2.9.0.post0; (python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2") and extra == "dev"
152
+ Requires-Dist: pytz==2025.2; extra == "dev"
118
153
  Requires-Dist: pyvirtualdisplay==3.0; extra == "dev"
119
- Requires-Dist: rapid-router==7.3.6; extra == "dev"
154
+ Requires-Dist: qrcode==7.4.2; python_version >= "3.7" and extra == "dev"
155
+ Requires-Dist: rapid-router==7.5.21; extra == "dev"
120
156
  Requires-Dist: requests==2.32.4; python_version >= "3.8" and extra == "dev"
121
157
  Requires-Dist: responses==0.18.0; python_version >= "3.7" and extra == "dev"
122
158
  Requires-Dist: selenium==4.29.0; python_version >= "3.9" and extra == "dev"
159
+ Requires-Dist: setuptools==80.9.0; python_version >= "3.9" and extra == "dev"
160
+ Requires-Dist: six==1.17.0; (python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3") and extra == "dev"
123
161
  Requires-Dist: snapshottest==1.0.0a1; extra == "dev"
124
162
  Requires-Dist: sniffio==1.3.1; python_version >= "3.7" and extra == "dev"
125
163
  Requires-Dist: sortedcontainers==2.4.0; extra == "dev"
126
164
  Requires-Dist: sqlparse==0.5.3; python_version >= "3.8" and extra == "dev"
165
+ Requires-Dist: stack-data==0.6.3; extra == "dev"
166
+ Requires-Dist: tablib==3.7.0; python_version >= "3.9" and extra == "dev"
127
167
  Requires-Dist: termcolor==3.1.0; python_version >= "3.9" and extra == "dev"
168
+ Requires-Dist: traitlets==5.14.3; python_version >= "3.8" and extra == "dev"
128
169
  Requires-Dist: trio==0.30.0; python_version >= "3.9" and extra == "dev"
129
170
  Requires-Dist: trio-websocket==0.12.2; python_version >= "3.8" and extra == "dev"
130
171
  Requires-Dist: typing-extensions==4.14.1; python_version >= "3.9" and extra == "dev"
172
+ Requires-Dist: tzdata==2025.2; python_version >= "2" and extra == "dev"
131
173
  Requires-Dist: urllib3==2.5.0; extra == "dev"
132
174
  Requires-Dist: wasmer==1.1.0; extra == "dev"
133
175
  Requires-Dist: wasmer-compiler-cranelift==1.1.0; extra == "dev"
176
+ Requires-Dist: wcwidth==0.2.13; extra == "dev"
134
177
  Requires-Dist: websocket-client==1.8.0; python_version >= "3.8" and extra == "dev"
178
+ Requires-Dist: wheel==0.45.1; python_version >= "3.8" and extra == "dev"
135
179
  Requires-Dist: wsproto==1.2.0; python_full_version >= "3.7.0" and extra == "dev"
136
180
  Dynamic: classifier
137
181
  Dynamic: description
@@ -1,4 +1,4 @@
1
- cfl-common==8.9.0
1
+ cfl-common==8.9.1
2
2
  click-plugins==1.1.1.2
3
3
  django-countries==7.6.1
4
4
  django-csp==3.8
@@ -105,16 +105,28 @@ whitenoise==6.9.0
105
105
  zipp==3.23.0
106
106
 
107
107
  [dev]
108
+ cfl-common==8.9.1
109
+ django-countries==7.6.1
110
+ django-csp==3.8
108
111
  django-selenium-clean==1.0.1
109
112
  fastdiff==0.3.0
113
+ ptyprocess==0.7.0
114
+ pure-eval==0.2.3
115
+ pypng==0.20220715.0
110
116
  pysocks==1.7.1
117
+ pytz==2025.2
111
118
  pyvirtualdisplay==3.0
112
- rapid-router==7.3.6
119
+ rapid-router==7.5.21
113
120
  snapshottest==1.0.0a1
114
121
  sortedcontainers==2.4.0
122
+ stack-data==0.6.3
115
123
  urllib3==2.5.0
116
124
  wasmer==1.1.0
117
125
  wasmer-compiler-cranelift==1.1.0
126
+ wcwidth==0.2.13
127
+
128
+ [dev:platform_python_implementation != "PyPy"]
129
+ cffi==1.17.1
118
130
 
119
131
  [dev:python_full_version >= "3.7.0"]
120
132
  wsproto==1.2.0
@@ -122,55 +134,101 @@ wsproto==1.2.0
122
134
  [dev:python_full_version >= "3.9.0"]
123
135
  isort==6.0.1
124
136
 
137
+ [dev:python_version >= "2"]
138
+ tzdata==2025.2
139
+
140
+ [dev:python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2"]
141
+ python-dateutil==2.9.0.post0
142
+
143
+ [dev:python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3"]
144
+ six==1.17.0
145
+
125
146
  [dev:python_version >= "3.10"]
126
147
  click==8.2.1
127
148
  django==5.1.10
128
- django-reverse-js==0.1.7
149
+ django-reverse-js==0.1.8
150
+
151
+ [dev:python_version >= "3.11"]
152
+ ipython==9.4.0
153
+ numpy==2.3.2
129
154
 
130
155
  [dev:python_version >= "3.5"]
156
+ more-itertools==8.7.0
131
157
  pyhamcrest==2.0.2
132
158
 
133
159
  [dev:python_version >= "3.6"]
134
160
  idna==3.10
161
+ jedi==0.19.2
162
+ parso==0.8.4
135
163
 
136
164
  [dev:python_version >= "3.7"]
137
165
  certifi==2025.8.3
138
166
  charset-normalizer==3.4.3
167
+ diff-match-patch==20241021
168
+ django-otp==1.6.1
139
169
  outcome==1.3.0.post0
170
+ pyjwt==2.6.0
140
171
  pytest-order==1.3.0
172
+ qrcode==7.4.2
141
173
  responses==0.18.0
142
174
  sniffio==1.3.1
143
175
 
176
+ [dev:python_version >= "3.7" and python_full_version not in "3.9.0, 3.9.1"]
177
+ cryptography==44.0.1
178
+
144
179
  [dev:python_version >= "3.8"]
180
+ asttokens==3.0.0
145
181
  attrs==25.3.0
182
+ decorator==5.2.1
183
+ django-formtools==2.5.1
184
+ django-two-factor-auth==1.17.0
146
185
  execnet==2.1.1
186
+ executing==2.2.0
147
187
  h11==0.16.0
148
188
  iniconfig==2.1.0
189
+ ipython-pygments-lexers==1.1.1
190
+ libsass==0.23.0
191
+ matplotlib-inline==0.1.7
149
192
  mypy-extensions==1.1.0
150
193
  packaging==25.0
151
194
  pathspec==0.12.1
195
+ pgeocode==0.4.0
196
+ prompt-toolkit==3.0.51
197
+ pycparser==2.22
152
198
  pygments==2.19.2
153
199
  pypdf==5.1.0
154
200
  pytest-django==4.8.0
155
201
  pytest-mock==3.14.1
156
202
  requests==2.32.4
157
203
  sqlparse==0.5.3
204
+ traitlets==5.14.3
158
205
  trio-websocket==0.12.2
159
206
  websocket-client==1.8.0
207
+ wheel==0.45.1
160
208
 
161
209
  [dev:python_version >= "3.9"]
162
210
  asgiref==3.9.1
163
211
  black==25.1.0
164
212
  coverage[toml]==7.10.3
213
+ django-import-export==4.2.0
214
+ django-phonenumber-field==8.1.0
215
+ django-pipeline==4.0.0
216
+ djangorestframework==3.16.0
217
+ pandas==2.3.1
165
218
  platformdirs==4.3.8
166
219
  pluggy==1.6.0
167
220
  pytest==8.4.1
168
221
  pytest-cov==6.2.1
169
222
  pytest-xdist==3.8.0
170
223
  selenium==4.29.0
224
+ setuptools==80.9.0
225
+ tablib==3.7.0
171
226
  termcolor==3.1.0
172
227
  trio==0.30.0
173
228
  typing-extensions==4.14.1
174
229
 
175
230
  [dev:python_version >= "3.9" and python_version < "4.0"]
176
231
  django-test-migrations==1.4.0
232
+
233
+ [dev:sys_platform != "win32" and sys_platform != "emscripten"]
234
+ pexpect==4.9.0
@@ -0,0 +1 @@
1
+ __version__ = "8.9.1"
@@ -27,8 +27,8 @@
27
27
  }
28
28
 
29
29
  .dropdown-menu {
30
- @include _border-radius(0px, 0px, 0px, 0px);
31
30
  border: 2px solid $color-secondary-600;
31
+ border-radius: 0;
32
32
  border-top: 0;
33
33
  font-weight: 300;
34
34
  margin: 0;
@@ -181,7 +181,7 @@
181
181
 
182
182
  .menu--title {
183
183
  @include _font-size(27px);
184
- @include _margin(0px, 40px, 0px, 10px);
184
+ @include _margin(0px, $spacing * 8, 0px, $spacing * 2);
185
185
  color: $color-text-tertiary;
186
186
  font-family: "Space Grotesk", sans-serif;
187
187
  }
@@ -209,9 +209,15 @@
209
209
 
210
210
  @media (min-width: $tablet-small-min-width) {
211
211
  .menu__right-side {
212
+ @include _margin-right($spacing * 3);
212
213
  align-items: center;
213
- justify-content: flex-end;
214
214
  display: flex;
215
+ justify-content: flex-end;
216
+ width: 33%;
217
+ }
218
+
219
+ .logo {
220
+ height: 100px;
215
221
  }
216
222
  }
217
223
 
@@ -219,10 +225,6 @@
219
225
  .menu {
220
226
  height: $menu-height;
221
227
 
222
- .logo {
223
- height: 100px;
224
- }
225
-
226
228
  .menu__brand {
227
229
  @include _margin(0px, $spacing * 7, 0px, 0px);
228
230
  }
@@ -240,7 +242,7 @@
240
242
  height: $menu-height-xs;
241
243
 
242
244
  .logo {
243
- @include _padding($spacing * 3, $spacing * 9, $spacing * 3, $spacing * 3);
245
+ @include _padding($spacing * 3, $spacing * 3, $spacing * 3, $spacing * 3);
244
246
  }
245
247
 
246
248
  .menu__brand--ocado {
@@ -255,6 +257,7 @@
255
257
  .menu {
256
258
  background-color: $color-background-secondary;
257
259
  display: flex;
260
+ justify-content: space-between;
258
261
  position: fixed;
259
262
  top: 0;
260
263
  width: 100%;
@@ -284,20 +287,23 @@
284
287
 
285
288
  .button--register,
286
289
  .button--header--login {
287
- @include _padding(10px, 15px, 10px, 15px);
290
+ @include _padding($spacing * 2, $spacing * 3, $spacing * 2, $spacing * 3);
288
291
  width: 155px;
289
292
  height: 45px;
290
293
  }
291
294
  }
292
295
 
293
296
  .menu__brand {
294
- align-items: center;
295
297
  display: flex;
296
- justify-content: center;
298
+ width: 66%;
297
299
 
298
- img {
299
- max-width: none;
300
+ .menu__brand--ocado {
301
+ @include _margin-right($spacing * 7);
300
302
  }
303
+
304
+ //img {
305
+ // max-width: none;
306
+ //}
301
307
  }
302
308
 
303
309
  .menu__left-side {
@@ -62,7 +62,7 @@ img {
62
62
  }
63
63
 
64
64
  .logo {
65
- @include _padding($spacing * 3, $spacing * 14, $spacing * 3, $spacing * 3);
65
+ @include _padding($spacing * 3, $spacing * 3, $spacing * 3, $spacing * 3);
66
66
  }
67
67
 
68
68
  .map-pin {
@@ -24,89 +24,82 @@
24
24
  <span class="material-icons-outlined visible-sm visible-xs" data-toggle="collapse" data-target="#menu-items">
25
25
  menu
26
26
  </span>
27
- </div>
28
- {% if user|is_logged_in %}
29
- <div class="menu__left-side col-md-7">
30
- {% if user|is_logged_in_as_teacher %}
31
- <div class="menu--title">Teacher</div>
32
- {% if user|has_teacher_finished_onboarding %}
33
- <a href="{% url 'dashboard' %}" class="button--menu button--menu--secondary button--menu--enabled">Dashboard</a>
34
- <div class="dropdown">
35
- <a id="games_button"
36
- class="button--menu button--menu--secondary button--menu--enabled">
37
- Games <span class="material-icons-outlined md-32">arrow_drop_down</span></a>
38
- <div class="dropdown-content">
39
- <a href="{% url 'levels' %}"><small>Rapid Router</small></a>
40
- <a href="{% url 'python_levels' %}"><small>Python Den</small></a>
27
+ <div class="menu__left-side hidden-sm hidden-xs">
28
+ {% if user|is_logged_in %}
29
+ {% if user|is_logged_in_as_teacher %}
30
+ {% if user|has_teacher_finished_onboarding %}
31
+ <a href="{% url 'dashboard' %}" class="button--menu button--menu--secondary button--menu--enabled">Dashboard</a>
32
+ <div class="dropdown">
33
+ <a id="games_button"
34
+ class="button--menu button--menu--secondary button--menu--enabled">
35
+ Games <span class="material-icons-outlined md-32">arrow_drop_down</span></a>
36
+ <div class="dropdown-content">
37
+ <a href="{% url 'levels' %}"><small>Rapid Router</small></a>
38
+ <a href="{% url 'python_levels' %}"><small>Python Den</small></a>
39
+ </div>
41
40
  </div>
42
- </div>
43
- <div class="dropdown">
44
- <a id="teaching_resources_button"
45
- class="button--menu button--menu--secondary button--menu--enabled">
46
- Teaching Resources <span class="material-icons-outlined md-32">arrow_drop_down</span></a>
47
- <div class="dropdown-content">
48
- <a id="rapid_router_resources_button" href="https://code-for-life.gitbook.io/teaching-resources/" target="_blank">
49
- <small>Rapid Router</small> <span class="iconify" data-icon="mdi:open-in-new"></span></a>
50
- <a href="https://code-for-life.gitbook.io/python-lessons-with-raspberry-pi-ide/DGiFT28ihVJK7ghZQHqu" target="_blank">
51
- <small>Python Den</small> <span class="iconify" data-icon="mdi:open-in-new"></span></a>
52
- <a href="{% url 'codingClub' %}"><small>Coding Clubs</small></a>
41
+ <div class="dropdown">
42
+ <a id="teaching_resources_button"
43
+ class="button--menu button--menu--secondary button--menu--enabled">
44
+ Resources <span class="material-icons-outlined md-32">arrow_drop_down</span></a>
45
+ <div class="dropdown-content">
46
+ <a id="rapid_router_resources_button" href="https://code-for-life.gitbook.io/teaching-resources/" target="_blank">
47
+ <small>Rapid Router</small> <span class="iconify" data-icon="mdi:open-in-new"></span></a>
48
+ <a href="https://code-for-life.gitbook.io/python-lessons-with-raspberry-pi-ide/DGiFT28ihVJK7ghZQHqu" target="_blank">
49
+ <small>Python Den</small> <span class="iconify" data-icon="mdi:open-in-new"></span></a>
50
+ <a href="{% url 'codingClub' %}"><small>Coding Clubs</small></a>
51
+ </div>
53
52
  </div>
54
- </div>
55
- {% else %}
56
- <a href="{% url 'onboarding-organisation' %}" class="button--menu button--menu--secondary button--menu--enabled">Dashboard</a>
57
- <a class="button--menu button--menu--secondary button--menu--disabled">Games</a>
58
- <a class="button--menu button--menu--secondary button--menu--disabled">Teaching Resources</a>
59
- {% endif %}
60
- {% else %}
61
- {% if user|is_independent_student %}
62
- <div class="menu--title">Independent</div>
53
+ {% else %}
54
+ <a href="{% url 'onboarding-organisation' %}" class="button--menu button--menu--secondary button--menu--enabled">Dashboard</a>
55
+ <a class="button--menu button--menu--secondary button--menu--disabled">Games</a>
56
+ <a class="button--menu button--menu--secondary button--menu--disabled">Resources</a>
57
+ {% endif %}
63
58
  {% else %}
64
- <div class="menu--title">Student</div>
65
- {% endif %}
66
- <a
67
- {% if user|is_independent_student %}
59
+ <a
60
+ {% if user|is_independent_student %}
68
61
  href="{% url 'independent_student_details' %}"
69
- {% else %}
62
+ {% else %}
70
63
  href="{% url 'student_details' %}"
71
- {% endif %}
72
- id="student_dashboard_button"
73
- class="button--menu button--menu--secondary button--menu--enabled">Dashboard</a>
74
- <div class="dropdown">
75
- <a class="button--menu button--menu--secondary button--menu--enabled">
76
- Games
77
- <span class="material-icons-outlined md-32">arrow_drop_down</span>
78
- </a>
79
- <div class="dropdown-content">
80
- <a href="{% url 'levels' %}"><small>Rapid Router</small></a>
81
- <a href="{% url 'python_levels' %}"><small>Python Den</small></a>
82
- </div>
83
- </div>
84
- {% if user|is_logged_in_as_school_user %}
85
- <a href="{% url 'scoreboard' %}" id="student_scoreboards_button"
86
- class="button--menu button--menu--secondary button--menu--enabled">Scoreboard</a>
87
- {% endif %}
88
- <!-- independent student -->
89
- {% if not user.new_student.class_field %}
64
+ {% endif %}
65
+ id="student_dashboard_button"
66
+ class="button--menu button--menu--secondary button--menu--enabled">Dashboard</a>
90
67
  <div class="dropdown">
91
- <a id="teaching_resources_button"
92
- class="button--menu button--menu--secondary button--menu--enabled">
93
- Learning Resources <span class="material-icons-outlined md-32">arrow_drop_down</span></a>
68
+ <a class="button--menu button--menu--secondary button--menu--enabled">
69
+ Games
70
+ <span class="material-icons-outlined md-32">arrow_drop_down</span>
71
+ </a>
94
72
  <div class="dropdown-content">
95
- <a href="https://code-for-life.gitbook.io/independent-student-resources/" target="_blank">
96
- <small>Rapid Router</small><span class="iconify" data-icon="mdi:open-in-new"></span></a>
97
- <a href="{% url 'codingClub' %}"><small>Coding Clubs</small></a>
73
+ <a href="{% url 'levels' %}"><small>Rapid Router</small></a>
74
+ <a href="{% url 'python_levels' %}"><small>Python Den</small></a>
98
75
  </div>
99
76
  </div>
77
+ {% if user|is_logged_in_as_school_user %}
78
+ <a href="{% url 'scoreboard' %}" id="student_scoreboards_button"
79
+ class="button--menu button--menu--secondary button--menu--enabled">Scoreboard</a>
80
+ {% endif %}
81
+ <!-- independent student -->
82
+ {% if not user.new_student.class_field %}
83
+ <div class="dropdown">
84
+ <a id="teaching_resources_button"
85
+ class="button--menu button--menu--secondary button--menu--enabled">
86
+ Resources <span class="material-icons-outlined md-32">arrow_drop_down</span></a>
87
+ <div class="dropdown-content">
88
+ <a href="https://code-for-life.gitbook.io/independent-student-resources/" target="_blank">
89
+ <small>Rapid Router</small><span class="iconify" data-icon="mdi:open-in-new"></span></a>
90
+ <a href="{% url 'codingClub' %}"><small>Coding Clubs</small></a>
91
+ </div>
92
+ </div>
93
+ {% endif %}
100
94
  {% endif %}
101
- {% endif %}
102
- {% else %}
103
- <div class="menu__left-side col-md-5">
95
+ {% else %}
104
96
  <a href="{% url 'teach' %}" class="button--menu button--menu--primary button--menu--enabled">Teachers</a>
105
97
  <a href="{% url 'play' %}" class="button--menu button--menu--primary button--menu--enabled">Students</a>
106
- {% endif %}
98
+ {% endif %}
99
+ </div>
107
100
  </div>
108
101
  {% if user|is_logged_in %}
109
- <div class="menu__right-side col-md-4">
102
+ <div class="menu__right-side">
110
103
  <div class="dropdown header__account-details-dropdown">
111
104
  <button id="logout_menu" class="button--regular button--secondary button--dropdown header__account-details-dropdown"
112
105
  data-toggle="dropdown">
@@ -146,7 +139,7 @@
146
139
  </ul>
147
140
  </div>
148
141
  {% else %}
149
- <div class="menu__right-side col-md-5">
142
+ <div class="menu__right-side">
150
143
  <a href="{% url 'register' %}" id="signup_button" class="button button--primary button--register register">Register for FREE</a>
151
144
  <div class="dropdown">
152
145
  <button id="login_dropdown" class="button--regular button--secondary button--header--login button--dropdown"