django-cms-qe 4.3.0__py3-none-any.whl → 4.5.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í."
@@ -87,6 +87,8 @@ INSTALLED_APPS = [
87
87
  'djangocms_frontend.contrib.navigation',
88
88
  'djangocms_frontend.contrib.tabs',
89
89
  'djangocms_frontend.contrib.utilities',
90
+ # Other generic plugins
91
+ 'djangocms_render_context',
90
92
 
91
93
  # Other Django's modules.
92
94
  'axes',
@@ -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.3.0
3
+ Version: 4.5.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.
@@ -46,6 +46,7 @@ Requires-Dist: djangocms-googlemap~=2.2
46
46
  Requires-Dist: djangocms-icon~=2.1
47
47
  Requires-Dist: djangocms-link~=5.1
48
48
  Requires-Dist: djangocms-picture~=4.1
49
+ Requires-Dist: djangocms-render-context~=1.1
49
50
  Requires-Dist: python-environ~=0.4
50
51
  Requires-Dist: django-haystack~=3.3
51
52
  Requires-Dist: djangocms-aldryn-forms[captcha]~=8.3
@@ -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,7 +61,7 @@ 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=RnOope8cWN17AvYNE5RMEI8hbJKvbPPqmNdU_XgNo6E,4500
64
+ cms_qe/settings/base/app.py,sha256=BoNYXL-gOFesTtw4i6IO2eDPgE1tzZyCisO_9n_bv2I,4560
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
@@ -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.3.0.dist-info/licenses/LICENSE,sha256=5wLaeUil0gfU9p8C4zn2Yu_PvZBNieUoYl0z9FcFWdA,1521
3978
- django_cms_qe-4.3.0.dist-info/METADATA,sha256=83PwtSqFq7-ouc0Zz1HH7dwooBX0D3ymhEfg919vlyE,6354
3979
- django_cms_qe-4.3.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
3980
- django_cms_qe-4.3.0.dist-info/top_level.txt,sha256=u9pqfoJfXwh29tMO7lnphA5yn7ChYZquFe7_sNtEiW8,150
3981
- django_cms_qe-4.3.0.dist-info/RECORD,,
3979
+ django_cms_qe-4.5.0.dist-info/licenses/LICENSE,sha256=5wLaeUil0gfU9p8C4zn2Yu_PvZBNieUoYl0z9FcFWdA,1521
3980
+ django_cms_qe-4.5.0.dist-info/METADATA,sha256=flJkfof2GTuJ5SgrXWgZ7iEr8sKfjDXMuOR9s-ezPzg,6399
3981
+ django_cms_qe-4.5.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
3982
+ django_cms_qe-4.5.0.dist-info/top_level.txt,sha256=u9pqfoJfXwh29tMO7lnphA5yn7ChYZquFe7_sNtEiW8,150
3983
+ django_cms_qe-4.5.0.dist-info/RECORD,,