codeforlife-portal 6.45.5__py2.py3-none-any.whl → 6.46.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.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: codeforlife-portal
3
- Version: 6.45.5
3
+ Version: 6.46.0
4
4
  Classifier: Programming Language :: Python
5
5
  Classifier: Programming Language :: Python :: 3.8
6
6
  Classifier: Framework :: Django
@@ -25,11 +25,11 @@ 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.45.5
28
+ Requires-Dist: cfl-common ==6.46.0
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
32
- Requires-Dist: setuptools ==65.5.1
32
+ Requires-Dist: setuptools ==70.3.0
33
33
  Requires-Dist: django-import-export
34
34
 
35
35
  # Code for Life Portal
@@ -106,7 +106,7 @@ example_project/portal_test_settings.py,sha256=frp_XMpd-z1g3VFCRxB2w7AaFW2ivRVKn
106
106
  example_project/settings.py,sha256=XRZZvASoIl5a9xe3masTq_CUBleuJq9ByHx8f_e2UFc,5613
107
107
  example_project/urls.py,sha256=OVeRQ-TCpzHISBRuzqD0yd3ewF7H5U3c-f2p2alfUD0,430
108
108
  example_project/wsgi.py,sha256=U1W6WzZxZaIdYZ5tks7w9fqp5WS5qvn2iThsVcskrWw,829
109
- portal/__init__.py,sha256=h9XndyHuQsEQl4kELDJIb-kH2isbCavuXD3U1D1BmhU,23
109
+ portal/__init__.py,sha256=CfobRHVT7BBvKrmspREOmE8NuLFEy6RaHzzbwWz6wvs,23
110
110
  portal/admin.py,sha256=on1-zNRnZvf2cwBN6GVRVYRhkaksrCgfzX8XPWtkvz8,6062
111
111
  portal/app_settings.py,sha256=DhWLQOwM0zVOXE3O5TNKbMM9K6agfLuCsHOdr1J7xEI,651
112
112
  portal/backends.py,sha256=2Dss6_WoQwPuDzJUF1yEaTQTNG4eUrD12ujJQ5cp5Tc,812
@@ -114,7 +114,7 @@ portal/beta.py,sha256=0TCC-9_KZoM1nuzJ9FiuKR5n9JITdMYenHGQtRvn9UU,255
114
114
  portal/context_processors.py,sha256=1TrUZqnMqGa5f7ERph9EpBqojSMJvOrcpnJzTdeCLDI,133
115
115
  portal/handlers.py,sha256=gF99OfQrGcIGDnUyONhvylZNU8sl6XHYEurwu0fuiss,422
116
116
  portal/models.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
- portal/urls.py,sha256=ROGvyAo1pw1hHRLupxcbIVGjaGhZXY7AeyafxXYoa7Q,17464
117
+ portal/urls.py,sha256=0u6pmeG3Emu38Af1HiROyHJJnkoEhSEpnEsSpO1Ztsk,17392
118
118
  portal/wsgi.py,sha256=3yRcNxBQG30NhzrVi93bX-DrbXtsIQBc70HiW5wbOyE,401
119
119
  portal/forms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
120
120
  portal/forms/add_game.py,sha256=Z9pjNiAU3W2HthSsbz_OWzl2RuLpZ0GtA6Xe1tg7H5I,1008
@@ -199,6 +199,9 @@ portal/static/portal/img/home_learning_hero.jpg,sha256=6TCMgY4ssAdW7H8WxtjPq-M3z
199
199
  portal/static/portal/img/home_play.png,sha256=TXsU62wcEcuUHF4948V_IxDh3nynAvlCzS7vCS44M5k,191553
200
200
  portal/static/portal/img/home_play_hero.jpg,sha256=VhuB4t98Q3EpT9US-nVdB44xOwA5RSYwSQKAtdQBVcQ,110397
201
201
  portal/static/portal/img/hope_logo.png,sha256=81UakmmI4BUH05MljuRIyCGnP51wY2myE9dLRuPbA5o,7967
