codeforlife-portal 8.9.5__py2.py3-none-any.whl → 8.9.7__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/models.py +12 -0
- {codeforlife_portal-8.9.5.dist-info → codeforlife_portal-8.9.7.dist-info}/METADATA +28 -27
- {codeforlife_portal-8.9.5.dist-info → codeforlife_portal-8.9.7.dist-info}/RECORD +7 -7
- portal/__init__.py +1 -1
- {codeforlife_portal-8.9.5.dist-info → codeforlife_portal-8.9.7.dist-info}/WHEEL +0 -0
- {codeforlife_portal-8.9.5.dist-info → codeforlife_portal-8.9.7.dist-info}/licenses/LICENSE.md +0 -0
- {codeforlife_portal-8.9.5.dist-info → codeforlife_portal-8.9.7.dist-info}/top_level.txt +0 -0
cfl_common/common/models.py
CHANGED
|
@@ -107,6 +107,9 @@ class UserProfile(models.Model):
|
|
|
107
107
|
|
|
108
108
|
|
|
109
109
|
class SchoolModelManager(models.Manager):
|
|
110
|
+
def get_original_queryset(self):
|
|
111
|
+
return super().get_queryset()
|
|
112
|
+
|
|
110
113
|
# Filter out inactive schools by default
|
|
111
114
|
def get_queryset(self):
|
|
112
115
|
return super().get_queryset().filter(is_active=True)
|
|
@@ -165,6 +168,9 @@ class TeacherModelManager(models.Manager):
|
|
|
165
168
|
|
|
166
169
|
return Teacher.objects.create(user=user_profile, new_user=user)
|
|
167
170
|
|
|
171
|
+
def get_original_queryset(self):
|
|
172
|
+
return super().get_queryset()
|
|
173
|
+
|
|
168
174
|
# Filter out non active teachers by default
|
|
169
175
|
def get_queryset(self):
|
|
170
176
|
return super().get_queryset().filter(new_user__is_active=True)
|
|
@@ -228,6 +234,9 @@ class Teacher(models.Model):
|
|
|
228
234
|
|
|
229
235
|
|
|
230
236
|
class SchoolTeacherInvitationModelManager(models.Manager):
|
|
237
|
+
def get_original_queryset(self):
|
|
238
|
+
return super().get_queryset()
|
|
239
|
+
|
|
231
240
|
# Filter out inactive invitations by default
|
|
232
241
|
def get_queryset(self):
|
|
233
242
|
return super().get_queryset().filter(is_active=True)
|
|
@@ -298,6 +307,9 @@ class ClassModelManager(models.Manager):
|
|
|
298
307
|
members.extend(c.students.all())
|
|
299
308
|
return members
|
|
300
309
|
|
|
310
|
+
def get_original_queryset(self):
|
|
311
|
+
return super().get_queryset()
|
|
312
|
+
|
|
301
313
|
# Filter out non active classes by default
|
|
302
314
|
def get_queryset(self):
|
|
303
315
|
return super().get_queryset().filter(is_active=True)
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codeforlife-portal
|
|
3
|
-
Version: 8.9.
|
|
3
|
+
Version: 8.9.7
|
|
4
4
|
Classifier: Programming Language :: Python
|
|
5
5
|
Classifier: Programming Language :: Python :: 3.12
|
|
6
6
|
Classifier: Framework :: Django
|
|
7
7
|
Description-Content-Type: text/markdown
|
|
8
8
|
License-File: LICENSE.md
|
|
9
9
|
Requires-Dist: amqp==5.3.1; python_version >= "3.6"
|
|
10
|
-
Requires-Dist: asgiref==3.9.
|
|
11
|
-
Requires-Dist: billiard==4.2.
|
|
10
|
+
Requires-Dist: asgiref==3.9.2; python_version >= "3.9"
|
|
11
|
+
Requires-Dist: billiard==4.2.2; python_version >= "3.7"
|
|
12
12
|
Requires-Dist: boto3==1.36.14; python_version >= "3.8"
|
|
13
13
|
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.
|
|
17
|
+
Requires-Dist: cfl-common==8.9.7
|
|
18
18
|
Requires-Dist: charset-normalizer==3.4.3; python_version >= "3.7"
|
|
19
|
-
Requires-Dist: click==8.
|
|
19
|
+
Requires-Dist: click==8.3.0; python_version >= "3.10"
|
|
20
20
|
Requires-Dist: click-didyoumean==0.3.1; python_full_version >= "3.6.2"
|
|
21
21
|
Requires-Dist: click-plugins==1.1.1.2
|
|
22
22
|
Requires-Dist: click-repl==0.3.0; python_version >= "3.6"
|
|
23
23
|
Requires-Dist: cryptography==44.0.1; python_version >= "3.7" and python_full_version not in "3.9.0, 3.9.1"
|
|
24
24
|
Requires-Dist: diff-match-patch==20241021; python_version >= "3.7"
|
|
25
|
-
Requires-Dist: django==5.1.
|
|
25
|
+
Requires-Dist: django==5.1.13; python_version >= "3.10"
|
|
26
26
|
Requires-Dist: django-classy-tags==4.1.0; python_version >= "3.8"
|
|
27
27
|
Requires-Dist: django-countries==7.6.1
|
|
28
28
|
Requires-Dist: django-csp==3.8
|
|
@@ -55,7 +55,7 @@ Requires-Dist: pillow==11.3.0; python_version >= "3.9"
|
|
|
55
55
|
Requires-Dist: prompt-toolkit==3.0.52; python_version >= "3.8"
|
|
56
56
|
Requires-Dist: psycopg2-binary==2.9.9; python_version >= "3.7"
|
|
57
57
|
Requires-Dist: pycparser==2.22; python_version >= "3.8"
|
|
58
|
-
Requires-Dist: pycurl==7.45.
|
|
58
|
+
Requires-Dist: pycurl==7.45.7
|
|
59
59
|
Requires-Dist: pyjwt==2.6.0; python_version >= "3.7"
|
|
60
60
|
Requires-Dist: pypng==0.20220715.0
|
|
61
61
|
Requires-Dist: python-dateutil==2.9.0.post0; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2"
|
|
@@ -74,28 +74,28 @@ Requires-Dist: tablib==3.7.0; python_version >= "3.9"
|
|
|
74
74
|
Requires-Dist: typing-extensions==4.15.0; python_version >= "3.9"
|
|
75
75
|
Requires-Dist: tzdata==2025.2; python_version >= "2"
|
|
76
76
|
Requires-Dist: urllib3==2.5.0
|
|
77
|
-
Requires-Dist: uvicorn==0.
|
|
77
|
+
Requires-Dist: uvicorn==0.37.0; python_version >= "3.9"
|
|
78
78
|
Requires-Dist: uvicorn-worker==0.2.0; python_version >= "3.8"
|
|
79
79
|
Requires-Dist: vine==5.1.0; python_version >= "3.6"
|
|
80
|
-
Requires-Dist: wcwidth==0.2.
|
|
80
|
+
Requires-Dist: wcwidth==0.2.14; python_version >= "3.6"
|
|
81
81
|
Requires-Dist: wheel==0.45.1; python_version >= "3.8"
|
|
82
82
|
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
|
-
Requires-Dist: asgiref==3.9.
|
|
85
|
+
Requires-Dist: asgiref==3.9.2; python_version >= "3.9" and extra == "dev"
|
|
86
86
|
Requires-Dist: asttokens==3.0.0; python_version >= "3.8" and extra == "dev"
|
|
87
|
-
Requires-Dist: attrs==25.
|
|
88
|
-
Requires-Dist: black==25.
|
|
87
|
+
Requires-Dist: attrs==25.4.0; python_version >= "3.9" and extra == "dev"
|
|
88
|
+
Requires-Dist: black==25.9.0; python_version >= "3.9" and extra == "dev"
|
|
89
89
|
Requires-Dist: certifi==2025.8.3; python_version >= "3.7" and extra == "dev"
|
|
90
90
|
Requires-Dist: cffi==1.17.1; platform_python_implementation != "PyPy" and extra == "dev"
|
|
91
|
-
Requires-Dist: cfl-common==8.9.
|
|
91
|
+
Requires-Dist: cfl-common==8.9.7; extra == "dev"
|
|
92
92
|
Requires-Dist: charset-normalizer==3.4.3; python_version >= "3.7" and extra == "dev"
|
|
93
|
-
Requires-Dist: click==8.
|
|
94
|
-
Requires-Dist: coverage[toml]==7.10.
|
|
93
|
+
Requires-Dist: click==8.3.0; python_version >= "3.10" and extra == "dev"
|
|
94
|
+
Requires-Dist: coverage[toml]==7.10.7; python_version >= "3.9" and extra == "dev"
|
|
95
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
96
|
Requires-Dist: decorator==5.2.1; python_version >= "3.8" and extra == "dev"
|
|
97
97
|
Requires-Dist: diff-match-patch==20241021; python_version >= "3.7" and extra == "dev"
|
|
98
|
-
Requires-Dist: django==5.1.
|
|
98
|
+
Requires-Dist: django==5.1.13; python_version >= "3.10" and extra == "dev"
|
|
99
99
|
Requires-Dist: django-countries==7.6.1; extra == "dev"
|
|
100
100
|
Requires-Dist: django-csp==3.8; extra == "dev"
|
|
101
101
|
Requires-Dist: django-formtools==2.5.1; python_version >= "3.8" and extra == "dev"
|
|
@@ -109,14 +109,14 @@ Requires-Dist: django-test-migrations==1.4.0; (python_version >= "3.9" and pytho
|
|
|
109
109
|
Requires-Dist: django-two-factor-auth==1.17.0; python_version >= "3.8" and extra == "dev"
|
|
110
110
|
Requires-Dist: djangorestframework==3.16.0; python_version >= "3.9" and extra == "dev"
|
|
111
111
|
Requires-Dist: execnet==2.1.1; python_version >= "3.8" and extra == "dev"
|
|
112
|
-
Requires-Dist: executing==2.2.
|
|
112
|
+
Requires-Dist: executing==2.2.1; python_version >= "3.8" and extra == "dev"
|
|
113
113
|
Requires-Dist: fastdiff==0.3.0; extra == "dev"
|
|
114
114
|
Requires-Dist: h11==0.16.0; python_version >= "3.8" and extra == "dev"
|
|
115
115
|
Requires-Dist: idna==3.10; python_version >= "3.6" and extra == "dev"
|
|
116
116
|
Requires-Dist: iniconfig==2.1.0; python_version >= "3.8" and extra == "dev"
|
|
117
|
-
Requires-Dist: ipython==9.
|
|
117
|
+
Requires-Dist: ipython==9.5.0; python_version >= "3.11" and extra == "dev"
|
|
118
118
|
Requires-Dist: ipython-pygments-lexers==1.1.1; python_version >= "3.8" and extra == "dev"
|
|
119
|
-
Requires-Dist: isort==6.0
|
|
119
|
+
Requires-Dist: isort==6.1.0; python_full_version >= "3.9.0" and extra == "dev"
|
|
120
120
|
Requires-Dist: jedi==0.19.2; python_version >= "3.6" and extra == "dev"
|
|
121
121
|
Requires-Dist: libsass==0.23.0; python_version >= "3.8" and extra == "dev"
|
|
122
122
|
Requires-Dist: matplotlib-inline==0.1.7; python_version >= "3.8" and extra == "dev"
|
|
@@ -126,11 +126,11 @@ Requires-Dist: numpy==2.3.2; python_version >= "3.11" and extra == "dev"
|
|
|
126
126
|
Requires-Dist: outcome==1.3.0.post0; python_version >= "3.7" and extra == "dev"
|
|
127
127
|
Requires-Dist: packaging==25.0; python_version >= "3.8" and extra == "dev"
|
|
128
128
|
Requires-Dist: pandas==2.3.2; python_version >= "3.9" and extra == "dev"
|
|
129
|
-
Requires-Dist: parso==0.8.
|
|
129
|
+
Requires-Dist: parso==0.8.5; python_version >= "3.6" and extra == "dev"
|
|
130
130
|
Requires-Dist: pathspec==0.12.1; python_version >= "3.8" and extra == "dev"
|
|
131
131
|
Requires-Dist: pexpect==4.9.0; (sys_platform != "win32" and sys_platform != "emscripten") and extra == "dev"
|
|
132
132
|
Requires-Dist: pgeocode==0.4.0; python_version >= "3.8" and extra == "dev"
|
|
133
|
-
Requires-Dist: platformdirs==4.
|
|
133
|
+
Requires-Dist: platformdirs==4.5.0; python_version >= "3.10" and extra == "dev"
|
|
134
134
|
Requires-Dist: pluggy==1.6.0; python_version >= "3.9" and extra == "dev"
|
|
135
135
|
Requires-Dist: prompt-toolkit==3.0.52; python_version >= "3.8" and extra == "dev"
|
|
136
136
|
Requires-Dist: ptyprocess==0.7.0; extra == "dev"
|
|
@@ -143,16 +143,17 @@ Requires-Dist: pypdf==5.1.0; python_version >= "3.8" and extra == "dev"
|
|
|
143
143
|
Requires-Dist: pypng==0.20220715.0; extra == "dev"
|
|
144
144
|
Requires-Dist: pysocks==1.7.1; extra == "dev"
|
|
145
145
|
Requires-Dist: pytest==8.4.2; python_version >= "3.9" and extra == "dev"
|
|
146
|
-
Requires-Dist: pytest-cov==
|
|
146
|
+
Requires-Dist: pytest-cov==7.0.0; python_version >= "3.9" and extra == "dev"
|
|
147
147
|
Requires-Dist: pytest-django==4.8.0; python_version >= "3.8" and extra == "dev"
|
|
148
|
-
Requires-Dist: pytest-mock==3.15.
|
|
148
|
+
Requires-Dist: pytest-mock==3.15.1; python_version >= "3.9" and extra == "dev"
|
|
149
149
|
Requires-Dist: pytest-order==1.3.0; python_version >= "3.7" and extra == "dev"
|
|
150
150
|
Requires-Dist: pytest-xdist==3.8.0; python_version >= "3.9" and extra == "dev"
|
|
151
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: pytokens==0.1.10; python_version >= "3.8" and extra == "dev"
|
|
152
153
|
Requires-Dist: pytz==2025.2; extra == "dev"
|
|
153
154
|
Requires-Dist: pyvirtualdisplay==3.0; extra == "dev"
|
|
154
155
|
Requires-Dist: qrcode==7.4.2; python_version >= "3.7" and extra == "dev"
|
|
155
|
-
Requires-Dist: rapid-router==7.6.
|
|
156
|
+
Requires-Dist: rapid-router==7.6.4; extra == "dev"
|
|
156
157
|
Requires-Dist: requests==2.32.5; python_version >= "3.9" and extra == "dev"
|
|
157
158
|
Requires-Dist: responses==0.18.0; python_version >= "3.7" and extra == "dev"
|
|
158
159
|
Requires-Dist: selenium==4.29.0; python_version >= "3.9" and extra == "dev"
|
|
@@ -166,15 +167,15 @@ Requires-Dist: stack-data==0.6.3; extra == "dev"
|
|
|
166
167
|
Requires-Dist: tablib==3.7.0; python_version >= "3.9" and extra == "dev"
|
|
167
168
|
Requires-Dist: termcolor==3.1.0; python_version >= "3.9" and extra == "dev"
|
|
168
169
|
Requires-Dist: traitlets==5.14.3; python_version >= "3.8" and extra == "dev"
|
|
169
|
-
Requires-Dist: trio==0.
|
|
170
|
+
Requires-Dist: trio==0.31.0; python_version >= "3.9" and extra == "dev"
|
|
170
171
|
Requires-Dist: trio-websocket==0.12.2; python_version >= "3.8" and extra == "dev"
|
|
171
172
|
Requires-Dist: typing-extensions==4.15.0; python_version >= "3.9" and extra == "dev"
|
|
172
173
|
Requires-Dist: tzdata==2025.2; python_version >= "2" and extra == "dev"
|
|
173
174
|
Requires-Dist: urllib3==2.5.0; extra == "dev"
|
|
174
175
|
Requires-Dist: wasmer==1.1.0; extra == "dev"
|
|
175
176
|
Requires-Dist: wasmer-compiler-cranelift==1.1.0; extra == "dev"
|
|
176
|
-
Requires-Dist: wcwidth==0.2.
|
|
177
|
-
Requires-Dist: websocket-client==1.
|
|
177
|
+
Requires-Dist: wcwidth==0.2.14; python_version >= "3.6" and extra == "dev"
|
|
178
|
+
Requires-Dist: websocket-client==1.9.0; python_version >= "3.9" and extra == "dev"
|
|
178
179
|
Requires-Dist: wheel==0.45.1; python_version >= "3.8" and extra == "dev"
|
|
179
180
|
Requires-Dist: wsproto==1.2.0; python_full_version >= "3.7.0" and extra == "dev"
|
|
180
181
|
Dynamic: classifier
|
|
@@ -6,7 +6,7 @@ cfl_common/common/apps.py,sha256=49UXZ3bSkFKvIEOL4zM7y1sAhccQJyRtsoOg5XVd_8Y,129
|
|
|
6
6
|
cfl_common/common/context_processors.py,sha256=X0iuX5qu9kMWa7q8osE9CJ2LgM7pPOYQFGdjm8X3rk0,236
|
|
7
7
|
cfl_common/common/csp_config.py,sha256=saeg9LbRr5xw7NDJPlt6fqi8Zz0vI8Rpc4VCS6oJNe8,2976
|
|
8
8
|
cfl_common/common/mail.py,sha256=pIRfUMVoJWxdv74UqToj_0_pTVTC51z6QlFVLI3QBOw,6874
|
|
9
|
-
cfl_common/common/models.py,sha256=
|
|
9
|
+
cfl_common/common/models.py,sha256=Qm-UHUR4Qbjn407HbA-YPFHQQk0qOZAsylukptnBXq0,19149
|
|
10
10
|
cfl_common/common/permissions.py,sha256=gC6RQGZI2QDBbglx-xr_V4Hl2C2nf1V2_uPmEuoEcJo,2416
|
|
11
11
|
cfl_common/common/utils.py,sha256=Nn2Npao9Uqad5Js_IdHwF-ow6wrPNpBLW4AO1LxoEBc,1727
|
|
12
12
|
cfl_common/common/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -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.
|
|
91
|
+
codeforlife_portal-8.9.7.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=DQkHGjS-NYIPTCOnCD7QBeV7rxTNdIGqdC-qfTuA5qU,6278
|
|
114
114
|
example_project/urls.py,sha256=FUTzHPlUS1O5kqMHjL5V4L552N2ln7uTDXcw9wjKUto,422
|
|
115
115
|
example_project/wsgi.py,sha256=U1W6WzZxZaIdYZ5tks7w9fqp5WS5qvn2iThsVcskrWw,829
|
|
116
|
-
portal/__init__.py,sha256=
|
|
116
|
+
portal/__init__.py,sha256=IeEuBSq7X9eSkMN64rmbHSWOHolF4GQc0qgz07MH-gg,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
|
|
@@ -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.
|
|
640
|
-
codeforlife_portal-8.9.
|
|
641
|
-
codeforlife_portal-8.9.
|
|
642
|
-
codeforlife_portal-8.9.
|
|
639
|
+
codeforlife_portal-8.9.7.dist-info/METADATA,sha256=K0Iu9dXrOTYtNhVjxnHpZU31ladilvC6AZMvdxmR_8U,14304
|
|
640
|
+
codeforlife_portal-8.9.7.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
|
|
641
|
+
codeforlife_portal-8.9.7.dist-info/top_level.txt,sha256=8e5pdsuIoTqEAMqpelHBjGjLbffcBtgOoggmd2q7nMw,41
|
|
642
|
+
codeforlife_portal-8.9.7.dist-info/RECORD,,
|
portal/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "8.9.
|
|
1
|
+
__version__ = "8.9.7"
|
|
File without changes
|
{codeforlife_portal-8.9.5.dist-info → codeforlife_portal-8.9.7.dist-info}/licenses/LICENSE.md
RENAMED
|
File without changes
|
|
File without changes
|