django-cms-qe 4.2.0__py3-none-any.whl → 4.4.0__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.
Binary file
@@ -122,7 +122,7 @@ msgstr "Obecná chyba"
122
122
 
123
123
  #: cms_qe/templates/cms_qe/internal_error.html:7
124
124
  msgid "Something went very wrong. Please try again later."
125
- msgstr ""
125
+ msgstr "Něco se nezdařilo. Prosím, zkuste to později."
126
126
 
127
127
  msgid ""
128
128
  "To log into the API, the user needs to have the access permission assigned. "
@@ -132,3 +132,15 @@ msgstr ""
132
132
  "Pro přihlášení do API je potřeba, aby uživatel měl přiděleno oprávnění "
133
133
  "ACCESS. Pro přístup k dalším záznamům v API je nutné, aby uživatel měl "
134
134
  "nastaveno oprávnění VIEW pro daný model."
135
+
136
+ msgid "Temporarily unavailable content"
137
+ msgstr "Dočasně nedostupný obsah"
138
+
139
+ msgid "This page is temporarily unavailable."
140
+ msgstr "Tato stránka je dočasně nedostupná."
141
+
142
+ msgid "Please try again later."
143
+ msgstr "Prosím, zkuste to později."
144
+
145
+ msgid "Thank you for your understanding."
146
+ msgstr "Děkujeme za pochopení."
@@ -57,6 +57,7 @@ INSTALLED_APPS = [
57
57
 
58
58
  # Other Django CMS's useful modules.
59
59
  'djangocms_googlemap',
60
+ 'djangocms_deleted_pages',
60
61
 
61
62
  # Django Filer's modules.
62
63
  'filer',
@@ -139,7 +139,7 @@ MAILCHIMP_CONSTANCE_CONFIG = (
139
139
  )),
140
140
  )
141
141
 
