codeforlife-portal 1.0.0.post0.dev48__py2.py3-none-any.whl
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.post0.dev48.dist-info/DESCRIPTION.rst +3 -0
- codeforlife_portal-1.0.0.post0.dev48.dist-info/METADATA +53 -0
- codeforlife_portal-1.0.0.post0.dev48.dist-info/RECORD +289 -0
- codeforlife_portal-1.0.0.post0.dev48.dist-info/WHEEL +6 -0
- codeforlife_portal-1.0.0.post0.dev48.dist-info/metadata.json +1 -0
- codeforlife_portal-1.0.0.post0.dev48.dist-info/top_level.txt +4 -0
- deploy/__init__.py +36 -0
- deploy/captcha.py +38 -0
- deploy/mail.py +93 -0
- deploy/middleware/__init__.py +0 -0
- deploy/middleware/basicauth.py +24 -0
- deploy/middleware/exceptionlogging.py +8 -0
- deploy/permissions.py +2 -0
- deploy/settings.py +288 -0
- deploy/static/apple-touch-icon-120x120.png +0 -0
- deploy/static/apple-touch-icon-152x152.png +0 -0
- deploy/static/apple-touch-icon-180x180.png +0 -0
- deploy/static/apple-touch-icon-76x76.png +0 -0
- deploy/static/apple-touch-icon.png +0 -0
- deploy/static/robots.txt +2 -0
- deploy/templates/deploy/csrf_failure.html +18 -0
- deploy/urls.py +22 -0
- deploy/views.py +5 -0
- deploy/wsgi.py +14 -0
- portal/__init__.py +40 -0
- portal/_version.py +21 -0
- portal/app_settings.py +49 -0
- portal/autoconfig.py +169 -0
- portal/beta.py +44 -0
- portal/emailMessages.py +189 -0
- portal/forms/__init__.py +36 -0
- portal/forms/admin_login.py +46 -0
- portal/forms/auth_forms.py +72 -0
- portal/forms/home.py +51 -0
- portal/forms/organisation.py +123 -0
- portal/forms/play.py +238 -0
- portal/forms/registration.py +220 -0
- portal/forms/teach.py +513 -0
- portal/helpers/__init__.py +36 -0
- portal/helpers/email.py +109 -0
- portal/helpers/generators.py +79 -0
- portal/helpers/location.py +138 -0
- portal/helpers/password.py +44 -0
- portal/middleware/__init__.py +36 -0
- portal/middleware/ratelimit_login_attempts.py +57 -0
- portal/migrations/0001_squashed_0041_new_news.py +574 -0
- portal/migrations/0042_school_country.py +55 -0
- portal/migrations/0043_auto_20150430_0952.py +55 -0
- portal/migrations/0044_auto_20150430_0959.py +71 -0
- portal/migrations/0045_auto_20150430_1446.py +55 -0
- portal/migrations/0046_auto_20150723_1101.py +54 -0
- portal/migrations/__init__.py +36 -0
- portal/models.py +204 -0
- portal/permissions.py +70 -0
- portal/static/email_media/cfl_logo_blue_rounded.png +0 -0
- portal/static/email_media/cfllogo.png +0 -0
- portal/static/portal/css/colorbox.css +107 -0
- portal/static/portal/css/common.css +39 -0
- portal/static/portal/css/images/animated-overlay.gif +0 -0
- portal/static/portal/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- portal/static/portal/css/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- portal/static/portal/css/images/ui-bg_flat_10_000000_40x100.png +0 -0
- portal/static/portal/css/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- portal/static/portal/css/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- portal/static/portal/css/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- portal/static/portal/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- portal/static/portal/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- portal/static/portal/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- portal/static/portal/css/images/ui-icons_222222_256x240.png +0 -0
- portal/static/portal/css/images/ui-icons_228ef1_256x240.png +0 -0
- portal/static/portal/css/images/ui-icons_ef8c08_256x240.png +0 -0
- portal/static/portal/css/images/ui-icons_ffd27a_256x240.png +0 -0
- portal/static/portal/css/images/ui-icons_ffffff_256x240.png +0 -0
- portal/static/portal/css/jquery-ui.css +1251 -0
- portal/static/portal/css/jquery-ui.structure.css +833 -0
- portal/static/portal/css/jquery-ui.theme.css +439 -0
- portal/static/portal/css/list.css +274 -0
- portal/static/portal/css/noJS.css +100 -0
- portal/static/portal/css/reset.css +123 -0
- portal/static/portal/css/styles.css +1172 -0
- portal/static/portal/css/tables.css +147 -0
- portal/static/portal/img/2fa_authenticator_link.png +0 -0
- portal/static/portal/img/RR_logo_blank.png +0 -0
- portal/static/portal/img/RRlogo_on_green.png +0 -0
- portal/static/portal/img/RRlogo_on_green_small.png +0 -0
- portal/static/portal/img/RRlogo_on_less_green.png +0 -0
- portal/static/portal/img/RRlogo_on_less_green_small.png +0 -0
- portal/static/portal/img/avatars/default-avatar.jpeg +0 -0
- portal/static/portal/img/cfl_logo_blue.png +0 -0
- portal/static/portal/img/cfl_logo_blue_rounded.png +0 -0
- portal/static/portal/img/codeForLife_logo.svg +223 -0
- portal/static/portal/img/colorboxImages/border.png +0 -0
- portal/static/portal/img/colorboxImages/controls.png +0 -0
- portal/static/portal/img/colorboxImages/loading.gif +0 -0
- portal/static/portal/img/colorboxImages/loading_background.png +0 -0
- portal/static/portal/img/colorboxImages/overlay.png +0 -0
- portal/static/portal/img/dee_hi_res.png +0 -0
- portal/static/portal/img/dee_large.png +0 -0
- portal/static/portal/img/dee_red_box.png +0 -0
- portal/static/portal/img/favicon.ico +0 -0
- portal/static/portal/img/kirsty.png +0 -0
- portal/static/portal/img/kirsty_hi_res.png +0 -0
- portal/static/portal/img/kirsty_large.png +0 -0
- portal/static/portal/img/logged_in_blob.png +0 -0
- portal/static/portal/img/logged_out_blob.png +0 -0
- portal/static/portal/img/logo_white.png +0 -0
- portal/static/portal/img/movie_file.png +0 -0
- portal/static/portal/img/nigel.png +0 -0
- portal/static/portal/img/nigel_hi_res.png +0 -0
- portal/static/portal/img/nigel_large.png +0 -0
- portal/static/portal/img/padlock.png +0 -0
- portal/static/portal/img/pdfsmall.png +0 -0
- portal/static/portal/img/phil.png +0 -0
- portal/static/portal/img/phil_hi_res.png +0 -0
- portal/static/portal/img/phil_large.png +0 -0
- portal/static/portal/img/qr_code_scan.png +0 -0
- portal/static/portal/img/rrBG.jpg +0 -0
- portal/static/portal/img/rrBGIE.jpg +0 -0
- portal/static/portal/img/rrBGsmall.jpg +0 -0
- portal/static/portal/img/video_still.png +0 -0
- portal/static/portal/img/wes.png +0 -0
- portal/static/portal/img/wes_hi_res.png +0 -0
- portal/static/portal/img/wes_large.png +0 -0
- portal/static/portal/img/zip.png +0 -0
- portal/static/portal/js/common.js +92 -0
- portal/static/portal/js/deleteWorkspaces.js +51 -0
- portal/static/portal/js/fuzzySchoolLookup.js +83 -0
- portal/static/portal/js/jquery.placeholder.js +185 -0
- portal/static/portal/js/lib/jquery-ui.js +16150 -0
- portal/static/portal/js/lib/jquery-video-lightning.js +450 -0
- portal/static/portal/js/lib/jquery.colorbox.js +1090 -0
- portal/static/portal/js/lib/jquery.easy-ticker.js +208 -0
- portal/static/portal/js/lib/jquery.js +4 -0
- portal/static/portal/js/lib/magnific.js +3 -0
- portal/static/portal/js/lib/modernizr.custom.79639.js +4 -0
- portal/static/portal/js/organisation_manage.js +69 -0
- portal/static/portal/js/passwordStrength.js +101 -0
- portal/static/portal/js/play.js +92 -0
- portal/static/portal/js/teach_class.js +137 -0
- portal/templates/403.html +12 -0
- portal/templates/404.html +12 -0
- portal/templates/500.html +48 -0
- portal/templates/email.html +6 -0
- portal/templates/email.txt +1 -0
- portal/templates/portal/2FA_redirect.html +27 -0
- portal/templates/portal/about.html +65 -0
- portal/templates/portal/admin/aggregated_data.html +38 -0
- portal/templates/portal/admin/map.html +70 -0
- portal/templates/portal/base.html +169 -0
- portal/templates/portal/base_no_userprofile.html +9 -0
- portal/templates/portal/contact.html +64 -0
- portal/templates/portal/email_verification_failed.html +21 -0
- portal/templates/portal/email_verification_needed.html +26 -0
- portal/templates/portal/help-and-support.html +151 -0
- portal/templates/portal/home.html +250 -0
- portal/templates/portal/locked_out.html +14 -0
- portal/templates/portal/play/base.html +7 -0
- portal/templates/portal/play/student_details.html +95 -0
- portal/templates/portal/play/student_edit_account.html +111 -0
- portal/templates/portal/play/student_join_organisation.html +94 -0
- portal/templates/portal/play.html +196 -0
- portal/templates/portal/teach/base.html +6 -0
- portal/templates/portal/teach/organisation_create.html +116 -0
- portal/templates/portal/teach/organisation_manage.html +150 -0
- portal/templates/portal/teach/teacher_add_external_student.html +69 -0
- portal/templates/portal/teach/teacher_added_external_student.html +26 -0
- portal/templates/portal/teach/teacher_class.html +127 -0
- portal/templates/portal/teach/teacher_classes.html +104 -0
- portal/templates/portal/teach/teacher_dismiss_students.html +64 -0
- portal/templates/portal/teach/teacher_edit_account.html +143 -0
- portal/templates/portal/teach/teacher_edit_class.html +73 -0
- portal/templates/portal/teach/teacher_edit_student.html +110 -0
- portal/templates/portal/teach/teacher_home.html +146 -0
- portal/templates/portal/teach/teacher_lesson_plans.html +374 -0
- portal/templates/portal/teach/teacher_lesson_plans_python.html +233 -0
- portal/templates/portal/teach/teacher_move_all_classes.html +62 -0
- portal/templates/portal/teach/teacher_move_class.html +48 -0
- portal/templates/portal/teach/teacher_move_students.html +50 -0
- portal/templates/portal/teach/teacher_move_students_to_class.html +83 -0
- portal/templates/portal/teach/teacher_new_students.html +55 -0
- portal/templates/portal/teach/teacher_student_reset.html +30 -0
- portal/templates/portal/teach/teacher_students_reset.html +51 -0
- portal/templates/portal/teach.html +151 -0
- portal/templates/portal/terms.html +88 -0
- portal/templates/registration/login.html +49 -0
- portal/templates/registration/password_reset_complete.html +20 -0
- portal/templates/registration/password_reset_confirm.html +65 -0
- portal/templates/registration/password_reset_done.html +19 -0
- portal/templates/registration/password_reset_email.html +9 -0
- portal/templates/registration/student_password_reset_form.html +44 -0
- portal/templates/registration/teacher_password_reset_form.html +45 -0
- portal/templates/two_factor/_base.html +9 -0
- portal/templates/two_factor/core/setup_complete.html +15 -0
- portal/templates/two_factor/profile/profile.html +42 -0
- portal/templatetags/__init__.py +36 -0
- portal/templatetags/app_tags.py +119 -0
- portal/templatetags/table_tags.py +57 -0
- portal/tests/__init__.py +36 -0
- portal/tests/base_test.py +83 -0
- portal/tests/base_test_migration.py +67 -0
- portal/tests/pageObjects/__init__.py +36 -0
- portal/tests/pageObjects/portal/__init__.py +36 -0
- portal/tests/pageObjects/portal/about_page.py +43 -0
- portal/tests/pageObjects/portal/admin/__init__.py +36 -0
- portal/tests/pageObjects/portal/admin/admin_base_page.py +73 -0
- portal/tests/pageObjects/portal/admin/admin_data_page.py +45 -0
- portal/tests/pageObjects/portal/admin/admin_login_page.py +75 -0
- portal/tests/pageObjects/portal/admin/admin_map_page.py +45 -0
- portal/tests/pageObjects/portal/base_page.py +156 -0
- portal/tests/pageObjects/portal/contact_page.py +43 -0
- portal/tests/pageObjects/portal/email_verification_needed_page.py +49 -0
- portal/tests/pageObjects/portal/forbidden_page.py +44 -0
- portal/tests/pageObjects/portal/game_page.py +135 -0
- portal/tests/pageObjects/portal/help_and_support_page.py +43 -0
- portal/tests/pageObjects/portal/home_page.py +48 -0
- portal/tests/pageObjects/portal/play/__init__.py +36 -0
- portal/tests/pageObjects/portal/play/account_page.py +62 -0
- portal/tests/pageObjects/portal/play/dashboard_page.py +52 -0
- portal/tests/pageObjects/portal/play/join_school_or_club_page.py +51 -0
- portal/tests/pageObjects/portal/play/play_base_page.py +60 -0
- portal/tests/pageObjects/portal/play_page.py +187 -0
- portal/tests/pageObjects/portal/teach/__init__.py +36 -0
- portal/tests/pageObjects/portal/teach/account_page.py +80 -0
- portal/tests/pageObjects/portal/teach/add_independent_student_to_class_page.py +51 -0
- portal/tests/pageObjects/portal/teach/added_independent_student_to_class_page.py +50 -0
- portal/tests/pageObjects/portal/teach/class_page.py +193 -0
- portal/tests/pageObjects/portal/teach/class_settings_page.py +84 -0
- portal/tests/pageObjects/portal/teach/classes_page.py +76 -0
- portal/tests/pageObjects/portal/teach/dashboard_page.py +43 -0
- portal/tests/pageObjects/portal/teach/dismiss_students_page.py +65 -0
- portal/tests/pageObjects/portal/teach/move_class_page.py +63 -0
- portal/tests/pageObjects/portal/teach/move_students_disambiguate_page.py +55 -0
- portal/tests/pageObjects/portal/teach/move_students_page.py +63 -0
- portal/tests/pageObjects/portal/teach/new_students_page.py +55 -0
- portal/tests/pageObjects/portal/teach/organisation_create_page.py +90 -0
- portal/tests/pageObjects/portal/teach/organisation_manage_page.py +94 -0
- portal/tests/pageObjects/portal/teach/organisation_revoke_page.py +53 -0
- portal/tests/pageObjects/portal/teach/teach_base_page.py +83 -0
- portal/tests/pageObjects/portal/teach/thanks_for_reset_page.py +45 -0
- portal/tests/pageObjects/portal/teach_page.py +90 -0
- portal/tests/pageObjects/portal/terms_page.py +43 -0
- portal/tests/pageObjects/registration/__init__.py +36 -0
- portal/tests/pageObjects/registration/independent_student_login_form_page.py +53 -0
- portal/tests/pageObjects/registration/password_reset_form_page.py +61 -0
- portal/tests/pageObjects/registration/student_password_reset_form_page.py +58 -0
- portal/tests/pageObjects/registration/teacher_password_reset_form_page.py +59 -0
- portal/tests/test_admin.py +148 -0
- portal/tests/test_class.py +176 -0
- portal/tests/test_independent_student.py +129 -0
- portal/tests/test_independent_student_joins_a_class.py +75 -0
- portal/tests/test_location.py +224 -0
- portal/tests/test_migration_country.py +130 -0
- portal/tests/test_navigation.py +108 -0
- portal/tests/test_organisation.py +225 -0
- portal/tests/test_school_student.py +101 -0
- portal/tests/test_teacher.py +193 -0
- portal/tests/test_teacher_student.py +244 -0
- portal/tests/utils/__init__.py +36 -0
- portal/tests/utils/classes.py +97 -0
- portal/tests/utils/email.py +103 -0
- portal/tests/utils/messages.py +67 -0
- portal/tests/utils/organisation.py +81 -0
- portal/tests/utils/student.py +114 -0
- portal/tests/utils/teacher.py +73 -0
- portal/urls.py +175 -0
- portal/views/__init__.py +36 -0
- portal/views/admin.py +308 -0
- portal/views/email.py +77 -0
- portal/views/home.py +345 -0
- portal/views/organisation.py +379 -0
- portal/views/play.py +165 -0
- portal/views/registration.py +105 -0
- portal/views/teacher/__init__.py +36 -0
- portal/views/teacher/home.py +104 -0
- portal/views/teacher/teach.py +768 -0
- portal/wsgi.py +50 -0
- ratelimit/__init__.py +1 -0
- ratelimit/backends/__init__.py +8 -0
- ratelimit/backends/cache.py +42 -0
- ratelimit/decorators.py +59 -0
- reports/__init__.py +36 -0
- reports/admin.py +39 -0
- reports/migrations/0001_initial.py +65 -0
- reports/migrations/0002_hitsperlevelperday.py +62 -0
- reports/migrations/__init__.py +36 -0
- reports/models.py +53 -0
- reports/tests.py +39 -0
- reports/urls.py +87 -0
- reports/views.py +39 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
Metadata-Version: 2.0
|
|
2
|
+
Name: codeforlife-portal
|
|
3
|
+
Version: 1.0.0.post0.dev48
|
|
4
|
+
Summary: UNKNOWN
|
|
5
|
+
Home-page: UNKNOWN
|
|
6
|
+
Author: UNKNOWN
|
|
7
|
+
Author-email: UNKNOWN
|
|
8
|
+
License: UNKNOWN
|
|
9
|
+
Platform: UNKNOWN
|
|
10
|
+
Requires-Dist: django (==1.8.2)
|
|
11
|
+
Requires-Dist: django-appconf (==1.0.1)
|
|
12
|
+
Requires-Dist: django-countries (==3.4.1)
|
|
13
|
+
Requires-Dist: djangorestframework (==3.1.3)
|
|
14
|
+
Requires-Dist: django-jquery (==1.9.1)
|
|
15
|
+
Requires-Dist: django-autoconfig (==0.3.6)
|
|
16
|
+
Requires-Dist: pyyaml (==3.10)
|
|
17
|
+
Requires-Dist: rapid-router (>=1.0.0.post.dev1)
|
|
18
|
+
Requires-Dist: six (==1.9.0)
|
|
19
|
+
Requires-Dist: docutils (==0.12)
|
|
20
|
+
Requires-Dist: django-recaptcha-field (==1.0b2)
|
|
21
|
+
Requires-Dist: reportlab (==3.2.0)
|
|
22
|
+
Requires-Dist: postcodes (==0.1)
|
|
23
|
+
Requires-Dist: django-formtools (==1.0)
|
|
24
|
+
Requires-Dist: django-two-factor-auth (==1.2.0)
|
|
25
|
+
Requires-Dist: urllib3 (==1.10.4)
|
|
26
|
+
Requires-Dist: requests (==2.7.0)
|
|
27
|
+
Requires-Dist: django-cms (==3.1.2)
|
|
28
|
+
Requires-Dist: django-classy-tags (==0.6.1)
|
|
29
|
+
Requires-Dist: django-treebeard (==3.0)
|
|
30
|
+
Requires-Dist: django-sekizai (==0.8.2)
|
|
31
|
+
Requires-Dist: djangocms-admin-style (==0.2.8)
|
|
32
|
+
Requires-Dist: djangocms-text-ckeditor (==2.6.0)
|
|
33
|
+
Requires-Dist: djangocms-link (==1.6.2)
|
|
34
|
+
Requires-Dist: djangocms-snippet (==1.5)
|
|
35
|
+
Requires-Dist: djangocms-style (==1.5)
|
|
36
|
+
Requires-Dist: djangocms-column (==1.5)
|
|
37
|
+
Requires-Dist: djangocms-grid (==1.2)
|
|
38
|
+
Requires-Dist: djangocms-oembed (==0.5)
|
|
39
|
+
Requires-Dist: djangocms-table (==1.2)
|
|
40
|
+
Requires-Dist: djangocms-file (==0.1)
|
|
41
|
+
Requires-Dist: djangocms-flash (==0.2.0)
|
|
42
|
+
Requires-Dist: djangocms-googlemap (==0.3)
|
|
43
|
+
Requires-Dist: djangocms-inherit (==0.1)
|
|
44
|
+
Requires-Dist: djangocms-picture (==0.1)
|
|
45
|
+
Requires-Dist: djangocms-teaser (==0.1)
|
|
46
|
+
Requires-Dist: djangocms-video (==0.1)
|
|
47
|
+
Requires-Dist: django-online-status (==0.1.0)
|
|
48
|
+
Requires-Dist: Pillow (==2.9.0)
|
|
49
|
+
Requires-Dist: django-reversion (==1.9.3)
|
|
50
|
+
|
|
51
|
+
UNKNOWN
|
|
52
|
+
|
|
53
|
+
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
deploy/__init__.py,sha256=W4VeGk0r7YdM-TwIsa9dfGs-uLd1ecQb0tK8w44viQA,1832
|
|
2
|
+
deploy/captcha.py,sha256=fM7h-SRraNbZmcQixFR-iKCkJOyGrCFp1jF35rLvv64,1856
|
|
3
|
+
deploy/mail.py,sha256=VJ49VvcNYu30imI9Z4wqjna2wp11-Y-tLOiekYxNnmc,3190
|
|
4
|
+
deploy/permissions.py,sha256=BDTlRgnG5RYUXys1_dLNoW57KTWuNC1YRFBUgkB-NAY,125
|
|
5
|
+
deploy/settings.py,sha256=VRc4InOMU-Evn2rqZQhIr7vwlEw6EYaKeZWiTQuNSi8,8689
|
|
6
|
+
deploy/urls.py,sha256=t87jHCgcL-YYPcvKgrhUap_6HKYD3sb0jpXq03Sq0H0,582
|
|
7
|
+
deploy/views.py,sha256=YZhPza6tLmEuxr9iojPt_vaHsga1jue-2U6-9pMmp5Q,131
|
|
8
|
+
deploy/wsgi.py,sha256=alJ1UPJIHzAaB1P2pv3R2DYZHmc7ai5IXzxlq9-SukU,399
|
|
9
|
+
deploy/middleware/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
+
deploy/middleware/basicauth.py,sha256=cFAQdZ5_TLH6_nwo-yT_Kt4B0Pks21jljyiUeHnf63w,1049
|
|
11
|
+
deploy/middleware/exceptionlogging.py,sha256=Buz96QLtowcnPq2dqOg6zEe3iBM0LHV30PXp4d8M6mM,268
|
|
12
|
+
deploy/static/apple-touch-icon-120x120.png,sha256=7GwelKO6CNbvjJJ1nqMvDGkPoQWqYomMKKP5EB5gmfM,24583
|
|
13
|
+
deploy/static/apple-touch-icon-152x152.png,sha256=V57OGP0VeeKHen_iYVa72sHe_rEaMAJzU1FAiHWWBwY,36276
|
|
14
|
+
deploy/static/apple-touch-icon-180x180.png,sha256=OIm3wwx0aL8fh1EIlMCKp2vVNpsuY-NDxV1QR73bf1g,47948
|
|
15
|
+
deploy/static/apple-touch-icon-76x76.png,sha256=pSelexi8JTX41EzfVbrsrxsZlEIQ0Br2Tg7u9e8iNbo,11676
|
|
16
|
+
deploy/static/apple-touch-icon.png,sha256=QjNQ8jDKI4BpfMMsrs2t3H0fXHa5KHV45fK_VSSLEZU,7842
|
|
17
|
+
deploy/static/robots.txt,sha256=5cS4RITuQhbpNzvpk4AyDCXdlIBfmfCoBYRvCHY2VT8,24
|
|
18
|
+
deploy/templates/deploy/csrf_failure.html,sha256=-pBRPn4Y7nUdYHGpTHCokT9Boi-isuwuivF8V2K1SgM,412
|
|
19
|
+
portal/__init__.py,sha256=G--madRjvBaQsBY33nqU_I83PVikJ6eSDvhCcr53Xv0,1925
|
|
20
|
+
portal/app_settings.py,sha256=Z5mNI4ve_TnaAcJbb9s_pQZC08VQ2j3JW6PlUCqSxRM,2379
|
|
21
|
+
portal/autoconfig.py,sha256=ZlGf9Obr4VaPl-8V7A8670uhAggGfkF0RSJLEsn7dQc,5877
|
|
22
|
+
portal/beta.py,sha256=-6j6r-DqBNGU2yUr79WUFgTfEnvL8bL-bYB3qM8kenA,2120
|
|
23
|
+
portal/emailMessages.py,sha256=lW2KI515nz3zksMo3Xq7XpwCHs44un_gqr9VsrUNLr4,8842
|
|
24
|
+
portal/models.py,sha256=U80TWvbrRIbGBl25kT7DO1vAhRWtY6ZecJepxSdlhxU,7647
|
|
25
|
+
portal/permissions.py,sha256=vcOwBvCfnz5dasotV1DnhRVy6jrvLnD67uRRgc2ZEL4,2764
|
|
26
|
+
portal/urls.py,sha256=MTwUefy9OUIzzBxvcT46ah-xsLG7ODS9pDI1nGFu6B0,9833
|
|
27
|
+
portal/wsgi.py,sha256=mZ7JDcGneB4V_0D5DH1bcvSYLUazUHjM71i7BP8QpPA,2231
|
|
28
|
+
portal/_version.py,sha256=nmQAfzgm6WGyUGfeHrmgH5BYSlFL_sA8FhGym8ZGM4U,482
|
|
29
|
+
portal/forms/__init__.py,sha256=W4VeGk0r7YdM-TwIsa9dfGs-uLd1ecQb0tK8w44viQA,1832
|
|
30
|
+
portal/forms/admin_login.py,sha256=6PWYtZJ8YdkOccFnqx9VGlcExSu9KwVVb4QgI41BP6U,2153
|
|
31
|
+
portal/forms/auth_forms.py,sha256=MVv5VZYcfizJVnhFCHw-Wyhd3JzRIehFd4_hwUZQ4s0,3708
|
|
32
|
+
portal/forms/home.py,sha256=Qe6HjCUbeTgthf-S4QuCeGEk4Cz9L0w8H3RHUZ2-_y0,2686
|
|
33
|
+
portal/forms/organisation.py,sha256=-KlTvuzXPM-_KERu0lqm-bFiCiSodqZx5Q6HPVjzQa0,5038
|
|
34
|
+
portal/forms/play.py,sha256=MrFc_i430A8fmn21hodpUwA2z6-n9h1OmLDMvFx8nag,9714
|
|
35
|
+
portal/forms/registration.py,sha256=kiBCVS1a1BnteTh2oJsETvIag7HXTOHFvSfO1Fp4BNQ,10354
|
|
36
|
+
portal/forms/teach.py,sha256=urK1mMbicp6tiPEp8_0YpbTpnrIlfGNBQzuUKAcmT60,19522
|
|
37
|
+
portal/helpers/__init__.py,sha256=W4VeGk0r7YdM-TwIsa9dfGs-uLd1ecQb0tK8w44viQA,1832
|
|
38
|
+
portal/helpers/email.py,sha256=dt-YuGUwQ21bhPalCb-oygw7waAdfTTxTmJqmvTu6h8,4835
|
|
39
|
+
portal/helpers/generators.py,sha256=7UVEPVL5EnI-z0lgUnbDxjiOuseQp5FHgXUDskY304g,3093
|
|
40
|
+
portal/helpers/location.py,sha256=6YgNchJjsgbterLvS3_1pIBiilQVA8TwHlZTC6eyNQg,5227
|
|
41
|
+
portal/helpers/password.py,sha256=bB3ERnEaiorkFylcniSvpm1YSSWAPD8N4EjwRMcQug0,2152
|
|
42
|
+
portal/middleware/__init__.py,sha256=W4VeGk0r7YdM-TwIsa9dfGs-uLd1ecQb0tK8w44viQA,1832
|
|
43
|
+
portal/middleware/ratelimit_login_attempts.py,sha256=5_0LBu0wLISDKx49gUs7nWJffdHLI1IrtUi0KbU3PdQ,2569
|
|
44
|
+
portal/migrations/0001_squashed_0041_new_news.py,sha256=oEKFweuhCWwI2pgDCzUaWh3vME1TYrJNAthbUXIQl1M,27922
|
|
45
|
+
portal/migrations/0042_school_country.py,sha256=YeXsQ_zeUc56t6kyPv9gSTGiuQCIosZYcJ3S-RzpkKo,2271
|
|
46
|
+
portal/migrations/0043_auto_20150430_0952.py,sha256=l79nq2n9luC6wNmwY1tcPLmJ-OwP3Q0bC1NPjQsGEYA,2279
|
|
47
|
+
portal/migrations/0044_auto_20150430_0959.py,sha256=WTBg2Ag9pF2tDRdmqyguiwyDGf0c2PknTN-7ete7R08,2942
|
|
48
|
+
portal/migrations/0045_auto_20150430_1446.py,sha256=KVqsfVNQjSsw7BsmeaU4YLSW9pPM1OxVkc2PG2aAM6s,2260
|
|
49
|
+
portal/migrations/0046_auto_20150723_1101.py,sha256=raO1OblDK6qyKVWOL1ghNSjCgYKqv-nzh47cZ6Ge5_I,2336
|
|
50
|
+
portal/migrations/__init__.py,sha256=W4VeGk0r7YdM-TwIsa9dfGs-uLd1ecQb0tK8w44viQA,1832
|
|
51
|
+
portal/templatetags/__init__.py,sha256=W4VeGk0r7YdM-TwIsa9dfGs-uLd1ecQb0tK8w44viQA,1832
|
|
52
|
+
portal/templatetags/app_tags.py,sha256=pyLmibR77tOM8CQvthYYsy8ZQYz60IPhHFEvSgQUfio,4325
|
|
53
|
+
portal/templatetags/table_tags.py,sha256=2U46OB08yifh9hXP1lIiJFxQvWhCDIRbLod1mHoOqtA,2277
|
|
54
|
+
portal/tests/__init__.py,sha256=W4VeGk0r7YdM-TwIsa9dfGs-uLd1ecQb0tK8w44viQA,1832
|
|
55
|
+
portal/tests/base_test.py,sha256=6U6_xfltIpzsBcdoJaEfvaez49V_gd8OYrJn7nuJ0Es,3260
|
|
56
|
+
portal/tests/base_test_migration.py,sha256=AzC4E_0hjAbmy-TxLkQOLmWQq90R208HPZw7Sv7HV10,3057
|
|
57
|
+
portal/tests/test_admin.py,sha256=DIzuTmZWFyRnu9-DF_dOdVCVvdrQOYD9C3sXFfwKzPk,6799
|
|
58
|
+
portal/tests/test_class.py,sha256=0-9a4rzeguADnx0KyI0cT1lXxXNKPKrM5-zhCrMbqWU,7377
|
|
59
|
+
portal/tests/test_independent_student.py,sha256=vQfhctgDqqF2XxEd9avU9oLo0a9IqdhwxNRiMa-V-Tc,4870
|
|
60
|
+
portal/tests/test_independent_student_joins_a_class.py,sha256=FQo9YcOCxJuijFjYeOLSDo77ZW0rNiaIxJCJzlCL9Nk,3302
|
|
61
|
+
portal/tests/test_location.py,sha256=DmAaG1Fzuqs54zGcoU-nTHHVNNVfJreHFl32bgkbkk4,10264
|
|
62
|
+
portal/tests/test_migration_country.py,sha256=v-LfBFY8ZfYRJbZAnuQN7wV-rJf37mbO49tO6ygn6IQ,5843
|
|
63
|
+
portal/tests/test_navigation.py,sha256=Y7HYFJrvY_CFiZsP1ejSFFTLFHm0bUoMNMIdka6gbdU,4172
|
|
64
|
+
portal/tests/test_organisation.py,sha256=nd8RNLtRbuD5WHCrYj0EQ98Tfe4syGcwoQmbjQ4u0hw,8392
|
|
65
|
+
portal/tests/test_school_student.py,sha256=dhFwCpK_Spq1BIuaRmynvaWLxZAJAbP90Ev1Ve9uP1s,4379
|
|
66
|
+
portal/tests/test_teacher.py,sha256=K6OzLfWEQ8jN1LmhuYPROzJ-r3OG9N0n8d0BZgjL7kc,7340
|
|
67
|
+
portal/tests/test_teacher_student.py,sha256=pA0y0U9OVhi3B2ynYJkjd6IWx6T-cFga9ahkMfku5Ko,11340
|
|
68
|
+
portal/tests/pageObjects/__init__.py,sha256=W4VeGk0r7YdM-TwIsa9dfGs-uLd1ecQb0tK8w44viQA,1832
|
|
69
|
+
portal/tests/pageObjects/portal/__init__.py,sha256=W4VeGk0r7YdM-TwIsa9dfGs-uLd1ecQb0tK8w44viQA,1832
|
|
70
|
+
portal/tests/pageObjects/portal/about_page.py,sha256=z-Vb5V98I51e-lAQKYDbGBwPm51vcIBYfWh48MHoV-Y,2024
|
|
71
|
+
portal/tests/pageObjects/portal/base_page.py,sha256=FaFOXvvbvCsMEBURMeHO5XdyPnQifHRT9PiFyeWpxho,6078
|
|
72
|
+
portal/tests/pageObjects/portal/contact_page.py,sha256=4Ze_rj7k37CqL0ezRw9Oz1OrfiKsb0M5-SDtsXoyiOM,2030
|
|
73
|
+
portal/tests/pageObjects/portal/email_verification_needed_page.py,sha256=qqKgZyr_E5H1Rf57y4yFp6s66C3KSqcCl0oOUJHbsGY,2246
|
|
74
|
+
portal/tests/pageObjects/portal/forbidden_page.py,sha256=oUb8V254PP6JrFklY4sfwrAHH8VkhCgXGthMHKfGfTM,2067
|
|
75
|
+
portal/tests/pageObjects/portal/game_page.py,sha256=x3QlywZD8ceARdgqjADfFg9iz1wmBfMEJLhUSq4FiS0,5454
|
|
76
|
+
portal/tests/pageObjects/portal/help_and_support_page.py,sha256=PWCXFikM9BLm9MmzEvFW50b4QplhKzSqRYzbSHnFbfk,2021
|
|
77
|
+
portal/tests/pageObjects/portal/home_page.py,sha256=Mb9TUKlAPKYkuUnVe2UtqqCPcVC-uRKEv5vSR01Y9gY,2199
|
|
78
|
+
portal/tests/pageObjects/portal/play_page.py,sha256=wi7CcDPlpBdZ_4LDowGAO4rdGohgsn43luIaPRD4BlM,8649
|
|
79
|
+
portal/tests/pageObjects/portal/teach_page.py,sha256=qBGqNsIXEwS3s7UQLXXgL2gBTwsbyrS1gQeJkDsy5NA,4184
|
|
80
|
+
portal/tests/pageObjects/portal/terms_page.py,sha256=hXYaJjdMjYTrpbEp9eeh93Motn9w_qzBBRJH5o9Yo3U,2024
|
|
81
|
+
portal/tests/pageObjects/portal/admin/__init__.py,sha256=W4VeGk0r7YdM-TwIsa9dfGs-uLd1ecQb0tK8w44viQA,1832
|
|
82
|
+
portal/tests/pageObjects/portal/admin/admin_base_page.py,sha256=MrQCLtXUC2XtMCTbN3cGFvpnRyb5TOvVzNN6ntMhcOQ,3121
|
|
83
|
+
portal/tests/pageObjects/portal/admin/admin_data_page.py,sha256=_iMO23Rp-LhgsJqVZPJsHdnIHaH2XwuETDluiQ2KkcQ,2122
|
|
84
|
+
portal/tests/pageObjects/portal/admin/admin_login_page.py,sha256=chQj0DwLRd6SAfqih9fKLgOzpAM8xLC9da4mMsYrEOw,3434
|
|
85
|
+
portal/tests/pageObjects/portal/admin/admin_map_page.py,sha256=nS_s2PDmzt-QmuF_dhpxH9CvrnuCeN2iL_p8FUe_N8Q,2119
|
|
86
|
+
portal/tests/pageObjects/portal/play/__init__.py,sha256=W4VeGk0r7YdM-TwIsa9dfGs-uLd1ecQb0tK8w44viQA,1832
|
|
87
|
+
portal/tests/pageObjects/portal/play/account_page.py,sha256=1dZDmY4B9dlG-3IVplkQfRH8McgT74JQv1LW4U3DOLA,2704
|
|
88
|
+
portal/tests/pageObjects/portal/play/dashboard_page.py,sha256=R3dTiNYRvIzyOlzCKedjCBZRgJfxUchYV-T9BxztXQ8,2333
|
|
89
|
+
portal/tests/pageObjects/portal/play/join_school_or_club_page.py,sha256=JgYH6Kki5IfagmojRE2DGj6WmwcDZ3D6OehnlyJ83Q8,2411
|
|
90
|
+
portal/tests/pageObjects/portal/play/play_base_page.py,sha256=duKE--dhl-SuQ9-0vzzwmq_hHzhsRuvO4IEE7IGvR2c,2628
|
|
91
|
+
portal/tests/pageObjects/portal/teach/__init__.py,sha256=W4VeGk0r7YdM-TwIsa9dfGs-uLd1ecQb0tK8w44viQA,1832
|
|
92
|
+
portal/tests/pageObjects/portal/teach/account_page.py,sha256=5mpY7fQ7Lshz-OT9MO4G0RnxYm2Ufxy1dr3BK-YeLLE,3524
|
|
93
|
+
portal/tests/pageObjects/portal/teach/add_independent_student_to_class_page.py,sha256=_ru9xQgIMGh19FnszmnCef3GWPOBj_87FbA28dIbkM0,2440
|
|
94
|
+
portal/tests/pageObjects/portal/teach/added_independent_student_to_class_page.py,sha256=C1COT2SkgkdUy3nZ9TgyK7R5pvG2ApD8yhPEvaM-qno,2373
|
|
95
|
+
portal/tests/pageObjects/portal/teach/class_page.py,sha256=BYzYHClrAfSHP7Ea-vvNezks6Z-kb8m0qgOPS3Yi06U,6774
|
|
96
|
+
portal/tests/pageObjects/portal/teach/class_settings_page.py,sha256=YAiHJp2CD5A1c9fV1RIJI1DCNEfmVl9fgm65aGBN4lA,3687
|
|
97
|
+
portal/tests/pageObjects/portal/teach/classes_page.py,sha256=41cDEvVPeN8zQtKdJMW4g0PVWqIHZEmMenNUfhsgna0,3542
|
|
98
|
+
portal/tests/pageObjects/portal/teach/dashboard_page.py,sha256=3xA9HzrGfXnBuA5eqwquRExoBf_i5vcyzN1JV50JcF8,2068
|
|
99
|
+
portal/tests/pageObjects/portal/teach/dismiss_students_page.py,sha256=_sn6Ww1XV5dGi-Q0k288kHGsSR3jK5M-SPAJkCK3fYo,3075
|
|
100
|
+
portal/tests/pageObjects/portal/teach/move_class_page.py,sha256=a8I99cWb62wkyKSwa3ee6b98RsTRkOEI0A4LEsFPkiI,2754
|
|
101
|
+
portal/tests/pageObjects/portal/teach/move_students_disambiguate_page.py,sha256=yv4bKWTiOPy-ApWWIid0CBsGSbbIR3QEF9kkP0eQ0Ks,2466
|
|
102
|
+
portal/tests/pageObjects/portal/teach/move_students_page.py,sha256=dq5GdGjwGTgYbZWjpH7WZfEYRWL94X2ETprQemEAljY,2812
|
|
103
|
+
portal/tests/pageObjects/portal/teach/new_students_page.py,sha256=AwBCd5yQ2fSEAY737iEJapK_iwz38_O8i0DGrPx5xJY,2504
|
|
104
|
+
portal/tests/pageObjects/portal/teach/organisation_create_page.py,sha256=QR4OccOzgNPowk1Z_8C-B7TtG8l0ueqHvg-BqebluAc,3918
|
|
105
|
+
portal/tests/pageObjects/portal/teach/organisation_manage_page.py,sha256=n606sjaB-Dh_mVszfH5bfzb_WXjw5uRty1rtJniq19Q,4231
|
|
106
|
+
portal/tests/pageObjects/portal/teach/organisation_revoke_page.py,sha256=odw5QTSKOgNes2AHtZjnDhL0WGujLEO6CWHDBVG-h1w,2523
|
|
107
|
+
portal/tests/pageObjects/portal/teach/teach_base_page.py,sha256=dk8r7YoylZMgjKsnM2DTR487FsA9svbW7MAdUgoUEzo,3409
|
|
108
|
+
portal/tests/pageObjects/portal/teach/thanks_for_reset_page.py,sha256=-beMvHljrxnlRIxlfQGwvQ9zO2TKEcjcWDTjKxvcGNw,2100
|
|
109
|
+
portal/tests/pageObjects/registration/__init__.py,sha256=W4VeGk0r7YdM-TwIsa9dfGs-uLd1ecQb0tK8w44viQA,1832
|
|
110
|
+
portal/tests/pageObjects/registration/independent_student_login_form_page.py,sha256=jXuk75h_OFcd2mM8gOUKJTgH4oAFqo4V19seVue0k1Q,2474
|
|
111
|
+
portal/tests/pageObjects/registration/password_reset_form_page.py,sha256=rPnZ6aO1EO26jspYK4CVoqWXLTEpXLATDjRxCHGs2YA,2619
|
|
112
|
+
portal/tests/pageObjects/registration/student_password_reset_form_page.py,sha256=-6UzuYZacuB5X4683IxrH5cXaOqxXjSJiDI263zH778,2625
|
|
113
|
+
portal/tests/pageObjects/registration/teacher_password_reset_form_page.py,sha256=bjvz1Ngf9sFkEnpHohzGcIn7FhQFk_oqG5NOe9UvFRk,2675
|
|
114
|
+
portal/tests/utils/__init__.py,sha256=W4VeGk0r7YdM-TwIsa9dfGs-uLd1ecQb0tK8w44viQA,1832
|
|
115
|
+
portal/tests/utils/classes.py,sha256=tEXXPtNlroVhw6pDlWBWQbej-2mySXYwW8upyCfT804,3381
|
|
116
|
+
portal/tests/utils/email.py,sha256=T7PB2qmZ2Kmk3YJxxnbVmTyVfY75nPBNK3FqxswnW6I,3504
|
|
117
|
+
portal/tests/utils/messages.py,sha256=vhzXnJyTgl4vpKpjdBTXyBtz_sM_qW6xJRYR0FOO69A,3131
|
|
118
|
+
portal/tests/utils/organisation.py,sha256=zP_T7P1tEUoocSaJDbZl-UyAIlqw5j6FTizXt0riqdY,3112
|
|
119
|
+
portal/tests/utils/student.py,sha256=sVoFLiyvCXpb-pfbdGcSTEz5ACZ4TPOe8aeP3R1vp_E,3987
|
|
120
|
+
portal/tests/utils/teacher.py,sha256=pdn7Bj5_Eje9XpihdIRwae_XpFIs0Fd-P6AV48uCtik,3078
|
|
121
|
+
portal/views/__init__.py,sha256=W4VeGk0r7YdM-TwIsa9dfGs-uLd1ecQb0tK8w44viQA,1832
|
|
122
|
+
portal/views/admin.py,sha256=7IqNTYsLERbutzsrA7AyJPRZU10i_lI2lenAJ3vxhh0,16076
|
|
123
|
+
portal/views/email.py,sha256=J6kQcSS2I0wEyIq8xV6XtM8FiN_JAsUsiQyFc7c3OvU,3149
|
|
124
|
+
portal/views/home.py,sha256=EmHfE2budZOu0ZKRH-nVJShj9AgaZEf53lnVZ9qT75Q,15162
|
|
125
|
+
portal/views/organisation.py,sha256=JDxEX_ZEc-9jIRRFzhmtsQePCPLNwy8FEZEwuH4Ouow,15690
|
|
126
|
+
portal/views/play.py,sha256=jPXXsxOFy4Aqj-B4ABCDaCh8T59T_9YdWiE3JfoslT4,7889
|
|
127
|
+
portal/views/registration.py,sha256=V291hTCp68FPTf4n1BCQGT-dfXr42xICLeez5IdGOmg,5391
|
|
128
|
+
portal/views/teacher/__init__.py,sha256=W4VeGk0r7YdM-TwIsa9dfGs-uLd1ecQb0tK8w44viQA,1832
|
|
129
|
+
portal/views/teacher/home.py,sha256=MUzCPCfoub2TGyF8TV1NgSkdbRU9lVjMUd_JDwXcIDk,5319
|
|
130
|
+
portal/views/teacher/teach.py,sha256=o2dAOyzI3m4ec-U99HNny4d8kek1C4n3eB_seRBOZhw,33938
|
|
131
|
+
portal/static/email_media/cfl_logo_blue_rounded.png,sha256=Xs6wCwCygLECaKYlqIuGDV9GD220ayHdKMkhuSAIH5o,17622
|
|
132
|
+
portal/static/email_media/cfllogo.png,sha256=Xs6wCwCygLECaKYlqIuGDV9GD220ayHdKMkhuSAIH5o,17622
|
|
133
|
+
portal/static/portal/css/colorbox.css,sha256=ACsjBsejRHRdsAD3lGRmt8V-Eji_ake6jIxV-2skpCQ,6397
|
|
134
|
+
portal/static/portal/css/common.css,sha256=7GpjPRPb7S_9JDTdXLPH3OXnyA1hKf1c_Pw_hpqlnWE,1814
|
|
135
|
+
portal/static/portal/css/jquery-ui.css,sha256=-QkFKnVEOLFyeLSFN-lLkrNaggSeLTS7v8fNCKvTwVE,33989
|
|
136
|
+
portal/static/portal/css/jquery-ui.structure.css,sha256=Y9Td2sc-lu_3jFY-Kud-tfHAnJQbPvqZCdhdBDZuZgg,15663
|
|
137
|
+
portal/static/portal/css/jquery-ui.theme.css,sha256=qJhTjuDWMYYbu_AzRMW6aTGphnPRVF-I1ymQBXCgTfk,17662
|
|
138
|
+
portal/static/portal/css/list.css,sha256=tPqnbFyhdEKL5L1xg0G7yLdXFLAWNXSUlPtpR6TP-P8,6235
|
|
139
|
+
portal/static/portal/css/noJS.css,sha256=K82kxAJ3hmZCqcHqAga2VWyn4V_jpLBS0TS68gSOSlk,2766
|
|
140
|
+
portal/static/portal/css/reset.css,sha256=NWYRxJgyE2VTdYh3rbMzwvyESpzFcqdH_YviaCmkGHg,3729
|
|
141
|
+
portal/static/portal/css/styles.css,sha256=iuR8HMEQEM0buV-RmyVCOXJIk2zjZvWTfq8Jixipeik,20310
|
|
142
|
+
portal/static/portal/css/tables.css,sha256=es0belHTZZYNFbRw2_G0HrLgXM_iK0J0cnlmNcB2lME,3975
|
|
143
|
+
portal/static/portal/css/images/animated-overlay.gif,sha256=x7zHb7I8BDCzbsRI63n4vDQSna6V2hDzwU7Q6s3y8bk,1738
|
|
144
|
+
portal/static/portal/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png,sha256=wMNGFDHxxZGe9tRWT8FcwYzpCKFrrRbVlnKhG8Ezz8c,418
|
|
145
|
+
portal/static/portal/css/images/ui-bg_diagonals-thick_20_666666_40x40.png,sha256=x6TuNlJqHOR9CpvUDwiLamSSprn0yGSDOqC64zvzK8M,312
|
|
146
|
+
portal/static/portal/css/images/ui-bg_flat_10_000000_40x100.png,sha256=GJ97xqMB7mVKlxVO--CC_KjDhEr_TahPjVstYLQuwKs,205
|
|
147
|
+
portal/static/portal/css/images/ui-bg_glass_100_f6f6f6_1x400.png,sha256=OU52nJLwPUzXRp-SqbhPVpuihj75ud_PJj2IJ1PKVE8,262
|
|
148
|
+
portal/static/portal/css/images/ui-bg_glass_100_fdf5ce_1x400.png,sha256=Bh2kH78udid8mfkNrQZ1okTUaN1n-1a8F8rwbiN4fzo,348
|
|
149
|
+
portal/static/portal/css/images/ui-bg_glass_65_ffffff_1x400.png,sha256=YjtaQGrJtzwiVh9KeGAmNpSABboIMILl9NN1NR-RcHA,207
|
|
150
|
+
portal/static/portal/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png,sha256=ZbJQAk2dtuvLy3BinPdVP9uaiFwpcMQHOGrOiYh6d3I,5815
|
|
151
|
+
portal/static/portal/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png,sha256=dmRHbfVtnh0YTRzsxYwcl8-zZMmGu20k8qo1qx5cZDM,278
|
|
152
|
+
portal/static/portal/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png,sha256=44tuVClIK7YhJWdhZalLx-jTuimWfHdun5Jr16xeCzI,328
|
|
153
|
+
portal/static/portal/css/images/ui-icons_222222_256x240.png,sha256=OxrANnY9OlnIhXhIauaY0io33S1GpVNIXh6ruf4lWz8,6922
|
|
154
|
+
portal/static/portal/css/images/ui-icons_228ef1_256x240.png,sha256=gLktNnaKSNdxmSXdOAOqTnJFaBd89LsHGEx8mMpR-p4,4549
|
|
155
|
+
portal/static/portal/css/images/ui-icons_ef8c08_256x240.png,sha256=Do6TwiUaXCF9EEp70EHJkJNuevjND_OhF_dvy3dnWkM,4549
|
|
156
|
+
portal/static/portal/css/images/ui-icons_ffd27a_256x240.png,sha256=DWXB4HJAfKHSLtHkvyB2qy8AipDK5_O4VScw_HvOKi4,4549
|
|
157
|
+
portal/static/portal/css/images/ui-icons_ffffff_256x240.png,sha256=mJkfAmJVnIMPOpRgjHT5WIfDc7Sp_ohvDeV_i7_NyHU,6299
|
|
158
|
+
portal/static/portal/img/2fa_authenticator_link.png,sha256=gs-dxfrH4g9qEDA-Gc4zTHrGuqqn8jfLytUqzN3t99Y,1307
|
|
159
|
+
portal/static/portal/img/RR_logo_blank.png,sha256=TeUlgydCPc1L3ZgwKuKGthonm_7dVVLbdpSOciZosYQ,219191
|
|
160
|
+
portal/static/portal/img/RRlogo_on_green.png,sha256=unO3pHim8IULIXWwuupMfMMIrxap1OaNMh_mobXZF6o,229229
|
|
161
|
+
portal/static/portal/img/RRlogo_on_green_small.png,sha256=jMVJ7B8cpuDWAP0AjgSkLzmbPOoS1HB-GRNsluXSANE,57143
|
|
162
|
+
portal/static/portal/img/RRlogo_on_less_green.png,sha256=AkjKmhv6_vE7yhMvmEoqpbtUEUb53g5fuer0JVOzzkI,204809
|
|
163
|
+
portal/static/portal/img/RRlogo_on_less_green_small.png,sha256=_2_1JYPYxDB0zm6vTeuzNn57uBDoQhKhUQ9oZoxuyj4,87171
|
|
164
|
+
portal/static/portal/img/cfl_logo_blue.png,sha256=viRo6JeJrlM079FxMAnNJ2XwKjHS1LyU13xuuPtT5RY,20741
|
|
165
|
+
portal/static/portal/img/cfl_logo_blue_rounded.png,sha256=Xs6wCwCygLECaKYlqIuGDV9GD220ayHdKMkhuSAIH5o,17622
|
|
166
|
+
portal/static/portal/img/codeForLife_logo.svg,sha256=P8ctjxPwGDxCl1W7lmMKwPFjcIKkQA4sLMkFdylAkPA,11759
|
|
167
|
+
portal/static/portal/img/dee_hi_res.png,sha256=usEyKp_M6iHTrfXe0MKnKTfm7aN51mUzF7eNf3r_xVk,78177
|
|
168
|
+
portal/static/portal/img/dee_large.png,sha256=rWZ8tQaQFua-e4wcdrjrSyXvaPgcNC_7u5cwGGnqWI4,387967
|
|
169
|
+
portal/static/portal/img/dee_red_box.png,sha256=ELUeGFVSNenggtgXwgd71HRCiw9Z9uzOXL2Tj2yLD1U,32520
|
|
170
|
+
portal/static/portal/img/favicon.ico,sha256=UlH5yK1qGvxAH6TLTjFUzwgHMGBM88EguQWE9E0XYqQ,3774
|
|
171
|
+
portal/static/portal/img/kirsty.png,sha256=4kgN0QLPdrFMrnEA_lnNXM4frT7Q1sqM45z9geRQ3Gc,36007
|
|
172
|
+
portal/static/portal/img/kirsty_hi_res.png,sha256=VoeeDkIVJNdP-R-UNlZoPCFr6o18azgwr-0KqcyNYvE,68366
|
|
173
|
+
portal/static/portal/img/kirsty_large.png,sha256=6K06daXTukSqLcjj8zPOFXKhTFOlkMm2sk2NDv_EisM,72009
|
|
174
|
+
portal/static/portal/img/logged_in_blob.png,sha256=WtakmJdMGKjT6-M3A0dU7tD9NIwllOJ8mveAMW6h4OA,342
|
|
175
|
+
portal/static/portal/img/logged_out_blob.png,sha256=Rt56CzGrfBvtK9RD-DgqJapyQHAxBbqNXwwK3CjDyDs,342
|
|
176
|
+
portal/static/portal/img/logo_white.png,sha256=fD25djRNO5r8JUfY0qM99lR4Pf9RM2HfKYrEH1Hb1Tw,1760
|
|
177
|
+
portal/static/portal/img/movie_file.png,sha256=66jbNL2hYJvrzNqzhbK9XZWuPcIhHWj_0VS1QRLy3Pw,814
|
|
178
|
+
portal/static/portal/img/nigel.png,sha256=mniYLZ-1POZiwWwY-CFl51END6NfwpMGTBlviLh4ktY,34002
|
|
179
|
+
portal/static/portal/img/nigel_hi_res.png,sha256=DkboT3QF6jd31Bh4KKP03uQWHxUh-e2KFjUNAoyt2Zs,50150
|
|
180
|
+
portal/static/portal/img/nigel_large.png,sha256=pzCZUb5Nf7qKMYm4FNylpIRdklrmDLDZFsxvao9phxM,48696
|
|
181
|
+
portal/static/portal/img/padlock.png,sha256=5dQ0vwIuVeNwaoluuB5T5bue7SKTzTVLpxnHGESfysE,107742
|
|
182
|
+
portal/static/portal/img/pdfsmall.png,sha256=dlA0RojgQhTEI_rdGEjwzhFXYmfN8EsN57JqSQ4y0D4,51798
|
|
183
|
+
portal/static/portal/img/phil.png,sha256=57uonMQ1oIMS7t-uOaZ7LJBBTSMo7QL3NnEH1SOZxOc,43913
|
|
184
|
+
portal/static/portal/img/phil_hi_res.png,sha256=w-OVN9Q2A1lTMjtiqMA9eZICnLybyHZM8eJDgdg6FxY,142625
|
|
185
|
+
portal/static/portal/img/phil_large.png,sha256=kRtcUHSxyr3ix1LaXl6HQKSZPZHxA0155qJKilGKd9k,64644
|
|
186
|
+
portal/static/portal/img/qr_code_scan.png,sha256=sf-er8DwEp3pdcqoZOEnXn2ZclEwkgc96obXXLgqSk0,268425
|
|
187
|
+
portal/static/portal/img/rrBG.jpg,sha256=JQFKlDOak12DwOmVSmJgTjRpmus4lRZU15FH9Klp4wM,46117
|
|
188
|
+
portal/static/portal/img/rrBGIE.jpg,sha256=rsY3gCFgMepv1lHGEDvXjN0j1VlRVMY1N_PFEwdJZQE,28002
|
|
189
|
+
portal/static/portal/img/rrBGsmall.jpg,sha256=c01PZTFAIpyi4MV6lu6otvDpaugfCF2Hv0dR_JKZK94,27935
|
|
190
|
+
portal/static/portal/img/video_still.png,sha256=J7LCt8Ty2TNU-D0t2unnG-LVVRLZC1WxqEi-HqShiTk,207746
|
|
191
|
+
portal/static/portal/img/wes.png,sha256=s8JOIWmAZXRH_meQmZ_EYEoVvj3ED8W7zXEoDw7hNTQ,22081
|
|
192
|
+
portal/static/portal/img/wes_hi_res.png,sha256=SVWhidHCQdXodNF--p1e-aD-oKawJsszWXzknasItnc,64737
|
|
193
|
+
portal/static/portal/img/wes_large.png,sha256=wrbeWhVBdFwie2uuK4k1MRXIrwv7DGNW7LBAflwsMeg,55424
|
|
194
|
+
portal/static/portal/img/zip.png,sha256=CDXFElPn9yE0m0JJWW-wqtgxft5F1KoAD7RIf9LWHPE,744
|
|
195
|
+
portal/static/portal/img/avatars/default-avatar.jpeg,sha256=ByW9rPi7Q-8P1-v9ThZrWnQWCLEIr6ZIEv0d8duU7BQ,2064
|
|
196
|
+
portal/static/portal/img/colorboxImages/border.png,sha256=Eb2D9kRqG0Gw2I3bLicfzJkSshDXf0DjTl4x4amvF0o,112
|
|
197
|
+
portal/static/portal/img/colorboxImages/controls.png,sha256=zQowXWoW0otiA3-wj5sGLdGgpqO5cNj5Xs69VvdAZ-k,2893
|
|
198
|
+
portal/static/portal/img/colorboxImages/loading.gif,sha256=NO9VJC_CTJTweQkCwJYB0ijpB0v3ofiMTeajm0DOOPo,9427
|
|
199
|
+
portal/static/portal/img/colorboxImages/loading_background.png,sha256=lZ7Mxrcb7-5nZXOS5_Ir4myrQISDZX-zKiGP7W_-AWs,157
|
|
200
|
+
portal/static/portal/img/colorboxImages/overlay.png,sha256=qy73bf_q55z4kktuaTaMhVrxDzVRCIjgmBQ5cbOmLtE,182
|
|
201
|
+
portal/static/portal/js/common.js,sha256=1bMys9XioM3XcC3ynVWzkZNXXjxqRedbxZi9Zukzjjw,3199
|
|
202
|
+
portal/static/portal/js/deleteWorkspaces.js,sha256=me83WI9qBkud5xSxNChZOw2SE5GXdNmNf-bd1V8ASbE,2160
|
|
203
|
+
portal/static/portal/js/fuzzySchoolLookup.js,sha256=Thk0MM9oFqmyTtZ41pQZfGluTkB8vnid6-rKMiM5O6g,3671
|
|
204
|
+
portal/static/portal/js/jquery.placeholder.js,sha256=bgf7YMB5_L4r1sElBMzAKZfHGaO-XiXaZ4a11UaOh_I,5297
|
|
205
|
+
portal/static/portal/js/organisation_manage.js,sha256=byU3oi4iIHjfg6BACgZwgnNALWTQ_EcVF8yBnNDce-s,3096
|
|
206
|
+
portal/static/portal/js/passwordStrength.js,sha256=X7io_txDpFio24qOOTF5tLRzFpiqjgy4KmkzmrhNTs4,4501
|
|
207
|
+
portal/static/portal/js/play.js,sha256=WmKotFmikFzmJ9BlWSNEpvomqP5M-cRAoxVG-dpV01A,3167
|
|
208
|
+
portal/static/portal/js/teach_class.js,sha256=D0w6SzqFMfSjcENsyJB09-66Qok5OxyrYKaTlruw7hw,4720
|
|
209
|
+
portal/static/portal/js/lib/jquery-ui.js,sha256=FAfNKdtF-doE7ngK77QHecODqzJlmr-tHZ7HnyasWAQ,461387
|
|
210
|
+
portal/static/portal/js/lib/jquery-video-lightning.js,sha256=Twz11pIePnmKQK4j8xwmD9IKuBHeM3euomUybwCd5Tw,19509
|
|
211
|
+
portal/static/portal/js/lib/jquery.colorbox.js,sha256=4-ZawxafV_4sijUG-zDB5Dpb1sSXJyTpS6djiQLI6P4,29200
|
|
212
|
+
portal/static/portal/js/lib/jquery.easy-ticker.js,sha256=Gj4dexfJvqsIds9qNMsAnomtSgN_VYOsdgOzKMoR77U,4278
|
|
213
|
+
portal/static/portal/js/lib/jquery.js,sha256=926a13vF1zr8PUIIqGC5RHpuakH8_YM2oO0w3TUlLoI,92593
|
|
214
|
+
portal/static/portal/js/lib/magnific.js,sha256=-5-Dl1iuVFegHiqiQuJ8tyxXVhyLBHIvKwQNAEEWgoo,21020
|
|
215
|
+
portal/static/portal/js/lib/modernizr.custom.79639.js,sha256=wzx-XaoCZEKlW-MfRO0FJiC0KGCB44c36sVf6OILv8U,8853
|
|
216
|
+
portal/templates/403.html,sha256=CJj4d7iWvkfDyaLqfYEh1N7S1GVUiz_huCXp3BN9r4U,249
|
|
217
|
+
portal/templates/404.html,sha256=yHhFeXu8OwY2jc7syn402LcBiOs7_qCXS4LXdHFJK1c,188
|
|
218
|
+
portal/templates/500.html,sha256=_FyXQsu0eNVbyWVTTlcL2rZ9B-sK1UtrCzCEzx9Pgh0,1477
|
|
219
|
+
portal/templates/email.html,sha256=CqW40eT9bNTXobHZaGu75gQFMiVLK7GdVsr3NczZijA,126
|
|
220
|
+
portal/templates/email.txt,sha256=i0XFIXcYFTx2IaXQaaRLd6lK8Mv2Gd0OxVrwKt8uUBQ,14
|
|
221
|
+
portal/templates/portal/2FA_redirect.html,sha256=kayd41hInPCui7FIudHFBa0IYNouX8zihc68x1WPddo,720
|
|
222
|
+
portal/templates/portal/about.html,sha256=dsJ9AsL-q-OS_9ud3IYAA7GU1IpGvWbuUBQpD9r5ykg,2862
|
|
223
|
+
portal/templates/portal/base.html,sha256=gT-wnMcajw208BX5nWvV4ZRB5YMyND6WejLN69Huyqc,6945
|
|
224
|
+
portal/templates/portal/base_no_userprofile.html,sha256=Ao_fetRySen1c6zudJtzNPlbDZwqrz0WnnkM_cbLeKA,318
|
|
225
|
+
portal/templates/portal/contact.html,sha256=kgafYS5xRuOn3t5_jO6FtFx2l8EtpjhwURNXfXIddCE,2059
|
|
226
|
+
portal/templates/portal/email_verification_failed.html,sha256=rebaAcXyBFa0ZaS-ePZPvVZGUEExpfnpYniolab4adM,564
|
|
227
|
+
portal/templates/portal/email_verification_needed.html,sha256=Q_VDw6NdPnexGeCuG42ureoNxH9gseyYCNIyZNHasFM,882
|
|
228
|
+
portal/templates/portal/help-and-support.html,sha256=3BuetPH4GSx_V8sfbC0HVx43O01MZVScIbiuiQ3Is1o,8412
|
|
229
|
+
portal/templates/portal/home.html,sha256=AYvrOFtyW_cIT4VUf_S80j4yB21fUQnh_uo1KSsFv-0,9382
|
|
230
|
+
portal/templates/portal/locked_out.html,sha256=sf2idEz56-SGzDnGlmeRb4iT43WtBEQEK_4gqbtvpZ0,344
|
|
231
|
+
portal/templates/portal/play.html,sha256=WPC-tQjxws744fGvm4SWYrK42SWLr3SYDthswERm77A,9381
|
|
232
|
+
portal/templates/portal/teach.html,sha256=XXsTizbTM8dNt_4vno2zi42p66sHORg166dOEQJjchQ,7110
|
|
233
|
+
portal/templates/portal/terms.html,sha256=W_FaES8tKoP1rFzl3n4DSomTxd3C2ptt8Syl13A7R9Q,16792
|
|
234
|
+
portal/templates/portal/admin/aggregated_data.html,sha256=rkQ70BLfgKHRlQ4Q5rd5uPI4jQZPIuMdcTJyXUHuHek,658
|
|
235
|
+
portal/templates/portal/admin/map.html,sha256=IZk-VOqV4ee51KVYd7Jq-ylf8upNEyMAPXyXExk2Q0E,1793
|
|
236
|
+
portal/templates/portal/play/base.html,sha256=PWeA8RTDQJmk3jO2lVh_G1LEgcwo9SLFlx28F9MxAcE,186
|
|
237
|
+
portal/templates/portal/play/student_details.html,sha256=YJDfKdmHckq7LCmbhRnD0-4bQOxMUVPSGGAxx712yGM,4438
|
|
238
|
+
portal/templates/portal/play/student_edit_account.html,sha256=jv-UAyhSczNbhLkgtgKk3mZHKUDmu6RMQvipga_Ir0c,4915
|
|
239
|
+
portal/templates/portal/play/student_join_organisation.html,sha256=Pqcg3zLAWlIH-rKvvyAsoEAZv6hk4q6GNvFHVCyg0v4,3832
|
|
240
|
+
portal/templates/portal/teach/base.html,sha256=QYD0XT45efFxDIUyblNTomcLHFCbFHbcK-kEjlibjwQ,190
|
|
241
|
+
portal/templates/portal/teach/organisation_create.html,sha256=SdTrWqT3bCBpJetZ7DYz4FtPYF3kGll66PJOnGZwFwY,4745
|
|
242
|
+
portal/templates/portal/teach/organisation_manage.html,sha256=yWd2ik7NKcI4rCFeXnuy4mD8V2G8PGFbn2JjB9GwF3g,6833
|
|
243
|
+
portal/templates/portal/teach/teacher_add_external_student.html,sha256=7J5X0qbGN2XPHyMxQMKuXQdglQ6FvZ4Pg2WLv2ikeQQ,2618
|
|
244
|
+
portal/templates/portal/teach/teacher_added_external_student.html,sha256=EINjdPyPxF-Er2wu8JCU-WupPTGoFIJUYf_my7aMNOA,1216
|
|
245
|
+
portal/templates/portal/teach/teacher_class.html,sha256=1F1sOmtOCaIDaJtBnyhvVLMjbq_l8eP65uu4nksoRmQ,6512
|
|
246
|
+
portal/templates/portal/teach/teacher_classes.html,sha256=des1xqPl3BJbbUS-lsm01yLb9grWPsUgzCT-5llTTB0,4725
|
|
247
|
+
portal/templates/portal/teach/teacher_dismiss_students.html,sha256=6o9tlKddTqTCKfxfJPQGTz00bn0n_zBtUkHYWTDS06c,2970
|
|
248
|
+
portal/templates/portal/teach/teacher_edit_account.html,sha256=SeHiTKvPGoPHX4wB7kjA3ox8YLLwKRILR-TA7RmdeKE,5970
|
|
249
|
+
portal/templates/portal/teach/teacher_edit_class.html,sha256=WfoQGIdqvRQWxFyCPh_VEYsyXnrqWL7AzjultrQ8S-4,2877
|
|
250
|
+
portal/templates/portal/teach/teacher_edit_student.html,sha256=rzGc1MaMuKxEPLJDBZvg9DRCeSACn21OBCbgEdcxVLM,4502
|
|
251
|
+
portal/templates/portal/teach/teacher_home.html,sha256=jD9Qe70I3I02KzpfPFy0wEr3pWDEwkyAncfjEE5NoGE,7872
|
|
252
|
+
portal/templates/portal/teach/teacher_lesson_plans.html,sha256=ooHx8mDRGfe5L8i2wWkJ9Mq2fTRmGQa5e-DsF4EUyXg,21884
|
|
253
|
+
portal/templates/portal/teach/teacher_lesson_plans_python.html,sha256=kOsD-vGzXHOVEVhSn8VYwJ_kXrHcivEgfGEY-VZe6uQ,12528
|
|
254
|
+
portal/templates/portal/teach/teacher_move_all_classes.html,sha256=LQK1i5Qo-9zCQR8WD2Qseaosj2mGd8f4oPbOzHXGDEw,2317
|
|
255
|
+
portal/templates/portal/teach/teacher_move_class.html,sha256=wNtBh1lKEW_TUXJd82RH1-9YPRNAdaMHAxymo-Kktsg,1565
|
|
256
|
+
portal/templates/portal/teach/teacher_move_students.html,sha256=_12eTnzaq_aFap6aLcTHrVYhBVrHfUwe95khCHRBUfs,1589
|
|
257
|
+
portal/templates/portal/teach/teacher_move_students_to_class.html,sha256=3W5s_AyDIPC-hKS4HoknVtetwoNOERYUyGaJHAmWFYo,3511
|
|
258
|
+
portal/templates/portal/teach/teacher_new_students.html,sha256=Pu2Rb9dsAulmMPG_48MwM0gZFQ14B0zx0uJy5kNqeDU,2270
|
|
259
|
+
portal/templates/portal/teach/teacher_student_reset.html,sha256=qYRvWZyANG6YzWuP_wvN1SOrjHdR1uKzjPrCn7nN4go,1310
|
|
260
|
+
portal/templates/portal/teach/teacher_students_reset.html,sha256=LxFuAOaePxRKWoHw1Jr9wR3-qZq_-U_wJFx9Xdt5qYM,1888
|
|
261
|
+
portal/templates/registration/login.html,sha256=Du2GnmLaxcuFeyHj6MmqkxR3GWwbsY0wxWIqk1tWyO4,1582
|
|
262
|
+
portal/templates/registration/password_reset_complete.html,sha256=6ZExMrnoLO9WBvU70-FCJ_-DW1QQ4n8leCQ36n679c0,458
|
|
263
|
+
portal/templates/registration/password_reset_confirm.html,sha256=l4N_TOxvXJ6qWUsPEbX6Rp-LiNyni3_XBHxhxj3mgUk,2282
|
|
264
|
+
portal/templates/registration/password_reset_done.html,sha256=_vUiO3_mKKe9fvmikpBsALCXOL-iV8v0n930AYxfOnI,438
|
|
265
|
+
portal/templates/registration/password_reset_email.html,sha256=Lcxpq5pvrViEVVXC9GPxd-VXP8-DOXuglE2vfAZ-ztk,341
|
|
266
|
+
portal/templates/registration/student_password_reset_form.html,sha256=qr5_qHYugFEaABQw4vBFA2pHKoeTHePqjvAx2ajpbY8,1410
|
|
267
|
+
portal/templates/registration/teacher_password_reset_form.html,sha256=Fm_e7YW39Tc-AiEUbgA0u9CaT_-fxSt4tW_sYOkgIus,1330
|
|
268
|
+
portal/templates/two_factor/_base.html,sha256=ecs0Vw_8Iqf6ryWc3bB1KJyb29gCX3Y-2qh6eSVgKeU,223
|
|
269
|
+
portal/templates/two_factor/core/setup_complete.html,sha256=bXWeIXGc67G66iXok2rXI8sWP63y9679LHYSx1UPb-o,491
|
|
270
|
+
portal/templates/two_factor/profile/profile.html,sha256=23jotj50hwIYexw1UzbHeAE0mvgk5Gq70fYNLqM30VY,1775
|
|
271
|
+
ratelimit/__init__.py,sha256=iwhKnzeBJLKxpRVjvzwiRE63_zNpIBfaKLITauVph-0,24
|
|
272
|
+
ratelimit/decorators.py,sha256=4ALlxnqim6ItPWe_ALyCqEReEMQrE092Xe_dU-Dw6wo,1859
|
|
273
|
+
ratelimit/backends/__init__.py,sha256=i0bUBumCOYbvPn0u7bkOXLMOu_-Rzd9av7x7EhmCBnM,249
|
|
274
|
+
ratelimit/backends/cache.py,sha256=KEaWXrK3rsBWUD_jktb0MzCQGVmqFIpnQLgoD_wdYw8,1222
|
|
275
|
+
reports/__init__.py,sha256=W4VeGk0r7YdM-TwIsa9dfGs-uLd1ecQb0tK8w44viQA,1832
|
|
276
|
+
reports/admin.py,sha256=uiPe8rCM3MuwdKRxpDnqmdEMQukPoFgOQTAaYrV8Vjg,1895
|
|
277
|
+
reports/models.py,sha256=RfdYkN0RH-yOGcNWG-BoYzbYFbz10ELguElvzTa1RRg,2506
|
|
278
|
+
reports/tests.py,sha256=lbf1rbo9GRWtuCeBDX2RUpp6beyatGWyE9woYB7wfu0,1892
|
|
279
|
+
reports/urls.py,sha256=N9BAPNsJbax_vn7XLVwndIHRFh8tN17W5Ow6g-NlyDU,3901
|
|
280
|
+
reports/views.py,sha256=Qwwu7hcK8S2uxKpbxcsNRnp2ke9-pBGeQOIHGEm64z4,1895
|
|
281
|
+
reports/migrations/0001_initial.py,sha256=CR5tlX8xtkehewORIbSZE2w5P8St4gR1xLWlUVg40HQ,2812
|
|
282
|
+
reports/migrations/0002_hitsperlevelperday.py,sha256=EMkfANeaMPTB7L4OrTXY2lwLxzhh2ZAVoNupOaJscZI,2568
|
|
283
|
+
reports/migrations/__init__.py,sha256=W4VeGk0r7YdM-TwIsa9dfGs-uLd1ecQb0tK8w44viQA,1832
|
|
284
|
+
codeforlife_portal-1.0.0.post0.dev48.dist-info/top_level.txt,sha256=C9YsSRHAv7e7yPSiI00MYzyVT8JnUZzBbOqvGZWEKPc,32
|
|
285
|
+
codeforlife_portal-1.0.0.post0.dev48.dist-info/METADATA,sha256=Ip0dcrig4k3NYiZur1BNPCi4VgmC5bUUJhhCphWUCgU,1784
|
|
286
|
+
codeforlife_portal-1.0.0.post0.dev48.dist-info/DESCRIPTION.rst,sha256=OCTuuN6LcWulhHS3d5rfjdsQtW22n7HENFRh6jC6ego,10
|
|
287
|
+
codeforlife_portal-1.0.0.post0.dev48.dist-info/metadata.json,sha256=6xeIipft7UPA07SqK6rCL5VLmUyA_7Hd444-qqo3fSw,1532
|
|
288
|
+
codeforlife_portal-1.0.0.post0.dev48.dist-info/WHEEL,sha256=AvR0WeTpDaxT645bl5FQxUK6NPsTls2ttpcGJg3j1Xg,110
|
|
289
|
+
codeforlife_portal-1.0.0.post0.dev48.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name": "codeforlife-portal", "run_requires": [{"requires": ["django (==1.8.2)", "django-appconf (==1.0.1)", "django-countries (==3.4.1)", "djangorestframework (==3.1.3)", "django-jquery (==1.9.1)", "django-autoconfig (==0.3.6)", "pyyaml (==3.10)", "rapid-router (>=1.0.0.post.dev1)", "six (==1.9.0)", "docutils (==0.12)", "django-recaptcha-field (==1.0b2)", "reportlab (==3.2.0)", "postcodes (==0.1)", "django-formtools (==1.0)", "django-two-factor-auth (==1.2.0)", "urllib3 (==1.10.4)", "requests (==2.7.0)", "django-cms (==3.1.2)", "django-classy-tags (==0.6.1)", "django-treebeard (==3.0)", "django-sekizai (==0.8.2)", "djangocms-admin-style (==0.2.8)", "djangocms-text-ckeditor (==2.6.0)", "djangocms-link (==1.6.2)", "djangocms-snippet (==1.5)", "djangocms-style (==1.5)", "djangocms-column (==1.5)", "djangocms-grid (==1.2)", "djangocms-oembed (==0.5)", "djangocms-table (==1.2)", "djangocms-file (==0.1)", "djangocms-flash (==0.2.0)", "djangocms-googlemap (==0.3)", "djangocms-inherit (==0.1)", "djangocms-picture (==0.1)", "djangocms-teaser (==0.1)", "djangocms-video (==0.1)", "django-online-status (==0.1.0)", "Pillow (==2.9.0)", "django-reversion (==1.9.3)"]}], "generator": "bdist_wheel (0.24.0)", "test_requires": [{"requires": ["django-setuptest", "django-selenium-clean (==0.2.1)", "responses (==0.4.0)", "selenium (==2.48.0)"]}], "summary": "UNKNOWN", "metadata_version": "2.0", "version": "1.0.0.post0.dev48", "extensions": {"python.details": {"document_names": {"description": "DESCRIPTION.rst"}}}, "extras": []}
|
deploy/__init__.py
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Code for Life
|
|
3
|
+
#
|
|
4
|
+
# Copyright (C) 2015, Ocado 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.
|
deploy/captcha.py
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Code for Life
|
|
3
|
+
#
|
|
4
|
+
# Copyright (C) 2015, Ocado 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
|
+
|
|
38
|
+
CAPTCHA_ENABLED = True
|
deploy/mail.py
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
from email.MIMEBase import MIMEBase
|
|
2
|
+
|
|
3
|
+
from django.core.mail.backends.base import BaseEmailBackend
|
|
4
|
+
from django.core.mail import EmailMultiAlternatives
|
|
5
|
+
from django.core.exceptions import ImproperlyConfigured
|
|
6
|
+
|
|
7
|
+
from google.appengine.api import mail as aeemail
|
|
8
|
+
from google.appengine.runtime import apiproxy_errors
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def _send_deferred(message, fail_silently=False):
|
|
12
|
+
try:
|
|
13
|
+
message.send()
|
|
14
|
+
except (aeemail.Error, apiproxy_errors.Error):
|
|
15
|
+
if not fail_silently:
|
|
16
|
+
raise
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class EmailBackend(BaseEmailBackend):
|
|
20
|
+
can_defer = False
|
|
21
|
+
|
|
22
|
+
def send_messages(self, email_messages):
|
|
23
|
+
num_sent = 0
|
|
24
|
+
for message in email_messages:
|
|
25
|
+
if self._send(message):
|
|
26
|
+
num_sent += 1
|
|
27
|
+
return num_sent
|
|
28
|
+
|
|
29
|
+
def _copy_message(self, message):
|
|
30
|
+
"""
|
|
31
|
+
Creates and returns App Engine EmailMessage class from message.
|
|
32
|
+
"""
|
|
33
|
+
gmsg = aeemail.EmailMessage(sender=message.from_email,
|
|
34
|
+
to=message.to,
|
|
35
|
+
subject=message.subject,
|
|
36
|
+
body=message.body)
|
|
37
|
+
if message.extra_headers.get('Reply-To', None):
|
|
38
|
+
gmsg.reply_to = message.extra_headers['Reply-To']
|
|
39
|
+
if message.cc:
|
|
40
|
+
gmsg.cc = list(message.cc)
|
|
41
|
+
if message.bcc:
|
|
42
|
+
gmsg.bcc = list(message.bcc)
|
|
43
|
+
if message.attachments:
|
|
44
|
+
# Must be populated with (filename, filecontents) tuples.
|
|
45
|
+
attachments = []
|
|
46
|
+
for attachment in message.attachments:
|
|
47
|
+
if isinstance(attachment, MIMEBase):
|
|
48
|
+
attachments.append((attachment.get_filename(),
|
|
49
|
+
attachment.get_payload(decode=True)))
|
|
50
|
+
else:
|
|
51
|
+
attachments.append((attachment[0], attachment[1]))
|
|
52
|
+
gmsg.attachments = attachments
|
|
53
|
+
# Look for HTML alternative content.
|
|
54
|
+
if isinstance(message, EmailMultiAlternatives):
|
|
55
|
+
for content, mimetype in message.alternatives:
|
|
56
|
+
if mimetype == 'text/html':
|
|
57
|
+
gmsg.html = content
|
|
58
|
+
break
|
|
59
|
+
return gmsg
|
|
60
|
+
|
|
61
|
+
def _send(self, message):
|
|
62
|
+
try:
|
|
63
|
+
message = self._copy_message(message)
|
|
64
|
+
except (ValueError, aeemail.InvalidEmailError), err:
|
|
65
|
+
import logging
|
|
66
|
+
logging.warn(err)
|
|
67
|
+
if not self.fail_silently:
|
|
68
|
+
raise
|
|
69
|
+
return False
|
|
70
|
+
if self.can_defer:
|
|
71
|
+
self._defer_message(message)
|
|
72
|
+
return True
|
|
73
|
+
try:
|
|
74
|
+
message.send()
|
|
75
|
+
except (aeemail.Error, apiproxy_errors.Error):
|
|
76
|
+
if not self.fail_silently:
|
|
77
|
+
raise
|
|
78
|
+
return False
|
|
79
|
+
return True
|
|
80
|
+
|
|
81
|
+
def _defer_message(self, message):
|
|
82
|
+
from google.appengine.ext import deferred
|
|
83
|
+
from django.conf import settings
|
|
84
|
+
queue_name = getattr(settings, 'EMAIL_QUEUE_NAME', 'default')
|
|
85
|
+
deferred.defer(_send_deferred,
|
|
86
|
+
message,
|
|
87
|
+
fail_silently=self.fail_silently,
|
|
88
|
+
_queue=queue_name)
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
class AsyncEmailBackend(EmailBackend):
|
|
92
|
+
can_defer = True
|
|
93
|
+
|
|
File without changes
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from django.http import HttpResponse
|
|
2
|
+
from django.conf import settings
|
|
3
|
+
import os
|
|
4
|
+
|
|
5
|
+
class BasicAuthMiddleware:
|
|
6
|
+
def unauthed(self):
|
|
7
|
+
response = HttpResponse("""<html><title>Auth required</title><body>
|
|
8
|
+
<h1>Authorization Required</h1></body></html>""", content_type="text/html")
|
|
9
|
+
response['WWW-Authenticate'] = 'Basic realm="' + os.getenv('APPLICATION_ID', '') + '"'
|
|
10
|
+
response.status_code = 401
|
|
11
|
+
return response
|
|
12
|
+
|
|
13
|
+
def process_request(self, request):
|
|
14
|
+
if request.META.has_key('HTTP_AUTHORIZATION'):
|
|
15
|
+
authmeth, auth = request.META['HTTP_AUTHORIZATION'].split(' ', 1)
|
|
16
|
+
if authmeth.lower() == 'basic':
|
|
17
|
+
auth = auth.strip().decode('base64')
|
|
18
|
+
username, password = auth.split(':', 1)
|
|
19
|
+
if username != settings.BASICAUTH_USERNAME or password != settings.BASICAUTH_PASSWORD:
|
|
20
|
+
return self.unauthed()
|
|
21
|
+
else:
|
|
22
|
+
return self.unauthed()
|
|
23
|
+
else:
|
|
24
|
+
return self.unauthed()
|
deploy/permissions.py
ADDED