codeforlife-portal 6.46.1__py2.py3-none-any.whl → 7.1.0__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.

Potentially problematic release.


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

Files changed (69) hide show
  1. cfl_common/common/csp_config.py +0 -2
  2. cfl_common/common/mail.py +31 -6
  3. cfl_common/common/migrations/0005_add_worksheets.py +1 -5
  4. cfl_common/common/migrations/0007_add_pdf_names_to_first_two_worksheets.py +1 -5
  5. cfl_common/common/migrations/0054_delete_aimmo_models.py +20 -0
  6. cfl_common/common/models.py +0 -25
  7. {codeforlife_portal-6.46.1.dist-info → codeforlife_portal-7.1.0.dist-info}/METADATA +3 -4
  8. {codeforlife_portal-6.46.1.dist-info → codeforlife_portal-7.1.0.dist-info}/RECORD +44 -68
  9. example_project/portal_test_settings.py +0 -1
  10. example_project/settings.py +0 -1
  11. example_project/urls.py +0 -2
  12. portal/__init__.py +1 -1
  13. portal/static/portal/sass/partials/_banners.scss +0 -177
  14. portal/static/portal/sass/partials/_buttons.scss +0 -12
  15. portal/static/portal/sass/partials/_grids.scss +0 -53
  16. portal/static/portal/sass/partials/_text.scss +1 -10
  17. portal/static/portal/sass/styles.scss +0 -1
  18. portal/strings/play.py +1 -2
  19. portal/strings/teacher_resources.py +0 -10
  20. portal/templates/portal/about.html +91 -60
  21. portal/templates/portal/contribute.html +45 -49
  22. portal/templates/portal/partials/header.html +0 -12
  23. portal/templates/portal/play/independent_student_dashboard.html +12 -25
  24. portal/templates/portal/play/student_dashboard.html +16 -34
  25. portal/templates/portal/play.html +36 -49
  26. portal/templates/portal/register.html +1 -1
  27. portal/templates/portal/teach.html +37 -55
  28. portal/templates/portal/ten_year_map.html +9 -9
  29. portal/templatetags/app_tags.py +13 -28
  30. portal/tests/conftest.py +4 -16
  31. portal/tests/pageObjects/portal/base_page.py +20 -20
  32. portal/tests/snapshots/snap_test_partials.py +0 -452
  33. portal/tests/test_class.py +213 -45
  34. portal/tests/test_independent_student.py +0 -9
  35. portal/tests/test_partials.py +6 -56
  36. portal/tests/test_teacher.py +221 -285
  37. portal/tests/test_views.py +257 -73
  38. portal/urls.py +38 -20
  39. portal/views/cron/user.py +158 -15
  40. portal/views/student/play.py +36 -25
  41. portal/views/teacher/teach.py +0 -5
  42. cfl_common/common/tests/test_migration_aimmo_characters.py +0 -29
  43. portal/forms/add_game.py +0 -29
  44. portal/static/portal/img/kurono_hero.jpg +0 -0
  45. portal/static/portal/img/kurono_landing_hero.png +0 -0
  46. portal/static/portal/img/kurono_logo.svg +0 -1
  47. portal/static/portal/img/kurono_logo_grey_background.svg +0 -1
  48. portal/static/portal/img/kurono_logo_mark.svg +0 -1
  49. portal/static/portal/img/kurono_resources_hero.jpg +0 -0
  50. portal/static/portal/img/kurono_story.png +0 -0
  51. portal/static/portal/img/thumbnail_educate_kurono.png +0 -0
  52. portal/static/portal/img/thumbnail_kurono_resources.png +0 -0
  53. portal/static/portal/img/thumbnail_play_kurono.png +0 -0
  54. portal/static/portal/js/aimmoGame.js +0 -106
  55. portal/static/portal/sass/partials/_videos.scss +0 -10
  56. portal/static/portal/video/aimmo_play_now_background_video.mp4 +0 -0
  57. portal/strings/student_aimmo_dashboard.py +0 -6
  58. portal/templates/portal/partials/aimmo_games_table.html +0 -89
  59. portal/templates/portal/play/student_aimmo_dashboard.html +0 -46
  60. portal/templates/portal/teach/teacher_aimmo_dashboard.html +0 -95
  61. portal/templatetags/character_list_tags.py +0 -16
  62. portal/tests/pageObjects/portal/kurono_teacher_dashboard_page.py +0 -49
  63. portal/tests/test_aimmo_dashboards.py +0 -206
  64. portal/tests/utils/aimmo_games.py +0 -30
  65. portal/views/aimmo/__init__.py +0 -0
  66. portal/views/aimmo/dashboard.py +0 -105
  67. {codeforlife_portal-6.46.1.dist-info → codeforlife_portal-7.1.0.dist-info}/LICENSE.md +0 -0
  68. {codeforlife_portal-6.46.1.dist-info → codeforlife_portal-7.1.0.dist-info}/WHEEL +0 -0
  69. {codeforlife_portal-6.46.1.dist-info → codeforlife_portal-7.1.0.dist-info}/top_level.txt +0 -0
@@ -15,8 +15,6 @@ CSP_CONNECT_SRC = (
15
15
  "https://www.google-analytics.com/",
16
16
  "https://pyodide-cdn2.iodide.io/v0.15.0/full/",
17
17
  "https://crowdin.com/",
18
- f"wss://{MODULE_NAME}-aimmo.codeforlife.education/",
19
- f"https://{MODULE_NAME}-aimmo.codeforlife.education/",
20
18
  )
21
19
  CSP_FONT_SRC = ("'self'", "https://fonts.gstatic.com/", "https://fonts.googleapis.com/", "https://use.typekit.net/")