202
+ portal/static/portal/img/howe_dell_1.png,sha256=oEst1ys1e8WxmDTV1buj6RrdzH7Ozf9B6wUk48ld1pI,162192
203
+ portal/static/portal/img/howe_dell_2.png,sha256=7Yd1biwFjd6lQ-2JR7k90CrAvgBhPWdsL2XfoTyOLdI,154063
204
+ portal/static/portal/img/howe_dell_3.png,sha256=Pw_wpN8raUjYvnKWui1UFpQ2upVCWb2M-XsGGLsBXlc,321514
202
205
  portal/static/portal/img/icl_logo.png,sha256=nB7HDAibkAWEDA3P_Edy1AHTUgUgDALYR-sae9BGLdc,3260
203
206
  portal/static/portal/img/icon_controller.png,sha256=Zygh2vTM1xuKPgKTfYiO7DhcPDaehAMhljrYpOHsKUw,5948
204
207
  portal/static/portal/img/icon_free.png,sha256=de2vYAkpj3vUzI6bAgfH5_zfp_J7qP9Awxy4qzY6XQg,19299
@@ -223,6 +226,7 @@ portal/static/portal/img/logo_ocado.png,sha256=_DtumBwHzTHvwRz38ilECL-zOmNdZh9l8
223
226
  portal/static/portal/img/logo_ocado_group.png,sha256=ZnwSMrUlqXaawdAAbENwTDPdEswhA3EbFirP5fAZ59w,2543
224
227
  portal/static/portal/img/logo_ocado_group.svg,sha256=FzYobwl35hZkyyoR18uNWJIx-FvOMUr5zEXKQWuGxsU,5451
225
228
  portal/static/portal/img/logo_ocado_group_white.svg,sha256=cPxusvooLqfmEBLKOH2XzFYhDck_No2SwPM5VvHU-d8,10993
229
+ portal/static/portal/img/long_europe_map.png,sha256=2sEIi7lSkYZUcWtItiNdtic8OqDSBAYuD_4dXnun4Ug,42306
226
230
  portal/static/portal/img/mc_saatchi_logo.png,sha256=piY91zTp0LYT6Nbo-rbNgkvVJYXebvOrIm58f3qurp4,3095
227
231
  portal/static/portal/img/nigel.png,sha256=5ErEl5e56AsQnhsLjGs965wn5D8oGac7Wl6-wBGvN5w,49149
228
232
  portal/static/portal/img/ocado-swirl.svg,sha256=JNQzjgHENKhHVu0oNdqtGCz8iVWzMU56d0Cs-IDCuek,2447
@@ -249,6 +253,7 @@ portal/static/portal/img/sadface.png,sha256=FU9d3XPCfe6sknfAymz8XPl_0nICp0geiqTQ
249
253
  portal/static/portal/img/sharon_harrison.jpg,sha256=VBPA3nuzP8k8R8MW3-kHK_TFjax8vMktLjU84emR9Js,6949
250
254
  portal/static/portal/img/sian.png,sha256=9-j5qxJPHXPto8a06E6iYU-kbUCbAIY3UhJU0Egw6ho,116116
251
255
  portal/static/portal/img/teaching_resources_hero.jpg,sha256=tDJpcTnQ_om0aVIJBXHtdjRSuGkuIcl1N__lWYVvNbo,60671
256
+ portal/static/portal/img/ten_year_map_pin.svg,sha256=7hOOyo7Qb1SIBJ_QmpxP-2cS6qr0OleohWhAisAXzv4,348
252
257
  portal/static/portal/img/thumbnail_educate_kurono.png,sha256=wnakgkgLkE4DYEha6Rpi1JPz4wdA3uiIEU8kBe1makk,68282
253
258
  portal/static/portal/img/thumbnail_educate_rapid_router.png,sha256=7_iqzffvVJZGPfwXmwPurLCWpiXYP9RochU9g5munok,67570
254
259
  portal/static/portal/img/thumbnail_educate_resources.png,sha256=kWmhGxkGiJBFB75ytdTHCg7Y7M_GBjhe7UgA9kIG0AE,37070