142
- REDIRECT_TO_PAGE = (
142
+ REDIRECT_TO_PAGE_CONFIG = (
143
143
  ('REDIRECT_TO_PAGE', (
144
144
  '',
145
145
  mark_safe('<div>Redirect to page from path <code>/redirect-to-page/</code>.</div>'
@@ -164,6 +164,14 @@ SECURITY_TXT_CONFIG = (
164
164
  ]),
165
165
  )
166
166
 
167
+ DELETED_PAGES_CONFIG = (
168
+ ('DELETED_PAGES_SLUG', (
169
+ 'deleted-pages',
170
+ 'The slug of the Trash can page.',
171
+ 'short_str'
172
+ )),
173
+ )
174
+
167
175
 
168
176
  CONSTANCE_CONFIG = OrderedDict(
169
177
  GOOGLE_ANALYTICS_CONSTANCE_CONFIG + # type: ignore
@@ -171,8 +179,9 @@ CONSTANCE_CONFIG = OrderedDict(
171
179
  PIWIK_CONSTANCE_CONFIG + # type: ignore
172
180
  DJANGOCMS_GOOGLEMAP_CONSTANCE_CONFIG + # type: ignore
173
181
  MAILCHIMP_CONSTANCE_CONFIG + # type: ignore
174
- REDIRECT_TO_PAGE + # type: ignore
175
- SECURITY_TXT_CONFIG # type: ignore
182
+ REDIRECT_TO_PAGE_CONFIG + # type: ignore
183
+ SECURITY_TXT_CONFIG + # type: ignore
184
+ DELETED_PAGES_CONFIG # type: ignore
176
185
  )
177
186
 
178
187
  CONSTANCE_CONFIG_FIELDSETS = {
@@ -181,8 +190,9 @@ CONSTANCE_CONFIG_FIELDSETS = {
181
190
  'Google tag manager options': dict(GOOGLE_TAG_MANAGER_CONSTANCE_CONFIG).keys(),
182
191
  'Piwik options': dict(PIWIK_CONSTANCE_CONFIG).keys(),
183
192
  'Mailchimp options': dict(MAILCHIMP_CONSTANCE_CONFIG).keys(),
184
- 'Redirect to page': dict(REDIRECT_TO_PAGE).keys(),
193
+ 'Redirect to page': dict(REDIRECT_TO_PAGE_CONFIG).keys(),
185
194
  'Security.txt': dict(SECURITY_TXT_CONFIG).keys(),
195
+ 'Deleted pages': dict(DELETED_PAGES_CONFIG).keys(),
186
196
  }
187
197
 
188
198
 
@@ -0,0 +1,209 @@
1
+ body {
2
+ margin: 0;
3
+ height: 100vh;
4
+ background-image: linear-gradient(to bottom right, transparent, #888);
5
+ font-size: .3vmin;
6
+ display: grid;
7
+ }
8
+
9
+ body .wrapper * {
10
+ position: absolute;
11
+ }
12
+
13
+ .content {
14
+ color: #aaa;
15
+ position: relative;
16
+ font-size: 8em;
17
+ margin-left: auto;
18
+ margin-right: auto;
19
+ text-align: center;
20
+ z-index: 1000;
21
+ }
22
+
23
+ .wrapper {
24
+ background-image: linear-gradient(to bottom left, #000, #1a1a1a, #363636);
25
+ position: absolute;
26
+ inset: 0;
27
+ display: grid;
28
+ animation: hue 2s ease-in-out infinite alternate;
29
+ }
30
+
31
+ @keyframes hue {
32
+ 0% {
33
+ filter: saturate(4) contrast(1.5) hue-rotate(180deg);
34
+ }
35
+ 100% {
36
+ filter: saturate(5) contrast(2) hue-rotate(360deg);
37
+ }
38
+ }
39
+
40
+ .scene {
41
+ place-self: center;
42
+ width: 100em;
43
+ aspect-ratio: 1;
44
+ perspective: 250em;
45
+ }
46
+
47
+ .scene * {
48
+ transform-style: preserve-3d;
49
+ }
50
+
51
+ .pivot, .starHedron {
52
+ inset: 0;
53
+ }
54
+
55
+ .pivot {
56
+ animation: wobble 8s ease-in-out alternate infinite;
57
+ }
58
+
59
+ @keyframes wobble {
60
+ 0% {
61
+ rotate: x -30deg;
62
+ }
63
+ 100% {
64
+ rotate: x 30deg;
65
+ }
66
+ }
67
+
68
+ .starHedron {
69
+ display: grid;
70
+ place-items: center;
71
+ animation: spin 9s linear infinite;
72
+ }
73
+
74
+ @keyframes spin {
75
+ 0% {
76
+ rotate: y 1deg;
77
+ }
78
+ 100% {
79
+ rotate: y 361deg;
80
+ }
81
+ }
82
+
83
+ .pentagon {
84
+ --pentaW: calc(sin(atan(1/(cos(36deg) + .5))) * 100);
85
+ width: calc(var(--pentaW)*1em);
86
+ aspect-ratio: 1;
87
+ --pushZ: calc(cos(atan(1/(cos(36deg) + .5))) * 50);
88
+ display: grid;
89
+ }
90
+
91
+ .pentagon::before, .triangle {
92
+ background-image: linear-gradient(23deg, #ffeeff02 20%, #eeffff28, #ffe1, #efea 85%);
93
+ background-size: 500% 500%;
94
+ animation: shimmer 1s linear alternate infinite;
95
+ }
96
+
97
+ .pentagon::before {
98
+ content: '';
99
+ position: absolute;
100
+ inset: 0;
101
+ clip-path: polygon(
102
+ calc(50%*(1 + sin(72deg*0))) calc(50%*(1 + cos(72deg*0))),
103
+ calc(50%*(1 + sin(72deg*1))) calc(50%*(1 + cos(72deg*1))),
104
+ calc(50%*(1 + sin(72deg*2))) calc(50%*(1 + cos(72deg*2))),
105
+ calc(50%*(1 + sin(72deg*3))) calc(50%*(1 + cos(72deg*3))),
106
+ calc(50%*(1 + sin(72deg*4))) calc(50%*(1 + cos(72deg*4))),
107
+
108
+ calc(50%*(1 + cos(36deg)*sin(72deg*4.5))) calc(50%*(1 + cos(36deg)*cos(72deg*4.5))),
109
+ calc(50%*(1 + cos(36deg)*sin(72deg*3.5))) calc(50%*(1 + cos(36deg)*cos(72deg*3.5))),
110
+ calc(50%*(1 + cos(36deg)*sin(72deg*2.5))) calc(50%*(1 + cos(36deg)*cos(72deg*2.5))),
111
+ calc(50%*(1 + cos(36deg)*sin(72deg*1.5))) calc(50%*(1 + cos(36deg)*cos(72deg*1.5))),
112
+ calc(50%*(1 + cos(36deg)*sin(72deg*.5))) calc(50%*(1 + cos(36deg)*cos(72deg*.5))),
113
+
114
+ calc(50%*(1 + cos(36deg)*sin(72deg*4.5))) calc(50%*(1 + cos(36deg)*cos(72deg*4.5)))
115
+ );
116
+ padding: 1px;
117
+ animation-delay: calc(-.415s*var(--step));
118
+ filter: hue-rotate(calc(var(--step)*61deg));
119
+ }
120
+
121
+ .side {
122
+ transform: rotateY(calc(72deg*var(--step))) rotateX(calc(atan(.5) + 90deg - (var(--dir)*90deg))) translateZ(calc(var(--pushZ)*1em))
123
+ }
124
+
125
+ .lid {
126
+ transform: rotateX(calc(90deg*var(--dir))) translateZ(calc(var(--pushZ)*1em)) rotate(36deg);
127
+ }
128
+
129
+ .pentagon:nth-child(1),
130
+ .pentagon:nth-child(2) {
131
+ --step: 0;
132
+ }
133
+
134
+ .pentagon:nth-child(3),
135
+ .pentagon:nth-child(4) {
136
+ --step: 1;
137
+ }
138
+
139
+ .pentagon:nth-child(5),
140
+ .pentagon:nth-child(6) {
141
+ --step: 2;
142
+ }
143
+
144
+ .pentagon:nth-child(7),
145
+ .pentagon:nth-child(8) {
146
+ --step: 3;
147
+ }
148
+
149
+ .pentagon:nth-child(9),
150
+ .pentagon:nth-child(10) {
151
+ --step: 4;
152
+ }
153
+
154
+ .pentagon:nth-child(11),
155
+ .pentagon:nth-child(12) {
156
+ --step: 5;
157
+ }
158
+
159
+ .pentagon:nth-child(odd) {
160
+ --dir: 1;
161
+ }
162
+
163
+ .pentagon:nth-child(even) {
164
+ --dir: -1;
165
+ }
166
+
167
+ .triangle {
168
+ top: 50%;
169
+ justify-self: center;
170
+ width: calc(cos(36deg)*sin(36deg)*var(--pentaW)*1em);
171
+ --baseH: calc(cos(36deg)*cos(36deg)*var(--pentaW)*.5);
172
+ --pyramidAngle: atan(.5);
173
+ height: calc(1/sin(var(--pyramidAngle)) * var(--baseH)*.5em);
174
+ clip-path: polygon(50% 0, 100% 100%, 0 100%);
175
+ transform-origin: 50% 0;
176
+ transform: translateZ(calc(tan(var(--pyramidAngle))*var(--baseH)*1em)) rotate(calc(var(--triStep)*72deg)) rotateX(calc(-1*(var(--pyramidAngle))));
177
+ animation-delay: calc(-.32s*var(--triStep) - .87s*var(--step));
178
+ filter: hue-rotate(calc(var(--triStep)*43deg) + var(--step)*67deg);
179
+ padding: 1px;
180
+ }
181
+
182
+ .triangle:nth-child(1) {
183
+ --triStep: 0;
184
+ }
185
+
186
+ .triangle:nth-child(2) {
187
+ --triStep: 1;
188
+ }
189
+
190
+ .triangle:nth-child(3) {
191
+ --triStep: 2;
192
+ }
193
+
194
+ .triangle:nth-child(4) {
195
+ --triStep: 3;
196
+ }
197
+
198
+ .triangle:nth-child(5) {
199
+ --triStep: 4;
200
+ }
201
+
202
+ @keyframes shimmer {
203
+ 0% {
204
+ background-position: top, left;
205
+ }
206
+ 100% {
207
+ background-position: bottom, right;
208
+ }
209
+ }
@@ -0,0 +1,111 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Temporarily unavailable content</title>
5
+ <link rel="stylesheet" href="/static/cms_qe/css/temporarily-unavailable-content.css">
6
+ </head>
7
+ <body>
8
+ <div class="content">
9
+ <h1>Temporarily unavailable content</h1>
10
+ <div class="message">
11
+ <div>This page is temporarily unavailable.</div>
12
+ <div>Please try again later.</div>
13
+ <div>Thank you for your understanding.</div>
14
+ </div>
15
+ </div>
16
+
17
+ <div class="wrapper">
18
+ <div class="scene">
19
+ <div class="pivot">
20
+ <div class="starHedron">
21
+ <div class="pentagon side">
22
+ <div class="triangle"></div>
23
+ <div class="triangle"></div>
24
+ <div class="triangle"></div>
25
+ <div class="triangle"></div>
26
+ <div class="triangle"></div>
27
+ </div>
28
+ <div class="pentagon side">
29
+ <div class="triangle"></div>
30
+ <div class="triangle"></div>
31
+ <div class="triangle"></div>
32
+ <div class="triangle"></div>
33
+ <div class="triangle"></div>
34
+ </div>
35
+ <div class="pentagon side">
36
+ <div class="triangle"></div>
37
+ <div class="triangle"></div>
38
+ <div class="triangle"></div>
39
+ <div class="triangle"></div>
40
+ <div class="triangle"></div>
41
+ </div>
42
+ <div class="pentagon side">
43
+ <div class="triangle"></div>
44
+ <div class="triangle"></div>
45
+ <div class="triangle"></div>
46
+ <div class="triangle"></div>
47
+ <div class="triangle"></div>
48
+ </div>
49
+ <div class="pentagon side">
50
+ <div class="triangle"></div>
51
+ <div class="triangle"></div>
52
+ <div class="triangle"></div>
53
+ <div class="triangle"></div>
54
+ <div class="triangle"></div>
55
+ </div>
56
+ <div class="pentagon side">
57
+ <div class="triangle"></div>
58
+ <div class="triangle"></div>
59
+ <div class="triangle"></div>
60
+ <div class="triangle"></div>
61
+ <div class="triangle"></div>
62
+ </div>
63
+ <div class="pentagon side">
64
+ <div class="triangle"></div>
65
+ <div class="triangle"></div>
66
+ <div class="triangle"></div>
67
+ <div class="triangle"></div>
68
+ <div class="triangle"></div>
69
+ </div>
70
+ <div class="pentagon side">
71
+ <div class="triangle"></div>
72
+ <div class="triangle"></div>
73
+ <div class="triangle"></div>
74
+ <div class="triangle"></div>
75
+ <div class="triangle"></div>
76
+ </div>
77
+ <div class="pentagon side">
78
+ <div class="triangle"></div>
79
+ <div class="triangle"></div>
80
+ <div class="triangle"></div>
81
+ <div class="triangle"></div>
82
+ <div class="triangle"></div>
83
+ </div>
84
+ <div class="pentagon side">
85
+ <div class="triangle"></div>
86
+ <div class="triangle"></div>
87
+ <div class="triangle"></div>
88
+ <div class="triangle"></div>
89
+ <div class="triangle"></div>
90
+ </div>
91
+ <div class="pentagon lid">
92
+ <div class="triangle"></div>
93
+ <div class="triangle"></div>
94
+ <div class="triangle"></div>
95
+ <div class="triangle"></div>
96
+ <div class="triangle"></div>
97
+ </div>
98
+ <div class="pentagon lid">
99
+ <div class="triangle"></div>
100
+ <div class="triangle"></div>
101
+ <div class="triangle"></div>
102
+ <div class="triangle"></div>
103
+ <div class="triangle"></div>
104
+ </div>
105
+ </div>
106
+ </div>
107
+ </div>
108
+ </div>
109
+
110
+ </body>
111
+ </html>
cms_qe/views/errors.py CHANGED
@@ -1,4 +1,5 @@
1
1
  import logging
2
+ import os
2
3
  from typing import Callable
3
4
 
4
5
  from cms.views import details
@@ -11,7 +12,8 @@ from django.views.decorators.csrf import requires_csrf_token
11
12
 
12
13
  from ..constants import QE_STATUS_CODE
13
14
 
14
- __all__ = ('handler403', 'handler404', 'handler500', 'handler503', 'get_error_handler')
15
+ __all__ = ('handler403', 'handler404', 'handler500', 'handler503', 'get_error_handler',
16
+ 'handler_temporarily_unavailable_content')
15
17
 
16
18
 
17
19
  def get_error_handler(code: int) -> Callable[[HttpRequest], HttpResponseBase]:
@@ -82,3 +84,27 @@ def handler500(request: HttpRequest) -> HttpResponseBase:
82
84
  logging.exception('Exception while rendering page 500')
83
85
  title, message = _('Internal error'), _('Something went very wrong. Please try again later.')
84
86
  return HttpResponse(f'<h1>{title}</h1><p>{message}</p>', status=500)
87
+
88
+
89
+ temporarily_unavailable_content: dict[str, str] = {}
90
+
91
+
92
+ @requires_csrf_token
93
+ def handler_temporarily_unavailable_content(request: HttpRequest) -> HttpResponse:
94
+ """
95
+ Specially designed page.
96
+ """
97
+ language_code = getattr(request, "LANGUAGE_CODE", "en")
98
+ if not temporarily_unavailable_content.get(language_code):
99
+ root = os.path.dirname(__file__)
100
+ defaultpath = os.path.join(root, '..', 'templates', 'cms_qe', 'temporarily_unavailable.html')
101
+ filepath = getattr(settings, "TEMPORARILY_UNAVAILABLE_PAGE_PATH", defaultpath)
102
+ # TEMPORARILY_UNAVAILABLE_PAGE_PATH = os.path.join(sysconfig.get_paths()["purelib"], "yoursite/templates/...")
103
+ with open(filepath, encoding="utf-8") as handle:
104
+ body = handle.read()
105
+ temporarily_unavailable_content[language_code] = body\
106
+ .replace("Temporarily unavailable content", _("Temporarily unavailable content"))\
107
+ .replace("This page is temporarily unavailable.", _("This page is temporarily unavailable."))\
108
+ .replace("Please try again later.", _("Please try again later."))\
109
+ .replace("Thank you for your understanding.", _("Thank you for your understanding."))
110
+ return HttpResponse(temporarily_unavailable_content[language_code], status=500)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-cms-qe
3
- Version: 4.2.0
3
+ Version: 4.4.0
4
4
  Summary: Django CMS Quick & Easy provides all important modules to run new page withouta lot of coding. Aims to do it very easily and securely.
5
5
  Home-page: https://websites.pages.nic.cz/django-cms-qe
6
6
  Author: CZ.NIC, z.s.p.o.
@@ -41,6 +41,7 @@ Requires-Dist: django-csp~=4.0
41
41
  Requires-Dist: django-import-export~=4.3
42
42
  Requires-Dist: django-tablib~=3.2
43
43
  Requires-Dist: djangocms-file~=3.0
44
+ Requires-Dist: djangocms-deleted-pages~=1.0
44
45
  Requires-Dist: djangocms-googlemap~=2.2
45
46
  Requires-Dist: djangocms-icon~=2.1
46
47
  Requires-Dist: djangocms-link~=5.1
@@ -46,8 +46,8 @@ cms_qe/haystack/forms.py,sha256=4FyieMfxfE6h2dcUaWAZJ18rEOAcnMVb2zLZ60iCbVA,912
46
46
  cms_qe/haystack/highlighting.py,sha256=VRECODAO-AGcdon2ggz-Epo41HGmReeUuQFrF_3Per8,3562
47
47
  cms_qe/haystack/inputs.py,sha256=GhgmgKRe74nGJvXSVUBy1_tFxop6NuguriVybddSunA,129
48
48
  cms_qe/haystack/query.py,sha256=bpxIcAOg_LVSa-st0ml-4Oa7gXb_NFMHj8iPCu5jui0,442
49
- cms_qe/locale/cs/LC_MESSAGES/django.mo,sha256=lCxKXPDs4MGTmLZZATWFng0_xKcjYrWn5CsHaKjlMIA,2287
50
- cms_qe/locale/cs/LC_MESSAGES/django.po,sha256=mCHLG1Fzo0kInNEuW5HzR9vxgaWs11me7Zh6gDJ2_Rk,4003
49
+ cms_qe/locale/cs/LC_MESSAGES/django.mo,sha256=MbTH9LCl4AeHZ7VJskWnRmEVDJKBLTbbGRxG3_91Cx8,3337
50
+ cms_qe/locale/cs/LC_MESSAGES/django.po,sha256=8sGdZZgVLqdrYrHd7PUp1XVaFY9wgpmwrgbh-Pj9llI,4374
51
51
  cms_qe/locale/en/LC_MESSAGES/django.mo,sha256=1Oza0kFTJYv1uLpu51-XbZShcMmsgRMPdKVmSFB0mZk,378
52
52
  cms_qe/locale/en/LC_MESSAGES/django.po,sha256=id9XCp1yVlWOBi37bDGlFVn26ao6mREpGWJI5iTbJH4,1924
53
53
  cms_qe/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -61,11 +61,11 @@ cms_qe/settings/__init__.py,sha256=GJwHXMHwMuGYE-3ZzePJ-26I2WwE8bAIMUDoiTFr0L8,9
61
61
  cms_qe/settings/dev.py,sha256=dKLpdibotQELoMjU-_HJlcsY30U5xM9KSONdsDW_Dq0,2168
62
62
  cms_qe/settings/unittest.py,sha256=folLIMJb1Arh60_Sn0eNQrvIlx0OsAs6v1tDfyRZVuQ,514
63
63
  cms_qe/settings/base/__init__.py,sha256=5yHfne9gPD_xuTaG3voZP23yzuCwROmif2mmKs-hG_A,446
64
- cms_qe/settings/base/app.py,sha256=rWkemCai4k6PBxcx9ga6ggF32lUUVyh30Vp_7QU22Rg,4469
64
+ cms_qe/settings/base/app.py,sha256=RnOope8cWN17AvYNE5RMEI8hbJKvbPPqmNdU_XgNo6E,4500
65
65
  cms_qe/settings/base/auth.py,sha256=OTr1LJ4RSMZm8STs4Q3pwPXmQoURax8OKLJ8eAj7PW4,395
66
66
  cms_qe/settings/base/cache.py,sha256=yBCvIIW25bSBD9nzVbPQvsPfw-pkOmcnLO7OPwzXPWo,337
67
67
  cms_qe/settings/base/cms.py,sha256=hzl10CwswfQJkIfn4WoFJUmoumwC2smhSl8IR4VxkLM,1990
68
- cms_qe/settings/base/constants.py,sha256=2lggnUhHesx5HKaz8kJ983JwHEPj4ZLoMfhgOqERPZY,8248
68
+ cms_qe/settings/base/constants.py,sha256=Bq2EwWbolE6Jf7Va89Zan2eEGhxNGhujNKvaU3E7qV0,8521
69
69
  cms_qe/settings/base/database.py,sha256=_i3OJMRcrcI17VJeqY66JNOpAOXkhq570lRi0RVpzGw,354
70
70
  cms_qe/settings/base/email.py,sha256=WkTj4V4lMZ3BG5AvHGPqulZ8T_cQMrvXiLj_NhLmpZs,576
71
71
  cms_qe/settings/base/env.py,sha256=Oe10oSrA7QlD9TBDnEup8mtNTd1pXyaO5OThtUW8UVQ,36
@@ -76,6 +76,7 @@ cms_qe/settings/base/search.py,sha256=Vp6ROmo2x3ZaMrnHhNBjR3dX_r7BvIkcG9CPXmlZhi
76
76
  cms_qe/settings/base/security.py,sha256=fLaVfmqdF6-IZ0oppnV3Xs6KGARx7u9fYvWMwRJA3LM,4557
77
77
  cms_qe/settings/base/template.py,sha256=bITmA7XkoqbDpefWWOBsEiPtCREzFfHkUuFvGxJVLK4,1082
78
78
  cms_qe/static/cms_qe/css/fix-djangocms-admin-style.css,sha256=sf_9yH_rKSts9L0OQ1vN5t32PTyjBuwfHZnDCN0GTX4,805
79
+ cms_qe/static/cms_qe/css/temporarily-unavailable-content.css,sha256=seLwIrLwx7G3pIsXT27e5HVU9fBS3yc6bw_h-q_MV4o,4381
79
80
  cms_qe/templates/base.html,sha256=Hb6MWA_IpBWlCyJ2NiPPQv0nSKOJgXSXS7y62-cHGUA,1094
80
81
  cms_qe/templates/pg_is_in_recovery_login.html,sha256=ng0snZ-rriwFRKVvG0ZCY5QsQbod7jex2pVJ3hVonc0,116
81
82
  cms_qe/templates/admin/index.html,sha256=6CjuqOPQnEYXa7zwyoLyDHt-zzfBwLAf45B0F80ryZ0,1812
@@ -85,6 +86,7 @@ cms_qe/templates/cms_qe/error.html,sha256=1wNCO-ToNoM-HBnfq0Id_W8m_epmOEYcoozRhh
85
86
  cms_qe/templates/cms_qe/home.html,sha256=zT4fnq9V6CsVkGXs_iFMGE4RvcMAeWvs4r0XTiHcLwA,114
86
87
  cms_qe/templates/cms_qe/internal_error.html,sha256=n4JJ80KNHyhiSxGLQadCn9KmctnFABcwLU4KuZly8A4,251
87
88
  cms_qe/templates/cms_qe/search_result.html,sha256=5XDX4nhRDkSJq_EdW95p8CuEN1Yy14OG9UC3WDz7TXI,310
89
+ cms_qe/templates/cms_qe/temporarily_unavailable.html,sha256=UApB9aITU1o7y0_wGr75k0bI-8INM_hl7pGhDXWdiEs,4255
88
90
  cms_qe/templates/cms_qe/include/body_bottom.html,sha256=t-B_SA2AFPmTC5hnDANyR9O9tmH3-hzGTLoRPi9lgIY,29
89
91
  cms_qe/templates/cms_qe/include/body_top.html,sha256=EjKqWSU_jeEKIPabZxTNxqoVXgwyfKfFIDn91dXFIJw,91
90
92
  cms_qe/templates/cms_qe/include/head.html,sha256=esYZKgL9VAue_YDT8rI7bKOjDiTFp4bwt8bE1UGNC70,109
@@ -98,7 +100,7 @@ cms_qe/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
98
100
  cms_qe/templatetags/cms_qe_filters.py,sha256=ciYCXLuMVde-f_-B_7a5mHfAJPWPMxYEUMgCHpualRY,784
99
101
  cms_qe/templatetags/kwacros.py,sha256=r2oHLltu8BgKKlrpgzXgvLjbIqwcrH13Lww3zTF-nr8,6275
100
102
  cms_qe/views/__init__.py,sha256=3b5FCZ5MaqgiWglC7c5mfvP3WYLWTtNp3YpVb9BgYi8,106
101
- cms_qe/views/errors.py,sha256=zUbCoyXy_MPsQv3UV1mgq-q2bwqPw9G4KgKU2-oue4w,3169
103
+ cms_qe/views/errors.py,sha256=KYjvYF1eo49s8qmDKttrwdX6wp05pcG4YGVNLy0fQHs,4527
102
104
  cms_qe/views/maintenance.py,sha256=Q410LCeeihRWhIJ-zzRpFSjfvA6xhgr6NJlNAoTNO2U,1658
103
105
  cms_qe/views/monitoring.py,sha256=1r2s_jm6B6P0gEmiqjH9m3loUW3BmJivvpg6qcUOxVM,1909
104
106
  cms_qe/views/redirect_to_page.py,sha256=2HeGxTIKQQcfXsafdDz9F1fDHKGAbpiq1qKBKMvDL70,806
@@ -3974,8 +3976,8 @@ cms_qe_video/templates/cms_qe/video/video_source_file.html,sha256=QJF5fs88s9Fznp
3974
3976
  cms_qe_video/templates/cms_qe/video/video_widget.html,sha256=Yumciq6bGlAYI1lYx5j9V6IF8QYrncNYygPTkXEz6Wk,925
3975
3977
  cms_qe_video/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3976
3978
  cms_qe_video/templatetags/cms_qe_video.py,sha256=NR_mGv91J0rEreZrQjCzaaXSrZsKvrSas12wMJ-Dg24,1168
3977
- django_cms_qe-4.2.0.dist-info/licenses/LICENSE,sha256=5wLaeUil0gfU9p8C4zn2Yu_PvZBNieUoYl0z9FcFWdA,1521
3978
- django_cms_qe-4.2.0.dist-info/METADATA,sha256=8KG2Og6RSiKpsypY_x35P3vKw4FdNsEznKd-XaXsyKE,6310
3979
- django_cms_qe-4.2.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
3980
- django_cms_qe-4.2.0.dist-info/top_level.txt,sha256=u9pqfoJfXwh29tMO7lnphA5yn7ChYZquFe7_sNtEiW8,150
3981
- django_cms_qe-4.2.0.dist-info/RECORD,,
3979
+ django_cms_qe-4.4.0.dist-info/licenses/LICENSE,sha256=5wLaeUil0gfU9p8C4zn2Yu_PvZBNieUoYl0z9FcFWdA,1521
3980
+ django_cms_qe-4.4.0.dist-info/METADATA,sha256=1W8JY0jZsyxNu5Fe2QIKHA8XZssZXzOhTd0z736VwWI,6354
3981
+ django_cms_qe-4.4.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
3982
+ django_cms_qe-4.4.0.dist-info/top_level.txt,sha256=u9pqfoJfXwh29tMO7lnphA5yn7ChYZquFe7_sNtEiW8,150
3983
+ django_cms_qe-4.4.0.dist-info/RECORD,,