codeforlife-portal 6.45.6__py2.py3-none-any.whl → 6.46.1__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.
- cfl_common/common/migrations/0053_clean_class_data.py +24 -0
- {codeforlife_portal-6.45.6.dist-info → codeforlife_portal-6.46.1.dist-info}/METADATA +2 -2
- {codeforlife_portal-6.45.6.dist-info → codeforlife_portal-6.46.1.dist-info}/RECORD +20 -11
- portal/__init__.py +1 -1
- portal/static/portal/img/howe_dell_1.png +0 -0
- portal/static/portal/img/howe_dell_2.png +0 -0
- portal/static/portal/img/howe_dell_3.png +0 -0
- portal/static/portal/img/long_europe_map.png +0 -0
- portal/static/portal/img/ten_year_map_pin.svg +1 -0
- portal/static/portal/js/tenYearMap.js +14 -0
- portal/static/portal/sass/partials/_carousel.scss +21 -0
- portal/static/portal/sass/partials/_images.scss +281 -0
- portal/strings/ten_year_map.py +13 -0
- portal/templates/portal/ten_year_map.html +147 -0
- portal/tests/test_views.py +53 -151
- portal/urls.py +22 -39
- portal/views/home.py +82 -37
- {codeforlife_portal-6.45.6.dist-info → codeforlife_portal-6.46.1.dist-info}/LICENSE.md +0 -0
- {codeforlife_portal-6.45.6.dist-info → codeforlife_portal-6.46.1.dist-info}/WHEEL +0 -0
- {codeforlife_portal-6.45.6.dist-info → codeforlife_portal-6.46.1.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from datetime import date
|
|
2
|
+
|
|
3
|
+
from django.apps.registry import Apps
|
|
4
|
+
from django.db import migrations, models
|
|
5
|
+
|
|
6
|
+
def clean_early_class_data(apps: Apps, *args):
|
|
7
|
+
Class = apps.get_model("common", "Class")
|
|
8
|
+
|
|
9
|
+
Class.objects.filter(
|
|
10
|
+
creation_time__date__lt = date(2021, 10, 15)
|
|
11
|
+
).update(creation_time = None)
|
|
12
|
+
|
|
13
|
+
class Migration(migrations.Migration):
|
|
14
|
+
|
|
15
|
+
dependencies = [
|
|
16
|
+
("common", "0052_add_cse_fields")
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
operations = [
|
|
20
|
+
migrations.RunPython(
|
|
21
|
+
code=clean_early_class_data,
|
|
22
|
+
reverse_code=migrations.RunPython.noop,
|
|
23
|
+
),
|
|
24
|
+
]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: codeforlife-portal
|
|
3
|
-
Version: 6.
|
|
3
|
+
Version: 6.46.1
|
|
4
4
|
Classifier: Programming Language :: Python
|
|
5
5
|
Classifier: Programming Language :: Python :: 3.8
|
|
6
6
|
Classifier: Framework :: Django
|
|
@@ -25,7 +25,7 @@ Requires-Dist: django-classy-tags ==2.0.0
|
|
|
25
25
|
Requires-Dist: libsass ==0.23.0
|
|
26
26
|
Requires-Dist: phonenumbers ==8.12.12
|
|
27
27
|
Requires-Dist: more-itertools ==8.7.0
|
|
28
|
-
Requires-Dist: cfl-common ==6.
|
|
28
|
+
Requires-Dist: cfl-common ==6.46.1
|
|
29
29
|
Requires-Dist: django-ratelimit ==3.0.1
|
|
30
30
|
Requires-Dist: django-preventconcurrentlogins ==0.8.2
|
|
31
31
|
Requires-Dist: django-csp ==3.7
|
|
@@ -66,6 +66,7 @@ cfl_common/common/migrations/0049_anonymise_orphan_users.py,sha256=tw9xMrDMRPDCO
|
|
|
66
66
|
cfl_common/common/migrations/0050_anonymise_orphan_schools.py,sha256=_KCkSkoObTpLplX6gXvlV3JXpddn7neyJEa8YKFWeW0,869
|
|
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
|
+
cfl_common/common/migrations/0053_clean_class_data.py,sha256=lBKlDa49YwT660o-Ot6IYe4I1KfervTn4uAijda0nyw,584
|
|
69
70
|
cfl_common/common/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
70
71
|
cfl_common/common/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
71
72
|
cfl_common/common/tests/test_migration_aimmo_characters.py,sha256=pdCCsns90Qz05QqmaBUYK18jKe9aP-symtZjkKG4rag,1079
|
|
@@ -106,7 +107,7 @@ example_project/portal_test_settings.py,sha256=frp_XMpd-z1g3VFCRxB2w7AaFW2ivRVKn
|
|
|
106
107
|
example_project/settings.py,sha256=XRZZvASoIl5a9xe3masTq_CUBleuJq9ByHx8f_e2UFc,5613
|
|
107
108
|
example_project/urls.py,sha256=OVeRQ-TCpzHISBRuzqD0yd3ewF7H5U3c-f2p2alfUD0,430
|
|
108
109
|
example_project/wsgi.py,sha256=U1W6WzZxZaIdYZ5tks7w9fqp5WS5qvn2iThsVcskrWw,829
|
|
109
|
-
portal/__init__.py,sha256=
|
|
110
|
+
portal/__init__.py,sha256=C-WkT_jxkIWg_1sKDn5_MsGHx3yCDs4ACDedjxKYDMU,23
|
|
110
111
|
portal/admin.py,sha256=on1-zNRnZvf2cwBN6GVRVYRhkaksrCgfzX8XPWtkvz8,6062
|
|
111
112
|
portal/app_settings.py,sha256=DhWLQOwM0zVOXE3O5TNKbMM9K6agfLuCsHOdr1J7xEI,651
|
|
112
113
|
portal/backends.py,sha256=2Dss6_WoQwPuDzJUF1yEaTQTNG4eUrD12ujJQ5cp5Tc,812
|
|
@@ -114,7 +115,7 @@ portal/beta.py,sha256=0TCC-9_KZoM1nuzJ9FiuKR5n9JITdMYenHGQtRvn9UU,255
|
|
|
114
115
|
portal/context_processors.py,sha256=1TrUZqnMqGa5f7ERph9EpBqojSMJvOrcpnJzTdeCLDI,133
|
|
115
116
|
portal/handlers.py,sha256=gF99OfQrGcIGDnUyONhvylZNU8sl6XHYEurwu0fuiss,422
|
|
116
117
|
portal/models.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
117
|
-
portal/urls.py,sha256=
|
|
118
|
+
portal/urls.py,sha256=0u6pmeG3Emu38Af1HiROyHJJnkoEhSEpnEsSpO1Ztsk,17392
|
|
118
119
|
portal/wsgi.py,sha256=3yRcNxBQG30NhzrVi93bX-DrbXtsIQBc70HiW5wbOyE,401
|
|
119
120
|
portal/forms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
120
121
|
portal/forms/add_game.py,sha256=Z9pjNiAU3W2HthSsbz_OWzl2RuLpZ0GtA6Xe1tg7H5I,1008
|
|
@@ -199,6 +200,9 @@ portal/static/portal/img/home_learning_hero.jpg,sha256=6TCMgY4ssAdW7H8WxtjPq-M3z
|
|
|
199
200
|
portal/static/portal/img/home_play.png,sha256=TXsU62wcEcuUHF4948V_IxDh3nynAvlCzS7vCS44M5k,191553
|
|
200
201
|
portal/static/portal/img/home_play_hero.jpg,sha256=VhuB4t98Q3EpT9US-nVdB44xOwA5RSYwSQKAtdQBVcQ,110397
|
|
201
202
|
portal/static/portal/img/hope_logo.png,sha256=81UakmmI4BUH05MljuRIyCGnP51wY2myE9dLRuPbA5o,7967
|
|
203
|
+
portal/static/portal/img/howe_dell_1.png,sha256=oEst1ys1e8WxmDTV1buj6RrdzH7Ozf9B6wUk48ld1pI,162192
|
|
204
|
+
portal/static/portal/img/howe_dell_2.png,sha256=7Yd1biwFjd6lQ-2JR7k90CrAvgBhPWdsL2XfoTyOLdI,154063
|
|
205
|
+
portal/static/portal/img/howe_dell_3.png,sha256=Pw_wpN8raUjYvnKWui1UFpQ2upVCWb2M-XsGGLsBXlc,321514
|
|
202
206
|
portal/static/portal/img/icl_logo.png,sha256=nB7HDAibkAWEDA3P_Edy1AHTUgUgDALYR-sae9BGLdc,3260
|
|
203
207
|
portal/static/portal/img/icon_controller.png,sha256=Zygh2vTM1xuKPgKTfYiO7DhcPDaehAMhljrYpOHsKUw,5948
|
|
204
208
|
portal/static/portal/img/icon_free.png,sha256=de2vYAkpj3vUzI6bAgfH5_zfp_J7qP9Awxy4qzY6XQg,19299
|
|
@@ -223,6 +227,7 @@ portal/static/portal/img/logo_ocado.png,sha256=_DtumBwHzTHvwRz38ilECL-zOmNdZh9l8
|
|
|
223
227
|
portal/static/portal/img/logo_ocado_group.png,sha256=ZnwSMrUlqXaawdAAbENwTDPdEswhA3EbFirP5fAZ59w,2543
|
|
224
228
|
portal/static/portal/img/logo_ocado_group.svg,sha256=FzYobwl35hZkyyoR18uNWJIx-FvOMUr5zEXKQWuGxsU,5451
|
|
225
229
|
portal/static/portal/img/logo_ocado_group_white.svg,sha256=cPxusvooLqfmEBLKOH2XzFYhDck_No2SwPM5VvHU-d8,10993
|
|
230
|
+
portal/static/portal/img/long_europe_map.png,sha256=2sEIi7lSkYZUcWtItiNdtic8OqDSBAYuD_4dXnun4Ug,42306
|
|
226
231
|
portal/static/portal/img/mc_saatchi_logo.png,sha256=piY91zTp0LYT6Nbo-rbNgkvVJYXebvOrIm58f3qurp4,3095
|
|
227
232
|
portal/static/portal/img/nigel.png,sha256=5ErEl5e56AsQnhsLjGs965wn5D8oGac7Wl6-wBGvN5w,49149
|
|
228
233
|
portal/static/portal/img/ocado-swirl.svg,sha256=JNQzjgHENKhHVu0oNdqtGCz8iVWzMU56d0Cs-IDCuek,2447
|
|
@@ -249,6 +254,7 @@ portal/static/portal/img/sadface.png,sha256=FU9d3XPCfe6sknfAymz8XPl_0nICp0geiqTQ
|
|
|
249
254
|
portal/static/portal/img/sharon_harrison.jpg,sha256=VBPA3nuzP8k8R8MW3-kHK_TFjax8vMktLjU84emR9Js,6949
|
|
250
255
|
portal/static/portal/img/sian.png,sha256=9-j5qxJPHXPto8a06E6iYU-kbUCbAIY3UhJU0Egw6ho,116116
|
|
251
256
|
portal/static/portal/img/teaching_resources_hero.jpg,sha256=tDJpcTnQ_om0aVIJBXHtdjRSuGkuIcl1N__lWYVvNbo,60671
|
|
257
|
+
portal/static/portal/img/ten_year_map_pin.svg,sha256=7hOOyo7Qb1SIBJ_QmpxP-2cS6qr0OleohWhAisAXzv4,348
|
|
252
258
|
portal/static/portal/img/thumbnail_educate_kurono.png,sha256=wnakgkgLkE4DYEha6Rpi1JPz4wdA3uiIEU8kBe1makk,68282
|
|
253
259
|
portal/static/portal/img/thumbnail_educate_rapid_router.png,sha256=7_iqzffvVJZGPfwXmwPurLCWpiXYP9RochU9g5munok,67570
|
|
254
260
|
portal/static/portal/img/thumbnail_educate_resources.png,sha256=kWmhGxkGiJBFB75ytdTHCg7Y7M_GBjhe7UgA9kIG0AE,37070
|
|
@@ -286,6 +292,7 @@ portal/static/portal/js/teach_browser.js,sha256=r5duQU7HNwVM9tSGamaxmY3gWzRRgRfO
|
|
|
286
292
|
portal/static/portal/js/teach_class.js,sha256=cHn8cw02V8sCcLL7WCj0Uy2YI8kFjkk0U24pFHTPn_4,4947
|
|
287
293
|
portal/static/portal/js/teacherEditStudent.js,sha256=Jq-WPPDDHMZ8_8_zFMUeaXSqLq0babGdWADUn7vnjoA,730
|
|
288
294
|
portal/static/portal/js/teacherLogin.js,sha256=4r3z4oGVuiMymE8APvzQ0F3QAmNWxDN_Jb-eLC4WAQI,531
|
|
295
|
+
portal/static/portal/js/tenYearMap.js,sha256=4kfgL--Im0UOcO7gQbqhVJeqIJYwFY853EwRgoDbrgE,348
|
|
289
296
|
portal/static/portal/js/lib/jquery-video-lightning.js,sha256=nLfbod3Fh-HCELdu1_t0qcqr1C0ensnbKePvw_hvQIk,19519
|
|
290
297
|
portal/static/portal/js/lib/jquery.colorbox.js,sha256=4-ZawxafV_4sijUG-zDB5Dpb1sSXJyTpS6djiQLI6P4,29200
|
|
291
298
|
portal/static/portal/js/lib/jquery.easy-ticker.js,sha256=Gj4dexfJvqsIds9qNMsAnomtSgN_VYOsdgOzKMoR77U,4278
|
|
@@ -402,12 +409,12 @@ portal/static/portal/sass/modules/_spacing.scss,sha256=WHBcd8ZSl4UHqPAOmW_JLt_MO
|
|
|
402
409
|
portal/static/portal/sass/partials/_banners.scss,sha256=lmL29GMTtxF1RXpmC11TR0zxQaFU8uNmdGsuMCujRBE,8877
|
|
403
410
|
portal/static/portal/sass/partials/_base.scss,sha256=cUvskrzNXLA-Xg1EgpL-S0wTWDnRn86AcdMbE2_aLMM,26
|
|
404
411
|
portal/static/portal/sass/partials/_buttons.scss,sha256=dserW-L6262tgkygb5yA4aRJhIWpt4TVFSFAJUdYn9c,9195
|
|
405
|
-
portal/static/portal/sass/partials/_carousel.scss,sha256=
|
|
412
|
+
portal/static/portal/sass/partials/_carousel.scss,sha256=m8N6jSuHBzeKyMUNGGc48NlNYTmotKlaiy10hwFnyWY,3500
|
|
406
413
|
portal/static/portal/sass/partials/_footer.scss,sha256=oqt-Qvz7vtUFNnpe4FkQkaZk3J3fojCy9cKCxqGTWoM,2493
|
|
407
414
|
portal/static/portal/sass/partials/_forms.scss,sha256=cbonSxhtfaHR-4R6i0u65AaIZRG_25C837CgZlLuwCI,7101
|
|
408
415
|
portal/static/portal/sass/partials/_grids.scss,sha256=-2kmJMjothSPWUoqDf07-GqmEBk4uT6SVasRyfKi5Cs,5902
|
|
409
416
|
portal/static/portal/sass/partials/_header.scss,sha256=OYcN1R7LB04BlGkhvfBf4E0CgMjCgBIwop6VZY7s7qw,7372
|
|
410
|
-
portal/static/portal/sass/partials/_images.scss,sha256=
|
|
417
|
+
portal/static/portal/sass/partials/_images.scss,sha256=Fro4a0VfLo6FyrvGk5yjsjzzGKWVdHeMFJiVC96C7vk,6213
|
|
411
418
|
portal/static/portal/sass/partials/_popup.scss,sha256=OhBdNto7GEGbGFLzT0ybUKgDmuhSs365fSWy7D8qO1w,2205
|
|
412
419
|
portal/static/portal/sass/partials/_progress-bars.scss,sha256=cTyRa9WLeIE0rETmY58Rcyf-8O6JE3iDTa_jw3mk23g,144
|
|
413
420
|
portal/static/portal/sass/partials/_subnavs.scss,sha256=6FJV1wBmHchnGBL9Yx56Ua4RR1b5P6ABTextZPTqXSs,5052
|
|
@@ -428,6 +435,7 @@ portal/strings/play.py,sha256=875QyaTK_w6J3BK4Che3vzCWkbrxwOYy_9FV9ZocMeM,804
|
|
|
428
435
|
portal/strings/student_aimmo_dashboard.py,sha256=heEQ8KN7Vt19fg0MAYPcg9-mLOlCpOWlxVb8QMMldjE,235
|
|
429
436
|
portal/strings/teach.py,sha256=fhzX55gs9eKEYUfCoTGcJYWuVJA2bx7mXvQMtXfp9-Q,257
|
|
430
437
|
portal/strings/teacher_resources.py,sha256=0KzaW3ieXxXm-7SMrYhydP3fnaDaWiuayoOJUk4a-Qc,760
|
|
438
|
+
portal/strings/ten_year_map.py,sha256=iodL7p1MZwo1pd3az6kPvr6OvoSgZa91H2gjeMw4OkY,517
|
|
431
439
|
portal/templates/403.html,sha256=gsV6LxsM-n7WuIV5DzaQNKEEBGVbuzJU9lJq9O8jqQ4,1169
|
|
432
440
|
portal/templates/404.html,sha256=Tk6HmuzDdIT4ojoIHvH2MibU_0OekU5gmuJmk5M4K_Q,563
|
|
433
441
|
portal/templates/500.html,sha256=aqJfDXPzaEw9K6LToPpE4rARuunLSxiIrJ_GnuJr8pI,1703
|
|
@@ -460,6 +468,7 @@ portal/templates/portal/reset_password_confirm.html,sha256=jPHSDatezRXzCG4zH_5BQ
|
|
|
460
468
|
portal/templates/portal/reset_password_done.html,sha256=rpzN3svZne5H2FS3TJaGnHypRj2KX-SRS6DbFQkgLf0,667
|
|
461
469
|
portal/templates/portal/reset_password_email_sent.html,sha256=kwNvoH_M-Qd5s-g0HiULwfQt_SD12WEMgPRSnLmldTQ,914
|
|
462
470
|
portal/templates/portal/teach.html,sha256=5Ua6l2H6dBIXjKjMTUGkM92SnBnAXTBRpM6sKlwnrUk,8724
|
|
471
|
+
portal/templates/portal/ten_year_map.html,sha256=ssARat4irhtW7hzqz-5rsaKhDgHz6Iw4b9Rt8DI8np0,8418
|
|
463
472
|
portal/templates/portal/terms.html,sha256=SO8ruLF2kdYpOinxlVx1CHfPNgphemX4wvWJ9-W6Nj4,29155
|
|
464
473
|
portal/templates/portal/login/independent_student.html,sha256=G4u82m0lko4yQvqRDMger5p63A6KtFI_bsEOsQWlyJw,1777
|
|
465
474
|
portal/templates/portal/login/student.html,sha256=s5rUyT-u7gei2xWQ-Ba35ePC5WbtwReEzUZAKwUoZVY,1261
|
|
@@ -556,7 +565,7 @@ portal/tests/test_school_student.py,sha256=bFZwY4twaFHQLp0cltMq8cLNDZGgCHTZBCZHK
|
|
|
556
565
|
portal/tests/test_security.py,sha256=FGrlRfnzi-Xx2_bn4fTZlYORKm7w_GhGkD3havvplwc,3239
|
|
557
566
|
portal/tests/test_teacher.py,sha256=_VmQCWq07uCFbvq6Vd7GN00mE7vY7WNMeQTk6bHxFPI,36898
|
|
558
567
|
portal/tests/test_teacher_student.py,sha256=NWITbUw1kijqu3c8eRHLHJKaYQMOsOMvl7PAVx5QghI,21567
|
|
559
|
-
portal/tests/test_views.py,sha256=
|
|
568
|
+
portal/tests/test_views.py,sha256=e7Yw4W1gjyv7I3r99uIqpTaBRYdWyaqG7VNFHakC0Ss,40902
|
|
560
569
|
portal/tests/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
561
570
|
portal/tests/migrations/test_migration_make_portaladmin_teacher.py,sha256=ekMRb6cU97oT0k9gCKW7IUB7oPuGmv4uWJCqInQN7x8,2589
|
|
562
571
|
portal/tests/migrations/test_migration_preview_user_remove.py,sha256=K6D-FZT9YFEA8oMxHz9VTglVV6MZOTRYVlvwWwXc2vU,555
|
|
@@ -619,7 +628,7 @@ portal/views/admin.py,sha256=4Xt3zEyQH7sUwQSrwuRtoCodWidjOzd7gJUwWU96pXY,957
|
|
|
619
628
|
portal/views/api.py,sha256=lCwiclR98G-yTgK55u8IjkueIH8iremeiZSa3jAvO-M,6990
|
|
620
629
|
portal/views/dotmailer.py,sha256=_subSoy5f1j5sAcRrjE_xMejdarjHIY1d_jwSrf7_o0,2299
|
|
621
630
|
portal/views/email.py,sha256=V3wXRxIjeZ4OJBVqGCQrPn-GQWKZK1PCXbR1f2Zpa_4,2174
|
|
622
|
-
portal/views/home.py,sha256=
|
|
631
|
+
portal/views/home.py,sha256=GlNTJqSST_jQi0REuaV2aI2zram-KAhedmATdC6yU58,10247
|
|
623
632
|
portal/views/legal.py,sha256=nUunsTHnhMcXBcDlg1GmUal86k9Vhinne4A2FWfq78M,342
|
|
624
633
|
portal/views/organisation.py,sha256=sPDbiM7hdtpF8GKyh_4n4VPl2a-WnAgnF4q9aSvQCVI,3341
|
|
625
634
|
portal/views/play_landing_page.py,sha256=FFmjUFub3ZdlbMqkB8yX3jAImCzqrUqgb8AZcpKywZ4,308
|
|
@@ -643,8 +652,8 @@ portal/views/two_factor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
|
|
|
643
652
|
portal/views/two_factor/core.py,sha256=O_wcBeFqdPYSGNGv-pT_vbs5-Dj1Z-Jfkd6f9-E5yZI,760
|
|
644
653
|
portal/views/two_factor/form.py,sha256=lnHNKI-BMlpncTuW3zUzjPaJJNuEra2I_nOam0eOKFY,257
|
|
645
654
|
portal/views/two_factor/profile.py,sha256=tkl_ludo8arMtd5LKNmohM66vpC_YQiP-0nspTSJiJ4,383
|
|
646
|
-
codeforlife_portal-6.
|
|
647
|
-
codeforlife_portal-6.
|
|
648
|
-
codeforlife_portal-6.
|
|
649
|
-
codeforlife_portal-6.
|
|
650
|
-
codeforlife_portal-6.
|
|
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,,
|
portal/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "6.
|
|
1
|
+
__version__ = "6.46.1"
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="40px" viewBox="0 0 24 24" width="40px" fill="#00A3E0"><path d="M0 0h24v24H0z" fill="none"/><path stroke-width="0.75px" stroke="black" d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"/></svg>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
let currentActivePin;
|
|
2
|
+
|
|
3
|
+
function setActivePin(city) {
|
|
4
|
+
if (currentActivePin) {
|
|
5
|
+
currentActivePin.setAttribute("fill", "#FFC709");
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
currentActivePin = document.getElementById(city + "-pin").getElementsByTagName("svg")[0]
|
|
9
|
+
currentActivePin.setAttribute("fill", "#EE0857");
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
$(document).ready(function () {
|
|
13
|
+
setActivePin("hatfield");
|
|
14
|
+
});
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
&.next,
|
|
14
14
|
&.prev {
|
|
15
15
|
display: flex;
|
|
16
|
+
flex-wrap: wrap;
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
> .carousel-image-wrapper {
|
|
@@ -155,3 +156,23 @@
|
|
|
155
156
|
/* shrink padding because cards have their own */
|
|
156
157
|
@include _padding(0px, 2px, 0px, 2px);
|
|
157
158
|
}
|
|
159
|
+
|
|
160
|
+
.carousel-button {
|
|
161
|
+
margin-top: 2rem;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.carousel-image {
|
|
165
|
+
margin-top: 15px;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.carousel-image--column {
|
|
169
|
+
padding-right: 20px;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.carousel-column--images {
|
|
173
|
+
margin-top: -15px;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.carousel-header {
|
|
177
|
+
margin-top: 0rem !important;
|
|
178
|
+
}
|
|
@@ -73,6 +73,287 @@ img {
|
|
|
73
73
|
content: url("../img/logo_cfl.png");
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
+
.map-pin {
|
|
77
|
+
position: absolute;
|
|
78
|
+
background: 0 0;
|
|
79
|
+
min-width: 0px !important;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
#map-container {
|
|
83
|
+
position: relative;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
#hatfield {
|
|
87
|
+
left: 34.5%;
|
|
88
|
+
top: 26.7%;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
#barcelona {
|
|
92
|
+
left: 38%;
|
|
93
|
+
top: 58.8%;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
#krakow {
|
|
97
|
+
left: 61.7%;
|
|
98
|
+
top: 30.3%;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
#sofia {
|
|
102
|
+
left: 68.5%;
|
|
103
|
+
top: 55.5%;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
@media only screen and (max-width: 1400px) {
|
|
107
|
+
#sofia {
|
|
108
|
+
left: 68.8%;
|
|
109
|
+
top: 55.8%;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
@media only screen and (max-width: 1200px) {
|
|
114
|
+
#hatfield {
|
|
115
|
+
left: 33.5%;
|
|
116
|
+
top: 25.1%;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
#barcelona {
|
|
120
|
+
left: 36.7%;
|
|
121
|
+
top: 56.4%;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
#krakow {
|
|
125
|
+
left: 60.7%;
|
|
126
|
+
top: 28.7%;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
#sofia {
|
|
130
|
+
left: 68%;
|
|
131
|
+
top: 53.5%;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
@media only screen and (max-width: 992px) {
|
|
136
|
+
#hatfield {
|
|
137
|
+
left: 32.7%;
|
|
138
|
+
top: 22.8%;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
#barcelona {
|
|
142
|
+
left: 35.7%;
|
|
143
|
+
top: 54.6%;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
#krakow {
|
|
147
|
+
left: 59.7%;
|
|
148
|
+
top: 26.3%;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
#sofia {
|
|
152
|
+
left: 67%;
|
|
153
|
+
top: 50.2%;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
@media only screen and (max-width: 767px) {
|
|
158
|
+
#barcelona {
|
|
159
|
+
left: 36.7%;
|
|
160
|
+
top: 54%;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
#sofia {
|
|
164
|
+
left: 67.5%;
|
|
165
|
+
top: 51.2%;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
@media only screen and (max-width: 700px) {
|
|
170
|
+
#hatfield {
|
|
171
|
+
left: 32.5%;
|
|
172
|
+
top: 20.8%;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
#barcelona {
|
|
176
|
+
left: 35.4%;
|
|
177
|
+
top: 53.5%;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
#krakow {
|
|
181
|
+
left: 59.7%;
|
|
182
|
+
top: 25.3%;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
#sofia {
|
|
186
|
+
left: 67%;
|
|
187
|
+
top: 50.2%;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
@media only screen and (max-width: 650px) {
|
|
192
|
+
#barcelona {
|
|
193
|
+
left: 35.4%;
|
|
194
|
+
top: 52.5%;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
#sofia {
|
|
198
|
+
left: 66%;
|
|
199
|
+
top:48.2%;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
@media only screen and (max-width: 600px) {
|
|
204
|
+
#hatfield {
|
|
205
|
+
left: 31.5%;
|
|
206
|
+
top: 18.8%;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
#barcelona {
|
|
210
|
+
left: 34.4%;
|
|
211
|
+
top: 50.5%;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
#krakow {
|
|
215
|
+
left: 58.7%;
|
|
216
|
+
top: 23.3%;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
#sofia {
|
|
220
|
+
left: 66%;
|
|
221
|
+
top: 48.2%;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
@media only screen and (max-width: 550px) {
|
|
226
|
+
#hatfield {
|
|
227
|
+
left: 30.5%;
|
|
228
|
+
top: 17.3%;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
#barcelona {
|
|
232
|
+
left: 33.4%;
|
|
233
|
+
top: 49%;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
#krakow {
|
|
237
|
+
left: 57.7%;
|
|
238
|
+
top: 21.6%;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
#sofia {
|
|
242
|
+
left: 65%;
|
|
243
|
+
top: 46%;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
@media only screen and (max-width: 500px) {
|
|
248
|
+
#hatfield {
|
|
249
|
+
left: 29.8%;
|
|
250
|
+
top: 16.3%;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
#barcelona {
|
|
254
|
+
left: 33%;
|
|
255
|
+
top: 47%;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
#krakow {
|
|
259
|
+
left: 57%;
|
|
260
|
+
top: 20%;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
#sofia {
|
|
264
|
+
left: 64%;
|
|
265
|
+
top: 44%;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
@media only screen and (max-width: 450px) {
|
|
270
|
+
#hatfield {
|
|
271
|
+
left: 28.7%;
|
|
272
|
+
top: 17%;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
#barcelona {
|
|
276
|
+
left: 32%;
|
|
277
|
+
top: 44.5%;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
#krakow {
|
|
281
|
+
left: 56%;
|
|
282
|
+
top: 21.5%;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
#sofia {
|
|
286
|
+
left: 63%;
|
|
287
|
+
top: 42%;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
@media only screen and (max-width: 430px) {
|
|
292
|
+
#hatfield {
|
|
293
|
+
left: 28.5%;
|
|
294
|
+
top: 17%;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
#barcelona {
|
|
298
|
+
left: 31.5%;
|
|
299
|
+
top: 42.5%;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
#krakow {
|
|
303
|
+
left: 55%;
|
|
304
|
+
top: 19.5%;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
#sofia {
|
|
308
|
+
left: 62%;
|
|
309
|
+
top: 40.5%;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
@media only screen and (max-width: 390px) {
|
|
314
|
+
#hatfield {
|
|
315
|
+
left: 27.8%;
|
|
316
|
+
top: 15.5%;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
#barcelona {
|
|
320
|
+
left: 31%;
|
|
321
|
+
top: 40.5%;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
#krakow {
|
|
325
|
+
left: 52.5%;
|
|
326
|
+
top: 19%;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
#sofia {
|
|
330
|
+
left: 61%;
|
|
331
|
+
top: 39%;
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
@media only screen and (max-width: 360px) {
|
|
336
|
+
#hatfield {
|
|
337
|
+
left: 27.5%;
|
|
338
|
+
top: 14.5%;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
#barcelona {
|
|
342
|
+
left: 30.5%;
|
|
343
|
+
top: 40%;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
#krakow {
|
|
347
|
+
left: 53%;
|
|
348
|
+
top: 18%;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
#sofia {
|
|
352
|
+
left: 60%;
|
|
353
|
+
top: 35.5%;
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
|
|
76
357
|
.glyphicon {
|
|
77
358
|
@include _font-size(30px);
|
|
78
359
|
font-weight: 500;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
TEN_YEAR_MAP_BANNER = {
|
|
2
|
+
"title": "Celebrate",
|
|
3
|
+
"subtitle": "Join us in celebrating our 10 year anniversary",
|
|
4
|
+
"text": "",
|
|
5
|
+
"image_class": "banner--picture--educate",
|
|
6
|
+
"alt": "Female teacher helping young female student on a laptop",
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
TEN_YEAR_MAP_HEADLINE = {
|
|
10
|
+
"title": "Code for Life is turning 10!",
|
|
11
|
+
"description": "For our 10th anniversary, we're going global! Click on the pins on the map "
|
|
12
|
+
"to check out what events are being run by our amazing volunteers from around the world.",
|
|
13
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
{% extends 'portal/base.html' %}
|
|
2
|
+
{% load static %}
|
|
3
|
+
{% load app_tags banner_tags headline_tags character_list_tags %}
|
|
4
|
+
|
|
5
|
+
{% block subNav %}
|
|
6
|
+
{% banner banner_name="BANNER" %}
|
|
7
|
+
{% endblock subNav %}
|
|
8
|
+
|
|
9
|
+
{% block scripts %}
|
|
10
|
+
{{ block.super }}
|
|
11
|
+
<script defer type="text/javascript" src="{% static 'portal/js/tenYearMap.js' %}"></script>
|
|
12
|
+
{% endblock scripts %}
|
|
13
|
+
|
|
14
|
+
{% block content %}
|
|
15
|
+
|
|
16
|
+
<div class="background">
|
|
17
|
+
{% headline headline_name="HEADLINE" %}
|
|
18
|
+
</div>
|
|
19
|
+
|
|
20
|
+
<div class="background container" id="map-container">
|
|
21
|
+
<section class="background background--primary">
|
|
22
|
+
<img title="world map" alt="World map" src="{% static 'portal/img/long_europe_map.png' %}" width="95%"/>
|
|
23
|
+
<button class="map-pin" id="hatfield" onclick="setActivePin('hatfield')" data-target="#carousel-ten-year-map" data-slide-to="0">
|
|
24
|
+
<map-pin id="hatfield-pin" />
|
|
25
|
+
</button>
|
|
26
|
+
<button class="map-pin" id="barcelona" onclick="setActivePin('barcelona')" data-target="#carousel-ten-year-map" data-slide-to="1">
|
|
27
|
+
<map-pin id="barcelona-pin" />
|
|
28
|
+
</button>
|
|
29
|
+
<button class="map-pin" id="krakow" onclick="setActivePin('krakow')" data-target="#carousel-ten-year-map" data-slide-to="2">
|
|
30
|
+
<map-pin id="krakow-pin" />
|
|
31
|
+
</button>
|
|
32
|
+
<button class="map-pin" id="sofia" onclick="setActivePin('sofia')" data-target="#carousel-ten-year-map" data-slide-to="3">
|
|
33
|
+
<map-pin id="sofia-pin" />
|
|
34
|
+
</button>
|
|
35
|
+
</section>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
<div class="background">
|
|
39
|
+
<div class="container">
|
|
40
|
+
<div class="row">
|
|
41
|
+
<div class="col-sm-12">
|
|
42
|
+
<div id="carousel-ten-year-map" class="carousel slide">
|
|
43
|
+
<ol class="carousel-indicators">
|
|
44
|
+
<li data-target="#carousel-ten-year-map" data-slide-to="0" class="active" onclick="setActivePin('hatfield')"></li>
|
|
45
|
+
<li data-target="#carousel-ten-year-map" data-slide-to="1" onclick="setActivePin('barcelona')"></li>
|
|
46
|
+
<li data-target="#carousel-ten-year-map" data-slide-to="2" onclick="setActivePin('krakow')"></li>
|
|
47
|
+
<li data-target="#carousel-ten-year-map" data-slide-to="3" onclick="setActivePin('sofia')"></li>
|
|
48
|
+
</ol>
|
|
49
|
+
|
|
50
|
+
<div class="carousel-inner" role="listbox">
|
|
51
|
+
<div class="item active" id="hatfield-carousel">
|
|
52
|
+
<div>
|
|
53
|
+
<div class="col-sm-6 carousel-column--images">
|
|
54
|
+
<div class="row carousel-image-wrapper">
|
|
55
|
+
<img src="{% static 'portal/img/howe_dell_1.png' %}" class="carousel-image carousel-image--column" alt="Code for Life volunteers outside Howe Dell Primary School">
|
|
56
|
+
</div>
|
|
57
|
+
<div class="row carousel-image-wrapper">
|
|
58
|
+
<img src="{% static 'portal/img/howe_dell_2.png' %}" class="carousel-image carousel-image--column" alt="CfL volunteers outside Howe Dell Primary School showing off their Code for Life T-shirts">
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
<div class="col-sm-6 carousel-text">
|
|
62
|
+
<h4 class="carousel-header">
|
|
63
|
+
<b>Howe Dell Primary School, Hatfield, UK</b>
|
|
64
|
+
</h4>
|
|
65
|
+
<h5>
|
|
66
|
+
July 2024
|
|
67
|
+
</h5>
|
|
68
|
+
<p>
|
|
69
|
+
We completed the UK leg of our world tour with an enthusiastic reception from Year 4 students at Howe Dell Primary School
|
|
70
|
+
in Hatfield. The pupils were captivated by our presentation on different types of robots and Ocado Group's automation
|
|
71
|
+
technology used in sorting and packing deliveries. They were then tasked with designing robots to solve problems, producing
|
|
72
|
+
creative concepts like robot childminders and homework helpers. Midway through, we introduced them to coding with Rapid Router,
|
|
73
|
+
explaining algorithms and letting them experiment with the levels. The students were thrilled about the competition for the
|
|
74
|
+
best robot design, which included a prize of a golden 3D printed medal. Teachers praised the engaging and educational workshop,
|
|
75
|
+
while Ocado volunteers found the experience rewarding and beneficial for developing their communication and teaching skills.
|
|
76
|
+
The children's designs were exceptional, making the judging process challenging, but ultimately a few standout innovations were
|
|
77
|
+
selected.
|
|
78
|
+
</p>
|
|
79
|
+
<div class="carousel-button">
|
|
80
|
+
<a href="https://www.linkedin.com/company/code-for-life-uk/posts/?feedView=all" target="_blank" class="button button--primary button-right-arrow">Learn more</a>
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
<div>
|
|
85
|
+
<img src="{% static 'portal/img/howe_dell_3.png' %}" class="carousel-image"" alt="The three winners of Howe Dell Primary School's robot design challenge">
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|
|
88
|
+
<div class="item" id="barcelona-carousel">
|
|
89
|
+
<div class="col-sm-6 carousel-image-wrapper">
|
|
90
|
+
<img src="{% static 'portal/img/logo_cfl.png' %}" alt="CFL logo">
|
|
91
|
+
</div>
|
|
92
|
+
<div class="col-sm-6 carousel-text">
|
|
93
|
+
<h5>
|
|
94
|
+
Barcelona
|
|
95
|
+
</h5>
|
|
96
|
+
<p>
|
|
97
|
+
Coming soon!
|
|
98
|
+
</p>
|
|
99
|
+
</div>
|
|
100
|
+
</div>
|
|
101
|
+
<div class="item" id="krakow-carousel">
|
|
102
|
+
<div class="col-sm-6 carousel-image-wrapper">
|
|
103
|
+
<img src="{% static 'portal/img/logo_cfl.png' %}" alt="CFL logo">
|
|
104
|
+
</div>
|
|
105
|
+
<div class="col-sm-6 carousel-text">
|
|
106
|
+
<h5>
|
|
107
|
+
Kraków
|
|
108
|
+
</h5>
|
|
109
|
+
<p>
|
|
110
|
+
Coming soon!
|
|
111
|
+
</p>
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
<div class="item" id="sofia-carousel">
|
|
115
|
+
<div class="col-sm-6 carousel-image-wrapper">
|
|
116
|
+
<img src="{% static 'portal/img/logo_cfl.png' %}" alt="CFL logo">
|
|
117
|
+
</div>
|
|
118
|
+
<div class="col-sm-6 carousel-text">
|
|
119
|
+
<h5>
|
|
120
|
+
Sofia
|
|
121
|
+
</h5>
|
|
122
|
+
<p>
|
|
123
|
+
Coming soon!
|
|
124
|
+
</p>
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
</div>
|
|
129
|
+
</div>
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
133
|
+
|
|
134
|
+
<script>
|
|
135
|
+
customElements.define("map-pin", class extends HTMLElement {
|
|
136
|
+
connectedCallback() {
|
|
137
|
+
setTimeout(() => {
|
|
138
|
+
this.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" height="40px" viewBox="0 0 24 24" width="40px" fill="#FFC709">
|
|
139
|
+
<path d="M0 0h24v24H0z" fill="none"/>
|
|
140
|
+
<path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"/>
|
|
141
|
+
</svg>`
|
|
142
|
+
})
|
|
143
|
+
}
|
|
144
|
+
})
|
|
145
|
+
</script>
|
|
146
|
+
|
|
147
|
+
{% endblock content %}
|