codeforlife-portal 8.6.1__py2.py3-none-any.whl → 8.6.2__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.1.dist-info → codeforlife_portal-8.6.2.dist-info}/METADATA +19 -58
- {codeforlife_portal-8.6.1.dist-info → codeforlife_portal-8.6.2.dist-info}/RECORD +9 -9
- example_project/portal_test_settings.py +32 -7
- example_project/settings.py +26 -6
- portal/__init__.py +1 -1
- portal/templates/portal/teach/class.html +1 -1
- {codeforlife_portal-8.6.1.dist-info → codeforlife_portal-8.6.2.dist-info}/WHEEL +0 -0
- {codeforlife_portal-8.6.1.dist-info → codeforlife_portal-8.6.2.dist-info}/licenses/LICENSE.md +0 -0
- {codeforlife_portal-8.6.1.dist-info → codeforlife_portal-8.6.2.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.2
|
|
4
4
|
Classifier: Programming Language :: Python
|
|
5
5
|
Classifier: Programming Language :: Python :: 3.12
|
|
6
6
|
Classifier: Framework :: Django
|
|
@@ -8,19 +8,19 @@ 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.2
|
|
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"
|
|
15
|
-
Requires-Dist: django==
|
|
15
|
+
Requires-Dist: django==5.1.8; python_version >= "3.10"
|
|
16
16
|
Requires-Dist: django-classy-tags==4.1.0; python_version >= "3.8"
|
|
17
17
|
Requires-Dist: django-countries==7.6.1
|
|
18
18
|
Requires-Dist: django-csp==3.8
|
|
19
19
|
Requires-Dist: django-formtools==2.5.1; python_version >= "3.8"
|
|
20
20
|
Requires-Dist: django-import-export==4.2.0; python_version >= "3.9"
|
|
21
|
-
Requires-Dist: django-otp==1.
|
|
21
|
+
Requires-Dist: django-otp==1.6.0; python_version >= "3.7"
|
|
22
22
|
Requires-Dist: django-phonenumber-field==8.0.0; python_version >= "3.8"
|
|
23
|
-
Requires-Dist: django-pipeline==
|
|
23
|
+
Requires-Dist: django-pipeline==4.0.0; python_version >= "3.9"
|
|
24
24
|
Requires-Dist: django-preventconcurrentlogins==0.8.2
|
|
25
25
|
Requires-Dist: django-ratelimit==3.0.1; python_version >= "3.4"
|
|
26
26
|
Requires-Dist: django-recaptcha==4.0.0
|
|
@@ -32,7 +32,7 @@ Requires-Dist: idna==3.10; python_version >= "3.6"
|
|
|
32
32
|
Requires-Dist: importlib-metadata==4.13.0; python_version >= "3.7"
|
|
33
33
|
Requires-Dist: libsass==0.23.0; python_version >= "3.8"
|
|
34
34
|
Requires-Dist: more-itertools==8.7.0; python_version >= "3.5"
|
|
35
|
-
Requires-Dist: numpy==2.2.
|
|
35
|
+
Requires-Dist: numpy==2.2.4; python_version >= "3.10"
|
|
36
36
|
Requires-Dist: pandas==2.2.3; python_version >= "3.9"
|
|
37
37
|
Requires-Dist: pgeocode==0.4.0; python_version >= "3.8"
|
|
38
38
|
Requires-Dist: phonenumbers==8.12.12
|
|
@@ -40,108 +40,69 @@ Requires-Dist: pillow==11.1.0; python_version >= "3.9"
|
|
|
40
40
|
Requires-Dist: pyjwt==2.6.0; python_version >= "3.7"
|
|
41
41
|
Requires-Dist: pypng==0.20220715.0
|
|
42
42
|
Requires-Dist: python-dateutil==2.9.0.post0; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3"
|
|
43
|
-
Requires-Dist: pytz==2025.
|
|
43
|
+
Requires-Dist: pytz==2025.2
|
|
44
44
|
Requires-Dist: pyyaml==6.0.2; python_version >= "3.8"
|
|
45
45
|
Requires-Dist: qrcode==7.4.2; python_version >= "3.7"
|
|
46
46
|
Requires-Dist: reportlab==4.2.5; python_version >= "3.7" and python_version < "4"
|
|
47
47
|
Requires-Dist: requests==2.32.3; python_version >= "3.8"
|
|
48
|
-
Requires-Dist: setuptools==
|
|
48
|
+
Requires-Dist: setuptools==78.1.0; python_version >= "3.9"
|
|
49
49
|
Requires-Dist: six==1.17.0; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3"
|
|
50
50
|
Requires-Dist: sqlparse==0.5.3; python_version >= "3.8"
|
|
51
51
|
Requires-Dist: tablib==3.7.0; python_version >= "3.9"
|
|
52
|
-
Requires-Dist: typing-extensions==4.
|
|
53
|
-
Requires-Dist: tzdata==2025.
|
|
52
|
+
Requires-Dist: typing-extensions==4.13.0; python_version >= "3.8"
|
|
53
|
+
Requires-Dist: tzdata==2025.2; python_version >= "2"
|
|
54
54
|
Requires-Dist: urllib3==2.3.0; python_version >= "3.9"
|
|
55
|
+
Requires-Dist: wheel==0.45.1; python_version >= "3.8"
|
|
55
56
|
Requires-Dist: zipp==3.21.0; python_version >= "3.9"
|
|
56
57
|
Provides-Extra: dev
|
|
57
58
|
Requires-Dist: asgiref==3.8.1; python_version >= "3.8" and extra == "dev"
|
|
58
|
-
Requires-Dist: asttokens==3.0.0; python_version >= "3.8" and extra == "dev"
|
|
59
59
|
Requires-Dist: attrs==25.3.0; python_version >= "3.8" and extra == "dev"
|
|
60
60
|
Requires-Dist: black==25.1.0; python_version >= "3.9" and extra == "dev"
|
|
61
61
|
Requires-Dist: certifi==2025.1.31; python_version >= "3.6" and extra == "dev"
|
|
62
|
-
Requires-Dist: cfl-common==8.6.1; extra == "dev"
|
|
63
62
|
Requires-Dist: charset-normalizer==3.4.1; python_version >= "3.7" and extra == "dev"
|
|
64
63
|
Requires-Dist: click==8.1.8; python_version >= "3.7" and extra == "dev"
|
|
65
|
-
Requires-Dist: coverage[toml]==7.
|
|
66
|
-
Requires-Dist:
|
|
67
|
-
Requires-Dist: diff-match-patch==20241021; python_version >= "3.7" and extra == "dev"
|
|
68
|
-
Requires-Dist: django==4.2.20; python_version >= "3.8" and extra == "dev"
|
|
69
|
-
Requires-Dist: django-countries==7.6.1; extra == "dev"
|
|
70
|
-
Requires-Dist: django-csp==3.8; extra == "dev"
|
|
71
|
-
Requires-Dist: django-formtools==2.5.1; python_version >= "3.8" and extra == "dev"
|
|
72
|
-
Requires-Dist: django-import-export==4.2.0; python_version >= "3.9" and extra == "dev"
|
|
73
|
-
Requires-Dist: django-otp==1.5.4; python_version >= "3.7" and extra == "dev"
|
|
74
|
-
Requires-Dist: django-phonenumber-field==8.0.0; python_version >= "3.8" and extra == "dev"
|
|
75
|
-
Requires-Dist: django-pipeline==3.1.0; extra == "dev"
|
|
64
|
+
Requires-Dist: coverage[toml]==7.8.0; python_version >= "3.9" and extra == "dev"
|
|
65
|
+
Requires-Dist: django==5.1.8; python_version >= "3.10" and extra == "dev"
|
|
76
66
|
Requires-Dist: django-reverse-js==0.1.7; python_version >= "3.10" and extra == "dev"
|
|
77
67
|
Requires-Dist: django-selenium-clean==1.0.1; extra == "dev"
|
|
78
68
|
Requires-Dist: django-test-migrations==1.4.0; (python_version >= "3.9" and python_version < "4.0") and extra == "dev"
|
|
79
|
-
Requires-Dist: django-two-factor-auth==1.17.0; python_version >= "3.8" and extra == "dev"
|
|
80
|
-
Requires-Dist: djangorestframework==3.15.2; python_version >= "3.8" and extra == "dev"
|
|
81
69
|
Requires-Dist: execnet==2.1.1; python_version >= "3.8" and extra == "dev"
|
|
82
|
-
Requires-Dist: executing==2.2.0; python_version >= "3.8" and extra == "dev"
|
|
83
70
|
Requires-Dist: fastdiff==0.3.0; extra == "dev"
|
|
84
71
|
Requires-Dist: h11==0.14.0; python_version >= "3.7" and extra == "dev"
|
|
85
72
|
Requires-Dist: idna==3.10; python_version >= "3.6" and extra == "dev"
|
|
86
|
-
Requires-Dist: iniconfig==2.
|
|
87
|
-
Requires-Dist: ipython==9.0.2; python_version >= "3.11" and extra == "dev"
|
|
88
|
-
Requires-Dist: ipython-pygments-lexers==1.1.1; python_version >= "3.8" and extra == "dev"
|
|
73
|
+
Requires-Dist: iniconfig==2.1.0; python_version >= "3.8" and extra == "dev"
|
|
89
74
|
Requires-Dist: isort==6.0.1; python_full_version >= "3.9.0" and extra == "dev"
|
|
90
|
-
Requires-Dist: jedi==0.19.2; python_version >= "3.6" and extra == "dev"
|
|
91
|
-
Requires-Dist: libsass==0.23.0; python_version >= "3.8" and extra == "dev"
|
|
92
|
-
Requires-Dist: matplotlib-inline==0.1.7; python_version >= "3.8" and extra == "dev"
|
|
93
|
-
Requires-Dist: more-itertools==8.7.0; python_version >= "3.5" and extra == "dev"
|
|
94
75
|
Requires-Dist: mypy-extensions==1.0.0; python_version >= "3.5" and extra == "dev"
|
|
95
|
-
Requires-Dist: numpy==2.2.3; python_version >= "3.10" and extra == "dev"
|
|
96
76
|
Requires-Dist: outcome==1.3.0.post0; python_version >= "3.7" and extra == "dev"
|
|
97
77
|
Requires-Dist: packaging==24.2; python_version >= "3.8" and extra == "dev"
|
|
98
|
-
Requires-Dist: pandas==2.2.3; python_version >= "3.9" and extra == "dev"
|
|
99
|
-
Requires-Dist: parso==0.8.4; python_version >= "3.6" and extra == "dev"
|
|
100
78
|
Requires-Dist: pathspec==0.12.1; python_version >= "3.8" and extra == "dev"
|
|
101
|
-
Requires-Dist:
|
|
102
|
-
Requires-Dist: pgeocode==0.4.0; python_version >= "3.8" and extra == "dev"
|
|
103
|
-
Requires-Dist: platformdirs==4.3.6; python_version >= "3.8" and extra == "dev"
|
|
79
|
+
Requires-Dist: platformdirs==4.3.7; python_version >= "3.9" and extra == "dev"
|
|
104
80
|
Requires-Dist: pluggy==1.5.0; python_version >= "3.8" and extra == "dev"
|
|
105
|
-
Requires-Dist: prompt-toolkit==3.0.50; python_full_version >= "3.8.0" and extra == "dev"
|
|
106
|
-
Requires-Dist: ptyprocess==0.7.0; extra == "dev"
|
|
107
|
-
Requires-Dist: pure-eval==0.2.3; extra == "dev"
|
|
108
|
-
Requires-Dist: pygments==2.19.1; python_version >= "3.8" and extra == "dev"
|
|
109
81
|
Requires-Dist: pyhamcrest==2.0.2; python_version >= "3.5" and extra == "dev"
|
|
110
|
-
Requires-Dist: pyjwt==2.6.0; python_version >= "3.7" and extra == "dev"
|
|
111
82
|
Requires-Dist: pypdf==5.1.0; python_version >= "3.8" and extra == "dev"
|
|
112
|
-
Requires-Dist: pypng==0.20220715.0; extra == "dev"
|
|
113
83
|
Requires-Dist: pysocks==1.7.1; extra == "dev"
|
|
114
84
|
Requires-Dist: pytest==8.3.5; python_version >= "3.8" and extra == "dev"
|
|
115
|
-
Requires-Dist: pytest-cov==6.
|
|
85
|
+
Requires-Dist: pytest-cov==6.1.0; python_version >= "3.9" and extra == "dev"
|
|
116
86
|
Requires-Dist: pytest-django==4.8.0; python_version >= "3.8" and extra == "dev"
|
|
117
87
|
Requires-Dist: pytest-mock==3.14.0; python_version >= "3.8" and extra == "dev"
|
|
118
88
|
Requires-Dist: pytest-order==1.3.0; python_version >= "3.7" and extra == "dev"
|
|
119
89
|
Requires-Dist: pytest-xdist==3.6.1; python_version >= "3.8" and extra == "dev"
|
|
120
|
-
Requires-Dist: python-dateutil==2.9.0.post0; (python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3") and extra == "dev"
|
|
121
|
-
Requires-Dist: pytz==2025.1; extra == "dev"
|
|
122
90
|
Requires-Dist: pyvirtualdisplay==3.0; extra == "dev"
|
|
123
|
-
Requires-Dist:
|
|
124
|
-
Requires-Dist: rapid-router==7.4.1; extra == "dev"
|
|
91
|
+
Requires-Dist: rapid-router==7.3.6; extra == "dev"
|
|
125
92
|
Requires-Dist: requests==2.32.3; python_version >= "3.8" and extra == "dev"
|
|
126
93
|
Requires-Dist: responses==0.18.0; python_version >= "3.7" and extra == "dev"
|
|
127
94
|
Requires-Dist: selenium==4.29.0; python_version >= "3.9" and extra == "dev"
|
|
128
|
-
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"
|
|
129
95
|
Requires-Dist: snapshottest==1.0.0a1; extra == "dev"
|
|
130
96
|
Requires-Dist: sniffio==1.3.1; python_version >= "3.7" and extra == "dev"
|
|
131
97
|
Requires-Dist: sortedcontainers==2.4.0; extra == "dev"
|
|
132
98
|
Requires-Dist: sqlparse==0.5.3; python_version >= "3.8" and extra == "dev"
|
|
133
|
-
Requires-Dist:
|
|
134
|
-
Requires-Dist: tablib==3.7.0; python_version >= "3.9" and extra == "dev"
|
|
135
|
-
Requires-Dist: termcolor==2.5.0; python_version >= "3.9" and extra == "dev"
|
|
136
|
-
Requires-Dist: traitlets==5.14.3; python_version >= "3.8" and extra == "dev"
|
|
99
|
+
Requires-Dist: termcolor==3.0.1; python_version >= "3.9" and extra == "dev"
|
|
137
100
|
Requires-Dist: trio==0.29.0; python_version >= "3.9" and extra == "dev"
|
|
138
101
|
Requires-Dist: trio-websocket==0.12.2; python_version >= "3.8" and extra == "dev"
|
|
139
|
-
Requires-Dist: typing-extensions==4.
|
|
140
|
-
Requires-Dist: tzdata==2025.1; python_version >= "2" and extra == "dev"
|
|
102
|
+
Requires-Dist: typing-extensions==4.13.0; python_version >= "3.8" and extra == "dev"
|
|
141
103
|
Requires-Dist: urllib3==2.3.0; python_version >= "3.9" and extra == "dev"
|
|
142
104
|
Requires-Dist: wasmer==1.1.0; extra == "dev"
|
|
143
105
|
Requires-Dist: wasmer-compiler-cranelift==1.1.0; extra == "dev"
|
|
144
|
-
Requires-Dist: wcwidth==0.2.13; extra == "dev"
|
|
145
106
|
Requires-Dist: websocket-client==1.8.0; python_version >= "3.8" and extra == "dev"
|
|
146
107
|
Requires-Dist: wsproto==1.2.0; python_full_version >= "3.7.0" and extra == "dev"
|
|
147
108
|
Dynamic: classifier
|
|
@@ -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.2.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
|
|
@@ -107,11 +107,11 @@ deploy/static/apple-touch-icon.png,sha256=QjNQ8jDKI4BpfMMsrs2t3H0fXHa5KHV45fK_VS
|
|
|
107
107
|
deploy/static/robots.txt,sha256=5cS4RITuQhbpNzvpk4AyDCXdlIBfmfCoBYRvCHY2VT8,24
|
|
108
108
|
deploy/templates/deploy/csrf_failure.html,sha256=-pBRPn4Y7nUdYHGpTHCokT9Boi-isuwuivF8V2K1SgM,412
|
|
109
109
|
example_project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
110
|
-
example_project/portal_test_settings.py,sha256=
|
|
111
|
-
example_project/settings.py,sha256=
|
|
110
|
+
example_project/portal_test_settings.py,sha256=1eTweQoCt1okixE5eoEg-f9iX7idSLNdJeQHO1Z_RH4,7631
|
|
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=hcrlnXfppsJwYIQ7twFAMd9cmK-pVAsCRmoxmu3wdHw,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
|
|
@@ -491,7 +491,7 @@ portal/templates/portal/play/student_join_organisation.html,sha256=05mbvmOryvMKU
|
|
|
491
491
|
portal/templates/portal/tag_manager/tag_manager_body.html,sha256=M_c9T2cfmVm6_GjtRBegqDn6mCgXbnJ6j7C73TMUf6Q,661
|
|
492
492
|
portal/templates/portal/tag_manager/tag_manager_head.html,sha256=kWQ4ccJ062cWRJOcfTNaWYTxCmzDsB9JD5v_YdyO5Ic,1288
|
|
493
493
|
portal/templates/portal/teach/base_registering.html,sha256=jpANyRQbsmWO404l9Mez91zolNP9ic1khWi27WW0FMQ,582
|
|
494
|
-
portal/templates/portal/teach/class.html,sha256=
|
|
494
|
+
portal/templates/portal/teach/class.html,sha256=hNhOHAPiXFGQ4zcl5qMVgNiqS3_ONMAVIvxZ1D26riM,6762
|
|
495
495
|
portal/templates/portal/teach/dashboard.html,sha256=DcY6rcUjAT9h6VbSIA3mq4fyCIATIlWYDH2qMU1LySg,32697
|
|
496
496
|
portal/templates/portal/teach/invited.html,sha256=lTsydONG5se1E099KaRgsxGuG12qVHxFUL2X0E3HBmQ,4188
|
|
497
497
|
portal/templates/portal/teach/onboarding_classes.html,sha256=K212dunXG7eByyCg5lhv4ne-SniMz3kcKXrfianIY6g,2872
|
|
@@ -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.2.dist-info/METADATA,sha256=kOFvRK_urBNoRSKyShwC_92noVBm-GAWKpOyJsBo7Hg,9176
|
|
639
|
+
codeforlife_portal-8.6.2.dist-info/WHEEL,sha256=MAQBAzGbXNI3bUmkDsiV_duv8i-gcdnLzw7cfUFwqhU,109
|
|
640
|
+
codeforlife_portal-8.6.2.dist-info/top_level.txt,sha256=8e5pdsuIoTqEAMqpelHBjGjLbffcBtgOoggmd2q7nMw,41
|
|
641
|
+
codeforlife_portal-8.6.2.dist-info/RECORD,,
|
|
@@ -18,7 +18,11 @@ headless_firefox_options.add_argument("--disable-dev-shm-usage")
|
|
|
18
18
|
SELENIUM_WEBDRIVERS = {
|
|
19
19
|
"default": {"callable": webdriver.Firefox, "args": (), "kwargs": {}},
|
|
20
20
|
"chrome": {"callable": webdriver.Chrome, "args": (), "kwargs": {}},
|
|
21
|
-
"firefox-headless": {
|
|
21
|
+
"firefox-headless": {
|
|
22
|
+
"callable": webdriver.Firefox,
|
|
23
|
+
"args": (),
|
|
24
|
+
"kwargs": {"options": headless_firefox_options},
|
|
25
|
+
},
|
|
22
26
|
}
|
|
23
27
|
|
|
24
28
|
SELENIUM_WIDTHS = [1624]
|
|
@@ -119,11 +123,17 @@ PIPELINE = {
|
|
|
119
123
|
"output_filename": "portal.css",
|
|
120
124
|
},
|
|
121
125
|
"popup": {
|
|
122
|
-
"source_filenames": (
|
|
126
|
+
"source_filenames": (
|
|
127
|
+
os.path.join(
|
|
128
|
+
BASE_DIR, "static/portal/sass/partials/_popup.scss"
|
|
129
|
+
),
|
|
130
|
+
),
|
|
123
131
|
"output_filename": "popup.css",
|
|
124
132
|
},
|
|
125
133
|
"game-scss": {
|
|
126
|
-
"source_filenames": (
|
|
134
|
+
"source_filenames": (
|
|
135
|
+
os.path.join(BASE_DIR, "static/game/sass/game.scss"),
|
|
136
|
+
),
|
|
127
137
|
"output_filename": "game.css",
|
|
128
138
|
},
|
|
129
139
|
},
|
|
@@ -131,14 +141,22 @@ PIPELINE = {
|
|
|
131
141
|
"SASS_ARGUMENTS": "--quiet",
|
|
132
142
|
}
|
|
133
143
|
|
|
144
|
+
|
|
134
145
|
STATICFILES_FINDERS = [
|
|
135
146
|
"pipeline.finders.PipelineFinder",
|
|
136
147
|
"django.contrib.staticfiles.finders.FileSystemFinder",
|
|
137
148
|
"django.contrib.staticfiles.finders.AppDirectoriesFinder",
|
|
138
149
|
]
|
|
139
|
-
|
|
150
|
+
|
|
140
151
|
DEFAULT_AUTO_FIELD = "django.db.models.AutoField"
|
|
141
152
|
|
|
153
|
+
STORAGES = {
|
|
154
|
+
"default": {"BACKEND": "django.core.files.storage.FileSystemStorage"},
|
|
155
|
+
"staticfiles": {
|
|
156
|
+
"BACKEND": "pipeline.storage.PipelineManifestStorage",
|
|
157
|
+
},
|
|
158
|
+
}
|
|
159
|
+
|
|
142
160
|
LANGUAGES = [("en-gb", "English")]
|
|
143
161
|
MESSAGE_STORAGE = "django.contrib.messages.storage.session.SessionStorage"
|
|
144
162
|
MIDDLEWARE = [
|
|
@@ -183,16 +201,23 @@ CLOUD_STORAGE_PREFIX = "https://storage.googleapis.com/codeforlife-assets/"
|
|
|
183
201
|
LOGGING = {
|
|
184
202
|
"version": 1,
|
|
185
203
|
"disable_existing_loggers": False,
|
|
186
|
-
"handlers": {
|
|
204
|
+
"handlers": {
|
|
205
|
+
"console": {"level": "DEBUG", "class": "logging.StreamHandler"}
|
|
206
|
+
},
|
|
187
207
|
"loggers": {"two_factor": {"handlers": ["console"], "level": "INFO"}},
|
|
188
208
|
}
|
|
189
209
|
RAPID_ROUTER_EARLY_ACCESS_FUNCTION_NAME = "portal.beta.has_beta_access"
|
|
190
210
|
SECURE_CONTENT_TYPE_NOSNIFF = True
|
|
191
211
|
SECURE_BROWSER_XSS_FILTER = True
|
|
192
212
|
SECURE_REFERRER_POLICY = "strict-origin-when-cross-origin"
|
|
193
|
-
CSRF_USE_SESSIONS =
|
|
213
|
+
CSRF_USE_SESSIONS = (
|
|
214
|
+
False # Setting to False to allow CSRF token to work in Cypress
|
|
215
|
+
)
|
|
194
216
|
RECAPTCHA_DOMAIN = "www.recaptcha.net"
|
|
195
|
-
AUTHENTICATION_BACKENDS = [
|
|
217
|
+
AUTHENTICATION_BACKENDS = [
|
|
218
|
+
"django.contrib.auth.backends.ModelBackend",
|
|
219
|
+
"portal.backends.StudentLoginBackend",
|
|
220
|
+
]
|
|
196
221
|
USE_TZ = True
|
|
197
222
|
PASSWORD_RESET_TIMEOUT_DAYS = 1
|
|
198
223
|
|
example_project/settings.py
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"""Django settings for example_project project."""
|
|
2
|
+
|
|
2
3
|
import os
|
|
3
4
|
|
|
4
5
|
DEBUG = True
|
|
@@ -77,11 +78,17 @@ PIPELINE = {
|
|
|
77
78
|
"output_filename": "portal.css",
|
|
78
79
|
},
|
|
79
80
|
"popup": {
|
|
80
|
-
"source_filenames": (
|
|
81
|
+
"source_filenames": (
|
|
82
|
+
os.path.join(
|
|
83
|
+
BASE_DIR, "static/portal/sass/partials/_popup.scss"
|
|
84
|
+
),
|
|
85
|
+
),
|
|
81
86
|
"output_filename": "popup.css",
|
|
82
87
|
},
|
|
83
88
|
"game-scss": {
|
|
84
|
-
"source_filenames": (
|
|
89
|
+
"source_filenames": (
|
|
90
|
+
os.path.join(BASE_DIR, "static/game/sass/game.scss"),
|
|
91
|
+
),
|
|
85
92
|
"output_filename": "game.css",
|
|
86
93
|
},
|
|
87
94
|
},
|
|
@@ -94,7 +101,15 @@ STATICFILES_FINDERS = [
|
|
|
94
101
|
"django.contrib.staticfiles.finders.FileSystemFinder",
|
|
95
102
|
"django.contrib.staticfiles.finders.AppDirectoriesFinder",
|
|
96
103
|
]
|
|
97
|
-
|
|
104
|
+
|
|
105
|
+
STORAGES = {
|
|
106
|
+
"default": {"BACKEND": "django.core.files.storage.FileSystemStorage"},
|
|
107
|
+
"staticfiles": {
|
|
108
|
+
"BACKEND": "pipeline.storage.PipelineManifestStorage",
|
|
109
|
+
},
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
|
|
98
113
|
DEFAULT_AUTO_FIELD = "django.db.models.AutoField"
|
|
99
114
|
|
|
100
115
|
LANGUAGES = [("en-gb", "English")]
|
|
@@ -132,7 +147,7 @@ TEMPLATES = [
|
|
|
132
147
|
"common.context_processors.cookie_management_enabled",
|
|
133
148
|
"portal.context_processors.process_newsletter_form",
|
|
134
149
|
]
|
|
135
|
-
}
|
|
150
|
+
},
|
|
136
151
|
}
|
|
137
152
|
]
|
|
138
153
|
|
|
@@ -141,7 +156,9 @@ CLOUD_STORAGE_PREFIX = "https://storage.googleapis.com/codeforlife-assets/"
|
|
|
141
156
|
LOGGING = {
|
|
142
157
|
"version": 1,
|
|
143
158
|
"disable_existing_loggers": False,
|
|
144
|
-
"handlers": {
|
|
159
|
+
"handlers": {
|
|
160
|
+
"console": {"level": "DEBUG", "class": "logging.StreamHandler"}
|
|
161
|
+
},
|
|
145
162
|
"loggers": {"two_factor": {"handlers": ["console"], "level": "INFO"}},
|
|
146
163
|
}
|
|
147
164
|
RAPID_ROUTER_EARLY_ACCESS_FUNCTION_NAME = "portal.beta.has_beta_access"
|
|
@@ -150,7 +167,10 @@ SECURE_BROWSER_XSS_FILTER = True
|
|
|
150
167
|
SECURE_REFERRER_POLICY = "strict-origin-when-cross-origin"
|
|
151
168
|
CSRF_USE_SESSIONS = True
|
|
152
169
|
RECAPTCHA_DOMAIN = "www.recaptcha.net"
|
|
153
|
-
AUTHENTICATION_BACKENDS = [
|
|
170
|
+
AUTHENTICATION_BACKENDS = [
|
|
171
|
+
"django.contrib.auth.backends.ModelBackend",
|
|
172
|
+
"portal.backends.StudentLoginBackend",
|
|
173
|
+
]
|
|
154
174
|
USE_TZ = True
|
|
155
175
|
PASSWORD_RESET_TIMEOUT_DAYS = 1
|
|
156
176
|
|
portal/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "8.6.
|
|
1
|
+
__version__ = "8.6.2"
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
{% block css %}
|
|
6
6
|
{{ block.super }}
|
|
7
|
-
<link href="
|
|
7
|
+
<link href="https://code.jquery.com/ui/1.13.1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css">
|
|
8
8
|
{% endblock css %}
|
|
9
9
|
|
|
10
10
|
{% block scripts %}
|
|
File without changes
|
{codeforlife_portal-8.6.1.dist-info → codeforlife_portal-8.6.2.dist-info}/licenses/LICENSE.md
RENAMED
|
File without changes
|
|
File without changes
|