codeforlife-portal 8.6.3__py2.py3-none-any.whl → 8.6.5__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.
- {codeforlife_portal-8.6.3.dist-info → codeforlife_portal-8.6.5.dist-info}/METADATA +5 -5
- {codeforlife_portal-8.6.3.dist-info → codeforlife_portal-8.6.5.dist-info}/RECORD +12 -12
- portal/__init__.py +1 -1
- portal/templates/portal/contribute.html +5 -5
- portal/templates/portal/partials/header.html +2 -2
- portal/templates/portal/register.html +3 -6
- portal/views/api.py +0 -3
- portal/views/home.py +1 -11
- portal/views/login/student.py +1 -10
- {codeforlife_portal-8.6.3.dist-info → codeforlife_portal-8.6.5.dist-info}/WHEEL +0 -0
- {codeforlife_portal-8.6.3.dist-info → codeforlife_portal-8.6.5.dist-info}/licenses/LICENSE.md +0 -0
- {codeforlife_portal-8.6.3.dist-info → codeforlife_portal-8.6.5.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codeforlife-portal
|
|
3
|
-
Version: 8.6.
|
|
3
|
+
Version: 8.6.5
|
|
4
4
|
Classifier: Programming Language :: Python
|
|
5
5
|
Classifier: Programming Language :: Python :: 3.12
|
|
6
6
|
Classifier: Framework :: Django
|
|
@@ -8,7 +8,7 @@ Description-Content-Type: text/markdown
|
|
|
8
8
|
License-File: LICENSE.md
|
|
9
9
|
Requires-Dist: asgiref==3.8.1; python_version >= "3.8"
|
|
10
10
|
Requires-Dist: certifi==2025.1.31; python_version >= "3.6"
|
|
11
|
-
Requires-Dist: cfl-common==8.6.
|
|
11
|
+
Requires-Dist: cfl-common==8.6.5
|
|
12
12
|
Requires-Dist: chardet==5.2.0; python_version >= "3.7"
|
|
13
13
|
Requires-Dist: charset-normalizer==3.4.1; python_version >= "3.7"
|
|
14
14
|
Requires-Dist: diff-match-patch==20241021; python_version >= "3.7"
|
|
@@ -60,7 +60,7 @@ Requires-Dist: asttokens==3.0.0; python_version >= "3.8" and extra == "dev"
|
|
|
60
60
|
Requires-Dist: attrs==25.3.0; python_version >= "3.8" and extra == "dev"
|
|
61
61
|
Requires-Dist: black==25.1.0; python_version >= "3.9" and extra == "dev"
|
|
62
62
|
Requires-Dist: certifi==2025.1.31; python_version >= "3.6" and extra == "dev"
|
|
63
|
-
Requires-Dist: cfl-common==8.6.
|
|
63
|
+
Requires-Dist: cfl-common==8.6.5; extra == "dev"
|
|
64
64
|
Requires-Dist: charset-normalizer==3.4.1; python_version >= "3.7" and extra == "dev"
|
|
65
65
|
Requires-Dist: click==8.1.8; python_version >= "3.7" and extra == "dev"
|
|
66
66
|
Requires-Dist: coverage[toml]==7.8.0; python_version >= "3.9" and extra == "dev"
|
|
@@ -113,7 +113,7 @@ Requires-Dist: pypdf==5.1.0; python_version >= "3.8" and extra == "dev"
|
|
|
113
113
|
Requires-Dist: pypng==0.20220715.0; extra == "dev"
|
|
114
114
|
Requires-Dist: pysocks==1.7.1; extra == "dev"
|
|
115
115
|
Requires-Dist: pytest==8.3.5; python_version >= "3.8" and extra == "dev"
|
|
116
|
-
Requires-Dist: pytest-cov==6.1.
|
|
116
|
+
Requires-Dist: pytest-cov==6.1.1; python_version >= "3.9" and extra == "dev"
|
|
117
117
|
Requires-Dist: pytest-django==4.8.0; python_version >= "3.8" and extra == "dev"
|
|
118
118
|
Requires-Dist: pytest-mock==3.14.0; python_version >= "3.8" and extra == "dev"
|
|
119
119
|
Requires-Dist: pytest-order==1.3.0; python_version >= "3.7" and extra == "dev"
|
|
@@ -122,7 +122,7 @@ Requires-Dist: python-dateutil==2.9.0.post0; (python_version >= "2.7" and python
|
|
|
122
122
|
Requires-Dist: pytz==2025.2; extra == "dev"
|
|
123
123
|
Requires-Dist: pyvirtualdisplay==3.0; extra == "dev"
|
|
124
124
|
Requires-Dist: qrcode==7.4.2; python_version >= "3.7" and extra == "dev"
|
|
125
|
-
Requires-Dist: rapid-router==7.5.
|
|
125
|
+
Requires-Dist: rapid-router==7.5.2; extra == "dev"
|
|
126
126
|
Requires-Dist: requests==2.32.3; python_version >= "3.8" and extra == "dev"
|
|
127
127
|
Requires-Dist: responses==0.18.0; python_version >= "3.7" and extra == "dev"
|
|
128
128
|
Requires-Dist: selenium==4.29.0; python_version >= "3.9" and extra == "dev"
|
|
@@ -87,7 +87,7 @@ cfl_common/common/tests/utils/organisation.py,sha256=vNgKFtU3VPcWRnZfh82yCS90PLA
|
|
|
87
87
|
cfl_common/common/tests/utils/student.py,sha256=PLd980iSlxmMoB8J3C2pVjNC5xHdVxfAkJXzhv_dRhg,3814
|
|
88
88
|
cfl_common/common/tests/utils/teacher.py,sha256=KQ_NAl4yQqiX_zwcULQjkovc29JPhnkLR5Nk3Ljzbpg,2661
|
|
89
89
|
cfl_common/common/tests/utils/user.py,sha256=NvLzZLVP4jy5Hn1iztOYF_BTQ9WsbSmuWMEzGzhAsRU,919
|
|
90
|
-
codeforlife_portal-8.6.
|
|
90
|
+
codeforlife_portal-8.6.5.dist-info/licenses/LICENSE.md,sha256=9AbRlCDqD2D1tPibimysFv3zg3AIc49-eyv9aEsyq9w,115
|
|
91
91
|
deploy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
92
92
|
deploy/captcha.py,sha256=MbOBuGnbT_SOIltSjP1XMOLrfo1DldCilaVAEim0vM4,23
|
|
93
93
|
deploy/views.py,sha256=7mY2zNPkaBFrlWGByJHp2zFqHIHSMc0YArjE_sFWMMU,131
|
|
@@ -111,7 +111,7 @@ example_project/portal_test_settings.py,sha256=1eTweQoCt1okixE5eoEg-f9iX7idSLNdJ
|
|
|
111
111
|
example_project/settings.py,sha256=YS-8YYtH8hZMUhZALA3eHJ1bdM2VJfpD1v3ItjBMGaQ,5936
|
|
112
112
|
example_project/urls.py,sha256=FUTzHPlUS1O5kqMHjL5V4L552N2ln7uTDXcw9wjKUto,422
|
|
113
113
|
example_project/wsgi.py,sha256=U1W6WzZxZaIdYZ5tks7w9fqp5WS5qvn2iThsVcskrWw,829
|
|
114
|
-
portal/__init__.py,sha256=
|
|
114
|
+
portal/__init__.py,sha256=Hwt0_KnspQjRN_MrDldwtdXvtsUwNgjCvFcJFELW9mY,22
|
|
115
115
|
portal/admin.py,sha256=RKJizTF6dPJKmGPZw7nZUM0X8jkiTjgyKhLQxtvHJ0I,6148
|
|
116
116
|
portal/app_settings.py,sha256=DhWLQOwM0zVOXE3O5TNKbMM9K6agfLuCsHOdr1J7xEI,651
|
|
117
117
|
portal/backends.py,sha256=2Dss6_WoQwPuDzJUF1yEaTQTNG4eUrD12ujJQ5cp5Tc,812
|
|
@@ -440,7 +440,7 @@ portal/templates/portal/about.html,sha256=_iD0GCP6q3-XuZ2LC-9O0KYY-mKL6c9qk3O-NR
|
|
|
440
440
|
portal/templates/portal/base.html,sha256=lAY0DO-OpW-O81tqZxnEmGAnXiJomzj2xsi5L8hTEls,11644
|
|
441
441
|
portal/templates/portal/base_no_userprofile.html,sha256=PlRufyYmUUGWBZ6CvbYhJWOMTqKqdcee4xnO5--AogA,447
|
|
442
442
|
portal/templates/portal/coding_club.html,sha256=DhPSIhxxzo6w0v80jXKVo_fjZ_TKnv7_u5cQq0woW8Q,5324
|
|
443
|
-
portal/templates/portal/contribute.html,sha256=
|
|
443
|
+
portal/templates/portal/contribute.html,sha256=kJLQpha9uqJipiwJdEEZVk-VBOYzSBkNiuoXtIeo0Yc,4269
|
|
444
444
|
portal/templates/portal/dotmailer_consent_form.html,sha256=UDdizPoKYZGybr6z9nzDV4WPhJPa-S3bIKywvVgFrxg,918
|
|
445
445
|
portal/templates/portal/email_invitation_sent.html,sha256=hAMzQXE3NFGnOsQlCGuo3Aps-vazSJb5BhAN7bWT48M,641
|
|
446
446
|
portal/templates/portal/email_style_template.html,sha256=lIlpiEC7-mO9tx3Ra9jtBjdXYxh5HKGZU8uqbvKdEbk,11893
|
|
@@ -454,7 +454,7 @@ portal/templates/portal/locked_out.html,sha256=JeiFHFyueFX03D54k82swjxvKY78cFG8V
|
|
|
454
454
|
portal/templates/portal/locked_out_school_student.html,sha256=bcpLtu4mkHR-zILLuArtHH2OfUSjHiqntcdbTMlx5Kg,684
|
|
455
455
|
portal/templates/portal/play.html,sha256=35dsR5jMavX5YvHZCwsoGdbCjEWJG-vPyqIeUAkgbLI,5724
|
|
456
456
|
portal/templates/portal/privacy_notice.html,sha256=JexPB9Xgvlymv-TCzpWoViuZ2R-xalScCsueMW66-fA,49247
|
|
457
|
-
portal/templates/portal/register.html,sha256=
|
|
457
|
+
portal/templates/portal/register.html,sha256=Vf2L4VMPuNQWgK2CWYBgBEYDkfUJ5YjXMaDY0C-Fp-E,12465
|
|
458
458
|
portal/templates/portal/reset_password.html,sha256=YzsREz5D2OwhicMLahVOVDXiNDxoHlPqU5iu96i36W0,1373
|
|
459
459
|
portal/templates/portal/reset_password_confirm.html,sha256=jPHSDatezRXzCG4zH_5BQPWAxLblidqro0hzvsH54ho,3499
|
|
460
460
|
portal/templates/portal/reset_password_done.html,sha256=rpzN3svZne5H2FS3TJaGnHypRj2KX-SRS6DbFQkgLf0,667
|
|
@@ -473,7 +473,7 @@ portal/templates/portal/partials/character_list.html,sha256=SnNFHzbIkOSaiRPIvSdp
|
|
|
473
473
|
portal/templates/portal/partials/cookie_list.html,sha256=MrQ6lqae_X-LSxQjlLhZzKESt_cqJ2HJYsjKqTQ9W0A,6303
|
|
474
474
|
portal/templates/portal/partials/delete_popup.html,sha256=nEhnwgnmKoFzb6LlCwdX973Em9bVOFh6MON36RPteYs,1275
|
|
475
475
|
portal/templates/portal/partials/footer.html,sha256=IKEUmghaiiuQs5g9JfE97oNzjRTzBTu3SoFgJhRMyi8,5533
|
|
476
|
-
portal/templates/portal/partials/header.html,sha256=
|
|
476
|
+
portal/templates/portal/partials/header.html,sha256=LJ8L_BV3DPAfpxAZlhH35MHNd5_bC3NhSVW2zAeonGU,20834
|
|
477
477
|
portal/templates/portal/partials/headline.html,sha256=xKb-WtkT0FyQqT0smyNSKkXFvU7KQ5Czad8ca6YKQg4,89
|
|
478
478
|
portal/templates/portal/partials/hero_card.html,sha256=UN5hyxrw-McuXFsDzPBIECB9yGrv9VjsFf8SEBowwXc,786
|
|
479
479
|
portal/templates/portal/partials/info_popup.html,sha256=gzffd5MBVb7p2hGQuZMNDudThrRgs847hCu9ziT9uLE,566
|
|
@@ -609,11 +609,11 @@ portal/tests/utils/messages.py,sha256=tUGzJzhZwvzmO9H3CPxpWUfi2aXTpAWfkDQ2u2T3Lb
|
|
|
609
609
|
portal/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
610
610
|
portal/views/about.py,sha256=-muXy17UhxCSKkjnMAkSLXiCvT_pBPlf2ykTYr794dI,443
|
|
611
611
|
portal/views/admin.py,sha256=4Xt3zEyQH7sUwQSrwuRtoCodWidjOzd7gJUwWU96pXY,957
|
|
612
|
-
portal/views/api.py,sha256=
|
|
612
|
+
portal/views/api.py,sha256=ZCRApdZi2F6Pqo9p3V6cctzeeskxyrlFZn2AcHGpGdQ,6932
|
|
613
613
|
portal/views/dotmailer.py,sha256=OH06IXuqqjhQbEie8g8y2ZY1oZvsCtNHhkQRLa-julg,2467
|
|
614
614
|
portal/views/email.py,sha256=V3wXRxIjeZ4OJBVqGCQrPn-GQWKZK1PCXbR1f2Zpa_4,2174
|
|
615
615
|
portal/views/google_analytics.py,sha256=cbNq9apCVpjoXCdovjrwo2jshWu5tUOItB-fTr-losw,769
|
|
616
|
-
portal/views/home.py,sha256=
|
|
616
|
+
portal/views/home.py,sha256=puQesHCyV1jMXNjgflf_QhJl7hoV2Y4z9UlkGtEiqTo,9266
|
|
617
617
|
portal/views/legal.py,sha256=USOEJy0Ry73cKReglKfMxgM3qWoKORUfVl_RkwPewQ4,342
|
|
618
618
|
portal/views/organisation.py,sha256=sPDbiM7hdtpF8GKyh_4n4VPl2a-WnAgnF4q9aSvQCVI,3341
|
|
619
619
|
portal/views/play_landing_page.py,sha256=FFmjUFub3ZdlbMqkB8yX3jAImCzqrUqgb8AZcpKywZ4,308
|
|
@@ -623,7 +623,7 @@ portal/views/cron/__init__.py,sha256=5rxXyhJmLOExRdrYZ1VJttTsyRIPRybzdftbUDwFByI
|
|
|
623
623
|
portal/views/cron/user.py,sha256=iKM_FOcSQvrXtRSZUtxSiMFD3M869JP5jvEfRWHLpvM,10731
|
|
624
624
|
portal/views/login/__init__.py,sha256=xSCtyFPSI87BRUybBgqa86ekFEolX5gUDbBSfBUMTyI,399
|
|
625
625
|
portal/views/login/independent_student.py,sha256=3dFULhwMAlX4VDrJl-Znril6a9M5xKBSHO1eWvujfS0,2662
|
|
626
|
-
portal/views/login/student.py,sha256=
|
|
626
|
+
portal/views/login/student.py,sha256=7UbJpjA4BsDY8bxGTFSdloNo50GbLiukaMr5rKvG6uo,5306
|
|
627
627
|
portal/views/login/teacher.py,sha256=kRugP7TPbZIb_BmYMYxFeugxZy8UbCry_q0_jJDJ_Mw,1975
|
|
628
628
|
portal/views/student/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
629
629
|
portal/views/student/edit_account_details.py,sha256=Ba-3D_zzKbX5N01NG5qqBS0ud10B8D5SN8hOpLiGa9U,8468
|
|
@@ -635,7 +635,7 @@ portal/views/two_factor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
|
|
|
635
635
|
portal/views/two_factor/core.py,sha256=Lk32z2SN2Pg0rRkK-N-LXMvXC1kKKsH3l692kiSDQ4E,964
|
|
636
636
|
portal/views/two_factor/form.py,sha256=lnHNKI-BMlpncTuW3zUzjPaJJNuEra2I_nOam0eOKFY,257
|
|
637
637
|
portal/views/two_factor/profile.py,sha256=SHSg_xHccE5PtD-OfuOkYhREYz_er4bj5ro1RjJ88Yw,393
|
|
638
|
-
codeforlife_portal-8.6.
|
|
639
|
-
codeforlife_portal-8.6.
|
|
640
|
-
codeforlife_portal-8.6.
|
|
641
|
-
codeforlife_portal-8.6.
|
|
638
|
+
codeforlife_portal-8.6.5.dist-info/METADATA,sha256=p-IAHP6zbem2GfuXxlfjVKJHSGPLlEegHasBuUwcLkk,12345
|
|
639
|
+
codeforlife_portal-8.6.5.dist-info/WHEEL,sha256=MAQBAzGbXNI3bUmkDsiV_duv8i-gcdnLzw7cfUFwqhU,109
|
|
640
|
+
codeforlife_portal-8.6.5.dist-info/top_level.txt,sha256=8e5pdsuIoTqEAMqpelHBjGjLbffcBtgOoggmd2q7nMw,41
|
|
641
|
+
codeforlife_portal-8.6.5.dist-info/RECORD,,
|
portal/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "8.6.
|
|
1
|
+
__version__ = "8.6.5"
|
|
@@ -38,9 +38,9 @@
|
|
|
38
38
|
</div>
|
|
39
39
|
|
|
40
40
|
<div class="background background--primary">
|
|
41
|
-
<div class="
|
|
42
|
-
<div class="
|
|
43
|
-
<div class="col-
|
|
41
|
+
<div class="container">
|
|
42
|
+
<div class="row d-flex flex-column-reverse flex-md-row">
|
|
43
|
+
<div class="col-12 col-md-6 order-1 order-md-0">
|
|
44
44
|
<h4>Our products</h4>
|
|
45
45
|
|
|
46
46
|
<p><b>The website</b></p>
|
|
@@ -61,9 +61,9 @@
|
|
|
61
61
|
Python experience to a foundation in Python, helping
|
|
62
62
|
prepare them for GCSE and beyond.</p>
|
|
63
63
|
</div>
|
|
64
|
-
<div class="col-
|
|
64
|
+
<div class="col-12 col-md-6 order-0 order-md-1">
|
|
65
65
|
<img title="Rapid Router" alt="Rapid Router"
|
|
66
|
-
src="{% static 'portal/img/rapidrouter.png' %}">
|
|
66
|
+
src="{% static 'portal/img/rapidrouter.png' %}" class="img-fluid">
|
|
67
67
|
</div>
|
|
68
68
|
</div>
|
|
69
69
|
</div>
|
|
@@ -147,7 +147,7 @@
|
|
|
147
147
|
</div>
|
|
148
148
|
{% else %}
|
|
149
149
|
<div class="menu__right-side col-md-5">
|
|
150
|
-
<a href="{% url 'register' %}" id="signup_button" class="button button--primary button--register register">Register</a>
|
|
150
|
+
<a href="{% url 'register' %}" id="signup_button" class="button button--primary button--register register">Register for FREE</a>
|
|
151
151
|
<div class="dropdown">
|
|
152
152
|
<button id="login_dropdown" class="button--regular button--secondary button--header--login button--dropdown"
|
|
153
153
|
data-toggle="dropdown">
|
|
@@ -238,7 +238,7 @@
|
|
|
238
238
|
{% endif %}
|
|
239
239
|
{% else %}
|
|
240
240
|
<a class="button button--menu__item button--register"
|
|
241
|
-
href="{% url 'register' %}">Register now</a>
|
|
241
|
+
href="{% url 'register' %}">Register now for FREE</a>
|
|
242
242
|
<button class="button--menu__item button--menu__item--sub-header login"
|
|
243
243
|
data-toggle="collapse" data-target="#login-tabs">Log in</button>
|
|
244
244
|
<div id="login-tabs" class="collapse">
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
<div id="teacher-register-form" class="form-div form">
|
|
10
10
|
<h4>Teacher/Tutor</h4>
|
|
11
11
|
<div class="row form--row">
|
|
12
|
-
<p class="semi-bold">Register below to create your
|
|
12
|
+
<p class="semi-bold">Register below to create your free account.</p>
|
|
13
13
|
<small class="semi-bold">You will have access to teaching resources, progress tracking and lesson plans
|
|
14
14
|
for Rapid Router.</small>
|
|
15
15
|
</div>
|
|
16
|
-
<form class="d-flex flex-column"
|
|
16
|
+
<form class="d-flex flex-column"
|
|
17
17
|
method="post"
|
|
18
18
|
id="form-reg-teacher"
|
|
19
19
|
autocomplete="off">
|
|
@@ -87,10 +87,7 @@
|
|
|
87
87
|
<div id="independent-student-register-form" class="form-div">
|
|
88
88
|
<h4>Independent learner</h4>
|
|
89
89
|
<div class="row form--row">
|
|
90
|
-
<p class="semi-bold">
|
|
91
|
-
Register below if you are not part of a school or club and wish to set up a home
|
|
92
|
-
learning account.
|
|
93
|
-
</p>
|
|
90
|
+
<p class="semi-bold">Register below if you are not part of a school or club and wish to set up a free home learning account.</p>
|
|
94
91
|
<small class="semi-bold">You will have access to learning resources for Rapid Router.</small>
|
|
95
92
|
</div>
|
|
96
93
|
<form id="form-signup-independent-student"
|
portal/views/api.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import datetime
|
|
2
|
-
import logging
|
|
3
2
|
import uuid
|
|
4
3
|
|
|
5
4
|
from common.models import Class, School, Student, Teacher, UserProfile
|
|
@@ -15,7 +14,6 @@ from rest_framework.reverse import reverse_lazy
|
|
|
15
14
|
|
|
16
15
|
from portal.app_settings import IS_CLOUD_SCHEDULER_FUNCTION
|
|
17
16
|
|
|
18
|
-
LOGGER = logging.getLogger(__name__)
|
|
19
17
|
THREE_YEARS_IN_DAYS = 1095
|
|
20
18
|
|
|
21
19
|
|
|
@@ -199,7 +197,6 @@ class AnonymiseOrphanSchoolsView(generics.ListAPIView):
|
|
|
199
197
|
pk__gte=start_id, new_user__is_active=False
|
|
200
198
|
):
|
|
201
199
|
anonymise(teacher.new_user)
|
|
202
|
-
LOGGER.info(f"Anonymised teacher ID {teacher.pk}")
|
|
203
200
|
|
|
204
201
|
# Anonymise schools without any teachers
|
|
205
202
|
for school in School.objects.filter(teacher_school__isnull=True):
|
portal/views/home.py
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import logging
|
|
2
1
|
import math
|
|
3
2
|
|
|
4
3
|
from common.helpers.emails import (
|
|
@@ -36,8 +35,6 @@ from portal.strings.ten_year_map import (
|
|
|
36
35
|
TEN_YEAR_MAP_HEADLINE,
|
|
37
36
|
)
|
|
38
37
|
|
|
39
|
-
LOGGER = logging.getLogger(__name__)
|
|
40
|
-
|
|
41
38
|
|
|
42
39
|
def register_view(request):
|
|
43
40
|
if request.user.is_authenticated:
|
|
@@ -131,10 +128,6 @@ def process_signup_form(request, data):
|
|
|
131
128
|
),
|
|
132
129
|
},
|
|
133
130
|
)
|
|
134
|
-
else:
|
|
135
|
-
LOGGER.warn(
|
|
136
|
-
f"Ratelimit teacher {RATELIMIT_USER_ALREADY_REGISTERED_EMAIL_GROUP}: {email}"
|
|
137
|
-
)
|
|
138
131
|
else:
|
|
139
132
|
teacher = Teacher.objects.factory(
|
|
140
133
|
first_name=data["teacher_first_name"],
|
|
@@ -180,10 +173,7 @@ def process_independent_student_signup_form(request, data):
|
|
|
180
173
|
),
|
|
181
174
|
},
|
|
182
175
|
)
|
|
183
|
-
|
|
184
|
-
LOGGER.warning(
|
|
185
|
-
f"Ratelimit independent {RATELIMIT_USER_ALREADY_REGISTERED_EMAIL_GROUP}: {email}"
|
|
186
|
-
)
|
|
176
|
+
|
|
187
177
|
return render(
|
|
188
178
|
request,
|
|
189
179
|
"portal/email_verification_needed.html",
|
portal/views/login/student.py
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
|
|
3
1
|
from common.models import UserSession, Student, Class
|
|
4
2
|
from django.contrib import messages
|
|
5
3
|
from django.contrib.auth import authenticate, login
|
|
@@ -14,8 +12,6 @@ from portal.helpers.ratelimit import clear_ratelimit_cache_for_user
|
|
|
14
12
|
from portal.helpers.request_handlers import get_access_code_from_request
|
|
15
13
|
from portal.views.login import has_user_lockout_expired
|
|
16
14
|
|
|
17
|
-
LOGGER = logging.getLogger(__name__)
|
|
18
|
-
|
|
19
15
|
|
|
20
16
|
class StudentClassCodeView(FormView):
|
|
21
17
|
template_name = "portal/login/student_class_code.html"
|
|
@@ -76,12 +72,7 @@ class StudentLoginView(LoginView):
|
|
|
76
72
|
students = Student.objects.filter(
|
|
77
73
|
new_user__first_name__iexact=name, class_field=klass
|
|
78
74
|
)
|
|
79
|
-
|
|
80
|
-
student = students[0]
|
|
81
|
-
except IndexError:
|
|
82
|
-
msg = f"Student {name} in class {class_code} is not found!"
|
|
83
|
-
LOGGER.error(msg)
|
|
84
|
-
raise Exception(msg)
|
|
75
|
+
student = students[0]
|
|
85
76
|
|
|
86
77
|
# Log the login time, class, and login type
|
|
87
78
|
session = UserSession(
|
|
File without changes
|
{codeforlife_portal-8.6.3.dist-info → codeforlife_portal-8.6.5.dist-info}/licenses/LICENSE.md
RENAMED
|
File without changes
|
|
File without changes
|