richie 2.32.0__py2.py3-none-any.whl → 2.32.1.dev4__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 richie might be problematic. Click here for more details.
- frontend/package.json +1 -1
- frontend/scss/colors/_theme.scss +6 -0
- frontend/scss/components/_index.scss +1 -0
- frontend/scss/components/templates/richie/slider/_slider.scss +142 -0
- frontend/scss/settings/_variables.scss +3 -0
- frontend/yarn.lock +22 -109
- richie/apps/courses/settings/__init__.py +1 -1
- richie/plugins/slider/__init__.py +0 -0
- richie/plugins/slider/cms_plugins.py +85 -0
- richie/plugins/slider/factories.py +33 -0
- richie/plugins/slider/forms.py +40 -0
- richie/plugins/slider/migrations/0001_initial.py +102 -0
- richie/plugins/slider/migrations/__init__.py +0 -0
- richie/plugins/slider/models.py +111 -0
- richie/plugins/slider/templates/richie/slider/slider.html +4 -0
- richie/static/richie/css/main.css +1 -1
- {richie-2.32.0.dist-info → richie-2.32.1.dev4.dist-info}/METADATA +1 -1
- {richie-2.32.0.dist-info → richie-2.32.1.dev4.dist-info}/RECORD +22 -13
- {richie-2.32.0.dist-info → richie-2.32.1.dev4.dist-info}/LICENSE +0 -0
- {richie-2.32.0.dist-info → richie-2.32.1.dev4.dist-info}/WHEEL +0 -0
- {richie-2.32.0.dist-info → richie-2.32.1.dev4.dist-info}/top_level.txt +0 -0
- {richie-2.32.0.dist-info → richie-2.32.1.dev4.dist-info}/zip-safe +0 -0
frontend/package.json
CHANGED
frontend/scss/colors/_theme.scss
CHANGED
|
@@ -151,6 +151,12 @@ $r-theme: (
|
|
|
151
151
|
primary-color: r-color('denim'),
|
|
152
152
|
secondary-color: r-color('white'),
|
|
153
153
|
),
|
|
154
|
+
slider-plugin: (
|
|
155
|
+
arrows-color: r-color('white'),
|
|
156
|
+
arrows-hover-color: r-color('firebrick6'),
|
|
157
|
+
index-color: r-color('charcoal'),
|
|
158
|
+
index-hover-color: r-color('black'),
|
|
159
|
+
),
|
|
154
160
|
blogpost-glimpse: (
|
|
155
161
|
card-background: r-color('white'),
|
|
156
162
|
title-color: r-color('black'),
|
|
@@ -60,6 +60,7 @@
|
|
|
60
60
|
@import './templates/courses/plugins/category_plugin';
|
|
61
61
|
@import './templates/courses/plugins/licence_plugin';
|
|
62
62
|
@import './templates/richie/simpletext/simpletext';
|
|
63
|
+
@import './templates/richie/slider/slider';
|
|
63
64
|
@import './templates/richie/section/section';
|
|
64
65
|
@import './templates/richie/large_banner/large_banner';
|
|
65
66
|
@import './templates/richie/large_banner/compacted_banner';
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
$r-slider-title-fontsize: $h1-font-size !default;
|
|
2
|
+
$r-slider-title-fontweight: $font-weight-bold !default;
|
|
3
|
+
$r-slider-title-fontfamily: $headings-font-family !default;
|
|
4
|
+
$r-slider-content-fontsize: $h4-font-size !default;
|
|
5
|
+
$r-slider-content-line-height: 1.1 !default;
|
|
6
|
+
|
|
7
|
+
.slider {
|
|
8
|
+
position: relative;
|
|
9
|
+
width: 100%;
|
|
10
|
+
// Reserved space for slide indexes
|
|
11
|
+
padding-bottom: 1.75rem;
|
|
12
|
+
|
|
13
|
+
&__items {
|
|
14
|
+
display: flex;
|
|
15
|
+
overflow-x: hidden;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
&__tools {
|
|
19
|
+
@include make-container-max-widths();
|
|
20
|
+
margin: 0 auto;
|
|
21
|
+
padding: 0;
|
|
22
|
+
display: flex;
|
|
23
|
+
justify-content: center;
|
|
24
|
+
align-content: center;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
&__next,
|
|
28
|
+
&__previous {
|
|
29
|
+
position: absolute;
|
|
30
|
+
top: 25%;
|
|
31
|
+
left: 0;
|
|
32
|
+
right: 0;
|
|
33
|
+
background: none;
|
|
34
|
+
border: 0;
|
|
35
|
+
|
|
36
|
+
svg {
|
|
37
|
+
width: 5rem;
|
|
38
|
+
height: 5rem;
|
|
39
|
+
color: r-theme-val(slider-plugin, arrows-color);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
&:hover {
|
|
43
|
+
svg {
|
|
44
|
+
color: r-theme-val(slider-plugin, arrows-hover-color);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
&__next {
|
|
50
|
+
left: auto;
|
|
51
|
+
right: 0;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
&__previous {
|
|
55
|
+
left: 0;
|
|
56
|
+
right: auto;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
&__indexes {
|
|
60
|
+
@include make-container-max-widths();
|
|
61
|
+
margin: 0 auto;
|
|
62
|
+
width: 100%;
|
|
63
|
+
padding: 0.5rem;
|
|
64
|
+
position: absolute;
|
|
65
|
+
bottom: 0;
|
|
66
|
+
display: flex;
|
|
67
|
+
justify-content: flex-end;
|
|
68
|
+
align-items: center;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
&__index {
|
|
72
|
+
@include sv-flex(1, 0, 1.9rem);
|
|
73
|
+
padding: 0;
|
|
74
|
+
height: 1rem;
|
|
75
|
+
background: transparent;
|
|
76
|
+
border: 0;
|
|
77
|
+
|
|
78
|
+
&::before {
|
|
79
|
+
content: '';
|
|
80
|
+
display: block;
|
|
81
|
+
height: 0.2rem;
|
|
82
|
+
background: r-theme-val(slider-plugin, index-color);
|
|
83
|
+
border: 0;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
&--active {
|
|
87
|
+
pointer-events: none;
|
|
88
|
+
|
|
89
|
+
&::before {
|
|
90
|
+
height: 0.5rem;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
&:hover {
|
|
95
|
+
&::before {
|
|
96
|
+
background: r-theme-val(slider-plugin, index-hover-color);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
&__index + &__index {
|
|
102
|
+
margin-left: 0.3rem;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.slider-item {
|
|
107
|
+
@include sv-flex(1, 0, 100%);
|
|
108
|
+
display: block;
|
|
109
|
+
color: inherit;
|
|
110
|
+
text-decoration: none;
|
|
111
|
+
|
|
112
|
+
// Disable any hover event on content since it can be in a link
|
|
113
|
+
&:hover,
|
|
114
|
+
*:hover {
|
|
115
|
+
color: inherit !important;
|
|
116
|
+
text-decoration: none !important;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
&__image {
|
|
120
|
+
display: block;
|
|
121
|
+
margin: 0 0 1rem 0;
|
|
122
|
+
width: 100%;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
&__container {
|
|
126
|
+
@include make-container-max-widths();
|
|
127
|
+
position: relative;
|
|
128
|
+
margin: 0 auto;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
&__title {
|
|
132
|
+
@include font-size($r-slider-title-fontsize);
|
|
133
|
+
font-family: $r-slider-title-fontfamily;
|
|
134
|
+
font-weight: $r-slider-title-fontweight;
|
|
135
|
+
margin: 0 0 0.5rem 0;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
&__content {
|
|
139
|
+
@include font-size($r-slider-content-fontsize);
|
|
140
|
+
line-height: $r-slider-content-line-height;
|
|
141
|
+
}
|
|
142
|
+
}
|
frontend/yarn.lock
CHANGED
|
@@ -3877,22 +3877,6 @@
|
|
|
3877
3877
|
resolved "https://registry.yarnpkg.com/@types/escodegen/-/escodegen-0.0.6.tgz#5230a9ce796e042cda6f086dbf19f22ea330659c"
|
|
3878
3878
|
integrity sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig==
|
|
3879
3879
|
|
|
3880
|
-
"@types/eslint-scope@^3.7.3":
|
|
3881
|
-
version "3.7.7"
|
|
3882
|
-
resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5"
|
|
3883
|
-
integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==
|
|
3884
|
-
dependencies:
|
|
3885
|
-
"@types/eslint" "*"
|
|
3886
|
-
"@types/estree" "*"
|
|
3887
|
-
|
|
3888
|
-
"@types/eslint@*":
|
|
3889
|
-
version "9.6.0"
|
|
3890
|
-
resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.0.tgz#51d4fe4d0316da9e9f2c80884f2c20ed5fb022ff"
|
|
3891
|
-
integrity sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==
|
|
3892
|
-
dependencies:
|
|
3893
|
-
"@types/estree" "*"
|
|
3894
|
-
"@types/json-schema" "*"
|
|
3895
|
-
|
|
3896
3880
|
"@types/eslint@9":
|
|
3897
3881
|
version "9.6.1"
|
|
3898
3882
|
resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.1.tgz#d5795ad732ce81715f27f75da913004a56751584"
|
|
@@ -3901,10 +3885,10 @@
|
|
|
3901
3885
|
"@types/estree" "*"
|
|
3902
3886
|
"@types/json-schema" "*"
|
|
3903
3887
|
|
|
3904
|
-
"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.
|
|
3905
|
-
version "1.0.
|
|
3906
|
-
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.
|
|
3907
|
-
integrity sha512
|
|
3888
|
+
"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.6":
|
|
3889
|
+
version "1.0.6"
|
|
3890
|
+
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50"
|
|
3891
|
+
integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==
|
|
3908
3892
|
|
|
3909
3893
|
"@types/estree@^0.0.51":
|
|
3910
3894
|
version "0.0.51"
|
|
@@ -4572,11 +4556,6 @@ acorn-globals@^7.0.0:
|
|
|
4572
4556
|
acorn "^8.1.0"
|
|
4573
4557
|
acorn-walk "^8.0.2"
|
|
4574
4558
|
|
|
4575
|
-
acorn-import-attributes@^1.9.5:
|
|
4576
|
-
version "1.9.5"
|
|
4577
|
-
resolved "https://registry.yarnpkg.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz#7eb1557b1ba05ef18b5ed0ec67591bfab04688ef"
|
|
4578
|
-
integrity sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==
|
|
4579
|
-
|
|
4580
4559
|
acorn-jsx@^5.3.1, acorn-jsx@^5.3.2:
|
|
4581
4560
|
version "5.3.2"
|
|
4582
4561
|
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
|
|
@@ -4599,10 +4578,10 @@ acorn@^7.4.1:
|
|
|
4599
4578
|
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
|
|
4600
4579
|
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
|
|
4601
4580
|
|
|
4602
|
-
acorn@^8.1.0, acorn@^8.11.0, acorn@^8.12.1, acorn@^8.
|
|
4603
|
-
version "8.
|
|
4604
|
-
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.
|
|
4605
|
-
integrity sha512-
|
|
4581
|
+
acorn@^8.1.0, acorn@^8.11.0, acorn@^8.12.1, acorn@^8.14.0, acorn@^8.4.1, acorn@^8.8.1, acorn@^8.8.2, acorn@^8.9.0:
|
|
4582
|
+
version "8.14.0"
|
|
4583
|
+
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0"
|
|
4584
|
+
integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==
|
|
4606
4585
|
|
|
4607
4586
|
agent-base@6:
|
|
4608
4587
|
version "6.0.2"
|
|
@@ -5070,27 +5049,7 @@ browser-assert@^1.2.1:
|
|
|
5070
5049
|
resolved "https://registry.yarnpkg.com/browser-assert/-/browser-assert-1.2.1.tgz#9aaa5a2a8c74685c2ae05bfe46efd606f068c200"
|
|
5071
5050
|
integrity sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==
|
|
5072
5051
|
|
|
5073
|
-
browserslist@^4.
|
|
5074
|
-
version "4.23.2"
|
|
5075
|
-
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.2.tgz#244fe803641f1c19c28c48c4b6ec9736eb3d32ed"
|
|
5076
|
-
integrity sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==
|
|
5077
|
-
dependencies:
|
|
5078
|
-
caniuse-lite "^1.0.30001640"
|
|
5079
|
-
electron-to-chromium "^1.4.820"
|
|
5080
|
-
node-releases "^2.0.14"
|
|
5081
|
-
update-browserslist-db "^1.1.0"
|
|
5082
|
-
|
|
5083
|
-
browserslist@^4.23.3:
|
|
5084
|
-
version "4.23.3"
|
|
5085
|
-
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.3.tgz#debb029d3c93ebc97ffbc8d9cbb03403e227c800"
|
|
5086
|
-
integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==
|
|
5087
|
-
dependencies:
|
|
5088
|
-
caniuse-lite "^1.0.30001646"
|
|
5089
|
-
electron-to-chromium "^1.5.4"
|
|
5090
|
-
node-releases "^2.0.18"
|
|
5091
|
-
update-browserslist-db "^1.1.0"
|
|
5092
|
-
|
|
5093
|
-
browserslist@^4.24.0:
|
|
5052
|
+
browserslist@^4.23.1, browserslist@^4.23.3, browserslist@^4.24.0:
|
|
5094
5053
|
version "4.24.0"
|
|
5095
5054
|
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.0.tgz#a1325fe4bc80b64fda169629fc01b3d6cecd38d4"
|
|
5096
5055
|
integrity sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==
|
|
@@ -5151,16 +5110,11 @@ camelcase@^6.2.0:
|
|
|
5151
5110
|
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
|
|
5152
5111
|
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
|
|
5153
5112
|
|
|
5154
|
-
caniuse-lite@^1.0.30001639
|
|
5113
|
+
caniuse-lite@^1.0.30001639:
|
|
5155
5114
|
version "1.0.30001643"
|
|
5156
5115
|
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001643.tgz#9c004caef315de9452ab970c3da71085f8241dbd"
|
|
5157
5116
|
integrity sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==
|
|
5158
5117
|
|
|
5159
|
-
caniuse-lite@^1.0.30001646:
|
|
5160
|
-
version "1.0.30001660"
|
|
5161
|
-
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001660.tgz#31218de3463fabb44d0b7607b652e56edf2e2355"
|
|
5162
|
-
integrity sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==
|
|
5163
|
-
|
|
5164
5118
|
caniuse-lite@^1.0.30001663:
|
|
5165
5119
|
version "1.0.30001667"
|
|
5166
5120
|
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz#99fc5ea0d9c6e96897a104a8352604378377f949"
|
|
@@ -5494,9 +5448,9 @@ create-require@^1.1.0:
|
|
|
5494
5448
|
integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
|
|
5495
5449
|
|
|
5496
5450
|
cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
|
|
5497
|
-
version "7.0.
|
|
5498
|
-
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.
|
|
5499
|
-
integrity sha512-
|
|
5451
|
+
version "7.0.6"
|
|
5452
|
+
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
|
|
5453
|
+
integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
|
|
5500
5454
|
dependencies:
|
|
5501
5455
|
path-key "^3.1.0"
|
|
5502
5456
|
shebang-command "^2.0.0"
|
|
@@ -5845,21 +5799,11 @@ ee-first@1.1.1:
|
|
|
5845
5799
|
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
|
|
5846
5800
|
integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
|
|
5847
5801
|
|
|
5848
|
-
electron-to-chromium@^1.4.820:
|
|
5849
|
-
version "1.5.2"
|
|
5850
|
-
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.2.tgz#6126ad229ce45e781ec54ca40db0504787f23d19"
|
|
5851
|
-
integrity sha512-kc4r3U3V3WLaaZqThjYz/Y6z8tJe+7K0bbjUVo3i+LWIypVdMx5nXCkwRe6SWbY6ILqLdc1rKcKmr3HoH7wjSQ==
|
|
5852
|
-
|
|
5853
5802
|
electron-to-chromium@^1.5.28:
|
|
5854
5803
|
version "1.5.34"
|
|
5855
5804
|
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.34.tgz#59f6eef987d2301d96d46b1bc4da913fe784baeb"
|
|
5856
5805
|
integrity sha512-/TZAiChbAflBNjCg+VvstbcwAtIL/VdMFO3NgRFIzBjpvPzWOTIbbO8kNb6RwU4bt9TP7K+3KqBKw/lOU+Y+GA==
|
|
5857
5806
|
|
|
5858
|
-
electron-to-chromium@^1.5.4:
|
|
5859
|
-
version "1.5.24"
|
|
5860
|
-
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.24.tgz#b3cd2f71b7a84bac340d862e3b7b0aadf48478de"
|
|
5861
|
-
integrity sha512-0x0wLCmpdKFCi9ulhvYZebgcPmHTkFVUfU2wzDykadkslKwT4oAmDTHEKLnlrDsMGZe4B+ksn8quZfZjYsBetA==
|
|
5862
|
-
|
|
5863
5807
|
emittery@^0.13.1:
|
|
5864
5808
|
version "0.13.1"
|
|
5865
5809
|
resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad"
|
|
@@ -5918,7 +5862,7 @@ enhanced-resolve@^0.9.1:
|
|
|
5918
5862
|
memory-fs "^0.2.0"
|
|
5919
5863
|
tapable "^0.1.8"
|
|
5920
5864
|
|
|
5921
|
-
enhanced-resolve@^5.17.
|
|
5865
|
+
enhanced-resolve@^5.17.1, enhanced-resolve@^5.7.0:
|
|
5922
5866
|
version "5.17.1"
|
|
5923
5867
|
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15"
|
|
5924
5868
|
integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==
|
|
@@ -8990,7 +8934,7 @@ node-int64@^0.4.0:
|
|
|
8990
8934
|
resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
|
|
8991
8935
|
integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==
|
|
8992
8936
|
|
|
8993
|
-
node-releases@^2.0.
|
|
8937
|
+
node-releases@^2.0.18:
|
|
8994
8938
|
version "2.0.18"
|
|
8995
8939
|
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f"
|
|
8996
8940
|
integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==
|
|
@@ -11278,48 +11222,17 @@ webpack-virtual-modules@^0.6.0, webpack-virtual-modules@^0.6.2:
|
|
|
11278
11222
|
resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz#057faa9065c8acf48f24cb57ac0e77739ab9a7e8"
|
|
11279
11223
|
integrity sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==
|
|
11280
11224
|
|
|
11281
|
-
webpack@5:
|
|
11282
|
-
version "5.
|
|
11283
|
-
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.
|
|
11284
|
-
integrity sha512-
|
|
11285
|
-
dependencies:
|
|
11286
|
-
"@types/eslint-scope" "^3.7.3"
|
|
11287
|
-
"@types/estree" "^1.0.5"
|
|
11288
|
-
"@webassemblyjs/ast" "^1.12.1"
|
|
11289
|
-
"@webassemblyjs/wasm-edit" "^1.12.1"
|
|
11290
|
-
"@webassemblyjs/wasm-parser" "^1.12.1"
|
|
11291
|
-
acorn "^8.7.1"
|
|
11292
|
-
acorn-import-attributes "^1.9.5"
|
|
11293
|
-
browserslist "^4.21.10"
|
|
11294
|
-
chrome-trace-event "^1.0.2"
|
|
11295
|
-
enhanced-resolve "^5.17.0"
|
|
11296
|
-
es-module-lexer "^1.2.1"
|
|
11297
|
-
eslint-scope "5.1.1"
|
|
11298
|
-
events "^3.2.0"
|
|
11299
|
-
glob-to-regexp "^0.4.1"
|
|
11300
|
-
graceful-fs "^4.2.11"
|
|
11301
|
-
json-parse-even-better-errors "^2.3.1"
|
|
11302
|
-
loader-runner "^4.2.0"
|
|
11303
|
-
mime-types "^2.1.27"
|
|
11304
|
-
neo-async "^2.6.2"
|
|
11305
|
-
schema-utils "^3.2.0"
|
|
11306
|
-
tapable "^2.1.1"
|
|
11307
|
-
terser-webpack-plugin "^5.3.10"
|
|
11308
|
-
watchpack "^2.4.1"
|
|
11309
|
-
webpack-sources "^3.2.3"
|
|
11310
|
-
|
|
11311
|
-
webpack@5.95.0:
|
|
11312
|
-
version "5.95.0"
|
|
11313
|
-
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.95.0.tgz#8fd8c454fa60dad186fbe36c400a55848307b4c0"
|
|
11314
|
-
integrity sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==
|
|
11225
|
+
webpack@5, webpack@5.96.0:
|
|
11226
|
+
version "5.96.0"
|
|
11227
|
+
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.96.0.tgz#1e4dc9d1d819ff1b1f89d53e45a299ffe9231a8a"
|
|
11228
|
+
integrity sha512-gvn84AfQ4f6vUeNWmFuRp3vGERyxK4epADKTaAo60K0EQbY/YBNQbXH3Ji/ZRK5M25O/XneAOuChF4xQZjQ4xA==
|
|
11315
11229
|
dependencies:
|
|
11316
|
-
"@types/estree" "^1.0.
|
|
11230
|
+
"@types/estree" "^1.0.6"
|
|
11317
11231
|
"@webassemblyjs/ast" "^1.12.1"
|
|
11318
11232
|
"@webassemblyjs/wasm-edit" "^1.12.1"
|
|
11319
11233
|
"@webassemblyjs/wasm-parser" "^1.12.1"
|
|
11320
|
-
acorn "^8.
|
|
11321
|
-
|
|
11322
|
-
browserslist "^4.21.10"
|
|
11234
|
+
acorn "^8.14.0"
|
|
11235
|
+
browserslist "^4.24.0"
|
|
11323
11236
|
chrome-trace-event "^1.0.2"
|
|
11324
11237
|
enhanced-resolve "^5.17.1"
|
|
11325
11238
|
es-module-lexer "^1.2.1"
|
|
@@ -114,7 +114,7 @@ CMS_PLACEHOLDER_CONF = {
|
|
|
114
114
|
# Homepage
|
|
115
115
|
"richie/homepage.html maincontent": {
|
|
116
116
|
"name": _("Main content"),
|
|
117
|
-
"plugins": ["LargeBannerPlugin", "SectionPlugin"],
|
|
117
|
+
"plugins": ["LargeBannerPlugin", "SectionPlugin", "SliderPlugin"],
|
|
118
118
|
"child_classes": {
|
|
119
119
|
"SectionPlugin": [
|
|
120
120
|
"BlogPostPlugin",
|
|
File without changes
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Slider CMS plugins
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from django.utils.translation import gettext_lazy as _
|
|
6
|
+
|
|
7
|
+
from cms.plugin_base import CMSPluginBase
|
|
8
|
+
from cms.plugin_pool import plugin_pool
|
|
9
|
+
|
|
10
|
+
from richie.apps.core.defaults import PLUGINS_GROUP
|
|
11
|
+
|
|
12
|
+
from .forms import SlideItemForm, SliderForm
|
|
13
|
+
from .models import SlideItem, Slider
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@plugin_pool.register_plugin
|
|
17
|
+
class SliderPlugin(CMSPluginBase):
|
|
18
|
+
"""
|
|
19
|
+
CMSPlugin to hold Slide plugin items.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
cache = True
|
|
23
|
+
module = PLUGINS_GROUP
|
|
24
|
+
name = _("Slider")
|
|
25
|
+
model = Slider
|
|
26
|
+
form = SliderForm
|
|
27
|
+
render_template = "richie/slider/slider.html"
|
|
28
|
+
allow_children = True
|
|
29
|
+
child_classes = ["SlideItemPlugin"]
|
|
30
|
+
fieldsets = ((None, {"fields": ["title"]}),)
|
|
31
|
+
|
|
32
|
+
def render(self, context, instance, placeholder):
|
|
33
|
+
context.update(
|
|
34
|
+
{
|
|
35
|
+
"instance": instance,
|
|
36
|
+
"placeholder": placeholder,
|
|
37
|
+
}
|
|
38
|
+
)
|
|
39
|
+
return context
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
@plugin_pool.register_plugin
|
|
43
|
+
class SlideItemPlugin(CMSPluginBase):
|
|
44
|
+
"""
|
|
45
|
+
CMSPlugin for slide item content.
|
|
46
|
+
"""
|
|
47
|
+
|
|
48
|
+
cache = True
|
|
49
|
+
module = PLUGINS_GROUP
|
|
50
|
+
name = _("Slide item")
|
|
51
|
+
model = SlideItem
|
|
52
|
+
form = SlideItemForm
|
|
53
|
+
render_template = "richie/slider/slide-item.html"
|
|
54
|
+
require_parent = True
|
|
55
|
+
parent_classes = ["SliderPlugin"]
|
|
56
|
+
fieldsets = [
|
|
57
|
+
(
|
|
58
|
+
None,
|
|
59
|
+
{
|
|
60
|
+
"fields": (
|
|
61
|
+
"title",
|
|
62
|
+
"image",
|
|
63
|
+
"content",
|
|
64
|
+
),
|
|
65
|
+
},
|
|
66
|
+
),
|
|
67
|
+
(
|
|
68
|
+
_("Link"),
|
|
69
|
+
{
|
|
70
|
+
"fields": (
|
|
71
|
+
"link_url",
|
|
72
|
+
"link_open_blank",
|
|
73
|
+
),
|
|
74
|
+
},
|
|
75
|
+
),
|
|
76
|
+
]
|
|
77
|
+
|
|
78
|
+
def render(self, context, instance, placeholder):
|
|
79
|
+
context.update(
|
|
80
|
+
{
|
|
81
|
+
"instance": instance,
|
|
82
|
+
"placeholder": placeholder,
|
|
83
|
+
}
|
|
84
|
+
)
|
|
85
|
+
return context
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Slider CMS plugin factories
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
import factory
|
|
6
|
+
|
|
7
|
+
from .models import SlideItem, Slider
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class SliderFactory(factory.django.DjangoModelFactory):
|
|
11
|
+
"""
|
|
12
|
+
Factory to create instance of a Slider.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
title = factory.Faker("text", max_nb_chars=20)
|
|
16
|
+
|
|
17
|
+
class Meta:
|
|
18
|
+
model = Slider
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class SlideItemFactory(factory.django.DjangoModelFactory):
|
|
22
|
+
"""
|
|
23
|
+
Factory to create instance of a SlideItem.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
title = factory.Faker("text", max_nb_chars=20)
|
|
27
|
+
content = factory.Faker("text", max_nb_chars=42)
|
|
28
|
+
image = factory.SubFactory("richie.apps.core.factories.FilerImageFactory")
|
|
29
|
+
link_url = factory.Faker("url")
|
|
30
|
+
link_open_blank = factory.Faker("pybool")
|
|
31
|
+
|
|
32
|
+
class Meta:
|
|
33
|
+
model = SlideItem
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Slider plugin forms
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from django import forms
|
|
6
|
+
|
|
7
|
+
from djangocms_text_ckeditor.widgets import TextEditorWidget
|
|
8
|
+
|
|
9
|
+
from .models import SlideItem, Slider
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class SliderForm(forms.ModelForm):
|
|
13
|
+
"""
|
|
14
|
+
Slider form used to fill its content from frontend admin.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
class Meta:
|
|
18
|
+
model = Slider
|
|
19
|
+
fields = [
|
|
20
|
+
"title",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class SlideItemForm(forms.ModelForm):
|
|
25
|
+
"""
|
|
26
|
+
SlideItem form used to fill its content from frontend admin.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
class Meta:
|
|
30
|
+
model = SlideItem
|
|
31
|
+
fields = [
|
|
32
|
+
"title",
|
|
33
|
+
"image",
|
|
34
|
+
"content",
|
|
35
|
+
"link_url",
|
|
36
|
+
"link_open_blank",
|
|
37
|
+
]
|
|
38
|
+
widgets = {
|
|
39
|
+
"content": TextEditorWidget,
|
|
40
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Generated by Django 4.2.16 on 2024-11-22 00:16
|
|
2
|
+
|
|
3
|
+
import django.db.models.deletion
|
|
4
|
+
from django.conf import settings
|
|
5
|
+
from django.db import migrations, models
|
|
6
|
+
|
|
7
|
+
import filer.fields.image
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Migration(migrations.Migration):
|
|
11
|
+
|
|
12
|
+
initial = True
|
|
13
|
+
|
|
14
|
+
dependencies = [
|
|
15
|
+
("cms", "0022_auto_20180620_1551"),
|
|
16
|
+
migrations.swappable_dependency(settings.FILER_IMAGE_MODEL),
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
operations = [
|
|
20
|
+
migrations.CreateModel(
|
|
21
|
+
name="Slider",
|
|
22
|
+
fields=[
|
|
23
|
+
(
|
|
24
|
+
"cmsplugin_ptr",
|
|
25
|
+
models.OneToOneField(
|
|
26
|
+
auto_created=True,
|
|
27
|
+
on_delete=django.db.models.deletion.CASCADE,
|
|
28
|
+
parent_link=True,
|
|
29
|
+
primary_key=True,
|
|
30
|
+
related_name="%(app_label)s_%(class)s",
|
|
31
|
+
serialize=False,
|
|
32
|
+
to="cms.cmsplugin",
|
|
33
|
+
),
|
|
34
|
+
),
|
|
35
|
+
("title", models.CharField(max_length=255, verbose_name="title")),
|
|
36
|
+
],
|
|
37
|
+
options={
|
|
38
|
+
"verbose_name": "Slider",
|
|
39
|
+
"verbose_name_plural": "Sliders",
|
|
40
|
+
},
|
|
41
|
+
bases=("cms.cmsplugin",),
|
|
42
|
+
),
|
|
43
|
+
migrations.CreateModel(
|
|
44
|
+
name="SlideItem",
|
|
45
|
+
fields=[
|
|
46
|
+
(
|
|
47
|
+
"cmsplugin_ptr",
|
|
48
|
+
models.OneToOneField(
|
|
49
|
+
auto_created=True,
|
|
50
|
+
on_delete=django.db.models.deletion.CASCADE,
|
|
51
|
+
parent_link=True,
|
|
52
|
+
primary_key=True,
|
|
53
|
+
related_name="%(app_label)s_%(class)s",
|
|
54
|
+
serialize=False,
|
|
55
|
+
to="cms.cmsplugin",
|
|
56
|
+
),
|
|
57
|
+
),
|
|
58
|
+
(
|
|
59
|
+
"title",
|
|
60
|
+
models.CharField(default="", max_length=150, verbose_name="title"),
|
|
61
|
+
),
|
|
62
|
+
(
|
|
63
|
+
"content",
|
|
64
|
+
models.TextField(blank=True, default="", verbose_name="content"),
|
|
65
|
+
),
|
|
66
|
+
(
|
|
67
|
+
"link_url",
|
|
68
|
+
models.URLField(
|
|
69
|
+
blank=True,
|
|
70
|
+
help_text="Make the slide as a link with an URL.",
|
|
71
|
+
max_length=255,
|
|
72
|
+
null=True,
|
|
73
|
+
verbose_name="link URL",
|
|
74
|
+
),
|
|
75
|
+
),
|
|
76
|
+
(
|
|
77
|
+
"link_open_blank",
|
|
78
|
+
models.BooleanField(
|
|
79
|
+
default=False,
|
|
80
|
+
help_text="If checked the link will be open in a new window",
|
|
81
|
+
verbose_name="open new window",
|
|
82
|
+
),
|
|
83
|
+
),
|
|
84
|
+
(
|
|
85
|
+
"image",
|
|
86
|
+
filer.fields.image.FilerImageField(
|
|
87
|
+
default=None,
|
|
88
|
+
null=True,
|
|
89
|
+
on_delete=django.db.models.deletion.SET_NULL,
|
|
90
|
+
related_name="slide_image",
|
|
91
|
+
to=settings.FILER_IMAGE_MODEL,
|
|
92
|
+
verbose_name="image",
|
|
93
|
+
),
|
|
94
|
+
),
|
|
95
|
+
],
|
|
96
|
+
options={
|
|
97
|
+
"verbose_name": "Slide item",
|
|
98
|
+
"verbose_name_plural": "Slide items",
|
|
99
|
+
},
|
|
100
|
+
bases=("cms.cmsplugin",),
|
|
101
|
+
),
|
|
102
|
+
]
|
|
File without changes
|