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

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codeforlife-portal
3
- Version: 8.9.0
3
+ Version: 8.9.1
4
4
  Classifier: Programming Language :: Python
5
5
  Classifier: Programming Language :: Python :: 3.12
6
6
  Classifier: Framework :: Django
@@ -14,7 +14,7 @@ Requires-Dist: botocore==1.36.26; python_version >= "3.8"
14
14
  Requires-Dist: celery[sqs]==5.4.0; python_version >= "3.8"
15
15
  Requires-Dist: certifi==2025.8.3; python_version >= "3.7"
16
16
  Requires-Dist: cffi==1.17.1; platform_python_implementation != "PyPy"
17
- Requires-Dist: cfl-common==8.9.0
17
+ Requires-Dist: cfl-common==8.9.1
18
18
  Requires-Dist: charset-normalizer==3.4.3; python_version >= "3.7"
19
19
  Requires-Dist: click==8.2.1; python_version >= "3.10"
20
20
  Requires-Dist: click-didyoumean==0.3.1; python_full_version >= "3.6.2"
@@ -83,31 +83,64 @@ Requires-Dist: whitenoise==6.9.0; python_version >= "3.9"
83
83
  Requires-Dist: zipp==3.23.0; python_version >= "3.9"
84
84
  Provides-Extra: dev
85
85
  Requires-Dist: asgiref==3.9.1; python_version >= "3.9" and extra == "dev"
86
+ Requires-Dist: asttokens==3.0.0; python_version >= "3.8" and extra == "dev"
86
87
  Requires-Dist: attrs==25.3.0; python_version >= "3.8" and extra == "dev"
87
88
  Requires-Dist: black==25.1.0; python_version >= "3.9" and extra == "dev"
88
89
  Requires-Dist: certifi==2025.8.3; python_version >= "3.7" and extra == "dev"
90
+ Requires-Dist: cffi==1.17.1; platform_python_implementation != "PyPy" and extra == "dev"
91
+ Requires-Dist: cfl-common==8.9.1; extra == "dev"
89
92
  Requires-Dist: charset-normalizer==3.4.3; python_version >= "3.7" and extra == "dev"
90
93
  Requires-Dist: click==8.2.1; python_version >= "3.10" and extra == "dev"
91
94
  Requires-Dist: coverage[toml]==7.10.3; python_version >= "3.9" and extra == "dev"
95
+ Requires-Dist: cryptography==44.0.1; (python_version >= "3.7" and python_full_version not in "3.9.0, 3.9.1") and extra == "dev"
96
+ Requires-Dist: decorator==5.2.1; python_version >= "3.8" and extra == "dev"
97
+ Requires-Dist: diff-match-patch==20241021; python_version >= "3.7" and extra == "dev"
92
98
  Requires-Dist: django==5.1.10; python_version >= "3.10" and extra == "dev"
93
- Requires-Dist: django-reverse-js==0.1.7; python_version >= "3.10" and extra == "dev"
99
+ Requires-Dist: django-countries==7.6.1; extra == "dev"
100
+ Requires-Dist: django-csp==3.8; extra == "dev"
101
+ Requires-Dist: django-formtools==2.5.1; python_version >= "3.8" and extra == "dev"
102
+ Requires-Dist: django-import-export==4.2.0; python_version >= "3.9" and extra == "dev"
103
+ Requires-Dist: django-otp==1.6.1; python_version >= "3.7" and extra == "dev"
104
+ Requires-Dist: django-phonenumber-field==8.1.0; python_version >= "3.9" and extra == "dev"
105
+ Requires-Dist: django-pipeline==4.0.0; python_version >= "3.9" and extra == "dev"
106
+ Requires-Dist: django-reverse-js==0.1.8; python_version >= "3.10" and extra == "dev"
94
107
  Requires-Dist: django-selenium-clean==1.0.1; extra == "dev"
95
108
  Requires-Dist: django-test-migrations==1.4.0; (python_version >= "3.9" and python_version < "4.0") and extra == "dev"
