codeforlife-portal 1.0.0.post.dev485__tar.gz → 1.0.0.post.dev489__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.
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/PKG-INFO +1 -1
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/codeforlife_portal.egg-info/PKG-INFO +1 -1
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/codeforlife_portal.egg-info/SOURCES.txt +2 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/_version.py +2 -2
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/sass/styles.scss +60 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/base_new.html +1 -1
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/teach_new/dashboard.html +67 -42
- codeforlife-portal-1.0.0.post.dev489/portal/templates/redesign/teach_new/teacher_move_all_classes_new.html +81 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/dashboard_page_new.py +15 -11
- codeforlife-portal-1.0.0.post.dev489/portal/tests/pageObjects/portal/teach/move_classes_page_new.py +55 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/test_organisation_new.py +92 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/urls.py +2 -1
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/views/organisation_new.py +41 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/views/teacher/dashboard.py +1 -1
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/MANIFEST.in +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/README.md +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/codeforlife_portal.egg-info/dependency_links.txt +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/codeforlife_portal.egg-info/not-zip-safe +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/codeforlife_portal.egg-info/requires.txt +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/codeforlife_portal.egg-info/top_level.txt +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/deploy/__init__.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/deploy/captcha.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/deploy/mail.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/deploy/middleware/__init__.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/deploy/middleware/basicauth.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/deploy/middleware/exceptionlogging.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/deploy/permissions.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/deploy/static/apple-touch-icon-120x120.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/deploy/static/apple-touch-icon-152x152.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/deploy/static/apple-touch-icon-180x180.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/deploy/static/apple-touch-icon-76x76.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/deploy/static/apple-touch-icon.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/deploy/static/robots.txt +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/deploy/templates/deploy/csrf_failure.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/deploy/views.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/example_project/__init__.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/example_project/example_project/__init__.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/example_project/example_project/settings.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/example_project/example_project/wsgi.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/example_project/manage.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/__init__.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/admin.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/app_settings.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/autoconfig.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/beta.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/emailMessages.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/emailMessages_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/forms/__init__.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/forms/admin_login.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/forms/auth_forms.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/forms/home.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/forms/organisation.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/forms/play.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/forms/play_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/forms/registration.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/forms/registration_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/forms/teach.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/forms/teach_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/handlers.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/helpers/__init__.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/helpers/emails.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/helpers/emails_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/helpers/generators.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/helpers/location.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/helpers/password.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/middleware/__init__.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/middleware/ratelimit_login_attempts.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/migrations/0001_squashed_0041_new_news.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/migrations/0042_school_country.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/migrations/0043_auto_20150430_0952.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/migrations/0044_auto_20150430_0959.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/migrations/0045_auto_20150430_1446.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/migrations/0046_auto_20150723_1101.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/migrations/0047_remove_userprofile_avatar.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/migrations/0048_plural_management_frontnews.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/migrations/0049_refactor_emailverifications.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/migrations/0050_refactor_emailverifications_2.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/migrations/0051_add_missing_ev_records.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/migrations/0052_refactor_emailverifications_3.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/migrations/0053_refactor_teacher_student_1.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/migrations/__init__.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/models.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/permissions.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/email_media/logo_c4l_hexa.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/colorbox.css +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/common.css +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/images/KS-level-sprite.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/images/Menu-arrow-down.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/images/animated-overlay.gif +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/images/ui-bg_flat_10_000000_40x100.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/images/ui-icons_222222_256x240.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/images/ui-icons_228ef1_256x240.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/images/ui-icons_ef8c08_256x240.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/images/ui-icons_ffd27a_256x240.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/images/ui-icons_ffffff_256x240.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/jquery-ui.css +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/jquery-ui.structure.css +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/jquery-ui.theme.css +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/list.css +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/materials.css +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/noJS.css +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/reset.css +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/solution_selection.css +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/styles.css +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/css/tables.css +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/fonts/glyphicons-halflings-regular.eot +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/fonts/glyphicons-halflings-regular.svg +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/fonts/glyphicons-halflings-regular.ttf +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/fonts/glyphicons-halflings-regular.woff +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/fonts/glyphicons-halflings-regular.woff2 +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/2fa_authenticator_link.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/RR_logo_blank.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/RRlogo_on_green.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/RRlogo_on_green_small.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/RRlogo_on_less_green.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/RRlogo_on_less_green_small.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/colorboxImages/border.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/colorboxImages/controls.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/colorboxImages/loading.gif +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/colorboxImages/loading_background.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/colorboxImages/overlay.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/dee_hi_res.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/dee_large.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/dee_red_box.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/favicon.ico +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/kirsty.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/kirsty_hi_res.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/kirsty_large.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_001.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_002.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_003.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_004.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_005.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_006.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_007.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_008.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_009.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_010.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_011.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_012.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_013.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_014.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_015.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_016.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_017.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_018.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_019.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_020.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_021.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_022.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_023.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_024.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_025.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_026.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_027.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_028.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_029.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_030.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_031.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_032.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_033.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_034.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_035.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_036.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_037.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_038.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_039.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_040.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_041.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_042.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_043.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_044.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_045.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_046.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_047.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_048.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_049.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_050.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_051.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_052.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_053.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_054.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_055.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_056.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_057.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_058.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_059.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_060.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_061.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_062.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_063.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_064.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_065.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_066.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_067.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_068.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_069.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_070.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_071.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_072.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_073.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_074.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_075.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_076.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_077.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_078.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_079.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_080.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_081.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_082.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_083.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_084.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_085.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_086.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_087.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_088.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_089.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_090.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_091.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_092.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_093.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_094.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_095.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_096.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_097.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_098.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_099.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_100.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_101.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_102.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_103.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_104.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_105.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_106.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_107.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_108.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/levels/level_109.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/logged_in_blob.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/logged_out_blob.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/logo_c4l_horizontal.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/movie_file.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/nigel.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/nigel_hi_res.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/nigel_large.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/padlock.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/pdfsmall.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/phil.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/phil_hi_res.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/phil_large.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/qr_code_scan.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/rrBG.jpg +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/rrBGIE.jpg +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/rrBGsmall.jpg +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solutionPY_080.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solutionPY_081.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solutionPY_082.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solutionPY_083.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solutionPY_084.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solutionPY_085.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solutionPY_086.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solutionPY_087.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solutionPY_088.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solutionPY_089.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solutionPY_090.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solutionPY_091.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_001.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_002.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_003.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_004.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_005.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_006.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_007.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_008.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_009.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_010.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_011.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_012.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_013.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_014.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_015.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_016.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_017.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_018.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_019.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_020.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_021.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_022.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_023.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_024.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_025.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_026.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_027.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_028.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_029.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_030.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_031.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_032.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_033.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_034.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_035.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_036.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_037.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_038.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_039.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_040.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_041.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_042.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_043.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_044.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_045.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_046.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_047.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_048.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_049.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_050.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_051.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_052.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_053.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_054.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_055.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_056.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_057.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_058.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_059.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_060.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_061.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_062.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_063.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_064.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_065.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_066.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_067.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_068.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_069.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_070.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_071.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_072.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_073.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_074.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_075.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_076.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_077.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_078.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_079.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_080.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_081.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_082.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_083.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_084.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_085.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_086.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_087.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_088.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_089.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_090.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_091.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_092.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_093.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_094.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_095.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_096.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_097.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_098.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_099.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_100.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_101.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_102.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_103.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_104.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_105.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_106.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_107.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_108.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/solutions/solution_109.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/video_still.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/wes.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/wes_hi_res.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/wes_large.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img/zip.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/10x_logo.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/a_fun_game_for_students.jpg +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/about_blockly.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/about_us_hero.jpg +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/background_blue.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/background_orange.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/barefoot_logo.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/bcs_logo.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/confirmation_tick.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/cross.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/dee.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/facebook.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/footer_arrow.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/form_chooser_arrow.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/gla_logo.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/google+.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/hamburger.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/help_and_support_hero.jpg +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/home_educate_hero.jpg +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/home_play_hero.jpg +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/hope_logo.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/icl_logo.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/icon_13.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/icon_close.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/icon_free.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/icon_game.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/icon_globe.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/icon_graph.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/icon_info.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/icon_laptop.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/icon_steps.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/kirsty.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/logo_c4l_hexa.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/logo_c4l_horizontal.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/logo_ocado.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/logout_icon.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/mc_saatchi_logo.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/nigel.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/paper_plane.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/phil.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/play_button.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/pressure_cooker_logo.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/rapid_router.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/rapid_router_background.jpg +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/rapid_router_landing_hero.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/resources_image.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/sadface.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/sharon_harrison.jpg +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/stage_icon_ks1.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/stage_icon_lks2.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/stage_icon_uks2.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/step_done.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/step_in_progress.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/step_undone.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/teacher1.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/teacher2.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/teacher3.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/teacher_dashboard.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/teaching_resources.jpg +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/teaching_tools.jpg +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/thumbnail_intro_c4l.jpg +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/thumbnail_intro_rr.jpg +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/twitter.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/warning.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/wes.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/img_new/zip.png +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/js/bootstrap.js +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/js/common.js +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/js/deleteWorkspaces.js +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/js/fuzzySchoolLookup.js +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/js/jquery.placeholder.js +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/js/lib/jquery-ui.js +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/js/lib/jquery-video-lightning.js +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/js/lib/jquery.colorbox.js +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/js/lib/jquery.easy-ticker.js +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/js/lib/jquery.js +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/js/lib/magnific.js +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/js/lib/modernizr.custom.79639.js +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/js/organisation_manage.js +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/js/passwordStrength.js +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/js/passwordStrength_new.js +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/js/play.js +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/js/riveted.min.js +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/js/solutionSelection.js +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/js/sticky_subnav.js +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/js/student_login.js +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/js/student_login_new.js +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/js/teach_browser.js +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/js/teach_class.js +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/js/teach_class_new.js +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/sass/bootstrap.scss +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/static/portal/sass/colorbox.scss +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/403.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/404.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/500.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/email.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/email.txt +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/2FA_redirect.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/about.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/admin/aggregated_data.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/admin/map.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/base.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/base_no_userprofile.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/contact.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/email_verification_failed.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/email_verification_needed.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/help-and-support.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/home.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/locked_out.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/mouseflow.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/play/base.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/play/student_details.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/play/student_edit_account.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/play/student_join_organisation.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/play.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/base.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/materials/base.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/materials/home.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/materials/viewer.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/organisation_create.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/organisation_manage.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/teacher_add_external_student.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/teacher_added_external_student.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/teacher_class.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/teacher_classes.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/teacher_dismiss_students.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/teacher_edit_account.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/teacher_edit_class.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/teacher_edit_student.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/teacher_home.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/teacher_lesson_plans.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/teacher_lesson_plans_python.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/teacher_level_solutions.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/teacher_move_all_classes.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/teacher_move_class.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/teacher_move_students.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/teacher_move_students_to_class.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/teacher_new_students.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/teacher_solution.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/teacher_solutionPY.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/teacher_student_reset.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach/teacher_students_reset.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/teach.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/portal/terms.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/about_new.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/email_verification_failed_new.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/email_verification_needed_new.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/help-and-support_new.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/home_new.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/login.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/play_new.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/register.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/reset_password_confirm.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/reset_password_done.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/reset_password_email.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/reset_password_email_sent.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/reset_password_student.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/reset_password_teach.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/teach_new/base_logged_in.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/teach_new/base_registering.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/teach_new/class_new.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/teach_new/materials_new.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/teach_new/onboarding_classes.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/teach_new/onboarding_complete.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/teach_new/onboarding_print.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/teach_new/onboarding_school.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/teach_new/onboarding_students.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/teach_new/teacher_dismiss_students_new.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/teach_new/teacher_edit_class_new.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/teach_new/teacher_edit_student_new.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/teach_new/teacher_move_class_new.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/teach_new/teacher_move_students_new.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/teach_new/teacher_move_students_to_class_new.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/teach_new/teacher_student_reset_new.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/teach_new/viewer_new.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/teach_new.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/redesign/terms_new.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/registration/login.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/registration/password_reset_complete.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/registration/password_reset_confirm.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/registration/password_reset_done.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/registration/password_reset_email.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/registration/student_password_reset_form.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/registration/teacher_password_reset_form.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/two_factor/_base.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/two_factor/core/setup_complete.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templates/two_factor/profile/profile.html +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templatetags/__init__.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templatetags/app_tags.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/templatetags/table_tags.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/__init__.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/base_test.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/base_test_migration.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/base_test_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/custom_handler.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/__init__.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/__init__.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/about_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/admin/__init__.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/admin/admin_base_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/admin/admin_data_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/admin/admin_login_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/admin/admin_map_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/base_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/contact_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/email_verification_needed_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/email_verification_needed_page_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/forbidden_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/game_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/help_and_support_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/help_and_support_page_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/home_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/home_page_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/login_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/password_reset_form_page_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/pdf_viewer_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/play/__init__.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/play/account_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/play/dashboard_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/play/join_school_or_club_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/play/play_base_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/play_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/resources_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/signup_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/student_password_reset_form_page_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/__init__.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/account_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/add_independent_student_to_class_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/added_independent_student_to_class_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/class_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/class_page_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/class_settings_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/class_settings_page_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/classes_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/dashboard_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/dismiss_students_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/dismiss_students_page_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/edit_student_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/edit_student_password_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/move_class_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/move_class_page_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/move_students_disambiguate_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/move_students_disambiguate_page_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/move_students_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/move_students_page_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/new_students_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/onboarding_classes_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/onboarding_organisation_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/onboarding_revoke_request_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/onboarding_student_list_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/onboarding_students_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/organisation_create_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/organisation_manage_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/organisation_revoke_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/teach_base_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/teach_base_page_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach/thanks_for_reset_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teach_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/teacher_password_reset_form_page_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/portal/terms_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/registration/__init__.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/registration/independent_student_login_form_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/registration/password_reset_form_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/registration/student_password_reset_form_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/pageObjects/registration/teacher_password_reset_form_page.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/test_admin.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/test_api.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/test_class.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/test_class_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/test_contact.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/test_emails.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/test_independent_student.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/test_independent_student_joins_a_class.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/test_independent_student_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/test_location.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/test_navigation.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/test_organisation.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/test_school_student.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/test_school_student_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/test_security.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/test_teacher.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/test_teacher_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/test_teacher_student.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/test_teacher_student_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/test_views.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/test_views_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/utils/__init__.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/utils/classes.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/utils/classes_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/utils/email.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/utils/email_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/utils/messages.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/utils/organisation.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/utils/organisation_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/utils/student.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/utils/student_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/utils/teacher.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/tests/utils/teacher_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/utils.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/views/__init__.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/views/admin.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/views/api.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/views/email.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/views/email_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/views/home.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/views/home_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/views/organisation.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/views/play.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/views/registration.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/views/registration_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/views/teacher/__init__.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/views/teacher/home.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/views/teacher/home_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/views/teacher/pdfs.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/views/teacher/solutions_level_selector.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/views/teacher/teach.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/views/teacher/teach_new.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/wsgi.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/ratelimit/__init__.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/ratelimit/backends/__init__.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/ratelimit/backends/cache.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/ratelimit/decorators.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/reports/__init__.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/reports/admin.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/reports/migrations/0001_initial.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/reports/migrations/0002_hitsperlevelperday.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/reports/migrations/__init__.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/reports/models.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/reports/tests.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/reports/urls.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/reports/views.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/setup.cfg +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/setup.py +0 -0
- {codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/versioneer.py +0 -0
|
@@ -555,6 +555,7 @@ portal/templates/redesign/teach_new/onboarding_students.html
|
|
|
555
555
|
portal/templates/redesign/teach_new/teacher_dismiss_students_new.html
|
|
556
556
|
portal/templates/redesign/teach_new/teacher_edit_class_new.html
|
|
557
557
|
portal/templates/redesign/teach_new/teacher_edit_student_new.html
|
|
558
|
+
portal/templates/redesign/teach_new/teacher_move_all_classes_new.html
|
|
558
559
|
portal/templates/redesign/teach_new/teacher_move_class_new.html
|
|
559
560
|
portal/templates/redesign/teach_new/teacher_move_students_new.html
|
|
560
561
|
portal/templates/redesign/teach_new/teacher_move_students_to_class_new.html
|
|
@@ -650,6 +651,7 @@ portal/tests/pageObjects/portal/teach/edit_student_page.py
|
|
|
650
651
|
portal/tests/pageObjects/portal/teach/edit_student_password_page.py
|
|
651
652
|
portal/tests/pageObjects/portal/teach/move_class_page.py
|
|
652
653
|
portal/tests/pageObjects/portal/teach/move_class_page_new.py
|
|
654
|
+
portal/tests/pageObjects/portal/teach/move_classes_page_new.py
|
|
653
655
|
portal/tests/pageObjects/portal/teach/move_students_disambiguate_page.py
|
|
654
656
|
portal/tests/pageObjects/portal/teach/move_students_disambiguate_page_new.py
|
|
655
657
|
portal/tests/pageObjects/portal/teach/move_students_page.py
|
{codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/_version.py
RENAMED
|
@@ -11,8 +11,8 @@ version_json = '''
|
|
|
11
11
|
{
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "1.0.0.post.
|
|
14
|
+
"full-revisionid": "5c6dfcb91e3b082431a8c5faadf19023a2a583fa",
|
|
15
|
+
"version": "1.0.0.post.dev489"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -15,12 +15,19 @@ $color-quote-text: $color-teacher-blue;
|
|
|
15
15
|
$color-quote-name: $color-text-grey;
|
|
16
16
|
//Buttons
|
|
17
17
|
$color-button-primary-action-general-play: $color-teacher-blue;
|
|
18
|
+
$color-button-primary-action-general-play-hover: #002284;
|
|
18
19
|
$color-button-primary-action-general-educate: $color-student-orange;
|
|
20
|
+
$color-button-primary-action-general-educate-hover: #c15b00;
|
|
19
21
|
$color-button-primary-action-positive: #7ed321;
|
|
22
|
+
$color-button-primary-action-positive-hover: #2dbf00;
|
|
20
23
|
$color-button-primary-action-negative: #ff637d;
|
|
24
|
+
$color-button-primary-action-negative-hover: #d32a46;
|
|
21
25
|
$color-button-primary-action-danger: #f00;
|
|
26
|
+
$color-button-primary-action-danger-hover: #df0531;
|
|
22
27
|
$color-button-primary-action-navigation: $color-text-grey;
|
|
28
|
+
$color-button-primary-action-navigation-hover: #000;
|
|
23
29
|
$color-button-primary-action-setup: #fab300;
|
|
30
|
+
$color-button-primary-action-setup-hover: #ff9500;
|
|
24
31
|
$color-button-secondary-border-light: #fff;
|
|
25
32
|
$color-button-secondary-border-dark: $color-text-grey;
|
|
26
33
|
$color-button-border-teacher: $color-teacher-blue;
|
|
@@ -335,6 +342,10 @@ button,
|
|
|
335
342
|
background-color: transparent;
|
|
336
343
|
border-bottom: 6px solid $color-background-secondary;
|
|
337
344
|
border-radius: 0;
|
|
345
|
+
|
|
346
|
+
&:hover {
|
|
347
|
+
font-weight: 600;
|
|
348
|
+
}
|
|
338
349
|
}
|
|
339
350
|
|
|
340
351
|
.button--menu--disabled {
|
|
@@ -390,42 +401,74 @@ button,
|
|
|
390
401
|
.button--primary--general-play {
|
|
391
402
|
background: $color-button-primary-action-general-play;
|
|
392
403
|
color: $color-text-secondary;
|
|
404
|
+
|
|
405
|
+
&:hover {
|
|
406
|
+
background: $color-button-primary-action-general-play-hover;
|
|
407
|
+
}
|
|
393
408
|
}
|
|
394
409
|
|
|
395
410
|
.button--primary--general-educate {
|
|
396
411
|
background: $color-button-primary-action-general-educate;
|
|
397
412
|
color: $color-text-secondary;
|
|
413
|
+
|
|
414
|
+
&:hover {
|
|
415
|
+
background: $color-button-primary-action-general-educate-hover;
|
|
416
|
+
}
|
|
398
417
|
}
|
|
399
418
|
|
|
400
419
|
.button--primary--positive {
|
|
401
420
|
background: $color-button-primary-action-positive;
|
|
402
421
|
color: $color-text-secondary;
|
|
422
|
+
|
|
423
|
+
&:hover {
|
|
424
|
+
background: $color-button-primary-action-positive-hover;
|
|
425
|
+
}
|
|
403
426
|
}
|
|
404
427
|
|
|
405
428
|
.button--primary--negative {
|
|
406
429
|
background: $color-button-primary-action-negative;
|
|
407
430
|
color: $color-text-secondary;
|
|
431
|
+
|
|
432
|
+
&:hover {
|
|
433
|
+
background: $color-button-primary-action-negative-hover;
|
|
434
|
+
}
|
|
408
435
|
}
|
|
409
436
|
|
|
410
437
|
.button--primary--danger,
|
|
411
438
|
.ui-dialog-buttonset button {
|
|
412
439
|
background: $color-button-primary-action-danger;
|
|
413
440
|
color: $color-text-secondary;
|
|
441
|
+
|
|
442
|
+
&:hover {
|
|
443
|
+
background: $color-button-primary-action-danger-hover;
|
|
444
|
+
}
|
|
414
445
|
}
|
|
415
446
|
|
|
416
447
|
.button--primary--navigation {
|
|
417
448
|
background: $color-button-primary-action-navigation;
|
|
418
449
|
color: $color-text-secondary;
|
|
450
|
+
|
|
451
|
+
&:hover {
|
|
452
|
+
background: $color-button-primary-action-navigation-hover;
|
|
453
|
+
}
|
|
419
454
|
}
|
|
420
455
|
|
|
421
456
|
.button--primary--setup {
|
|
422
457
|
background: $color-button-primary-action-setup;
|
|
423
458
|
color: $color-text-secondary;
|
|
459
|
+
|
|
460
|
+
&:hover {
|
|
461
|
+
background: $color-button-primary-action-setup-hover;
|
|
462
|
+
}
|
|
424
463
|
}
|
|
425
464
|
|
|
426
465
|
.button--secondary {
|
|
427
466
|
background-color: transparent;
|
|
428
467
|
border: 1px solid;
|
|
468
|
+
|
|
469
|
+
&:hover {
|
|
470
|
+
border: 2px solid;
|
|
471
|
+
}
|
|
429
472
|
}
|
|
430
473
|
|
|
431
474
|
.button--secondary--light {
|
|
@@ -446,6 +489,10 @@ button,
|
|
|
446
489
|
}
|
|
447
490
|
}
|
|
448
491
|
|
|
492
|
+
.home-icon:hover {
|
|
493
|
+
color: $color-background-primary;
|
|
494
|
+
}
|
|
495
|
+
|
|
449
496
|
.button--secondary--no-border {
|
|
450
497
|
border-color: transparent;
|
|
451
498
|
color: $color-text-tertiary;
|
|
@@ -1216,10 +1263,23 @@ td {
|
|
|
1216
1263
|
border: 2px solid $color-text-secondary;
|
|
1217
1264
|
}
|
|
1218
1265
|
|
|
1266
|
+
.secondary-table {
|
|
1267
|
+
table,
|
|
1268
|
+
th,
|
|
1269
|
+
td {
|
|
1270
|
+
border: 2px solid $color-background-tint-primary;
|
|
1271
|
+
}
|
|
1272
|
+
}
|
|
1273
|
+
|
|
1219
1274
|
.header-primary {
|
|
1220
1275
|
th {
|
|
1221
1276
|
background-color: $color-table-header-primary;
|
|
1222
1277
|
}
|
|
1278
|
+
|
|
1279
|
+
td {
|
|
1280
|
+
background-color: $color-background-secondary;
|
|
1281
|
+
}
|
|
1282
|
+
|
|
1223
1283
|
}
|
|
1224
1284
|
|
|
1225
1285
|
.header-secondary {
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
<div class="menu__left-side col-sm-6 col-sm-offset-2">
|
|
87
87
|
<button class="hamburger" data-toggle="collapse" data-target="#menu-items"></button>
|
|
88
88
|
<a href="{% url 'home_new' %}"><img class="logo-horizontal" src='{% static "portal/img_new/logo-horizontal.png" %}'></a>
|
|
89
|
-
<a href="{% url 'home_new' %}" class="button--regular button--secondary
|
|
89
|
+
<a href="{% url 'home_new' %}" class="button--regular button--secondary--no-border home-icon"><div class="glyphicon glyphicon-home"></div></a>
|
|
90
90
|
{% block leftMenuButtons %}
|
|
91
91
|
{% if user|is_logged_in %}
|
|
92
92
|
{% if user|is_logged_in_as_teacher %}
|
|
@@ -77,18 +77,22 @@
|
|
|
77
77
|
{% else %}
|
|
78
78
|
<h4 class="col-sm-6 col-center">You can see which other teachers in your school or club are registered here. Should you need to leave the
|
|
79
79
|
school or club, you can do so below.</h4>
|
|
80
|
+
<form method="post" action="{% url 'organisation_leave_new' %}">
|
|
81
|
+
{% csrf_token %}
|
|
82
|
+
<button id="leave_organisation_button" class="button--regular button--secondary button--secondary--dark"
|
|
83
|
+
type="submit">Leave school or club</button>
|
|
84
|
+
</form>
|
|
80
85
|
{% endif %}
|
|
81
86
|
</section>
|
|
82
87
|
|
|
88
|
+
{% if is_admin %}
|
|
83
89
|
<div class="background col-sm-7 col-center">
|
|
84
90
|
<h3>These teachers are already part of your school or club</h3>
|
|
85
91
|
<table id="teachers_table" class="header-primary data-primary">
|
|
86
92
|
<tr>
|
|
87
93
|
<th><p class="body-text">Name</p></th>
|
|
88
94
|
<th><p class="body-text">Administrator status</p></th>
|
|
89
|
-
|
|
90
|
-
<th colspan="3"><p class="body-text">Status actions</p></th>
|
|
91
|
-
{% endif %}
|
|
95
|
+
<th colspan="3"><p class="body-text">Status actions</p></th>
|
|
92
96
|
</tr>
|
|
93
97
|
{% for coworker in coworkers %}
|
|
94
98
|
<tr>
|
|
@@ -96,7 +100,7 @@
|
|
|
96
100
|
{% if coworker.new_user == user %}<b>(you)</b>{% endif %}</p></td>
|
|
97
101
|
<td><p class="small-text">{% if coworker.is_admin %}Administrator{% else %}Standard Teacher{% endif %}{% if coworker.is_admin or is_admin %}
|
|
98
102
|
({{ coworker.new_user.email|emaildomain }}){% endif %}</p></td>
|
|
99
|
-
{% if coworker.new_user != user
|
|
103
|
+
{% if coworker.new_user != user %}
|
|
100
104
|
<td class="cell-center">
|
|
101
105
|
<button id="kick_button" class="button--small button--primary--danger"
|
|
102
106
|
onclick="showRemoveConfirmation('{% url 'organisation_kick_new' coworker.id %}', '{{ coworker.new_user.first_name|striptags | escapejs }}')">
|
|
@@ -116,52 +120,72 @@
|
|
|
116
120
|
onclick="showDisable2FAConfirmation('{% url 'teacher_disable_2FA_new' coworker.id %}', '{{ coworker.new_user.first_name|striptags | escapejs}}')">
|
|
117
121
|
Disable 2FA</button>{% endif %}</td>
|
|
118
122
|
{% else %}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
<td></td>
|
|
123
|
-
{% endif %}
|
|
123
|
+
<td></td>
|
|
124
|
+
<td></td>
|
|
125
|
+
<td></td>
|
|
124
126
|
{% endif %}
|
|
125
127
|
</tr>
|
|
126
128
|
{% endfor %}
|
|
127
129
|
</table>
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
with their smartphone or tablet.</p>
|
|
134
|
-
{% endif %}
|
|
130
|
+
<p class="body-text">Select ‘Remove’ to delete a teacher from your school or club. You will be able to move any existing classes assigned to that
|
|
131
|
+
teacher to other teachers in your school or club.</p>
|
|
132
|
+
<p class="body-text">If another teacher is having problems with their Two Factor Authentication, you can disable it for them by selecting ‘Disable 2FA’.
|
|
133
|
+
We strongly recommend that administrators who are using 2FA ensure there is another administrator who will be able to disable their 2FA should they have problems
|
|
134
|
+
with their smartphone or tablet.</p>
|
|
135
135
|
</div>
|
|
136
|
-
|
|
137
|
-
<div
|
|
138
|
-
<div class="
|
|
139
|
-
<h3>These teachers
|
|
140
|
-
|
|
141
|
-
<
|
|
142
|
-
<
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
{
|
|
136
|
+
{% else %}
|
|
137
|
+
<div class="background background--primary secondary-table">
|
|
138
|
+
<div class="col-sm-7 col-center">
|
|
139
|
+
<h3>These teachers are already part of your school or club</h3>
|
|
140
|
+
<table class="header-primary">
|
|
141
|
+
<tr>
|
|
142
|
+
<th><p class="body-text">Name</p></th>
|
|
143
|
+
<th><p class="body-text">Administrator status</p></th>
|
|
144
|
+
</tr>
|
|
145
|
+
{% for coworker in coworkers %}
|
|
146
|
+
<tr>
|
|
147
|
+
<td><p class="small-text">{{ coworker.title }} {{ coworker.new_user.first_name }} {{ coworker.new_user.last_name }}
|
|
148
|
+
{% if coworker.new_user == user %}<b>(you)</b>{% endif %}</p></td>
|
|
149
|
+
<td><p class="small-text">{% if coworker.is_admin %}Administrator{% else %}Standard Teacher{% endif %}{% if coworker.is_admin or is_admin %}
|
|
150
|
+
({{ coworker.new_user.email|emaildomain }}){% endif %}</p></td>
|
|
151
|
+
</tr>
|
|
152
|
+
{% endfor %}
|
|
153
|
+
</table>
|
|
154
|
+
</div>
|
|
155
|
+
</div>
|
|
156
|
+
{% endif %}
|
|
157
|
+
|
|
158
|
+
{% if is_admin %}
|
|
159
|
+
{% if join_requests %}
|
|
160
|
+
<div id="requests">
|
|
161
|
+
<div class="background col-sm-7 col-center">
|
|
162
|
+
<h3>These teachers have requested to join your school or club</h3>
|
|
163
|
+
{% if join_requests %}
|
|
164
|
+
<table id="request_table" class="header-primary data-primary">
|
|
148
165
|
<tr>
|
|
149
|
-
<
|
|
150
|
-
<
|
|
151
|
-
<
|
|
152
|
-
<a id="allow_button" class="button button--small button--primary--positive"
|
|
153
|
-
href="{% url 'organisation_allow_join_new' join_request.id %}">Allow</a></td>
|
|
154
|
-
<td class="cell-center">
|
|
155
|
-
<a id="deny_button" class="button button--small button--primary--danger"
|
|
156
|
-
href="{% url 'organisation_deny_join_new' join_request.id %}">Deny</a></td>
|
|
166
|
+
<th><p class="body-text">Name</p></th>
|
|
167
|
+
<th><p class="body-text">Email address</p></th>
|
|
168
|
+
<th colspan="2"><p class="body-text">Actions</p></th>
|
|
157
169
|
</tr>
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
170
|
+
{% for join_request in join_requests %}
|
|
171
|
+
<tr>
|
|
172
|
+
<td><p class="small-text">{{ join_request.title }} {{ join_request.new_user.first_name }} {{ join_request.new_user.last_name }}</p></td>
|
|
173
|
+
<td><p class="small-text">{{ join_request.new_user.email }}</p></td>
|
|
174
|
+
<td class="cell-center">
|
|
175
|
+
<a id="allow_button" class="button button--small button-primary button--primary--positive"
|
|
176
|
+
href="{% url 'organisation_allow_join_new' join_request.id %}">Allow</a></td>
|
|
177
|
+
<td class="cell-center">
|
|
178
|
+
<a id="deny_button" class="button button--small button-primary button--primary--danger"
|
|
179
|
+
href="{% url 'organisation_deny_join_new' join_request.id %}">Deny</a></td>
|
|
180
|
+
</tr>
|
|
181
|
+
{% endfor %}
|
|
182
|
+
</table>
|
|
183
|
+
{% else %}
|
|
184
|
+
<p class="body-text">No teachers have currently requested to join your school or club.</p>
|
|
185
|
+
{% endif %}
|
|
186
|
+
</div>
|
|
163
187
|
</div>
|
|
164
|
-
|
|
188
|
+
{% endif %}
|
|
165
189
|
|
|
166
190
|
<div id="school-details" class="background background--primary">
|
|
167
191
|
<div class="col-sm-7 col-center">
|
|
@@ -184,6 +208,7 @@
|
|
|
184
208
|
</form>
|
|
185
209
|
</div>
|
|
186
210
|
</div>
|
|
211
|
+
{% endif %}
|
|
187
212
|
</div>
|
|
188
213
|
|
|
189
214
|
<div id="classes">
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
{% extends 'redesign/teach_new/base_logged_in.html' %}
|
|
2
|
+
{% load static %}
|
|
3
|
+
{% load app_tags %}
|
|
4
|
+
|
|
5
|
+
{% block dashboard %}
|
|
6
|
+
<a href="{% url 'dashboard' %}" class="button--menu button--menu--secondary button--menu--enabled button--menu--teacher--active">School / Club</a>
|
|
7
|
+
{% endblock dashboard %}
|
|
8
|
+
|
|
9
|
+
{% block subNav %}
|
|
10
|
+
{{ block.super }}
|
|
11
|
+
<div class="sticky-subnav sub-nav sub-nav--hidden sub-nav--teacher">
|
|
12
|
+
<a href="{% url 'dashboard' %}#school" class="button button--regular button--secondary button--secondary--light">Your school</a>
|
|
13
|
+
<a href="{% url 'dashboard' %}#classes" class="button button--regular button--secondary button--secondary--light">Classes</a>
|
|
14
|
+
<a href="{% url 'dashboard' %}#account" class="button button--regular button--secondary button--secondary--light">Your Account</a>
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
<section class="banner banner--teacher row">
|
|
18
|
+
<h1 class="col-sm-8 col-sm-offset-2 banner__text--primary">Welcome back, {{ user|make_into_username }}</h1>
|
|
19
|
+
</section>
|
|
20
|
+
<div class="sub-nav sub-nav--teacher">
|
|
21
|
+
<div class="col-sm-12">
|
|
22
|
+
<a href="{% url 'dashboard' %}#school" class="button button--regular button--secondary button--secondary--light">Your school</a>
|
|
23
|
+
<a href="{% url 'dashboard' %}#classes" class="button button--regular button--secondary button--secondary--light">Classes</a>
|
|
24
|
+
<a href="{% url 'dashboard' %}#account" class="button button--regular button--secondary button--secondary--light">Your Account</a>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
{% endblock subNav %}
|
|
28
|
+
|
|
29
|
+
{% block content %}
|
|
30
|
+
|
|
31
|
+
<div id="move_all_classes_page"></div>
|
|
32
|
+
|
|
33
|
+
<section class="background col-sm-6 col-center">
|
|
34
|
+
<h2>Move all classes for teacher {{ original_teacher.new_user|make_into_username }}</h2><br>
|
|
35
|
+
|
|
36
|
+
<h4>Move all classes assigned to teacher {{ original_teacher.new_user.first_name }}
|
|
37
|
+
{{ original_teacher.new_user.last_name }} to other teachers in {{ original_teacher.school.name }}.</h4>
|
|
38
|
+
</section>
|
|
39
|
+
|
|
40
|
+
<div class="background background--primary secondary-table">
|
|
41
|
+
<div class="col-sm-6 col-center">
|
|
42
|
+
<h4><strong>Move all classes</strong></h4>
|
|
43
|
+
|
|
44
|
+
<p class="body-text">Select teachers to take over the classes from the lists below.</p>
|
|
45
|
+
|
|
46
|
+
<form method='post'>
|
|
47
|
+
{% csrf_token %}
|
|
48
|
+
<table class="header-primary">
|
|
49
|
+
<tr>
|
|
50
|
+
<th><p class="body-text">Class</p></th>
|
|
51
|
+
<th><p class="body-text">New Teacher</p></th>
|
|
52
|
+
</tr>
|
|
53
|
+
{% for class in classes %}
|
|
54
|
+
<tr>
|
|
55
|
+
<td><p class="small-text">{{ class.name }} ({{ class.access_code }})</p></td>
|
|
56
|
+
<td>
|
|
57
|
+
<select class='wide' name='{{ class.access_code }}'>
|
|
58
|
+
{% for teacher in teachers %}
|
|
59
|
+
<option value='{{ teacher.id }}'>{{ teacher.title }} {{ teacher.new_user.first_name }}
|
|
60
|
+
{{ teacher.new_user.last_name }}</option>
|
|
61
|
+
{% endfor %}
|
|
62
|
+
</select>
|
|
63
|
+
</td>
|
|
64
|
+
</tr>
|
|
65
|
+
{% endfor %}
|
|
66
|
+
</table>
|
|
67
|
+
<div class="background button-group">
|
|
68
|
+
<a class="button button--regular button--secondary button--secondary--dark" href="{% url 'dashboard' %}">Cancel</a>
|
|
69
|
+
<button type='submit' id="move_classes_button" class="button--regular button--primary--navigation">{{ submit_button_text }}</button>
|
|
70
|
+
</div>
|
|
71
|
+
</form>
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
|
|
75
|
+
<script type="text/javascript">
|
|
76
|
+
$(document).ready(function(){
|
|
77
|
+
toggleStickySubnav($('.banner').outerHeight());
|
|
78
|
+
});
|
|
79
|
+
</script>
|
|
80
|
+
|
|
81
|
+
{% endblock %}
|
|
@@ -36,6 +36,8 @@
|
|
|
36
36
|
# identified as the original program.
|
|
37
37
|
from teach_base_page_new import TeachBasePage
|
|
38
38
|
from class_page_new import TeachClassPage
|
|
39
|
+
from move_classes_page_new import TeachMoveClassesPage
|
|
40
|
+
from onboarding_organisation_page import OnboardingOrganisationPage
|
|
39
41
|
from selenium.webdriver.support.ui import Select
|
|
40
42
|
|
|
41
43
|
import time
|
|
@@ -163,17 +165,6 @@ class TeachDashboardPage(TeachBasePage):
|
|
|
163
165
|
def is_teacher_non_admin(self):
|
|
164
166
|
return "Make admin" in self.browser.find_element_by_id('teachers_table').text
|
|
165
167
|
|
|
166
|
-
def have_classes(self):
|
|
167
|
-
return self.element_exists_by_id('classes_table')
|
|
168
|
-
|
|
169
|
-
def does_not_have_classes(self):
|
|
170
|
-
return self.element_does_not_exist_by_id('classes_table')
|
|
171
|
-
|
|
172
|
-
def does_class_exist(self, name, access_code):
|
|
173
|
-
return self.have_classes() and \
|
|
174
|
-
(name in self.browser.find_element_by_id('classes_table').text) and \
|
|
175
|
-
(access_code in self.browser.find_element_by_id('classes_table').text)
|
|
176
|
-
|
|
177
168
|
def click_kick_button(self):
|
|
178
169
|
self.browser.find_element_by_id('kick_button').click()
|
|
179
170
|
|
|
@@ -189,6 +180,14 @@ class TeachDashboardPage(TeachBasePage):
|
|
|
189
180
|
|
|
190
181
|
return self
|
|
191
182
|
|
|
183
|
+
def leave_organisation_with_students(self):
|
|
184
|
+
self._click_leave_button()
|
|
185
|
+
|
|
186
|
+
return TeachMoveClassesPage(self.browser)
|
|
187
|
+
|
|
188
|
+
def _click_leave_button(self):
|
|
189
|
+
self.browser.find_element_by_id('leave_organisation_button').click()
|
|
190
|
+
|
|
192
191
|
def is_dialog_showing(self):
|
|
193
192
|
return self.browser.find_element_by_xpath("//div[contains(@class,'ui-dialog')]").is_displayed()
|
|
194
193
|
|
|
@@ -197,5 +196,10 @@ class TeachDashboardPage(TeachBasePage):
|
|
|
197
196
|
|
|
198
197
|
return self
|
|
199
198
|
|
|
199
|
+
def confirm_kick_with_students_dialog(self):
|
|
200
|
+
self._click_confirm()
|
|
201
|
+
|
|
202
|
+
return TeachMoveClassesPage(self.browser)
|
|
203
|
+
|
|
200
204
|
def _click_confirm(self):
|
|
201
205
|
self.browser.find_element_by_xpath("//button[contains(text(),'Confirm')]").click()
|
codeforlife-portal-1.0.0.post.dev489/portal/tests/pageObjects/portal/teach/move_classes_page_new.py
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Code for Life
|
|
3
|
+
#
|
|
4
|
+
# Copyright (C) 2016, Ocado Innovation Limited
|
|
5
|
+
#
|
|
6
|
+
# This program is free software: you can redistribute it and/or modify
|
|
7
|
+
# it under the terms of the GNU Affero General Public License as
|
|
8
|
+
# published by the Free Software Foundation, either version 3 of the
|
|
9
|
+
# License, or (at your option) any later version.
|
|
10
|
+
#
|
|
11
|
+
# This program is distributed in the hope that it will be useful,
|
|
12
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
# GNU Affero General Public License for more details.
|
|
15
|
+
#
|
|
16
|
+
# You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
18
|
+
#
|
|
19
|
+
# ADDITIONAL TERMS – Section 7 GNU General Public Licence
|
|
20
|
+
#
|
|
21
|
+
# This licence does not grant any right, title or interest in any “Ocado” logos,
|
|
22
|
+
# trade names or the trademark “Ocado” or any other trademarks or domain names
|
|
23
|
+
# owned by Ocado Innovation Limited or the Ocado group of companies or any other
|
|
24
|
+
# distinctive brand features of “Ocado” as may be secured from time to time. You
|
|
25
|
+
# must not distribute any modification of this program using the trademark
|
|
26
|
+
# “Ocado” or claim any affiliation or association with Ocado or its employees.
|
|
27
|
+
#
|
|
28
|
+
# You are not authorised to use the name Ocado (or any of its trade names) or
|
|
29
|
+
# the names of any author or contributor in advertising or for publicity purposes
|
|
30
|
+
# pertaining to the distribution of this program, without the prior written
|
|
31
|
+
# authorisation of Ocado.
|
|
32
|
+
#
|
|
33
|
+
# Any propagation, distribution or conveyance of this program must include this
|
|
34
|
+
# copyright notice and these terms. You must not misrepresent the origins of this
|
|
35
|
+
# program; modified versions of the program must be marked as such and not
|
|
36
|
+
# identified as the original program.
|
|
37
|
+
import dashboard_page_new
|
|
38
|
+
import onboarding_organisation_page
|
|
39
|
+
|
|
40
|
+
from teach_base_page_new import TeachBasePage
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class TeachMoveClassesPage(TeachBasePage):
|
|
44
|
+
def __init__(self, browser):
|
|
45
|
+
super(TeachMoveClassesPage, self).__init__(browser)
|
|
46
|
+
|
|
47
|
+
assert self.on_correct_page('move_all_classes_page')
|
|
48
|
+
|
|
49
|
+
def move_and_kick(self):
|
|
50
|
+
self.browser.find_element_by_id('move_classes_button').click()
|
|
51
|
+
return dashboard_page_new.TeachDashboardPage(self.browser)
|
|
52
|
+
|
|
53
|
+
def move_and_leave(self):
|
|
54
|
+
self.browser.find_element_by_id('move_classes_button').click()
|
|
55
|
+
return onboarding_organisation_page.OnboardingOrganisationPage(self.browser)
|
|
@@ -213,6 +213,98 @@ class TestOrganisation(BaseTest, BasePage):
|
|
|
213
213
|
|
|
214
214
|
assert page.is_not_teacher_in_school(new_last_name)
|
|
215
215
|
|
|
216
|
+
def test_move_classes_and_kick(self):
|
|
217
|
+
email_1, password_1 = signup_teacher_directly()
|
|
218
|
+
name, postcode = create_organisation_directly(email_1)
|
|
219
|
+
_, class_name_1, access_code_1 = create_class_directly(email_1)
|
|
220
|
+
create_school_student_directly(access_code_1)
|
|
221
|
+
|
|
222
|
+
title, first_name, last_name, email_2, password_2 = generate_details()
|
|
223
|
+
|
|
224
|
+
new_last_name = "New Teacher"
|
|
225
|
+
|
|
226
|
+
selenium.get(self.live_server_url + "/portal/redesign/home")
|
|
227
|
+
page = HomePage(selenium) \
|
|
228
|
+
.go_to_signup_page() \
|
|
229
|
+
.signup(title, first_name, new_last_name, email_2, password_2, password_2)
|
|
230
|
+
|
|
231
|
+
page = email_utils.follow_verify_email_link_to_onboarding(page, mail.outbox[0])
|
|
232
|
+
mail.outbox = []
|
|
233
|
+
|
|
234
|
+
page = page.login_no_school(email_2, password_2).join_organisation(name)
|
|
235
|
+
|
|
236
|
+
page = page \
|
|
237
|
+
.logout() \
|
|
238
|
+
.go_to_login_page() \
|
|
239
|
+
.login(email_1, password_1)
|
|
240
|
+
|
|
241
|
+
page = page.accept_join_request()
|
|
242
|
+
|
|
243
|
+
assert page.is_teacher_in_school(new_last_name)
|
|
244
|
+
|
|
245
|
+
_, class_name_2, access_code_2 = create_class_directly(email_2)
|
|
246
|
+
create_school_student_directly(access_code_2)
|
|
247
|
+
|
|
248
|
+
page = page.click_kick_button().confirm_kick_with_students_dialog()
|
|
249
|
+
|
|
250
|
+
assert page.__class__.__name__ == 'TeachMoveClassesPage'
|
|
251
|
+
|
|
252
|
+
page = page.move_and_kick()
|
|
253
|
+
|
|
254
|
+
assert page.is_not_teacher_in_school(new_last_name)
|
|
255
|
+
|
|
256
|
+
def test_leave_organisation(self):
|
|
257
|
+
email_1, password_1 = signup_teacher_directly()
|
|
258
|
+
name, postcode = create_organisation_directly(email_1)
|
|
259
|
+
_, class_name_1, access_code_1 = create_class_directly(email_1)
|
|
260
|
+
create_school_student_directly(access_code_1)
|
|
261
|
+
|
|
262
|
+
title, first_name, last_name, email_2, password_2 = generate_details()
|
|
263
|
+
|
|
264
|
+
new_last_name = "New Teacher"
|
|
265
|
+
|
|
266
|
+
selenium.get(self.live_server_url + "/portal/redesign/home")
|
|
267
|
+
page = HomePage(selenium) \
|
|
268
|
+
.go_to_signup_page() \
|
|
269
|
+
.signup(title, first_name, new_last_name, email_2, password_2, password_2)
|
|
270
|
+
|
|
271
|
+
page = email_utils.follow_verify_email_link_to_onboarding(page, mail.outbox[0])
|
|
272
|
+
mail.outbox = []
|
|
273
|
+
|
|
274
|
+
page = page.login_no_school(email_2, password_2).join_organisation(name)
|
|
275
|
+
|
|
276
|
+
page = page \
|
|
277
|
+
.logout() \
|
|
278
|
+
.go_to_login_page() \
|
|
279
|
+
.login(email_1, password_1)
|
|
280
|
+
|
|
281
|
+
page = page.accept_join_request()
|
|
282
|
+
|
|
283
|
+
assert page.is_teacher_in_school(new_last_name)
|
|
284
|
+
|
|
285
|
+
_, class_name_2, access_code_2 = create_class_directly(email_2)
|
|
286
|
+
create_school_student_directly(access_code_2)
|
|
287
|
+
|
|
288
|
+
page = page \
|
|
289
|
+
.logout() \
|
|
290
|
+
.go_to_login_page() \
|
|
291
|
+
.login(email_2, password_2)
|
|
292
|
+
|
|
293
|
+
page = page.leave_organisation_with_students()
|
|
294
|
+
|
|
295
|
+
assert page.__class__.__name__ == 'TeachMoveClassesPage'
|
|
296
|
+
|
|
297
|
+
page = page.move_and_leave()
|
|
298
|
+
|
|
299
|
+
assert page.__class__.__name__ == 'OnboardingOrganisationPage'
|
|
300
|
+
|
|
301
|
+
page = page \
|
|
302
|
+
.logout() \
|
|
303
|
+
.go_to_login_page() \
|
|
304
|
+
.login(email_1, password_1)
|
|
305
|
+
|
|
306
|
+
assert page.is_not_teacher_in_school(new_last_name)
|
|
307
|
+
|
|
216
308
|
def test_toggle_admin(self):
|
|
217
309
|
email_1, password_1 = signup_teacher_directly()
|
|
218
310
|
email_2, password_2 = signup_teacher_directly()
|
{codeforlife-portal-1.0.0.post.dev485 → codeforlife-portal-1.0.0.post.dev489}/portal/urls.py
RENAMED
|
@@ -69,7 +69,7 @@ from game.views.level import play_default_level
|
|
|
69
69
|
from portal.views.email_new import verify_email as verify_email_new, change_email
|
|
70
70
|
from portal.views.home_new import login_view, logout_view as logout_view_new, register_view, contact as contact_new
|
|
71
71
|
from portal.views.organisation_new import organisation_fuzzy_lookup as organisation_fuzzy_lookup_new, \
|
|
72
|
-
organisation_manage as organisation_manage_new
|
|
72
|
+
organisation_manage as organisation_manage_new, organisation_leave as organisation_leave_new
|
|
73
73
|
from portal.views.teacher.teach_new import teacher_classes as teacher_classes_new, teacher_class as teacher_class_new, \
|
|
74
74
|
teacher_view_class, teacher_edit_class as teacher_edit_class_new, teacher_move_class as teacher_move_class_new, \
|
|
75
75
|
teacher_edit_student as teacher_edit_student_new, teacher_student_reset as teacher_student_reset_new, \
|
|
@@ -245,6 +245,7 @@ urlpatterns = patterns(
|
|
|
245
245
|
url(r'^redesign/teach/dashboard/disable_2FA/(?P<pk>[0-9]+)/$', teacher_disable_2FA_new, name='teacher_disable_2FA_new'),
|
|
246
246
|
url(r'^redesign/teach/dashboard/allow_join/(?P<pk>[0-9]+)/$', organisation_allow_join_new, name='organisation_allow_join_new'),
|
|
247
247
|
url(r'^redesign/teach/dashboard/deny_join/(?P<pk>[0-9]+)/$', organisation_deny_join_new, name='organisation_deny_join_new'),
|
|
248
|
+
url(r'^redesign/teach/dashboard/school/leave/$', organisation_leave_new, name='organisation_leave_new'),
|
|
248
249
|
url(r'^redesign/teach/class/(?P<access_code>[A-Z0-9]+)/$', teacher_view_class, name='view_class'),
|
|
249
250
|
url(r'^redesign/teach/class/delete/(?P<access_code>[A-Z0-9]+)/$', teacher_delete_class_new, name='teacher_delete_class_new'),
|
|
250
251
|
url(r'^redesign/teach/class/(?P<access_code>[A-Z0-9]+)/students/delete/$', teacher_delete_students_new, name='teacher_delete_students_new'),
|