@@ -286,6 +291,7 @@ portal/static/portal/js/teach_browser.js,sha256=r5duQU7HNwVM9tSGamaxmY3gWzRRgRfO
286
291
  portal/static/portal/js/teach_class.js,sha256=cHn8cw02V8sCcLL7WCj0Uy2YI8kFjkk0U24pFHTPn_4,4947
287
292
  portal/static/portal/js/teacherEditStudent.js,sha256=Jq-WPPDDHMZ8_8_zFMUeaXSqLq0babGdWADUn7vnjoA,730
288
293
  portal/static/portal/js/teacherLogin.js,sha256=4r3z4oGVuiMymE8APvzQ0F3QAmNWxDN_Jb-eLC4WAQI,531
294
+ portal/static/portal/js/tenYearMap.js,sha256=4kfgL--Im0UOcO7gQbqhVJeqIJYwFY853EwRgoDbrgE,348
289
295
  portal/static/portal/js/lib/jquery-video-lightning.js,sha256=nLfbod3Fh-HCELdu1_t0qcqr1C0ensnbKePvw_hvQIk,19519
290
296
  portal/static/portal/js/lib/jquery.colorbox.js,sha256=4-ZawxafV_4sijUG-zDB5Dpb1sSXJyTpS6djiQLI6P4,29200
291
297
  portal/static/portal/js/lib/jquery.easy-ticker.js,sha256=Gj4dexfJvqsIds9qNMsAnomtSgN_VYOsdgOzKMoR77U,4278
@@ -402,12 +408,12 @@ portal/static/portal/sass/modules/_spacing.scss,sha256=WHBcd8ZSl4UHqPAOmW_JLt_MO
402
408
  portal/static/portal/sass/partials/_banners.scss,sha256=lmL29GMTtxF1RXpmC11TR0zxQaFU8uNmdGsuMCujRBE,8877
403
409
  portal/static/portal/sass/partials/_base.scss,sha256=cUvskrzNXLA-Xg1EgpL-S0wTWDnRn86AcdMbE2_aLMM,26
404
410
  portal/static/portal/sass/partials/_buttons.scss,sha256=dserW-L6262tgkygb5yA4aRJhIWpt4TVFSFAJUdYn9c,9195
405
- portal/static/portal/sass/partials/_carousel.scss,sha256=H1-MUYWvv0VNZxJW9EcQXv9ktv2uvGvDMn2zHDKDeAs,3238
411
+ portal/static/portal/sass/partials/_carousel.scss,sha256=m8N6jSuHBzeKyMUNGGc48NlNYTmotKlaiy10hwFnyWY,3500
406
412
  portal/static/portal/sass/partials/_footer.scss,sha256=oqt-Qvz7vtUFNnpe4FkQkaZk3J3fojCy9cKCxqGTWoM,2493
407
413
  portal/static/portal/sass/partials/_forms.scss,sha256=cbonSxhtfaHR-4R6i0u65AaIZRG_25C837CgZlLuwCI,7101
408
414
  portal/static/portal/sass/partials/_grids.scss,sha256=-2kmJMjothSPWUoqDf07-GqmEBk4uT6SVasRyfKi5Cs,5902
409
415
  portal/static/portal/sass/partials/_header.scss,sha256=OYcN1R7LB04BlGkhvfBf4E0CgMjCgBIwop6VZY7s7qw,7372
410
- portal/static/portal/sass/partials/_images.scss,sha256=1QuDit2-IO7f0WpanTLnOLcHxoEE93EC056biHHhHjs,3087
416
+ portal/static/portal/sass/partials/_images.scss,sha256=Fro4a0VfLo6FyrvGk5yjsjzzGKWVdHeMFJiVC96C7vk,6213
411
417
  portal/static/portal/sass/partials/_popup.scss,sha256=OhBdNto7GEGbGFLzT0ybUKgDmuhSs365fSWy7D8qO1w,2205
412
418
  portal/static/portal/sass/partials/_progress-bars.scss,sha256=cTyRa9WLeIE0rETmY58Rcyf-8O6JE3iDTa_jw3mk23g,144