109
+ Requires-Dist: django-two-factor-auth==1.17.0; python_version >= "3.8" and extra == "dev"
110
+ Requires-Dist: djangorestframework==3.16.0; python_version >= "3.9" and extra == "dev"
96
111
  Requires-Dist: execnet==2.1.1; python_version >= "3.8" and extra == "dev"
112
+ Requires-Dist: executing==2.2.0; python_version >= "3.8" and extra == "dev"
97
113
  Requires-Dist: fastdiff==0.3.0; extra == "dev"
98
114
  Requires-Dist: h11==0.16.0; python_version >= "3.8" and extra == "dev"
99
115
  Requires-Dist: idna==3.10; python_version >= "3.6" and extra == "dev"
100
116
  Requires-Dist: iniconfig==2.1.0; python_version >= "3.8" and extra == "dev"
117
+ Requires-Dist: ipython==9.4.0; python_version >= "3.11" and extra == "dev"
118
+ Requires-Dist: ipython-pygments-lexers==1.1.1; python_version >= "3.8" and extra == "dev"
101
119
  Requires-Dist: isort==6.0.1; python_full_version >= "3.9.0" and extra == "dev"
120
+ Requires-Dist: jedi==0.19.2; python_version >= "3.6" and extra == "dev"
121
+ Requires-Dist: libsass==0.23.0; python_version >= "3.8" and extra == "dev"
122
+ Requires-Dist: matplotlib-inline==0.1.7; python_version >= "3.8" and extra == "dev"
123
+ Requires-Dist: more-itertools==8.7.0; python_version >= "3.5" and extra == "dev"
102
124
  Requires-Dist: mypy-extensions==1.1.0; python_version >= "3.8" and extra == "dev"
125
+ Requires-Dist: numpy==2.3.2; python_version >= "3.11" and extra == "dev"
103
126
  Requires-Dist: outcome==1.3.0.post0; python_version >= "3.7" and extra == "dev"
104
127
  Requires-Dist: packaging==25.0; python_version >= "3.8" and extra == "dev"
128
+ Requires-Dist: pandas==2.3.1; python_version >= "3.9" and extra == "dev"
129
+ Requires-Dist: parso==0.8.4; python_version >= "3.6" and extra == "dev"
105
130
  Requires-Dist: pathspec==0.12.1; python_version >= "3.8" and extra == "dev"
131
+ Requires-Dist: pexpect==4.9.0; (sys_platform != "win32" and sys_platform != "emscripten") and extra == "dev"
132
+ Requires-Dist: pgeocode==0.4.0; python_version >= "3.8" and extra == "dev"
106
133
  Requires-Dist: platformdirs==4.3.8; python_version >= "3.9" and extra == "dev"
107
134
  Requires-Dist: pluggy==1.6.0; python_version >= "3.9" and extra == "dev"
135
+ Requires-Dist: prompt-toolkit==3.0.51; python_version >= "3.8" and extra == "dev"
136
+ Requires-Dist: ptyprocess==0.7.0; extra == "dev"
137
+ Requires-Dist: pure-eval==0.2.3; extra == "dev"
138
+ Requires-Dist: pycparser==2.22; python_version >= "3.8" and extra == "dev"
108
139
  Requires-Dist: pygments==2.19.2; python_version >= "3.8" and extra == "dev"
109
140
  Requires-Dist: pyhamcrest==2.0.2; python_version >= "3.5" and extra == "dev"
141
+ Requires-Dist: pyjwt==2.6.0; python_version >= "3.7" and extra == "dev"
110
142
  Requires-Dist: pypdf==5.1.0; python_version >= "3.8" and extra == "dev"
143
+ Requires-Dist: pypng==0.20220715.0; extra == "dev"
111
144
  Requires-Dist: pysocks==1.7.1; extra == "dev"
112
145
  Requires-Dist: pytest==8.4.1; python_version >= "3.9" and extra == "dev"
113
146
  Requires-Dist: pytest-cov==6.2.1; python_version >= "3.9" and extra == "dev"
@@ -115,23 +148,34 @@ Requires-Dist: pytest-django==4.8.0; python_version >= "3.8" and extra == "dev"
115
148
  Requires-Dist: pytest-mock==3.14.1; python_version >= "3.8" and extra == "dev"