22
20
  CSP_SCRIPT_SRC = (
cfl_common/common/mail.py CHANGED
@@ -27,6 +27,9 @@ campaign_ids = {
27
27
  "verify_new_user_second_reminder": 1557173,
28
28
  "verify_new_user_via_parent": 1551587,
29
29
  "verify_released_student": 1580574,
30
+ "inactive_users_on_website_first_reminder": 1604381,
31
+ "inactive_users_on_website_second_reminder": 1606208,
32
+ "inactive_users_on_website_final_reminder": 1606215,
30
33
  }
31
34
 
32
35
 
@@ -65,7 +68,11 @@ def django_send_email(
65
68
  plaintext = loader.get_template(plaintext_template)
66
69
  html = loader.get_template(html_template)
67
70
  plaintext_email_context = {"content": text_content}
68
- html_email_context = {"content": text_content, "title": title, "url_prefix": domain()}
71
+ html_email_context = {
72
+ "content": text_content,
73
+ "title": title,
74
+ "url_prefix": domain(),
75
+ }
69
76
 
70
77
  # render templates
71
78
  plaintext_body = plaintext.render(plaintext_email_context)
@@ -74,11 +81,19 @@ def django_send_email(
74
81
 
75
82
  if replace_url:
76
83
  verify_url = replace_url["verify_url"]
77
- verify_replace_url = re.sub(f"(.*/verify_email/)(.*)", f"\\1", verify_url)
78
- html_body = re.sub(f"({verify_url})(.*){verify_url}", f"\\1\\2{verify_replace_url}", original_html_body)
84
+ verify_replace_url = re.sub(
85
+ f"(.*/verify_email/)(.*)", f"\\1", verify_url
86
+ )
87
+ html_body = re.sub(
88
+ f"({verify_url})(.*){verify_url}",
89
+ f"\\1\\2{verify_replace_url}",
90
+ original_html_body,
91
+ )
79
92
 
80
93
  # make message using templates
81
- message = EmailMultiAlternatives(subject, plaintext_body, sender, recipients)
94
+ message = EmailMultiAlternatives(
95
+ subject, plaintext_body, sender, recipients
96
+ )
82
97
  message.attach_alternative(html_body, "text/html")
83
98
 
84
99
  message.send()
@@ -123,7 +138,13 @@ def send_dotdigital_email(
123
138
 
124
139
  # Dotdigital emails don't work locally, so if testing emails locally use Django to send a dummy email instead
125
140
  if MODULE_NAME == "local":
126
- django_send_email(from_address, to_addresses, "dummy_subject", "dummy_text_content", "dummy_title")
141
+ django_send_email(
142
+ from_address,
143
+ to_addresses,
144
+ "dummy_subject",
145
+ "dummy_text_content",
146
+ "dummy_title",
147
+ )
127
148
  else:
128
149
  if auth is None:
129
150
  auth = app_settings.DOTDIGITAL_AUTH
@@ -168,4 +189,8 @@ def send_dotdigital_email(
168
189
  timeout=timeout,
169
190
  )
170
191
 
171
- assert response.ok, "Failed to send email." f" Reason: {response.reason}." f" Text: {response.text}."
192
+ assert response.ok, (
193
+ "Failed to send email."
194
+ f" Reason: {response.reason}."
195
+ f" Text: {response.text}."
196
+ )
@@ -1,12 +1,8 @@
1
- from common.helpers.data_migration_loader import load_data_from_file
2
1
  from django.db import migrations
3
2
 
4
3
 
5
4
  class Migration(migrations.Migration):
6
5
 
7
- dependencies = [
8
- ("common", "0004_add_aimmocharacters"),
9
- ("aimmo", "0020_add_info_to_worksheet"),
10
- ]
6
+ dependencies = [("common", "0004_add_aimmocharacters")]
11
7
 
12
8
  operations = [migrations.RunPython(migrations.RunPython.noop, reverse_code=migrations.RunPython.noop)]
@@ -1,12 +1,8 @@
1
- from common.helpers.data_migration_loader import load_data_from_file
2
1
  from django.db import migrations
3
2
 
4
3
 
5
4
  class Migration(migrations.Migration):
6
5
 
7
- dependencies = [
8
- ("common", "0006_update_aimmo_character_image_path"),
9
- ("aimmo", "0021_add_pdf_names_to_worksheet"),
10
- ]
6
+ dependencies = [("common", "0006_update_aimmo_character_image_path")]
11
7
 
12
8
  operations = [migrations.RunPython(migrations.RunPython.noop, reverse_code=migrations.RunPython.noop)]
@@ -0,0 +1,20 @@
1
+ # Generated by Django 3.2.25 on 2024-07-31 00:13
2
+
3
+ from django.db import migrations
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ('common', '0053_clean_class_data'),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.DeleteModel(
14
+ name='AimmoCharacter',
15
+ ),
16
+ migrations.RemoveField(
17
+ model_name='userprofile',
18
+ name='aimmo_badges',
19
+ ),
20
+ ]
@@ -16,14 +16,6 @@ class UserProfile(models.Model):
16
16
  developer = models.BooleanField(default=False)
17
17
  is_verified = models.BooleanField(default=False)
18
18
 
19
- # Holds the user's earned kurono badges. This information has to be on the
20
- # UserProfile as the Avatar objects are deleted every time the Game gets
21
- # deleted.
22
- # This is a string showing which badges in which worksheets have been
23
- # earned. The format is "X:Y" where X is the worksheet ID and Y is the
24
- # badge ID. This repeats for all badges and each pair is comma-separated.
25
- aimmo_badges = models.CharField(max_length=200, null=True, blank=True)
26
-
27
19
  # TODO: Make not nullable once data has been transferred
28
20
  first_name = models.CharField(max_length=200, null=True, blank=True)
29
21
  _first_name = models.BinaryField(null=True, blank=True)
@@ -387,23 +379,6 @@ def stripStudentName(name):
387
379
  return re.sub("[ \t]+", " ", name.strip())
388
380
 
389
381
 
390
- class AimmoCharacterManager(models.Manager):
391
- def sorted(self):
392
- return self.get_queryset().order_by("sort_order")
393
-
394
-
395
- class AimmoCharacter(models.Model):
396
- name = models.CharField(max_length=255)
397
- description = models.TextField()
398
- image_path = models.CharField(max_length=255)
399
- sort_order = models.IntegerField()
400
- alt = models.CharField(max_length=255, null=True)
401
- objects = AimmoCharacterManager()
402
-
403
- def __str__(self) -> str:
404
- return self.name
405
-
406
-
407
382
  # -----------------------------------------------------------------------
408
383
  # Below are models used for data tracking and maintenance
409
384
  # -----------------------------------------------------------------------
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: codeforlife-portal
3
- Version: 6.46.1
3
+ Version: 7.1.0
4
4
  Classifier: Programming Language :: Python
5
5
  Classifier: Programming Language :: Python :: 3.8
6
6
  Classifier: Framework :: Django
@@ -13,8 +13,7 @@ Requires-Dist: django-pipeline ==2.0.8
13
13
  Requires-Dist: django-recaptcha ==2.0.6
14
14
  Requires-Dist: pyyaml ==5.4.1
15
15
  Requires-Dist: importlib-metadata ==4.13.0
16
- Requires-Dist: rapid-router >=4
17
- Requires-Dist: aimmo >=2
16
+ Requires-Dist: rapid-router >=6
18
17
  Requires-Dist: reportlab ==3.6.13
19
18
  Requires-Dist: django-formtools ==2.2
20
19
  Requires-Dist: django-otp ==1.0.2
@@ -25,7 +24,7 @@ Requires-Dist: django-classy-tags ==2.0.0
25
24
  Requires-Dist: libsass ==0.23.0
26
25
  Requires-Dist: phonenumbers ==8.12.12
27
26
  Requires-Dist: more-itertools ==8.7.0
28
- Requires-Dist: cfl-common ==6.46.1
27
+ Requires-Dist: cfl-common ==7.1.0
29
28
  Requires-Dist: django-ratelimit ==3.0.1
30
29
  Requires-Dist: django-preventconcurrentlogins ==0.8.2
31
30
  Requires-Dist: django-csp ==3.7
@@ -4,9 +4,9 @@ cfl_common/common/__init__.py,sha256=XlncBOpKp_gekbKH7Y_i6yu1qy5tJc3Y8sn8cDy-Vgk
4
4
  cfl_common/common/app_settings.py,sha256=x2ROLY5Xl5LgqjxyTiChZvQorZYUXpFzEkaLsjh8UHo,2586
5
5
  cfl_common/common/apps.py,sha256=49UXZ3bSkFKvIEOL4zM7y1sAhccQJyRtsoOg5XVd_8Y,129
6
6
  cfl_common/common/context_processors.py,sha256=X0iuX5qu9kMWa7q8osE9CJ2LgM7pPOYQFGdjm8X3rk0,236
7
- cfl_common/common/csp_config.py,sha256=sZT6s9zMT5FFIqNODsURT0ifxbDgXpDlki8UxaBq2iE,2940
8
- cfl_common/common/mail.py,sha256=Lmn7CepceKw1UqxjxTR_24fo7izecw0ihBJ3W_9tcco,6394
9
- cfl_common/common/models.py,sha256=1e_3zHf8h_K812-2cQymRLZAKoA73_5-t4LQGPQlifE,16946
7
+ cfl_common/common/csp_config.py,sha256=9ECOLnp60ENRFAYEEIoYOMhqQzLgfKA-wkWxeUBwDrQ,2824
8
+ cfl_common/common/mail.py,sha256=nCY5aRiyiBCudonewpHOQ3GnXhQu4HLJRaqx1vOYhfI,6799
9
+ cfl_common/common/models.py,sha256=FB34xkpmTpYkvypgrDHv3QSRWnds69JnjHFw0X0fjrI,15989
10
10
  cfl_common/common/permissions.py,sha256=gC6RQGZI2QDBbglx-xr_V4Hl2C2nf1V2_uPmEuoEcJo,2416
11
11
  cfl_common/common/utils.py,sha256=Nn2Npao9Uqad5Js_IdHwF-ow6wrPNpBLW4AO1LxoEBc,1727
12
12
  cfl_common/common/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -18,9 +18,9 @@ cfl_common/common/migrations/0001_initial.py,sha256=Y2kt2xmdCbrmDXCgqmhXeacicNg2
18
18
  cfl_common/common/migrations/0002_emailverification.py,sha256=csWNasKNB5HQfrg5Owa6ovwx9f-v3ved-1B6QSu2_3s,2094
19
19
  cfl_common/common/migrations/0003_aimmocharacter.py,sha256=ZS_-sJCVUnFdhDjyH75P5bryg5QKHPDfe-SXXK7k9KM,922
20
20
  cfl_common/common/migrations/0004_add_aimmocharacters.py,sha256=543WKEphsvdKo8Z7f8wPgZHGxRPWMdo288O5_7edawo,430
21
- cfl_common/common/migrations/0005_add_worksheets.py,sha256=lIfjiNEOGiGEsrJJCN-BVaOcyidlT3s9uhwpCfyHFV0,376
21
+ cfl_common/common/migrations/0005_add_worksheets.py,sha256=gM-5yJQ-0r3Plrv__agri5JD5f5pqRf-fuvxYg9RrQw,243
22
22
  cfl_common/common/migrations/0006_update_aimmo_character_image_path.py,sha256=De1d02dAYE2KT8uW1qPi0NmWp45_zXVNH7kjWg3f2ko,431
23
- cfl_common/common/migrations/0007_add_pdf_names_to_first_two_worksheets.py,sha256=dQBI3VzqS8CpnpmQfXx_sNVDynhQL-KxwJNl38cgJi4,395
23
+ cfl_common/common/migrations/0007_add_pdf_names_to_first_two_worksheets.py,sha256=XxAVaQpwwst2L5Bh6EuNBwA_jtc04ULwtDY6SNMM46k,257
24
24
  cfl_common/common/migrations/0008_unlock_worksheet_3.py,sha256=WzTdGbSjYNlyxNLVRMPWOhNBkR5e-lRewu0xBy5d69c,345
25
25
  cfl_common/common/migrations/0009_add_blocked_time_to_teacher_and_student.py,sha256=hdff316HkAVCB0EW61qbR2lxwkxSTsD7OBK66PLBUUQ,599
26
26
  cfl_common/common/migrations/0010_remove_teacher_title.py,sha256=dMX-wgD-nzRx2AmrvuLMtb1X7TIv1gZ9icacFgI1LNc,396
@@ -67,9 +67,9 @@ cfl_common/common/migrations/0050_anonymise_orphan_schools.py,sha256=_KCkSkoObTp
67
67
  cfl_common/common/migrations/0051_verify_returning_users.py,sha256=WMpoTA24WgimLEVmKXuPqZ3aZdClRhY5vuGtYseeJp0,758
68
68
  cfl_common/common/migrations/0052_add_cse_fields.py,sha256=NhUkkcu2EBzJFhewCTccQ63AoANkGq1CXbFWIGJG9jk,2232
69
69
  cfl_common/common/migrations/0053_clean_class_data.py,sha256=lBKlDa49YwT660o-Ot6IYe4I1KfervTn4uAijda0nyw,584
70
+ cfl_common/common/migrations/0054_delete_aimmo_models.py,sha256=fmn4mDdlHr5DhPbIl_ygvGwWVFD8TZHAgQ6VUQQgCx8,415
70
71
  cfl_common/common/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
72
  cfl_common/common/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
- cfl_common/common/tests/test_migration_aimmo_characters.py,sha256=pdCCsns90Qz05QqmaBUYK18jKe9aP-symtZjkKG4rag,1079
73
73
  cfl_common/common/tests/test_migration_anonymise_orphan_schools.py,sha256=wJRyPgRvBsXLSCFdbBi2GXjgSgDbKUTRiM31CXIvpqs,1194
74
74
  cfl_common/common/tests/test_migration_anonymise_orphan_users.py,sha256=MGuI8YVvUReXxjK36i2n-vkC677I8HqVHph778zL34Q,1368
75
75
  cfl_common/common/tests/test_migration_blocked_time.py,sha256=z9WxMTrZTKFieLfbQwkoOZozziPHmWVk6T4FysLeHGk,590
@@ -103,11 +103,11 @@ deploy/static/robots.txt,sha256=5cS4RITuQhbpNzvpk4AyDCXdlIBfmfCoBYRvCHY2VT8,24
103
103
  deploy/templates/deploy/csrf_failure.html,sha256=-pBRPn4Y7nUdYHGpTHCokT9Boi-isuwuivF8V2K1SgM,412
104
104
  example_project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
105
  example_project/manage.py,sha256=EUgybZlZ7xk2Zf2KCwBbK_z7gf7Ifqs0_bl4Kijhdgo,242
106
- example_project/portal_test_settings.py,sha256=frp_XMpd-z1g3VFCRxB2w7AaFW2ivRVKn0bAR4LM628,7260
107
- example_project/settings.py,sha256=XRZZvASoIl5a9xe3masTq_CUBleuJq9ByHx8f_e2UFc,5613
108
- example_project/urls.py,sha256=OVeRQ-TCpzHISBRuzqD0yd3ewF7H5U3c-f2p2alfUD0,430
106
+ example_project/portal_test_settings.py,sha256=NfLY72mt1LR2c0_kxF-Yg5pCm2vQ52eceBMn573wW0Y,7247
107
+ example_project/settings.py,sha256=vOGZyxsWfV_G28X3XnSGSE65BUSU7mIGKOd0Z4mSkaE,5600
108
+ example_project/urls.py,sha256=6nYfzu2pSVAjkAm2ZyzniZl-VzxYuDyaAZTObVX7Jjg,350
109
109
  example_project/wsgi.py,sha256=U1W6WzZxZaIdYZ5tks7w9fqp5WS5qvn2iThsVcskrWw,829
110
- portal/__init__.py,sha256=C-WkT_jxkIWg_1sKDn5_MsGHx3yCDs4ACDedjxKYDMU,23
110
+ portal/__init__.py,sha256=vrQk6cOG_uk0gOqN4qh7NRCxezXfvhv9tT7bwYHyTck,22
111
111
  portal/admin.py,sha256=on1-zNRnZvf2cwBN6GVRVYRhkaksrCgfzX8XPWtkvz8,6062
112
112
  portal/app_settings.py,sha256=DhWLQOwM0zVOXE3O5TNKbMM9K6agfLuCsHOdr1J7xEI,651
113
113
  portal/backends.py,sha256=2Dss6_WoQwPuDzJUF1yEaTQTNG4eUrD12ujJQ5cp5Tc,812
@@ -115,10 +115,9 @@ portal/beta.py,sha256=0TCC-9_KZoM1nuzJ9FiuKR5n9JITdMYenHGQtRvn9UU,255
115
115
  portal/context_processors.py,sha256=1TrUZqnMqGa5f7ERph9EpBqojSMJvOrcpnJzTdeCLDI,133
116
116
  portal/handlers.py,sha256=gF99OfQrGcIGDnUyONhvylZNU8sl6XHYEurwu0fuiss,422
117
117
  portal/models.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
118
- portal/urls.py,sha256=0u6pmeG3Emu38Af1HiROyHJJnkoEhSEpnEsSpO1Ztsk,17392
118
+ portal/urls.py,sha256=FKO46TayhzGnyzQkDXABzfiFdlnoF6C0DqJ_lm21JlI,17897
119
119
  portal/wsgi.py,sha256=3yRcNxBQG30NhzrVi93bX-DrbXtsIQBc70HiW5wbOyE,401
120
120
  portal/forms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
121
- portal/forms/add_game.py,sha256=Z9pjNiAU3W2HthSsbz_OWzl2RuLpZ0GtA6Xe1tg7H5I,1008
122
121
  portal/forms/admin.py,sha256=Cdl8-wvasAzvMfgUlFYzQjYeuyC7gIsSiy8V_-jMp7w,2080
123
122
  portal/forms/dotmailer.py,sha256=McD9_u8yxUfE7PSVG3MPMilRJtx9GTe9QsNzDDV3uuI,761
124
123
  portal/forms/error_messages.py,sha256=8d3z_3e2L-5zwj5hFhnUByC5k2CEpIVVuJg2nYkCUQ8,148
@@ -212,13 +211,6 @@ portal/static/portal/img/icon_step_by_step.png,sha256=WBOXt3VtVHXpYX4Q9kzlhJBxgW
212
211
  portal/static/portal/img/icon_tracking.png,sha256=vXVOsKNh6eJ_HmaGqlzkdzBQLd1aBdoQ-_sMXRtm8Wg,761
213
212
  portal/static/portal/img/icon_uk_flag.png,sha256=j2fipz-91fLkspJF8EGwMvfB0LkbcPNJF-G0AttHohc,6052
214
213
  portal/static/portal/img/kirsty.png,sha256=0uxE4JV4C364Ueqn3a_nE7BHMKgDJZ5YhPOB2glLMAQ,31240
215
- portal/static/portal/img/kurono_hero.jpg,sha256=jxSWa2Fqq5kOSlSw-XPJk213BCdeQg02aLQRw0GnBR0,80736
216
- portal/static/portal/img/kurono_landing_hero.png,sha256=7hf5lyeJT0LQX-lOYWkmU5gAxH5niJ8tdbBN_p-Szhw,254014
217
- portal/static/portal/img/kurono_logo.svg,sha256=MwgrxHFfBhpZkfNWMydzVe9J4detk94Baw8BQz6-opI,2930
218
- portal/static/portal/img/kurono_logo_grey_background.svg,sha256=kv8ss2u29IeL1Pyz_4gaZn3_sRJL1Rh2Cbs4H4LQgBc,3017
219
- portal/static/portal/img/kurono_logo_mark.svg,sha256=pqyBT2VwoXJOp_n3bdui1kVA1uw4Y8ROHnnWgKrX3x0,1494
220
- portal/static/portal/img/kurono_resources_hero.jpg,sha256=aggqujljpNbly6m-0y8VY_C3Fmlhb1jf4iwgCW6FCaE,119585
221
- portal/static/portal/img/kurono_story.png,sha256=mlKMWVKceOWt5YAOf1P7JdJJ8REawY0hMIJsfsUqp4s,737438
222
214
  portal/static/portal/img/logo_cfl.png,sha256=COKEGSkoUFxI5sVcb3GCAOtmxoQbeZJ2EEwVXmkF3pc,28845
223
215
  portal/static/portal/img/logo_cfl_powered.svg,sha256=2mj_Qjaxy4bWKtb1QEL9aUbcToGMiYUgLH6DBzqtFKQ,22353
224
216
  portal/static/portal/img/logo_cfl_reminder_cards.jpg,sha256=_jVvWRCbROrz0q2AhN6gnPGwU6FAyhfLO6bKquuIljQ,261670
@@ -255,12 +247,9 @@ portal/static/portal/img/sharon_harrison.jpg,sha256=VBPA3nuzP8k8R8MW3-kHK_TFjax8
255
247
  portal/static/portal/img/sian.png,sha256=9-j5qxJPHXPto8a06E6iYU-kbUCbAIY3UhJU0Egw6ho,116116
256
248
  portal/static/portal/img/teaching_resources_hero.jpg,sha256=tDJpcTnQ_om0aVIJBXHtdjRSuGkuIcl1N__lWYVvNbo,60671
257
249
  portal/static/portal/img/ten_year_map_pin.svg,sha256=7hOOyo7Qb1SIBJ_QmpxP-2cS6qr0OleohWhAisAXzv4,348
258
- portal/static/portal/img/thumbnail_educate_kurono.png,sha256=wnakgkgLkE4DYEha6Rpi1JPz4wdA3uiIEU8kBe1makk,68282
259
250
  portal/static/portal/img/thumbnail_educate_rapid_router.png,sha256=7_iqzffvVJZGPfwXmwPurLCWpiXYP9RochU9g5munok,67570
260
251
  portal/static/portal/img/thumbnail_educate_resources.png,sha256=kWmhGxkGiJBFB75ytdTHCg7Y7M_GBjhe7UgA9kIG0AE,37070
261
252
  portal/static/portal/img/thumbnail_intro_c4l.jpg,sha256=stFXCm66zSD1rX5QVuW8ppkZjl0E_9zYJ3K13Sfib_0,34617
262
- portal/static/portal/img/thumbnail_kurono_resources.png,sha256=YzLV2-ooszKXWKAxzzPhzzDW2F3dNiCGd8wzB56ZBkY,37516
263
- portal/static/portal/img/thumbnail_play_kurono.png,sha256=qo6_okYma54BjGH9rjrSxhzLVMMh3pKgrQc-82WVL4A,69758
264
253
  portal/static/portal/img/thumbnail_play_rapid_router.png,sha256=PcgUPG7zmkjPlsw0YIBewxNDSjwRtHPZD1kIDEs9YaU,20989
265
254
  portal/static/portal/img/twitter.png,sha256=QD2ckrIWgV6WpuV0R7p717_T9a-DibzIxXsqHbvDR48,15969
266
255
  portal/static/portal/img/universities.png,sha256=y015DeiJzJyIAEC-qIGY5HgsXJDr_DhUXOx8_2xbxf0,145961
@@ -271,7 +260,6 @@ portal/static/portal/img/colorboxImages/controls.png,sha256=zQowXWoW0otiA3-wj5sG
271
260
  portal/static/portal/img/colorboxImages/loading.gif,sha256=NO9VJC_CTJTweQkCwJYB0ijpB0v3ofiMTeajm0DOOPo,9427
272
261
  portal/static/portal/img/colorboxImages/loading_background.png,sha256=lZ7Mxrcb7-5nZXOS5_Ir4myrQISDZX-zKiGP7W_-AWs,157
273
262
  portal/static/portal/img/colorboxImages/overlay.png,sha256=qy73bf_q55z4kktuaTaMhVrxDzVRCIjgmBQ5cbOmLtE,182
274
- portal/static/portal/js/aimmoGame.js,sha256=WGnksaYWUhF5p0Z4xqZKsGNGkwDZ3RuErOn1biQ1oiU,3004
275
263
  portal/static/portal/js/bootstrap.min.js,sha256=nuL8_2cJ5NDSSwnKD8VqreErSWHtnEP9E7AySL-1ev4,39680
276
264
  portal/static/portal/js/carouselCards.js,sha256=IByMjKk37E-TCc3vx9nfF-IJWl9BOFPNVqf4WuD75GI,778
277
265
  portal/static/portal/js/common.js,sha256=_gNQ7eIgxiw8gviolmShD0aU3TAKDwIVUGGg9wznDAc,6499
@@ -301,7 +289,7 @@ portal/static/portal/js/lib/modernizr-build.js,sha256=pGqgo-dxjy43hd1yL75ivaH9xW
301
289
  portal/static/portal/js/lib/papaparse.min.js,sha256=tDf9H6Pr0oXtuyG0hGdMQ5OU5EuM5IK8WMK2iTbdvd0,18829
302
290
  portal/static/portal/sass/bootstrap.scss,sha256=q_gMkiqFVJBrMKNr0kXaP7y4caychGNGkyEyEUUFN3k,2144
303
291
  portal/static/portal/sass/colorbox.scss,sha256=ZSilgJLSC_ZIMp2Wb5zJvwR-cyRbmcDPy93Kt78VbIM,3790
304
- portal/static/portal/sass/styles.scss,sha256=lu_uj7XDOTJ9cDjpd6kbENSKbGMUK7Qdx7jGV817UA8,807
292
+ portal/static/portal/sass/styles.scss,sha256=gTv8yjfzrN1acywPBkS9b49648LUGN4xvkwqAK-gAvc,780
305
293
  portal/static/portal/sass/bootstrap/_alerts.scss,sha256=C5kv4Wt7RFE3ESibknOeFzbE79it0qfwV59y_yaeImE,1546
306
294
  portal/static/portal/sass/bootstrap/_badges.scss,sha256=lHaAb3wWe4sh5kwNTsni1f0PCkNXBTfcVbakJTzoAYY,1228
307
295
  portal/static/portal/sass/bootstrap/_breadcrumbs.scss,sha256=CL0rlyGosT73v7DLy06j9YRfK3b9EtUxupKrdbfjupc,700
@@ -406,24 +394,22 @@ portal/static/portal/sass/modules/_homepage_constants.scss,sha256=GfSppJtWNxufu4
406
394
  portal/static/portal/sass/modules/_levels.scss,sha256=dGSpaNHkyuSY7b1QbFILzirx2X1EKjUgGGqlL2KuEMs,105
407
395
  portal/static/portal/sass/modules/_mixins.scss,sha256=w04YU6nRK9P4GrSjS0fcy9BsEydko8Jd8ARgJpD1164,1833
408
396
  portal/static/portal/sass/modules/_spacing.scss,sha256=WHBcd8ZSl4UHqPAOmW_JLt_MOfww44Hj8W42dWOpTO8,31
409
- portal/static/portal/sass/partials/_banners.scss,sha256=lmL29GMTtxF1RXpmC11TR0zxQaFU8uNmdGsuMCujRBE,8877
397
+ portal/static/portal/sass/partials/_banners.scss,sha256=Q13Mybarzkq0GWvhStiqIuK_bgKku8wkqC6qCFIruEg,5658
410
398
  portal/static/portal/sass/partials/_base.scss,sha256=cUvskrzNXLA-Xg1EgpL-S0wTWDnRn86AcdMbE2_aLMM,26
411
- portal/static/portal/sass/partials/_buttons.scss,sha256=dserW-L6262tgkygb5yA4aRJhIWpt4TVFSFAJUdYn9c,9195
399
+ portal/static/portal/sass/partials/_buttons.scss,sha256=QwElVoMdDrCK540jFhAEoGR6v-7cldUc0RRd7eHSSGs,8967
412
400
  portal/static/portal/sass/partials/_carousel.scss,sha256=m8N6jSuHBzeKyMUNGGc48NlNYTmotKlaiy10hwFnyWY,3500
413
401
  portal/static/portal/sass/partials/_footer.scss,sha256=oqt-Qvz7vtUFNnpe4FkQkaZk3J3fojCy9cKCxqGTWoM,2493
414
402
  portal/static/portal/sass/partials/_forms.scss,sha256=cbonSxhtfaHR-4R6i0u65AaIZRG_25C837CgZlLuwCI,7101
415
- portal/static/portal/sass/partials/_grids.scss,sha256=-2kmJMjothSPWUoqDf07-GqmEBk4uT6SVasRyfKi5Cs,5902
403
+ portal/static/portal/sass/partials/_grids.scss,sha256=pnMQht5lZ65MRB-0_nl8yn655hlKC_oWCwZopillVwc,4968
416
404
  portal/static/portal/sass/partials/_header.scss,sha256=OYcN1R7LB04BlGkhvfBf4E0CgMjCgBIwop6VZY7s7qw,7372
417
405
  portal/static/portal/sass/partials/_images.scss,sha256=Fro4a0VfLo6FyrvGk5yjsjzzGKWVdHeMFJiVC96C7vk,6213
418
406
  portal/static/portal/sass/partials/_popup.scss,sha256=OhBdNto7GEGbGFLzT0ybUKgDmuhSs365fSWy7D8qO1w,2205
419
407
  portal/static/portal/sass/partials/_progress-bars.scss,sha256=cTyRa9WLeIE0rETmY58Rcyf-8O6JE3iDTa_jw3mk23g,144
420
408
  portal/static/portal/sass/partials/_subnavs.scss,sha256=6FJV1wBmHchnGBL9Yx56Ua4RR1b5P6ABTextZPTqXSs,5052
421
409
  portal/static/portal/sass/partials/_tables.scss,sha256=XrO-I41hfyFy1Uh-STokSpoG0qifJVNlpWS4sNxDYdQ,2984
422
- portal/static/portal/sass/partials/_text.scss,sha256=2iH-QaB_MyuIY8vJMQjCxMOZA5EPeACPQfdhqb9R_V4,3788
410
+ portal/static/portal/sass/partials/_text.scss,sha256=5c9R_OhAuM8105u3RggkpfoyADqIkiL7-69xX7MkzW0,3605
423
411
  portal/static/portal/sass/partials/_ui-dialog.scss,sha256=gaXrY_uGqT6SyxYsCJmEiwg-OXa_NBK0P7-52TNLfXw,956
424
412
  portal/static/portal/sass/partials/_utils.scss,sha256=v0rzXvmkmA4sex_DdZ0LPYQybP8HXqDAE4q-kQKkPgk,3468
425
- portal/static/portal/sass/partials/_videos.scss,sha256=p0Pm5eUWAXSrJoqLLLLBMDRx1FsFVtEOAV7GHQ6I77o,303
426
- portal/static/portal/video/aimmo_play_now_background_video.mp4,sha256=WSLFCTgpSiLLU-eRZreUtxfv-f6s4W9g_D0gxMO8aeA,999060
427
413
  portal/static/portal/video/code for life .pdf,sha256=0dVvxGFmCOhIzdMBjGhZJLhIoUX4vPll3_vFnZQqeAc,277957
428
414
  portal/strings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
429
415
  portal/strings/about.py,sha256=noSrUV6c4gLvg4Cm7xpeE7cGbWTixi7_HJcw6EXdvqY,644
@@ -431,10 +417,9 @@ portal/strings/coding_club.py,sha256=fMQt829owRrqsH7CWTxo_TUrTOx70ll92XciRgqhlUw
431
417
  portal/strings/help_and_support.py,sha256=S6lQU6y0WhwBl33KDPlFA48NGQpuuBUGOY9WsB_ys0U,386
432
418
  portal/strings/home_learning.py,sha256=ZZ9rLupgBGrawxQ1kovCyYId6mK3w5LHchX8Ct8J2Lc,273
433
419
  portal/strings/materials.py,sha256=6hkXU5EhrDA-nWWQIiJ5nSZTXjulJFtEd4O0RNYVcbI,274
434
- portal/strings/play.py,sha256=875QyaTK_w6J3BK4Che3vzCWkbrxwOYy_9FV9ZocMeM,804
435
- portal/strings/student_aimmo_dashboard.py,sha256=heEQ8KN7Vt19fg0MAYPcg9-mLOlCpOWlxVb8QMMldjE,235
420
+ portal/strings/play.py,sha256=BfhrZMfyNAZOZbNTCAINUyxB4vgc5UFgnTdSUoKQ-mQ,714
436
421
  portal/strings/teach.py,sha256=fhzX55gs9eKEYUfCoTGcJYWuVJA2bx7mXvQMtXfp9-Q,257
437
- portal/strings/teacher_resources.py,sha256=0KzaW3ieXxXm-7SMrYhydP3fnaDaWiuayoOJUk4a-Qc,760
422
+ portal/strings/teacher_resources.py,sha256=8fdLLv0n140BQ0u1ivHhaJCFhz2qwNt4g0tCT-H4UW0,350
438
423
  portal/strings/ten_year_map.py,sha256=iodL7p1MZwo1pd3az6kPvr6OvoSgZa91H2gjeMw4OkY,517
439
424
  portal/templates/403.html,sha256=gsV6LxsM-n7WuIV5DzaQNKEEBGVbuzJU9lJq9O8jqQ4,1169
440
425
  portal/templates/404.html,sha256=Tk6HmuzDdIT4ojoIHvH2MibU_0OekU5gmuJmk5M4K_Q,563
@@ -443,11 +428,11 @@ portal/templates/email.html,sha256=MXB64zc1Sd34eIq8mGT1HhrjAiZUNvRx0_XjZllfKUU,2
443
428
  portal/templates/email.txt,sha256=z3bkT2WnkCrVa1RLVbGd-pE81cLEHlZ_QowfbSQAOvg,19
444
429
  portal/templates/captcha/widget_v2_invisible.html,sha256=wPBAvvjm-qhSCrQruwJ2SSBkxFg4oUNFl26Axs1IjZw,306
445
430
  portal/templates/captcha/includes/js_v2_invisible.html,sha256=FUyDf1RDyS7whzW2B_TnD1ovS8an9sDavCJFqAsrnmQ,1409
446
- portal/templates/portal/about.html,sha256=gVflOOxsMKbis6psrsFJvKpHhrl_SjmRv3LPCu6wZYw,9901
431
+ portal/templates/portal/about.html,sha256=uTxQZv42UofSCg2nitOIuJQysxbof58lFEmiv46YnC4,10296
447
432
  portal/templates/portal/base.html,sha256=DhZ1BC9AANRofocQeNtU6wSFMI-5WmQ-4eXemUGAuQo,11689
448
433
  portal/templates/portal/base_no_userprofile.html,sha256=PlRufyYmUUGWBZ6CvbYhJWOMTqKqdcee4xnO5--AogA,447
449
434
  portal/templates/portal/coding_club.html,sha256=aaLx9UQ8p_7Vvy3Vlh1rOufeNN0KhJ6fj4oqI6QqJcM,4518
450
- portal/templates/portal/contribute.html,sha256=9_sUT_RqPZspURQ_uxHylYaTsF0MvAKw5wMk7X1JiIU,4253
435
+ portal/templates/portal/contribute.html,sha256=tMTFqh1ReRyk_LysUQgMotnurEllOI70UcnzVVr7UJo,3855
451
436
  portal/templates/portal/dotmailer_consent_form.html,sha256=UDdizPoKYZGybr6z9nzDV4WPhJPa-S3bIKywvVgFrxg,918
452
437
  portal/templates/portal/email_invitation_sent.html,sha256=hAMzQXE3NFGnOsQlCGuo3Aps-vazSJb5BhAN7bWT48M,641
453
438
  portal/templates/portal/email_style_template.html,sha256=VodOGssxRS9aJTjSaU7iv5qJgYe66C_gPL_98ZX_cIQ,11935
@@ -460,28 +445,27 @@ portal/templates/portal/home_learning.html,sha256=AdKDe0dlbWUrL1BOCjJpdQcOsC6SR-
460
445
  portal/templates/portal/locked_out.html,sha256=JeiFHFyueFX03D54k82swjxvKY78cFG8Vre-bKKv_7Y,894
461
446
  portal/templates/portal/locked_out_school_student.html,sha256=bcpLtu4mkHR-zILLuArtHH2OfUSjHiqntcdbTMlx5Kg,684
462
447
  portal/templates/portal/mouseflow.html,sha256=ji9SWR86nqC59xdmivfdPNG5OzFk8gJEUeOUUh52alk,361
463
- portal/templates/portal/play.html,sha256=P5riFKSqaz_6aycgGC7-ql8u_ut6Igsa2SX9kMv8qM0,5162
448
+ portal/templates/portal/play.html,sha256=HwZbqety0-puiCA0oyMw4kVDYemIK_ID36Nd1NVR7fA,4031
464
449
  portal/templates/portal/privacy_notice.html,sha256=USklp2FWK4yEpa_-UGYrOutC4lORBMIxqcQihvCLTSA,56338
465
- portal/templates/portal/register.html,sha256=9AFNejCCcG2VwNCJ8AU5r3Wk0u_ftK_NbVfxZb5weh0,12547
450
+ portal/templates/portal/register.html,sha256=4RqUxRiQOvd-oHAM5x6U01zdlYRfy-h8NUGl8UIiBC0,12531
466
451
  portal/templates/portal/reset_password.html,sha256=YzsREz5D2OwhicMLahVOVDXiNDxoHlPqU5iu96i36W0,1373
467
452
  portal/templates/portal/reset_password_confirm.html,sha256=jPHSDatezRXzCG4zH_5BQPWAxLblidqro0hzvsH54ho,3499
468
453
  portal/templates/portal/reset_password_done.html,sha256=rpzN3svZne5H2FS3TJaGnHypRj2KX-SRS6DbFQkgLf0,667
469
454
  portal/templates/portal/reset_password_email_sent.html,sha256=kwNvoH_M-Qd5s-g0HiULwfQt_SD12WEMgPRSnLmldTQ,914
470
- portal/templates/portal/teach.html,sha256=5Ua6l2H6dBIXjKjMTUGkM92SnBnAXTBRpM6sKlwnrUk,8724
471
- portal/templates/portal/ten_year_map.html,sha256=ssARat4irhtW7hzqz-5rsaKhDgHz6Iw4b9Rt8DI8np0,8418
455
+ portal/templates/portal/teach.html,sha256=FQ_2qG3Xgl_PUR_fBsiJDn3_zDEwo6_s4F34MoXBpNQ,7370
456
+ portal/templates/portal/ten_year_map.html,sha256=_NxEXDJMGdtguuZ3vYl00yBgYo12wv1w8QJ-LMhw8fg,8390
472
457
  portal/templates/portal/terms.html,sha256=SO8ruLF2kdYpOinxlVx1CHfPNgphemX4wvWJ9-W6Nj4,29155
473
458
  portal/templates/portal/login/independent_student.html,sha256=G4u82m0lko4yQvqRDMger5p63A6KtFI_bsEOsQWlyJw,1777
474
459
  portal/templates/portal/login/student.html,sha256=s5rUyT-u7gei2xWQ-Ba35ePC5WbtwReEzUZAKwUoZVY,1261
475
460
  portal/templates/portal/login/student_class_code.html,sha256=rJr6NB4Oz7XjZXDOUHpwzT6r6yxh7nZ5joca-z2bK-s,966
476
461
  portal/templates/portal/login/teacher.html,sha256=s-8s55_D0jCf7ejEDIN2Vexpde0BljojRAz9QODLSUk,2671
477
- portal/templates/portal/partials/aimmo_games_table.html,sha256=E4OJl3aADaNftiN88EjPPA9mytqKzFaqswOjWy61DWU,4548
478
462
  portal/templates/portal/partials/banner.html,sha256=fJdavxl4nB5llR8N3sw-uP12K1GlHCe8rNSZ2m5Io5g,1235
479
463
  portal/templates/portal/partials/benefits.html,sha256=TZm4U_XimgivkPMjDXxxkV7PLfRyi2PAwkH8Y4sFDps,2363
480
464
  portal/templates/portal/partials/card_list.html,sha256=yHcp4oc0WRG9H6Ek871VCHbwYkDRcwQYbZ320gtsFn8,1550
481
465
  portal/templates/portal/partials/character_list.html,sha256=SnNFHzbIkOSaiRPIvSdplEf_B87UYgJ1pOvMltNDxLE,415
482
466
  portal/templates/portal/partials/delete_popup.html,sha256=nEhnwgnmKoFzb6LlCwdX973Em9bVOFh6MON36RPteYs,1275
483
467
  portal/templates/portal/partials/footer.html,sha256=V6xKYyhPoqSRUL0HQu7OB9vKVJWun8Q0PUGa5Dbdyl4,4922
484
- portal/templates/portal/partials/header.html,sha256=mYtZnKbNxeyFydA_1rK_1yelDhp-TEoyyz-LqrNVE6U,20018
468
+ portal/templates/portal/partials/header.html,sha256=I4nwsTw0Owggw7ES4h6-lAqqJYjaBAO_fu20qTQYPZw,18756
485
469
  portal/templates/portal/partials/headline.html,sha256=xKb-WtkT0FyQqT0smyNSKkXFvU7KQ5Czad8ca6YKQg4,89
486
470
  portal/templates/portal/partials/hero_card.html,sha256=UN5hyxrw-McuXFsDzPBIECB9yGrv9VjsFf8SEBowwXc,786
487
471
  portal/templates/portal/partials/info_popup.html,sha256=gzffd5MBVb7p2hGQuZMNDudThrRgs847hCu9ziT9uLE,566
@@ -493,9 +477,8 @@ portal/templates/portal/partials/service_unavailable_popup.html,sha256=OmffFQeTG
493
477
  portal/templates/portal/partials/session_popup.html,sha256=MuPw_Gd0M7o8IG08vRM9twfbPM6lsMxXPMhTH-Bxd4c,992
494
478
  portal/templates/portal/partials/teacher_non_dashboard_subnav.html,sha256=IHk90i81VYz-0XhcwJ3fWhkNYs1EomPa_abwraxZiEU,671
495
479
  portal/templates/portal/partials/teacher_non_dashboard_subnav_account.html,sha256=pT3HI2RzGYhLV7q104Av0qJcUdRGWTvmKAnNiZ3KSkw,671
496
- portal/templates/portal/play/independent_student_dashboard.html,sha256=-EXvSjOyOWvNuyxJlrPupJC13_FcjSgUCxCUJ0BFC9E,2907
497
- portal/templates/portal/play/student_aimmo_dashboard.html,sha256=uLq0VJ0IP__OxnqO5qth6o_SzyOWff0nTbEQnQxYbSo,1403
498
- portal/templates/portal/play/student_dashboard.html,sha256=iWKAkeEnCs7HLM8oQ3F33pTgytYuKRTag4qvpJ4evbU,3898
480
+ portal/templates/portal/play/independent_student_dashboard.html,sha256=svYTAKeLohJz7aAyj8VxnGvjdo1ac7JpbTBFdOwSaso,2118
481
+ portal/templates/portal/play/student_dashboard.html,sha256=zY9SyZRuDhFMoI39NcpptpAWVECcWZ2wKuD450qb9Vk,2571
499
482
  portal/templates/portal/play/student_edit_account.html,sha256=WSvkAbKetKIFE-z6kDlyMG9PmuyqPenJct-aOxPnefk,7258
500
483
  portal/templates/portal/play/student_join_organisation.html,sha256=05mbvmOryvMKUR9EpYeCNbuTL0kK2dcjovfJo7kjCqc,2980
501
484
  portal/templates/portal/tag_manager/tag_manager_body.html,sha256=M_c9T2cfmVm6_GjtRBegqDn6mCgXbnJ6j7C73TMUf6Q,661
@@ -510,7 +493,6 @@ portal/templates/portal/teach/onboarding_school.html,sha256=EyvnQ13R4ovf3-152pCv
510
493
  portal/templates/portal/teach/onboarding_students.html,sha256=09q658n7U7Vuzy_M_0P2xr2SqHxBlBnaPPoJ8tPhhwI,2399
511
494
  portal/templates/portal/teach/teacher_add_external_student.html,sha256=Lrrh4W3EwxxXKe45kcqzf2BcPxYo_mLahGIQMNJjX9E,2453
512
495
  portal/templates/portal/teach/teacher_added_external_student.html,sha256=f18RhP5PCE13yjBTrQTCwPLZnkcZb0bDUZ_Z2Oh3D3I,1189
513
- portal/templates/portal/teach/teacher_aimmo_dashboard.html,sha256=eDlEIb2UCVN60w7i1WlFzt4OzR6KEHY3pCWkVXT7AUo,4537
514
496
  portal/templates/portal/teach/teacher_dismiss_students.html,sha256=_5FvvtNjdYpZaM9lDzXrhhTjAD3NK_92kDYzh7xqowI,4283
515
497
  portal/templates/portal/teach/teacher_edit_class.html,sha256=QIHKf57g6K4nJqDKb-fTfLg0g6CnVCiM0-l8xp1Frio,11553
516
498
  portal/templates/portal/teach/teacher_edit_student.html,sha256=JNF8JyoZh0J-oKH4dz7SGSxR0t7J1lbTGLvjhNbk2Rw,3237
@@ -532,40 +514,38 @@ portal/templates/two_factor/core/setup_complete.html,sha256=aE67CIwicwn6W8-JwUqf
532
514
  portal/templates/two_factor/profile/disable.html,sha256=fKIxqmB8RqN_DQrNMiZPTcSmoH-hChNcGWR0HKl1r-s,1010
533
515
  portal/templates/two_factor/profile/profile.html,sha256=N5nlY4CV_OBSyQld7nUXBMVZfAsByZ7MRIGRjjfTWkE,1800
534
516
  portal/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
535
- portal/templatetags/app_tags.py,sha256=MuJ4cuePDqExLbYs2TjTifSsoU8aLxgMyPnkFmG2U3Q,4687
517
+ portal/templatetags/app_tags.py,sha256=SvOc4sPGNYpUtnJYxS80EmWYSE-C2mzmvxgRqUHet_o,3794
536
518
  portal/templatetags/banner_tags.py,sha256=7jk8avxiot0jMM1xWnUbs2QDsOg1v2aJDJA4p0-SJF0,823
537
519
  portal/templatetags/benefits_tags.py,sha256=8Bt37DdzMgNkHLqezZHv5aGIS8U4MwQxT1JDmK640OQ,1509
538
520
  portal/templatetags/card_list_tags.py,sha256=cexDySSJhGeplyOxF_UYfCEWC_DzMTO0d7-JuZTiPlU,509
539
- portal/templatetags/character_list_tags.py,sha256=czHgRrW4mvd9VEaGPXBz6HwsiT96tnxp7-jwA8Jxwp8,552
540
521
  portal/templatetags/future.py,sha256=fl2S86Y_dl2ilQPvrsJkyH80olPmWyM-k4WGpi0QgE8,165
541
522
  portal/templatetags/headline_tags.py,sha256=1KHOjcVZZTLfWnxpFAUoHhIndd3RbuD1hby0hANiu_w,420
542
523
  portal/templatetags/hero_card_tags.py,sha256=nwTyPvjuaoaeG14ck8q1nbb-wSsTd6Grz3DOUCPEOMc,939
543
524
  portal/templatetags/table_tags.py,sha256=eU8kkBky_Ouq_61-6-YVu5_1zH941KRJD_Wvs_TMXqE,448
544
525
  portal/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
545
526
  portal/tests/base_test.py,sha256=fepj6X-y_a1jdXi80QA6KIDV703NCJYDAVOwL6Th2fA,2459
546
- portal/tests/conftest.py,sha256=1IwuWgzqmmzThW2mAzy_JiWxI9Ai5VARXR2y6nx2hdM,1707
527
+ portal/tests/conftest.py,sha256=Rk4SOaFS22bFwNPRDOQHeNsm0We5BdEI52NTcfSlv1g,1297
547
528
  portal/tests/selenium_test_case.py,sha256=eWUF_5SqkI178bkay5SUDa06r0QTIKUUT8jTAhrdbmk,469
548
529
  portal/tests/test_2FA.py,sha256=0N4C9Ab3TvO9W__oQLCo-fLDH1Ho3CiGGsSg-2TiZUE,3597
549
530
  portal/tests/test_admin.py,sha256=AM2dgv8j9m4L-SDO-sMA9tQvQH9GwRBrlwRG9OgqtfI,1451
550
- portal/tests/test_aimmo_dashboards.py,sha256=24yGHieAxDHHP-S6qhCWphuszBzVUK3JUF4CmaarbbM,8615
551
531
  portal/tests/test_api.py,sha256=Yo5s_nEGOoG35jA39yZ6nuDOUZvuCZ8o8o8XhZos61w,13819
552
532
  portal/tests/test_captcha_forms.py,sha256=lirhIli-sHovun8VdrF0he7KRFTAd8DMCpkJ8cQNotg,1015
553
- portal/tests/test_class.py,sha256=V6Fkc6PqdisefKD3xs9PbfE2pKp-9e0gwQVkPUiu6bk,14150
533
+ portal/tests/test_class.py,sha256=43g2HslNosbSuSnnMBzM6VWk4LaV0HXkWS3f8VKVRmw,15930
554
534
  portal/tests/test_daily_activities.py,sha256=-siDCMGBD1ijjccHVk7eEmrk4bgTsvbh0B6hDoj2fo0,1803
555
535
  portal/tests/test_emails.py,sha256=xNgOt592r2nrQu7VeBdc8kvSnw6Z5fPJqMx2-UMcyyk,9482
556
536
  portal/tests/test_helper_methods.py,sha256=-SQCDZm2XUtyXGEp0CHIb_SSC9CPD-XOSnpnY8QclHk,890
557
- portal/tests/test_independent_student.py,sha256=mRbWZVwbZKPqHajTd9bYrCAn9ZJLpexpk-YSiZuDAbM,27540
537
+ portal/tests/test_independent_student.py,sha256=NrRjTEr6V4WXpCE74N8LYNVocvLSvddkjuo3dYpfAZc,27245
558
538
  portal/tests/test_invite_teacher.py,sha256=oeOaoJV1IqJSYPlaPFjnhVXdB2mq8otCTLp_lfjuCfk,12224
559
539
  portal/tests/test_middleware.py,sha256=b6jfNmiRZ2snqLKsyJUG-RivoX5fmrqLlQkG9MeVnqM,8034
560
540
  portal/tests/test_newsletter_footer.py,sha256=MdVUX53mEoDTa4Krq-jg9LFNo-QyghqvTvhHeNXBGnE,838
561
541
  portal/tests/test_organisation.py,sha256=kCMUNzLN6EzaMUBcFkqXwnqLGgOuQxQWIHHt63nhqBs,7574
562
- portal/tests/test_partials.py,sha256=ydh1nef6BqvMfah2BSBS9QDiKY0xopY74k_W1YVobAE,3687
542
+ portal/tests/test_partials.py,sha256=cSLNLjdsriROjPxkZlM3HKD3CSKDuKgpaDIdL3fPyBs,1794
563
543
  portal/tests/test_ratelimit.py,sha256=XWq1A9XgRrlcMHibGoJ0kc4gLc5U_u5UhKHjthxCfYA,19376
564
544
  portal/tests/test_school_student.py,sha256=bFZwY4twaFHQLp0cltMq8cLNDZGgCHTZBCZHK0JcV8s,8604
565
545
  portal/tests/test_security.py,sha256=FGrlRfnzi-Xx2_bn4fTZlYORKm7w_GhGkD3havvplwc,3239
566
- portal/tests/test_teacher.py,sha256=_VmQCWq07uCFbvq6Vd7GN00mE7vY7WNMeQTk6bHxFPI,36898
546
+ portal/tests/test_teacher.py,sha256=vjnJi_aj_x48OJOMMRIBr0JTCxy4tFxqrLfCgw0fRxQ,29315
567
547
  portal/tests/test_teacher_student.py,sha256=NWITbUw1kijqu3c8eRHLHJKaYQMOsOMvl7PAVx5QghI,21567
568
- portal/tests/test_views.py,sha256=e7Yw4W1gjyv7I3r99uIqpTaBRYdWyaqG7VNFHakC0Ss,40902
548
+ portal/tests/test_views.py,sha256=x4veABtBucGRgsO6rACPLmeTqKLHTs-j4nyjyq1E4H8,44626
569
549
  portal/tests/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
570
550
  portal/tests/migrations/test_migration_make_portaladmin_teacher.py,sha256=ekMRb6cU97oT0k9gCKW7IUB7oPuGmv4uWJCqInQN7x8,2589
571
551
  portal/tests/migrations/test_migration_preview_user_remove.py,sha256=K6D-FZT9YFEA8oMxHz9VTglVV6MZOTRYVlvwWwXc2vU,555
@@ -576,13 +556,12 @@ portal/tests/migrations/test_migration_use_common_models.py,sha256=5eZzfft5OY34m
576
556
  portal/tests/migrations/test_migration_verify_portaladmin.py,sha256=--abcZ2UNdbYRW9yo39h5TwxiUh81HH8B4hv45oB1_c,1075
577
557
  portal/tests/pageObjects/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
578
558
  portal/tests/pageObjects/portal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
579
- portal/tests/pageObjects/portal/base_page.py,sha256=da-c6erSGBTfiIFYdz5BaVnc-ZKVOfXIUV3gKqxupLg,4690
559
+ portal/tests/pageObjects/portal/base_page.py,sha256=3ttx0xI6AeC7vs4xGtCako0hylrm3Wxx-tpWfaKNbqM,4239
580
560
  portal/tests/pageObjects/portal/email_verification_needed_page.py,sha256=EK09-swjYwh64_vaBJl2-cAPn_Td7_Q5NTu4ZunCbRc,504
581
561
  portal/tests/pageObjects/portal/forbidden_page.py,sha256=O_m3dCAv6XtAz-Jps4SKXcHD_8MFCpAYBcopZH93FuY,235
582
562
  portal/tests/pageObjects/portal/game_page.py,sha256=5YsufVd4P2QV1OGvfdOVkB3Iv40Oz3cqnLI1a-lFN7Q,3591
583
563
  portal/tests/pageObjects/portal/home_page.py,sha256=Pd_FyWrqj0okhqIlnkrMpNnkXzhn--UCG5uoMsTQkB0,1719
584
564
  portal/tests/pageObjects/portal/independent_login_page.py,sha256=mhSZqYSu-3BvuU0CPdSacLL5dh4VtTr2rtLCofL6-yo,1353
585
- portal/tests/pageObjects/portal/kurono_teacher_dashboard_page.py,sha256=QvPJmtY6QN5QrM9TbDu1GuxnfMh7llAIZ8gPlEnLHys,1441
586
565
  portal/tests/pageObjects/portal/password_reset_form_page.py,sha256=KkkS81JzH9cvQ5_zo7Lhv3GAFvVKUBTc-YOXO75M_fg,1662
587
566
  portal/tests/pageObjects/portal/password_reset_page.py,sha256=QC1MEUuA8lnvTZsCDWQVlFStppSmwEIZt4ZfYeM2dR0,714
588
567
  portal/tests/pageObjects/portal/play_page.py,sha256=Pmoc1bVPgNvK9FwgJUtdGt93FfxCN-5qiA5xe41Vpz8,231
@@ -617,9 +596,8 @@ portal/tests/pageObjects/portal/teach/onboarding_student_list_page.py,sha256=28V
617
596
  portal/tests/pageObjects/portal/teach/onboarding_students_page.py,sha256=522Y79PfNV1PcR-Clf19KnNe2r3xf4sPPAUnroIzk80,971
618
597
  portal/tests/pageObjects/portal/teach/teach_base_page.py,sha256=vnd5YO15baBgCkqyBkXGZpdjZRMRpeeN69dH-fG383A,1229
619
598
  portal/tests/snapshots/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
620
- portal/tests/snapshots/snap_test_partials.py,sha256=DbJV5wr6hoWqUfGyNRltvDHr_lWAnFyzrSdwL1aP-wQ,24422
599
+ portal/tests/snapshots/snap_test_partials.py,sha256=_3LAMleGKcVSekyDJ_gk2oyVSW-dBsCdH9cNmJKPtqQ,1103
621
600
  portal/tests/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
622
- portal/tests/utils/aimmo_games.py,sha256=Dyv0jdvCcUxc_j4vm93hKAh_anj9bOTDhvUvPK7qOPg,649
623
601
  portal/tests/utils/classes.py,sha256=MEwGTKjPRYdWiVL1V6l28NpdvRUa06yRa6PPcHT6Trc,223
624
602
  portal/tests/utils/messages.py,sha256=LeYqCEU-ubEO1lrPSAaXF6WsM8M7C-ZIfVwwlbAFT28,1769
625
603
  portal/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -634,26 +612,24 @@ portal/views/organisation.py,sha256=sPDbiM7hdtpF8GKyh_4n4VPl2a-WnAgnF4q9aSvQCVI,
634
612
  portal/views/play_landing_page.py,sha256=FFmjUFub3ZdlbMqkB8yX3jAImCzqrUqgb8AZcpKywZ4,308
635
613
  portal/views/registration.py,sha256=L9AzIG2nOU946cSOXmUMQRtDo3uxApHX-0ceXopbOCw,10888
636
614
  portal/views/teach.py,sha256=nzlyTcgq9ImAjnqrF3esqi212qBLH5Ww1LKE2gSjoRY,210
637
- portal/views/aimmo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
638
- portal/views/aimmo/dashboard.py,sha256=YMOzonNE87OEP5lThY4BrF0rNyvIYpDInh_sM-n38AM,4046
639
615
  portal/views/cron/__init__.py,sha256=5rxXyhJmLOExRdrYZ1VJttTsyRIPRybzdftbUDwFByI,20
640
- portal/views/cron/user.py,sha256=N4slzEXqzp557LLPlwA6sD3HVzDu74NBf128uvtwKnM,6044
616
+ portal/views/cron/user.py,sha256=IP4hngpHg1GrKqh6dyyW13dr3R6617MenAcObWH9zbY,10287
641
617
  portal/views/login/__init__.py,sha256=xSCtyFPSI87BRUybBgqa86ekFEolX5gUDbBSfBUMTyI,399
642
618
  portal/views/login/independent_student.py,sha256=3dFULhwMAlX4VDrJl-Znril6a9M5xKBSHO1eWvujfS0,2662
643
619
  portal/views/login/student.py,sha256=dt6cMfWepBJsVCRcADltfYSHVpyeP1WGLKSogMJ22E0,5539
644
620
  portal/views/login/teacher.py,sha256=kRugP7TPbZIb_BmYMYxFeugxZy8UbCry_q0_jJDJ_Mw,1975
645
621
  portal/views/student/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
646
622
  portal/views/student/edit_account_details.py,sha256=Ba-3D_zzKbX5N01NG5qqBS0ud10B8D5SN8hOpLiGa9U,8468
647
- portal/views/student/play.py,sha256=r5TADH_wYn3d1beezfvkYBiendQ9qLys9dUJwHqF_44,8581
623
+ portal/views/student/play.py,sha256=ENMwDMGhbePjGdMQjkWkQEvlBz362qy1GPJLUEjN6QU,8326
648
624
  portal/views/teacher/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
649
625
  portal/views/teacher/dashboard.py,sha256=8WglspwuHF__2LtoX5_XvoW1ulICSupjKv--MtjrvJk,25714
650
- portal/views/teacher/teach.py,sha256=PJAUjLeIBELWc5e2Eek0mr8kYleYWb1MH9FF4O2q7Ok,34779
626
+ portal/views/teacher/teach.py,sha256=icOEypVyPd8coYAoamDSJleQcKZntO3VHU5FYJrQfBs,34624
651
627
  portal/views/two_factor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
652
628
  portal/views/two_factor/core.py,sha256=O_wcBeFqdPYSGNGv-pT_vbs5-Dj1Z-Jfkd6f9-E5yZI,760
653
629
  portal/views/two_factor/form.py,sha256=lnHNKI-BMlpncTuW3zUzjPaJJNuEra2I_nOam0eOKFY,257
654
630
  portal/views/two_factor/profile.py,sha256=tkl_ludo8arMtd5LKNmohM66vpC_YQiP-0nspTSJiJ4,383
655
- codeforlife_portal-6.46.1.dist-info/LICENSE.md,sha256=9AbRlCDqD2D1tPibimysFv3zg3AIc49-eyv9aEsyq9w,115
656
- codeforlife_portal-6.46.1.dist-info/METADATA,sha256=dZQ9D92rfDoMHysvoaPDHeTUwiH2x5xUsoTeoPcjsNg,3474
657
- codeforlife_portal-6.46.1.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
658
- codeforlife_portal-6.46.1.dist-info/top_level.txt,sha256=8e5pdsuIoTqEAMqpelHBjGjLbffcBtgOoggmd2q7nMw,41
659
- codeforlife_portal-6.46.1.dist-info/RECORD,,
631
+ codeforlife_portal-7.1.0.dist-info/LICENSE.md,sha256=9AbRlCDqD2D1tPibimysFv3zg3AIc49-eyv9aEsyq9w,115
632
+ codeforlife_portal-7.1.0.dist-info/METADATA,sha256=2TBqrL6DvpPsSR_nWyqE_jVPNmZoi0LljuVeQoDmO-8,3447
633
+ codeforlife_portal-7.1.0.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
634
+ codeforlife_portal-7.1.0.dist-info/top_level.txt,sha256=8e5pdsuIoTqEAMqpelHBjGjLbffcBtgOoggmd2q7nMw,41
635
+ codeforlife_portal-7.1.0.dist-info/RECORD,,
@@ -83,7 +83,6 @@ EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"
83
83
  SILENCED_SYSTEM_CHECKS = ["captcha.recaptcha_test_key_error"]
84
84
 
85
85
  INSTALLED_APPS = [
86
- "aimmo",
87
86
  "game",
88
87
  "pipeline",
89
88
  "portal",
@@ -39,7 +39,6 @@ EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"
39
39
  SILENCED_SYSTEM_CHECKS = ["captcha.recaptcha_test_key_error"]
40
40
 
41
41
  INSTALLED_APPS = [
42
- "aimmo",
43
42
  "game",
44
43
  "pipeline",
45
44
  "portal",
example_project/urls.py CHANGED
@@ -1,4 +1,3 @@
1
- from aimmo import urls as aimmo_urls
2
1
  from django.conf.urls import include, url
3
2
  from django.contrib import admin
4
3
  from django.urls import path
@@ -12,5 +11,4 @@ urlpatterns = [
12
11
  url(r"^", include(portal_urls)),
13
12
  path("administration/", admin.site.urls),
14
13
  url(r"^rapidrouter/", include(game_urls)),
15
- url(r"^kurono/", include(aimmo_urls)),
16
14
  ]
portal/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "6.46.1"
1
+ __version__ = "7.1.0"