413
419
  portal/static/portal/sass/partials/_subnavs.scss,sha256=6FJV1wBmHchnGBL9Yx56Ua4RR1b5P6ABTextZPTqXSs,5052
@@ -428,6 +434,7 @@ portal/strings/play.py,sha256=875QyaTK_w6J3BK4Che3vzCWkbrxwOYy_9FV9ZocMeM,804
428
434
  portal/strings/student_aimmo_dashboard.py,sha256=heEQ8KN7Vt19fg0MAYPcg9-mLOlCpOWlxVb8QMMldjE,235
429
435
  portal/strings/teach.py,sha256=fhzX55gs9eKEYUfCoTGcJYWuVJA2bx7mXvQMtXfp9-Q,257
430
436
  portal/strings/teacher_resources.py,sha256=0KzaW3ieXxXm-7SMrYhydP3fnaDaWiuayoOJUk4a-Qc,760
437
+ portal/strings/ten_year_map.py,sha256=iodL7p1MZwo1pd3az6kPvr6OvoSgZa91H2gjeMw4OkY,517
431
438
  portal/templates/403.html,sha256=gsV6LxsM-n7WuIV5DzaQNKEEBGVbuzJU9lJq9O8jqQ4,1169
432
439
  portal/templates/404.html,sha256=Tk6HmuzDdIT4ojoIHvH2MibU_0OekU5gmuJmk5M4K_Q,563
433
440
  portal/templates/500.html,sha256=aqJfDXPzaEw9K6LToPpE4rARuunLSxiIrJ_GnuJr8pI,1703
@@ -460,6 +467,7 @@ portal/templates/portal/reset_password_confirm.html,sha256=jPHSDatezRXzCG4zH_5BQ
460
467
  portal/templates/portal/reset_password_done.html,sha256=rpzN3svZne5H2FS3TJaGnHypRj2KX-SRS6DbFQkgLf0,667
461
468
  portal/templates/portal/reset_password_email_sent.html,sha256=kwNvoH_M-Qd5s-g0HiULwfQt_SD12WEMgPRSnLmldTQ,914
462
469
  portal/templates/portal/teach.html,sha256=5Ua6l2H6dBIXjKjMTUGkM92SnBnAXTBRpM6sKlwnrUk,8724
470
+ portal/templates/portal/ten_year_map.html,sha256=ssARat4irhtW7hzqz-5rsaKhDgHz6Iw4b9Rt8DI8np0,8418
463
471
  portal/templates/portal/terms.html,sha256=SO8ruLF2kdYpOinxlVx1CHfPNgphemX4wvWJ9-W6Nj4,29155
464
472
  portal/templates/portal/login/independent_student.html,sha256=G4u82m0lko4yQvqRDMger5p63A6KtFI_bsEOsQWlyJw,1777
465
473
  portal/templates/portal/login/student.html,sha256=s5rUyT-u7gei2xWQ-Ba35ePC5WbtwReEzUZAKwUoZVY,1261
@@ -556,7 +564,7 @@ portal/tests/test_school_student.py,sha256=bFZwY4twaFHQLp0cltMq8cLNDZGgCHTZBCZHK
556
564
  portal/tests/test_security.py,sha256=FGrlRfnzi-Xx2_bn4fTZlYORKm7w_GhGkD3havvplwc,3239
557
565
  portal/tests/test_teacher.py,sha256=_VmQCWq07uCFbvq6Vd7GN00mE7vY7WNMeQTk6bHxFPI,36898
558
566
  portal/tests/test_teacher_student.py,sha256=NWITbUw1kijqu3c8eRHLHJKaYQMOsOMvl7PAVx5QghI,21567
559
- portal/tests/test_views.py,sha256=g6WQtexZ-UfwpNxpTmfiB-RTBtLFiYBmjAa5oFCSBDk,42073
567
+ portal/tests/test_views.py,sha256=e7Yw4W1gjyv7I3r99uIqpTaBRYdWyaqG7VNFHakC0Ss,40902
560
568
  portal/tests/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