116
149
  Requires-Dist: pytest-order==1.3.0; python_version >= "3.7" and extra == "dev"
117
150
  Requires-Dist: pytest-xdist==3.8.0; python_version >= "3.9" and extra == "dev"
151
+ Requires-Dist: python-dateutil==2.9.0.post0; (python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2") and extra == "dev"
152
+ Requires-Dist: pytz==2025.2; extra == "dev"
118
153
  Requires-Dist: pyvirtualdisplay==3.0; extra == "dev"
119
- Requires-Dist: rapid-router==7.3.6; extra == "dev"
154
+ Requires-Dist: qrcode==7.4.2; python_version >= "3.7" and extra == "dev"
155
+ Requires-Dist: rapid-router==7.5.21; extra == "dev"
120
156
  Requires-Dist: requests==2.32.4; python_version >= "3.8" and extra == "dev"
121
157
  Requires-Dist: responses==0.18.0; python_version >= "3.7" and extra == "dev"
122
158
  Requires-Dist: selenium==4.29.0; python_version >= "3.9" and extra == "dev"
159
+ Requires-Dist: setuptools==80.9.0; python_version >= "3.9" and extra == "dev"
160
+ Requires-Dist: six==1.17.0; (python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3") and extra == "dev"
123
161
  Requires-Dist: snapshottest==1.0.0a1; extra == "dev"
124
162
  Requires-Dist: sniffio==1.3.1; python_version >= "3.7" and extra == "dev"
125
163
  Requires-Dist: sortedcontainers==2.4.0; extra == "dev"
126
164
  Requires-Dist: sqlparse==0.5.3; python_version >= "3.8" and extra == "dev"
165
+ Requires-Dist: stack-data==0.6.3; extra == "dev"
166
+ Requires-Dist: tablib==3.7.0; python_version >= "3.9" and extra == "dev"
127
167
  Requires-Dist: termcolor==3.1.0; python_version >= "3.9" and extra == "dev"
168
+ Requires-Dist: traitlets==5.14.3; python_version >= "3.8" and extra == "dev"
128
169
  Requires-Dist: trio==0.30.0; python_version >= "3.9" and extra == "dev"
129
170
  Requires-Dist: trio-websocket==0.12.2; python_version >= "3.8" and extra == "dev"
130
171
  Requires-Dist: typing-extensions==4.14.1; python_version >= "3.9" and extra == "dev"
172
+ Requires-Dist: tzdata==2025.2; python_version >= "2" and extra == "dev"
131
173
  Requires-Dist: urllib3==2.5.0; extra == "dev"
132
174
  Requires-Dist: wasmer==1.1.0; extra == "dev"
133
175
  Requires-Dist: wasmer-compiler-cranelift==1.1.0; extra == "dev"
176
+ Requires-Dist: wcwidth==0.2.13; extra == "dev"
134
177
  Requires-Dist: websocket-client==1.8.0; python_version >= "3.8" and extra == "dev"
178
+ Requires-Dist: wheel==0.45.1; python_version >= "3.8" and extra == "dev"
135
179
  Requires-Dist: wsproto==1.2.0; python_full_version >= "3.7.0" and extra == "dev"
136
180
  Dynamic: classifier
137
181
  Dynamic: description
@@ -88,7 +88,7 @@ cfl_common/common/tests/utils/organisation.py,sha256=vNgKFtU3VPcWRnZfh82yCS90PLA
88
88
  cfl_common/common/tests/utils/student.py,sha256=PLd980iSlxmMoB8J3C2pVjNC5xHdVxfAkJXzhv_dRhg,3814
89
89
  cfl_common/common/tests/utils/teacher.py,sha256=KQ_NAl4yQqiX_zwcULQjkovc29JPhnkLR5Nk3Ljzbpg,2661
90
90
  cfl_common/common/tests/utils/user.py,sha256=NvLzZLVP4jy5Hn1iztOYF_BTQ9WsbSmuWMEzGzhAsRU,919
91
- codeforlife_portal-8.9.0.dist-info/licenses/LICENSE.md,sha256=9AbRlCDqD2D1tPibimysFv3zg3AIc49-eyv9aEsyq9w,115
91
+ codeforlife_portal-8.9.1.dist-info/licenses/LICENSE.md,sha256=9AbRlCDqD2D1tPibimysFv3zg3AIc49-eyv9aEsyq9w,115
92
92
  deploy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
93
  deploy/captcha.py,sha256=MbOBuGnbT_SOIltSjP1XMOLrfo1DldCilaVAEim0vM4,23
94
94
  deploy/views.py,sha256=7mY2zNPkaBFrlWGByJHp2zFqHIHSMc0YArjE_sFWMMU,131
@@ -113,7 +113,7 @@ example_project/portal_test_settings.py,sha256=_6EDMwnYH2yCukgiop0sobqShbB8tivO9
113
113
  example_project/settings.py,sha256=IsicdosIyB_3K2sv60bQvhAm6qm5fYWYut7oWTDZ778,6214
114
114
  example_project/urls.py,sha256=FUTzHPlUS1O5kqMHjL5V4L552N2ln7uTDXcw9wjKUto,422
115
115
  example_project/wsgi.py,sha256=U1W6WzZxZaIdYZ5tks7w9fqp5WS5qvn2iThsVcskrWw,829
116
- portal/__init__.py,sha256=UaNl2yn2v4Ia_5--i67UcyA4R7I_VLgKz75bbOAoRXU,22
116
+ portal/__init__.py,sha256=qbri2C4n2eoGzq_GLHEbyjEIx6WIa1m6AniM3pGkLlo,22
117
117
  portal/admin.py,sha256=RKJizTF6dPJKmGPZw7nZUM0X8jkiTjgyKhLQxtvHJ0I,6148
118
118
  portal/app_settings.py,sha256=8P3r0ArkOzL_iVjoaLIHsNWG4uP1tT2z1kCUHPhAZ9s,714
119
119
  portal/backends.py,sha256=2Dss6_WoQwPuDzJUF1yEaTQTNG4eUrD12ujJQ5cp5Tc,812
@@ -409,8 +409,8 @@ portal/static/portal/sass/partials/_carousel.scss,sha256=m8N6jSuHBzeKyMUNGGc48Nl
409
409
  portal/static/portal/sass/partials/_footer.scss,sha256=oqt-Qvz7vtUFNnpe4FkQkaZk3J3fojCy9cKCxqGTWoM,2493
410
410
  portal/static/portal/sass/partials/_forms.scss,sha256=cbonSxhtfaHR-4R6i0u65AaIZRG_25C837CgZlLuwCI,7101
411
411
  portal/static/portal/sass/partials/_grids.scss,sha256=pnMQht5lZ65MRB-0_nl8yn655hlKC_oWCwZopillVwc,4968
412
- portal/static/portal/sass/partials/_header.scss,sha256=P2Sb3dyJjiPCpzbNE83HYWomBPfak8wHTO-q5S-qyQA,7339
413
- portal/static/portal/sass/partials/_images.scss,sha256=4k19VgOkeYBcxxwEBOllSohSGAdWUN2BBwB9MnKC4mY,5593
412
+ portal/static/portal/sass/partials/_header.scss,sha256=_54ppHxjp8Y6PB_UbYlxvH3MKke9tjsaq5yzDsDt-jU,7493
413
+ portal/static/portal/sass/partials/_images.scss,sha256=uHUZ1rRZntijcTnv3Ws2EjGR7eJ7aunDHwUj6-lRNMk,5592
414
414
  portal/static/portal/sass/partials/_popup.scss,sha256=GQ6Vtmj3vdOP4Hvsf8ZxKdEtuL8gqoClYpDgQ19kvnQ,2280
415
415
  portal/static/portal/sass/partials/_progress-bars.scss,sha256=cTyRa9WLeIE0rETmY58Rcyf-8O6JE3iDTa_jw3mk23g,144
416
416
  portal/static/portal/sass/partials/_subnavs.scss,sha256=6FJV1wBmHchnGBL9Yx56Ua4RR1b5P6ABTextZPTqXSs,5052
@@ -474,7 +474,7 @@ portal/templates/portal/partials/character_list.html,sha256=SnNFHzbIkOSaiRPIvSdp
474
474
  portal/templates/portal/partials/cookie_list.html,sha256=j815wyA9nAe74tzuKtp7Rxnm9oclORmipImfbI33BRI,6538
475
475
  portal/templates/portal/partials/delete_popup.html,sha256=nEhnwgnmKoFzb6LlCwdX973Em9bVOFh6MON36RPteYs,1275
476
476
  portal/templates/portal/partials/footer.html,sha256=dC3eKqZ2e2gCnRsZwsFNWVEOwgwQtXrO7yfwBuW63hk,5628
477
- portal/templates/portal/partials/header.html,sha256=LJ8L_BV3DPAfpxAZlhH35MHNd5_bC3NhSVW2zAeonGU,20834
477
+ portal/templates/portal/partials/header.html,sha256=Fqly39-c8MIMLIIeq_sbT3CeGJMhvEOIqIqGWrKREfw,20744
478
478
  portal/templates/portal/partials/headline.html,sha256=xKb-WtkT0FyQqT0smyNSKkXFvU7KQ5Czad8ca6YKQg4,89
479
479
  portal/templates/portal/partials/hero_card.html,sha256=UN5hyxrw-McuXFsDzPBIECB9yGrv9VjsFf8SEBowwXc,786
480
480
  portal/templates/portal/partials/info_popup.html,sha256=gzffd5MBVb7p2hGQuZMNDudThrRgs847hCu9ziT9uLE,566
@@ -636,7 +636,7 @@ portal/views/two_factor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
636
636
  portal/views/two_factor/core.py,sha256=Lk32z2SN2Pg0rRkK-N-LXMvXC1kKKsH3l692kiSDQ4E,964
637
637
  portal/views/two_factor/form.py,sha256=lnHNKI-BMlpncTuW3zUzjPaJJNuEra2I_nOam0eOKFY,257
638
638
  portal/views/two_factor/profile.py,sha256=SHSg_xHccE5PtD-OfuOkYhREYz_er4bj5ro1RjJ88Yw,393
639
- codeforlife_portal-8.9.0.dist-info/METADATA,sha256=em_v73lF_vcG63YEdZ3z9Wcu4-WqU5RyCX3-o3y9bBA,10801
640
- codeforlife_portal-8.9.0.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
641
- codeforlife_portal-8.9.0.dist-info/top_level.txt,sha256=8e5pdsuIoTqEAMqpelHBjGjLbffcBtgOoggmd2q7nMw,41
642
- codeforlife_portal-8.9.0.dist-info/RECORD,,
639
+ codeforlife_portal-8.9.1.dist-info/METADATA,sha256=pgmwPhBOVCQu448cW8Xpzhjyz6AJGlHrQaLQpfFrgCg,14175
640
+ codeforlife_portal-8.9.1.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
641
+ codeforlife_portal-8.9.1.dist-info/top_level.txt,sha256=8e5pdsuIoTqEAMqpelHBjGjLbffcBtgOoggmd2q7nMw,41
642
+ codeforlife_portal-8.9.1.dist-info/RECORD,,
portal/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "8.9.0"
1
+ __version__ = "8.9.1"
@@ -27,8 +27,8 @@
27
27
  }
28
28
 
29
29
  .dropdown-menu {
30
- @include _border-radius(0px, 0px, 0px, 0px);
31
30
  border: 2px solid $color-secondary-600;
31
+ border-radius: 0;
32
32
  border-top: 0;
33
33
  font-weight: 300;
34
34
  margin: 0;
@@ -181,7 +181,7 @@
181
181
 
182
182
  .menu--title {
183
183
  @include _font-size(27px);
184
- @include _margin(0px, 40px, 0px, 10px);
184
+ @include _margin(0px, $spacing * 8, 0px, $spacing * 2);
185
185
  color: $color-text-tertiary;
186
186
  font-family: "Space Grotesk", sans-serif;
187
187
  }
@@ -209,9 +209,15 @@
209
209
 
210
210
  @media (min-width: $tablet-small-min-width) {
211
211
  .menu__right-side {
212
+ @include _margin-right($spacing * 3);
212
213
  align-items: center;
213
- justify-content: flex-end;
214
214
  display: flex;
215
+ justify-content: flex-end;
216
+ width: 33%;
217
+ }
218
+
219
+ .logo {
220
+ height: 100px;
215
221
  }
216
222
  }
217
223
 
@@ -219,10 +225,6 @@
219
225
  .menu {
220
226
  height: $menu-height;
221
227
 
222
- .logo {
223
- height: 100px;
224
- }
225
-
226
228
  .menu__brand {
227
229
  @include _margin(0px, $spacing * 7, 0px, 0px);
228
230
  }
@@ -240,7 +242,7 @@
240
242
  height: $menu-height-xs;
241
243
 
242
244
  .logo {
243
- @include _padding($spacing * 3, $spacing * 9, $spacing * 3, $spacing * 3);
245
+ @include _padding($spacing * 3, $spacing * 3, $spacing * 3, $spacing * 3);
244
246
  }
245
247
 
246
248
  .menu__brand--ocado {
@@ -255,6 +257,7 @@
255
257
  .menu {
256
258
  background-color: $color-background-secondary;
257
259
  display: flex;
260
+ justify-content: space-between;
258
261
  position: fixed;
259
262
  top: 0;
260
263
  width: 100%;
@@ -284,20 +287,23 @@
284
287
 
285
288
  .button--register,
286
289
  .button--header--login {
287
- @include _padding(10px, 15px, 10px, 15px);
290
+ @include _padding($spacing * 2, $spacing * 3, $spacing * 2, $spacing * 3);
288
291
  width: 155px;
289
292
  height: 45px;
290
293
  }
291
294
  }
292
295
 
293
296
  .menu__brand {
294
- align-items: center;
295
297
  display: flex;
296
- justify-content: center;
298
+ width: 66%;
297
299
 
298
- img {
299
- max-width: none;
300
+ .menu__brand--ocado {
301
+ @include _margin-right($spacing * 7);
300
302
  }
303
+
304
+ //img {
305
+ // max-width: none;
306
+ //}
301
307
  }
302
308
 
303
309
  .menu__left-side {
@@ -62,7 +62,7 @@ img {
62
62
  }
63
63
 
64
64
  .logo {
65
- @include _padding($spacing * 3, $spacing * 14, $spacing * 3, $spacing * 3);
65
+ @include _padding($spacing * 3, $spacing * 3, $spacing * 3, $spacing * 3);
66
66
  }
67
67
 
68
68
  .map-pin {
@@ -24,89 +24,82 @@
24
24
  <span class="material-icons-outlined visible-sm visible-xs" data-toggle="collapse" data-target="#menu-items">
25
25
  menu
26
26
  </span>
27
- </div>
28
- {% if user|is_logged_in %}
29
- <div class="menu__left-side col-md-7">
30
- {% if user|is_logged_in_as_teacher %}
31
- <div class="menu--title">Teacher</div>
32
- {% if user|has_teacher_finished_onboarding %}
33
- <a href="{% url 'dashboard' %}" class="button--menu button--menu--secondary button--menu--enabled">Dashboard</a>
34
- <div class="dropdown">
35
- <a id="games_button"
36
- class="button--menu button--menu--secondary button--menu--enabled">
37
- Games <span class="material-icons-outlined md-32">arrow_drop_down</span></a>
38
- <div class="dropdown-content">
39
- <a href="{% url 'levels' %}"><small>Rapid Router</small></a>
40
- <a href="{% url 'python_levels' %}"><small>Python Den</small></a>
27
+ <div class="menu__left-side hidden-sm hidden-xs">
28
+ {% if user|is_logged_in %}
29
+ {% if user|is_logged_in_as_teacher %}
30
+ {% if user|has_teacher_finished_onboarding %}
31
+ <a href="{% url 'dashboard' %}" class="button--menu button--menu--secondary button--menu--enabled">Dashboard</a>
32
+ <div class="dropdown">
33
+ <a id="games_button"
34
+ class="button--menu button--menu--secondary button--menu--enabled">
35
+ Games <span class="material-icons-outlined md-32">arrow_drop_down</span></a>
36
+ <div class="dropdown-content">
37
+ <a href="{% url 'levels' %}"><small>Rapid Router</small></a>
38
+ <a href="{% url 'python_levels' %}"><small>Python Den</small></a>
39
+ </div>
41
40
  </div>
42
- </div>
43
- <div class="dropdown">
44
- <a id="teaching_resources_button"
45
- class="button--menu button--menu--secondary button--menu--enabled">
46
- Teaching Resources <span class="material-icons-outlined md-32">arrow_drop_down</span></a>
47
- <div class="dropdown-content">
48
- <a id="rapid_router_resources_button" href="https://code-for-life.gitbook.io/teaching-resources/" target="_blank">
49
- <small>Rapid Router</small> <span class="iconify" data-icon="mdi:open-in-new"></span></a>
50
- <a href="https://code-for-life.gitbook.io/python-lessons-with-raspberry-pi-ide/DGiFT28ihVJK7ghZQHqu" target="_blank">
51
- <small>Python Den</small> <span class="iconify" data-icon="mdi:open-in-new"></span></a>
52
- <a href="{% url 'codingClub' %}"><small>Coding Clubs</small></a>
41
+ <div class="dropdown">
42
+ <a id="teaching_resources_button"
43
+ class="button--menu button--menu--secondary button--menu--enabled">
44
+ Resources <span class="material-icons-outlined md-32">arrow_drop_down</span></a>
45
+ <div class="dropdown-content">
46
+ <a id="rapid_router_resources_button" href="https://code-for-life.gitbook.io/teaching-resources/" target="_blank">
47
+ <small>Rapid Router</small> <span class="iconify" data-icon="mdi:open-in-new"></span></a>
48
+ <a href="https://code-for-life.gitbook.io/python-lessons-with-raspberry-pi-ide/DGiFT28ihVJK7ghZQHqu" target="_blank">
49
+ <small>Python Den</small> <span class="iconify" data-icon="mdi:open-in-new"></span></a>
50
+ <a href="{% url 'codingClub' %}"><small>Coding Clubs</small></a>
51
+ </div>
53
52
  </div>
54
- </div>
55
- {% else %}
56
- <a href="{% url 'onboarding-organisation' %}" class="button--menu button--menu--secondary button--menu--enabled">Dashboard</a>
57
- <a class="button--menu button--menu--secondary button--menu--disabled">Games</a>
58
- <a class="button--menu button--menu--secondary button--menu--disabled">Teaching Resources</a>
59
- {% endif %}
60
- {% else %}
61
- {% if user|is_independent_student %}
62
- <div class="menu--title">Independent</div>
53
+ {% else %}
54
+ <a href="{% url 'onboarding-organisation' %}" class="button--menu button--menu--secondary button--menu--enabled">Dashboard</a>
55
+ <a class="button--menu button--menu--secondary button--menu--disabled">Games</a>
56
+ <a class="button--menu button--menu--secondary button--menu--disabled">Resources</a>
57
+ {% endif %}
63
58
  {% else %}
64
- <div class="menu--title">Student</div>
65
- {% endif %}
66
- <a
67
- {% if user|is_independent_student %}
59
+ <a
60
+ {% if user|is_independent_student %}
68
61
  href="{% url 'independent_student_details' %}"
69
- {% else %}
62
+ {% else %}
70
63
  href="{% url 'student_details' %}"
71
- {% endif %}
72
- id="student_dashboard_button"
73
- class="button--menu button--menu--secondary button--menu--enabled">Dashboard</a>
74
- <div class="dropdown">
75
- <a class="button--menu button--menu--secondary button--menu--enabled">
76
- Games
77
- <span class="material-icons-outlined md-32">arrow_drop_down</span>
78
- </a>
79
- <div class="dropdown-content">
80
- <a href="{% url 'levels' %}"><small>Rapid Router</small></a>
81
- <a href="{% url 'python_levels' %}"><small>Python Den</small></a>
82
- </div>
83
- </div>
84
- {% if user|is_logged_in_as_school_user %}
85
- <a href="{% url 'scoreboard' %}" id="student_scoreboards_button"
86
- class="button--menu button--menu--secondary button--menu--enabled">Scoreboard</a>
87
- {% endif %}
88
- <!-- independent student -->
89
- {% if not user.new_student.class_field %}
64
+ {% endif %}
65
+ id="student_dashboard_button"
66
+ class="button--menu button--menu--secondary button--menu--enabled">Dashboard</a>
90
67
  <div class="dropdown">
91
- <a id="teaching_resources_button"
92
- class="button--menu button--menu--secondary button--menu--enabled">
93
- Learning Resources <span class="material-icons-outlined md-32">arrow_drop_down</span></a>
68
+ <a class="button--menu button--menu--secondary button--menu--enabled">
69
+ Games
70
+ <span class="material-icons-outlined md-32">arrow_drop_down</span>
71
+ </a>
94
72
  <div class="dropdown-content">
95
- <a href="https://code-for-life.gitbook.io/independent-student-resources/" target="_blank">
96
- <small>Rapid Router</small><span class="iconify" data-icon="mdi:open-in-new"></span></a>
97
- <a href="{% url 'codingClub' %}"><small>Coding Clubs</small></a>
73
+ <a href="{% url 'levels' %}"><small>Rapid Router</small></a>
74
+ <a href="{% url 'python_levels' %}"><small>Python Den</small></a>
98
75
  </div>
99
76
  </div>
77
+ {% if user|is_logged_in_as_school_user %}
78
+ <a href="{% url 'scoreboard' %}" id="student_scoreboards_button"
79
+ class="button--menu button--menu--secondary button--menu--enabled">Scoreboard</a>
80
+ {% endif %}
81
+ <!-- independent student -->
82
+ {% if not user.new_student.class_field %}
83
+ <div class="dropdown">
84
+ <a id="teaching_resources_button"
85
+ class="button--menu button--menu--secondary button--menu--enabled">
86
+ Resources <span class="material-icons-outlined md-32">arrow_drop_down</span></a>
87
+ <div class="dropdown-content">
88
+ <a href="https://code-for-life.gitbook.io/independent-student-resources/" target="_blank">
89
+ <small>Rapid Router</small><span class="iconify" data-icon="mdi:open-in-new"></span></a>
90
+ <a href="{% url 'codingClub' %}"><small>Coding Clubs</small></a>
91
+ </div>
92
+ </div>
93
+ {% endif %}
100
94
  {% endif %}
101
- {% endif %}
102
- {% else %}
103
- <div class="menu__left-side col-md-5">
95
+ {% else %}
104
96
  <a href="{% url 'teach' %}" class="button--menu button--menu--primary button--menu--enabled">Teachers</a>
105
97
  <a href="{% url 'play' %}" class="button--menu button--menu--primary button--menu--enabled">Students</a>
106
- {% endif %}
98
+ {% endif %}
99
+ </div>
107
100
  </div>
108
101
  {% if user|is_logged_in %}
109
- <div class="menu__right-side col-md-4">
102
+ <div class="menu__right-side">
110
103
  <div class="dropdown header__account-details-dropdown">
111
104
  <button id="logout_menu" class="button--regular button--secondary button--dropdown header__account-details-dropdown"
112
105
  data-toggle="dropdown">
@@ -146,7 +139,7 @@
146
139
  </ul>
147
140
  </div>
148
141
  {% else %}
149
- <div class="menu__right-side col-md-5">
142
+ <div class="menu__right-side">
150
143
  <a href="{% url 'register' %}" id="signup_button" class="button button--primary button--register register">Register for FREE</a>
151
144
  <div class="dropdown">
152
145
  <button id="login_dropdown" class="button--regular button--secondary button--header--login button--dropdown"