561
569
  portal/tests/migrations/test_migration_make_portaladmin_teacher.py,sha256=ekMRb6cU97oT0k9gCKW7IUB7oPuGmv4uWJCqInQN7x8,2589
562
570
  portal/tests/migrations/test_migration_preview_user_remove.py,sha256=K6D-FZT9YFEA8oMxHz9VTglVV6MZOTRYVlvwWwXc2vU,555
@@ -619,7 +627,7 @@ portal/views/admin.py,sha256=4Xt3zEyQH7sUwQSrwuRtoCodWidjOzd7gJUwWU96pXY,957
619
627
  portal/views/api.py,sha256=lCwiclR98G-yTgK55u8IjkueIH8iremeiZSa3jAvO-M,6990
620
628
  portal/views/dotmailer.py,sha256=_subSoy5f1j5sAcRrjE_xMejdarjHIY1d_jwSrf7_o0,2299
621
629
  portal/views/email.py,sha256=V3wXRxIjeZ4OJBVqGCQrPn-GQWKZK1PCXbR1f2Zpa_4,2174
622
- portal/views/home.py,sha256=J4KY66p2nRgRu1O_0IYwdgfZoTYuhQS0qpfiA1b8PTE,9855
630
+ portal/views/home.py,sha256=GlNTJqSST_jQi0REuaV2aI2zram-KAhedmATdC6yU58,10247
623
631
  portal/views/legal.py,sha256=nUunsTHnhMcXBcDlg1GmUal86k9Vhinne4A2FWfq78M,342
624
632
  portal/views/organisation.py,sha256=sPDbiM7hdtpF8GKyh_4n4VPl2a-WnAgnF4q9aSvQCVI,3341
625
633
  portal/views/play_landing_page.py,sha256=FFmjUFub3ZdlbMqkB8yX3jAImCzqrUqgb8AZcpKywZ4,308
@@ -643,8 +651,8 @@ portal/views/two_factor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
643
651
  portal/views/two_factor/core.py,sha256=O_wcBeFqdPYSGNGv-pT_vbs5-Dj1Z-Jfkd6f9-E5yZI,760
644
652
  portal/views/two_factor/form.py,sha256=lnHNKI-BMlpncTuW3zUzjPaJJNuEra2I_nOam0eOKFY,257
645
653
  portal/views/two_factor/profile.py,sha256=tkl_ludo8arMtd5LKNmohM66vpC_YQiP-0nspTSJiJ4,383
646
- codeforlife_portal-6.45.5.dist-info/LICENSE.md,sha256=9AbRlCDqD2D1tPibimysFv3zg3AIc49-eyv9aEsyq9w,115
647
- codeforlife_portal-6.45.5.dist-info/METADATA,sha256=zARH_LMna4yERcgmCLV7xHdbMug0KTXZQ2Rcp_HlS3E,3474
648
- codeforlife_portal-6.45.5.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
649
- codeforlife_portal-6.45.5.dist-info/top_level.txt,sha256=8e5pdsuIoTqEAMqpelHBjGjLbffcBtgOoggmd2q7nMw,41
650
- codeforlife_portal-6.45.5.dist-info/RECORD,,
654
+ codeforlife_portal-6.46.0.dist-info/LICENSE.md,sha256=9AbRlCDqD2D1tPibimysFv3zg3AIc49-eyv9aEsyq9w,115
655
+ codeforlife_portal-6.46.0.dist-info/METADATA,sha256=YSFpBXyEqx3VCbluq7jh1bw-wodysAxnzLiebx-KKEI,3474
656
+ codeforlife_portal-6.46.0.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
657
+ codeforlife_portal-6.46.0.dist-info/top_level.txt,sha256=8e5pdsuIoTqEAMqpelHBjGjLbffcBtgOoggmd2q7nMw,41
658
+ codeforlife_portal-6.46.0.dist-info/RECORD,,
portal/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "6.45.5"
1
+ __version__ = "6.46.0"
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 %}