imio.smartweb.core 1.2.48__py3-none-any.whl → 1.2.50__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.
- imio/smartweb/core/contents/rest/base.py +8 -6
- imio/smartweb/core/contents/rest/directory/endpoint.py +2 -2
- imio/smartweb/core/contents/rest/events/endpoint.py +2 -2
- imio/smartweb/core/contents/rest/news/endpoint.py +2 -2
- imio/smartweb/core/tests/test_rest.py +16 -16
- imio/smartweb/core/webcomponents/build/css/373.smartweb-webcomponents-compiled.css +1 -1
- imio/smartweb/core/webcomponents/build/css/420.smartweb-webcomponents-compiled.css +1 -0
- imio/smartweb/core/webcomponents/build/css/486.smartweb-webcomponents-compiled.css +1 -1
- imio/smartweb/core/webcomponents/build/css/884.smartweb-webcomponents-compiled.css +1 -1
- imio/smartweb/core/webcomponents/build/css/smartweb-webcomponents-compiled.css +1 -1
- imio/smartweb/core/webcomponents/build/js/373.smartweb-webcomponents-compiled.js +1 -1
- imio/smartweb/core/webcomponents/build/js/486.smartweb-webcomponents-compiled.js +1 -1
- imio/smartweb/core/webcomponents/build/js/884.smartweb-webcomponents-compiled.js +1 -1
- imio/smartweb/core/webcomponents/build/js/919.smartweb-webcomponents-compiled.js +1 -1
- imio/smartweb/core/webcomponents/build/js/smartweb-webcomponents-compiled.js +1 -1
- imio/smartweb/core/webcomponents/package.json +1 -0
- imio/smartweb/core/webcomponents/src/components/Annuaire/Annuaire.jsx +12 -1
- imio/smartweb/core/webcomponents/src/components/Annuaire/Annuaire.scss +10 -0
- imio/smartweb/core/webcomponents/src/components/Annuaire/ContactCard/ContactCard.jsx +5 -5
- imio/smartweb/core/webcomponents/src/components/Annuaire/ContactContent/ContactContent.jsx +2 -2
- imio/smartweb/core/webcomponents/src/components/Events/EventCard/EventCard.jsx +1 -1
- imio/smartweb/core/webcomponents/src/components/Events/EventContent/EventContent.jsx +86 -23
- imio/smartweb/core/webcomponents/src/components/Events/Events.jsx +13 -2
- imio/smartweb/core/webcomponents/src/components/Events/Events.scss +27 -1
- imio/smartweb/core/webcomponents/src/components/Events/Filters/Filter.jsx +1 -1
- imio/smartweb/core/webcomponents/src/components/Filters/DateFilter.jsx +1 -2
- imio/smartweb/core/webcomponents/src/components/Filters/MainFilter.scss +14 -4
- imio/smartweb/core/webcomponents/src/components/News/Filters/Filter.jsx +15 -3
- imio/smartweb/core/webcomponents/src/components/News/News.jsx +12 -2
- imio/smartweb/core/webcomponents/src/components/News/NewsContent/NewsContent.jsx +2 -2
- imio/smartweb/core/webcomponents/src/index.scss +14 -3
- imio/smartweb/core/webcomponents/src/utils/Map.jsx +2 -2
- imio/smartweb/core/webcomponents/src/utils/translation.js +12 -0
- imio.smartweb.core-1.2.50-py3.11-nspkg.pth +2 -0
- {imio.smartweb.core-1.2.48.dist-info → imio.smartweb.core-1.2.50.dist-info}/METADATA +20 -3
- {imio.smartweb.core-1.2.48.dist-info → imio.smartweb.core-1.2.50.dist-info}/RECORD +41 -40
- {imio.smartweb.core-1.2.48.dist-info → imio.smartweb.core-1.2.50.dist-info}/WHEEL +1 -1
- imio.smartweb.core-1.2.48-py3.10-nspkg.pth +0 -3
- {imio.smartweb.core-1.2.48.dist-info → imio.smartweb.core-1.2.50.dist-info}/LICENSE.GPL +0 -0
- {imio.smartweb.core-1.2.48.dist-info → imio.smartweb.core-1.2.50.dist-info}/LICENSE.rst +0 -0
- {imio.smartweb.core-1.2.48.dist-info → imio.smartweb.core-1.2.50.dist-info}/namespace_packages.txt +0 -0
- {imio.smartweb.core-1.2.48.dist-info → imio.smartweb.core-1.2.50.dist-info}/top_level.txt +0 -0
@@ -110,7 +110,7 @@ function AnnuaireView(props) {
|
|
110
110
|
height: filterRef.current.clientHeight,
|
111
111
|
});
|
112
112
|
setHeaderHeight(filterRef.current.offsetTop);
|
113
|
-
}, [
|
113
|
+
}, [response]);
|
114
114
|
|
115
115
|
// coditional list render
|
116
116
|
let listRender;
|
@@ -170,6 +170,17 @@ function AnnuaireView(props) {
|
|
170
170
|
<div className="r-add-contact">
|
171
171
|
<a target="_blank" rel="noreferrer" href={props.proposeUrl}>
|
172
172
|
<Translate text="Proposer un contact" />
|
173
|
+
<svg
|
174
|
+
xmlns="http://www.w3.org/2000/svg"
|
175
|
+
width="16"
|
176
|
+
height="16"
|
177
|
+
fill="currentColor"
|
178
|
+
className="bi bi-plus-circle"
|
179
|
+
viewBox="0 0 16 16"
|
180
|
+
>
|
181
|
+
<path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16" />
|
182
|
+
<path d="M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4" />
|
183
|
+
</svg>
|
173
184
|
</a>
|
174
185
|
</div>
|
175
186
|
)}
|
@@ -113,11 +113,11 @@ const ContactCard = ({ item }) => {
|
|
113
113
|
: ""}
|
114
114
|
</div>
|
115
115
|
<div className="topics">
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
116
|
+
{topics
|
117
|
+
? topics.slice(0, 3).map((mail, i) => {
|
118
|
+
return <span key={i}>{mail.title}</span>;
|
119
|
+
})
|
120
|
+
: ""}
|
121
121
|
</div>
|
122
122
|
</div>
|
123
123
|
</div>
|
@@ -176,7 +176,7 @@ const ContactContent = ({ queryUrl, onChange }) => {
|
|
176
176
|
width="16"
|
177
177
|
height="16"
|
178
178
|
fill="currentColor"
|
179
|
-
|
179
|
+
className="bi bi-clock-fill"
|
180
180
|
viewBox="0 0 16 16"
|
181
181
|
>
|
182
182
|
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M8 3.5a.5.5 0 0 0-1 0V9a.5.5 0 0 0 .252.434l3.5 2a.5.5 0 0 0 .496-.868L8 8.71z" />
|
@@ -199,7 +199,7 @@ const ContactContent = ({ queryUrl, onChange }) => {
|
|
199
199
|
width="10"
|
200
200
|
height="10"
|
201
201
|
fill="currentColor"
|
202
|
-
|
202
|
+
className="bi bi-caret-down-fill"
|
203
203
|
viewBox="0 0 16 16"
|
204
204
|
>
|
205
205
|
<path d="M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z" />
|
@@ -34,7 +34,7 @@ const ContactCard = ({ item, showCategoriesOrTopics }) => {
|
|
34
34
|
)}
|
35
35
|
<span className="r-item-title">{title}</span>
|
36
36
|
{showCategoriesOrTopics === "topic" ? (
|
37
|
-
item.topics[0] && (
|
37
|
+
item.topics && item.topics[0] && (
|
38
38
|
<span className="r-item-categorie">{item.topics[0].title}</span>
|
39
39
|
)
|
40
40
|
) : showCategoriesOrTopics === "category" ? (
|
@@ -9,11 +9,13 @@ import "../../../../node_modules/flexbin/flexbin.css";
|
|
9
9
|
import { Translate } from "react-translated";
|
10
10
|
import queryString from "query-string";
|
11
11
|
|
12
|
-
const ContactContent = ({ queryUrl, onChange }) => {
|
12
|
+
const ContactContent = ({ queryUrl, onChange, onlyPastEvents }) => {
|
13
13
|
let navigate = useNavigate();
|
14
14
|
const { u, ...parsed } = Object.assign({
|
15
15
|
UID: queryString.parse(useFilterQuery().toString())["u"],
|
16
16
|
fullobjects: 1,
|
17
|
+
"event_dates.query": moment().format("YYYY-MM-DD"),
|
18
|
+
"event_dates.range": onlyPastEvents === "True" ? "max" : "min",
|
17
19
|
});
|
18
20
|
const [params, setParams] = useState(parsed);
|
19
21
|
const [item, setitem] = useState({});
|
@@ -44,7 +46,11 @@ const ContactContent = ({ queryUrl, onChange }) => {
|
|
44
46
|
// set recurrence
|
45
47
|
if (response.items.length > 1) {
|
46
48
|
response.items.map((item, i) => {
|
47
|
-
|
49
|
+
const currentDate = new Date();
|
50
|
+
const itemDate = new Date(item.start);
|
51
|
+
if (itemDate >= currentDate) {
|
52
|
+
setRecurence((prevRecurrence) => [...prevRecurrence, item.start]);
|
53
|
+
}
|
48
54
|
});
|
49
55
|
} else {
|
50
56
|
setRecurence(null);
|
@@ -117,8 +123,19 @@ const ContactContent = ({ queryUrl, onChange }) => {
|
|
117
123
|
<Translate text="Retour" />
|
118
124
|
</button>
|
119
125
|
<article>
|
120
|
-
<header>
|
126
|
+
<header className="r-content-header">
|
121
127
|
<h2 className="r-content-title">{item.title}</h2>
|
128
|
+
{item.local_category ? (
|
129
|
+
<span className="r-content-title-cat">{item.local_category.title}</span>
|
130
|
+
) : (
|
131
|
+
""
|
132
|
+
)}
|
133
|
+
{item.category ? (
|
134
|
+
<span className="r-content-title-cat">{item.category.title}</span>
|
135
|
+
) : (
|
136
|
+
""
|
137
|
+
)}
|
138
|
+
<span></span>
|
122
139
|
</header>
|
123
140
|
<figure>
|
124
141
|
<div
|
@@ -236,9 +253,33 @@ const ContactContent = ({ queryUrl, onChange }) => {
|
|
236
253
|
aria-expanded="false"
|
237
254
|
>
|
238
255
|
<p>
|
239
|
-
{
|
256
|
+
{item.whole_day ? (
|
257
|
+
moment(futureDates[0]).format("DD-MM-YYYY")
|
258
|
+
) : (
|
259
|
+
<>
|
260
|
+
{moment(futureDates[0]).format("DD-MM-YYYY")}
|
261
|
+
<div className="r-content-recur-start-hours">
|
262
|
+
<span>
|
263
|
+
<Translate text="de" />
|
264
|
+
|
265
|
+
</span>
|
266
|
+
<div className="r-time-hours">
|
267
|
+
{startHours}
|
268
|
+
</div>
|
269
|
+
<span>
|
270
|
+
|
271
|
+
<Translate text="à" />
|
272
|
+
|
273
|
+
</span>
|
274
|
+
<div className="r-time-hours">
|
275
|
+
{endHours}
|
276
|
+
</div>
|
277
|
+
</div>
|
278
|
+
</>
|
279
|
+
)}
|
240
280
|
<span className="recurence-schedul-more">
|
241
|
-
Prochaines dates
|
281
|
+
Prochaines dates
|
282
|
+
<i class="bi bi-arrow-down-short"></i>
|
242
283
|
</span>
|
243
284
|
</p>
|
244
285
|
<div
|
@@ -248,11 +289,12 @@ const ContactContent = ({ queryUrl, onChange }) => {
|
|
248
289
|
: "recurence-modal-hide"
|
249
290
|
}
|
250
291
|
>
|
251
|
-
<span>Prochaines dates</span>
|
252
292
|
<ul>
|
253
293
|
{futureDates.map((date, i) => {
|
254
294
|
return (
|
255
|
-
<li
|
295
|
+
<li key={i}>
|
296
|
+
{moment(date).format("DD-MM-YYYY")}
|
297
|
+
</li>
|
256
298
|
);
|
257
299
|
})}
|
258
300
|
</ul>
|
@@ -295,28 +337,39 @@ const ContactContent = ({ queryUrl, onChange }) => {
|
|
295
337
|
) : (
|
296
338
|
""
|
297
339
|
)}
|
340
|
+
{item.free_entry === true ? (
|
341
|
+
<div className="r-content-news-info--entry">
|
342
|
+
<span>
|
343
|
+
<Translate text="Gratuit" />
|
344
|
+
</span>
|
345
|
+
</div>
|
346
|
+
) : (
|
347
|
+
""
|
348
|
+
)}
|
298
349
|
</div>
|
299
350
|
</div>
|
300
351
|
{/* contact */}
|
301
|
-
|
302
|
-
<div className="
|
303
|
-
<div className="
|
304
|
-
<
|
305
|
-
|
306
|
-
|
307
|
-
<
|
308
|
-
<
|
309
|
-
{item.contact_phone}
|
352
|
+
{(item.contact_name || item.contact_phone || item.contact_email) && (
|
353
|
+
<div className="r-content-news-info-contact">
|
354
|
+
<div className="dpinlb">
|
355
|
+
<div className="r-content-news-info--name">
|
356
|
+
<span>{item.contact_name}</span>
|
357
|
+
</div>
|
358
|
+
<div className="r-content-news-info--phone">
|
359
|
+
<span>
|
360
|
+
<a href={`tel:${item.contact_phone}`}>
|
361
|
+
{item.contact_phone}
|
362
|
+
</a>
|
363
|
+
</span>
|
364
|
+
</div>
|
365
|
+
<div className="r-content-news-info--email">
|
366
|
+
<a href={`mailto:${item.contact_email}`}>
|
367
|
+
{item.contact_email}
|
310
368
|
</a>
|
311
|
-
</
|
312
|
-
</div>
|
313
|
-
<div className="r-content-news-info--email">
|
314
|
-
<a href={`mailto:${item.contact_email}`}>
|
315
|
-
{item.contact_email}
|
316
|
-
</a>
|
369
|
+
</div>
|
317
370
|
</div>
|
318
371
|
</div>
|
319
|
-
|
372
|
+
)}
|
320
373
|
{/* link */}
|
321
374
|
{item.event_url === null &&
|
322
375
|
item.online_participation === null &&
|
@@ -514,6 +567,16 @@ const ContactContent = ({ queryUrl, onChange }) => {
|
|
514
567
|
</div>
|
515
568
|
</div>
|
516
569
|
)}
|
570
|
+
{/* add category & Topics */}
|
571
|
+
{item.topics && item.topics.length > 0 && (
|
572
|
+
<div className="r-content-topics">
|
573
|
+
{item.topics.map((topic, i) => (
|
574
|
+
<a key={i}>
|
575
|
+
<span>{topic.title}</span>
|
576
|
+
</a>
|
577
|
+
))}
|
578
|
+
</div>
|
579
|
+
)}
|
517
580
|
</article>
|
518
581
|
</div>
|
519
582
|
);
|
@@ -119,7 +119,7 @@ function EventsView(props) {
|
|
119
119
|
height: filterRef.current.clientHeight,
|
120
120
|
});
|
121
121
|
setHeaderHeight(filterRef.current.offsetTop);
|
122
|
-
}, [
|
122
|
+
}, [response]);
|
123
123
|
|
124
124
|
// coditional list render
|
125
125
|
let listRender;
|
@@ -185,6 +185,17 @@ function EventsView(props) {
|
|
185
185
|
<div className="r-add-event">
|
186
186
|
<a target="_blank" href={props.proposeUrl}>
|
187
187
|
<Translate text="Proposer un événement" />
|
188
|
+
<svg
|
189
|
+
xmlns="http://www.w3.org/2000/svg"
|
190
|
+
width="16"
|
191
|
+
height="16"
|
192
|
+
fill="currentColor"
|
193
|
+
className="bi bi-plus-circle"
|
194
|
+
viewBox="0 0 16 16"
|
195
|
+
>
|
196
|
+
<path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16" />
|
197
|
+
<path d="M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4" />
|
198
|
+
</svg>
|
188
199
|
</a>
|
189
200
|
</div>
|
190
201
|
)}
|
@@ -252,7 +263,7 @@ function EventsView(props) {
|
|
252
263
|
element={
|
253
264
|
<div className="r-wrapper container r-annuaire-wrapper">
|
254
265
|
<div className="r-result r-annuaire-result">
|
255
|
-
<EventContent queryUrl={props.queryUrl} onChange={clickID} />
|
266
|
+
<EventContent queryUrl={props.queryUrl} onChange={clickID} onlyPastEvents={props.onlyPastEvents} />
|
256
267
|
</div>
|
257
268
|
{displayMap && (
|
258
269
|
<div
|
@@ -358,8 +358,16 @@ article>header {
|
|
358
358
|
padding-bottom: 60%;
|
359
359
|
}
|
360
360
|
|
361
|
+
.r-content-header {
|
362
|
+
margin-bottom: 1rem;
|
363
|
+
}
|
364
|
+
|
361
365
|
.r-content-title {
|
362
|
-
margin:
|
366
|
+
margin: 0;
|
367
|
+
}
|
368
|
+
|
369
|
+
.r-content-recur-start-hours {
|
370
|
+
display: flex;
|
363
371
|
}
|
364
372
|
|
365
373
|
.news-info-title {
|
@@ -471,6 +479,24 @@ article>header {
|
|
471
479
|
}
|
472
480
|
}
|
473
481
|
|
482
|
+
.r-content-topics {
|
483
|
+
display: flex;
|
484
|
+
gap: 15px;
|
485
|
+
|
486
|
+
span {
|
487
|
+
padding: 5px;
|
488
|
+
background: #f1f1f1;
|
489
|
+
border-radius: 5px;
|
490
|
+
margin-right: 5px;
|
491
|
+
}
|
492
|
+
}
|
493
|
+
|
494
|
+
.r-content-title-cat {
|
495
|
+
color: #8e8e8e;
|
496
|
+
margin-right: 5px;
|
497
|
+
font-size: 14px;
|
498
|
+
}
|
499
|
+
|
474
500
|
// // No Map
|
475
501
|
// // Main
|
476
502
|
.no-map {
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, { useState
|
1
|
+
import React, { useState } from "react";
|
2
2
|
import DatePicker from "react-datepicker";
|
3
3
|
import "react-datepicker/dist/react-datepicker.css";
|
4
4
|
import moment from "moment";
|
@@ -15,7 +15,6 @@ const languageList = {
|
|
15
15
|
en: enGB,
|
16
16
|
};
|
17
17
|
function DateFilter({ language, setDates }) {
|
18
|
-
// const currentLanguage = useContext(LanguageContext);
|
19
18
|
const [dateRange, setDateRange] = useState([null, null]);
|
20
19
|
const [startDate, endDate] = dateRange;
|
21
20
|
const [filter, setFilter] = useState(<Translate text="Quand" />);
|
@@ -2,14 +2,23 @@
|
|
2
2
|
@media screen and (min-width:1200px) {
|
3
3
|
position: sticky;
|
4
4
|
}
|
5
|
-
|
6
5
|
z-index: 1;
|
7
6
|
background: #fff;
|
8
|
-
|
7
|
+
&:after {
|
8
|
+
content: "";
|
9
|
+
background: #fff;
|
10
|
+
position: absolute;
|
11
|
+
left: 0;
|
12
|
+
right: 0;
|
13
|
+
height: 312px;
|
14
|
+
top: 0;
|
15
|
+
transform: translateY(-100%);
|
16
|
+
}
|
9
17
|
.r-result-filter {
|
10
18
|
padding-top: 1rem;
|
11
19
|
padding-bottom: 1rem;
|
12
20
|
border-bottom: solid 1px #cccc;
|
21
|
+
position: relative;
|
13
22
|
}
|
14
23
|
}
|
15
24
|
|
@@ -23,8 +32,9 @@
|
|
23
32
|
}
|
24
33
|
}
|
25
34
|
|
26
|
-
|
27
|
-
|
35
|
+
.r-result-filter {
|
36
|
+
position: relative;
|
37
|
+
}
|
28
38
|
// react filter menu
|
29
39
|
|
30
40
|
.react-filters-menu {
|
@@ -5,7 +5,7 @@ import useAxios from "../../../hooks/useAxios";
|
|
5
5
|
import { Translator, Translate} from "react-translated";
|
6
6
|
import queryString from "query-string";
|
7
7
|
import { iam } from "./../../Filters/IamData";
|
8
|
-
import { menuStyles
|
8
|
+
import { menuStyles } from "./../../Filters/SelectStyles";
|
9
9
|
|
10
10
|
function Filters(props) {
|
11
11
|
let navigate = useNavigate();
|
@@ -52,7 +52,7 @@ function Filters(props) {
|
|
52
52
|
// const to group category and local category
|
53
53
|
const groupedOptions = [
|
54
54
|
{
|
55
|
-
label: <Translate text="Catégories
|
55
|
+
label: <Translate text="Catégories spécifiques" />,
|
56
56
|
options: localsCategoryFilter,
|
57
57
|
},
|
58
58
|
{
|
@@ -85,6 +85,18 @@ function Filters(props) {
|
|
85
85
|
}
|
86
86
|
});
|
87
87
|
|
88
|
+
const onChangeGroupSelect = useCallback((value, action) => {
|
89
|
+
if (value) {
|
90
|
+
setInputValues((state) => ({ ...state, [value.queryString]: value.value }), []);
|
91
|
+
} else {
|
92
|
+
setInputValues((prevState) => {
|
93
|
+
const state = { ...prevState };
|
94
|
+
const { [action.removedValues[0].queryString]: remove, ...rest } = state;
|
95
|
+
return rest;
|
96
|
+
});
|
97
|
+
}
|
98
|
+
});
|
99
|
+
|
88
100
|
// make to no launch useEffect first time
|
89
101
|
const firstUpdate = useRef(true);
|
90
102
|
useEffect(() => {
|
@@ -180,7 +192,7 @@ function Filters(props) {
|
|
180
192
|
name={"category"}
|
181
193
|
className="select-custom-no-border library-facilities"
|
182
194
|
isClearable
|
183
|
-
onChange={
|
195
|
+
onChange={onChangeGroupSelect}
|
184
196
|
options={localsCategoryFilter.length === 0 ? taxonomyFilter && taxonomyFilter : groupedOptions}
|
185
197
|
placeholder={translate({
|
186
198
|
text: "Catégories",
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, { useEffect, useState, createContext
|
1
|
+
import React, { useEffect, useState, createContext } from "react";
|
2
2
|
import { BrowserRouter, Routes, Route } from "react-router-dom";
|
3
3
|
import Filters from "./Filters/Filter";
|
4
4
|
import NewsContent from "./NewsContent/NewsContent";
|
@@ -124,7 +124,6 @@ const NewsView = (props) => {
|
|
124
124
|
</div>
|
125
125
|
</div>
|
126
126
|
);
|
127
|
-
|
128
127
|
return (
|
129
128
|
<div>
|
130
129
|
<div className="r-wrapper r-actu-wrapper">
|
@@ -145,6 +144,17 @@ const NewsView = (props) => {
|
|
145
144
|
<div className="r-add-news">
|
146
145
|
<a target="_blank" href={props.proposeUrl}>
|
147
146
|
<Translate text="Proposer une actualité" />
|
147
|
+
<svg
|
148
|
+
xmlns="http://www.w3.org/2000/svg"
|
149
|
+
width="16"
|
150
|
+
height="16"
|
151
|
+
fill="currentColor"
|
152
|
+
className="bi bi-plus-circle"
|
153
|
+
viewBox="0 0 16 16"
|
154
|
+
>
|
155
|
+
<path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16" />
|
156
|
+
<path d="M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4" />
|
157
|
+
</svg>
|
148
158
|
</a>
|
149
159
|
</div>
|
150
160
|
)}
|
@@ -262,9 +262,9 @@ const ContactContent = ({ queryUrl, onChange }) => {
|
|
262
262
|
{/* add gallery */}
|
263
263
|
{gallery && (
|
264
264
|
<div className="r-content-gallery">
|
265
|
-
<div
|
265
|
+
<div className="spotlight-group flexbin r-content-gallery">
|
266
266
|
{gallery.map((image, i) => (
|
267
|
-
<a key={i}
|
267
|
+
<a key={i} className="spotlight" href={image.image_full_scale}>
|
268
268
|
<img src={image.image_preview_scale} alt="" />
|
269
269
|
</a>
|
270
270
|
))}
|
@@ -31,11 +31,22 @@
|
|
31
31
|
.r-add-event,
|
32
32
|
.r-add-news,
|
33
33
|
.r-add-contact {
|
34
|
+
@media screen and (min-width: 992px) {
|
35
|
+
position: absolute;
|
36
|
+
right: 0;
|
37
|
+
bottom: 0px;
|
38
|
+
padding-bottom: 1rem;
|
39
|
+
}
|
34
40
|
a {
|
35
|
-
|
36
|
-
color: #fff;
|
41
|
+
color: #2d2d2d;
|
37
42
|
text-decoration: none;
|
38
|
-
|
43
|
+
display: flex;
|
44
|
+
flex-direction: row;
|
45
|
+
align-items: center;
|
46
|
+
gap: 7px;
|
47
|
+
&:hover,&:focus {
|
48
|
+
text-decoration: underline;
|
49
|
+
}
|
39
50
|
}
|
40
51
|
}
|
41
52
|
|
@@ -91,9 +91,9 @@ function Map(props) {
|
|
91
91
|
}, [filterGeoArray]);
|
92
92
|
const position = [50.85034, 4.35171];
|
93
93
|
|
94
|
-
const markers = filterGeoArray.map((mark) => (
|
94
|
+
const markers = filterGeoArray.map((mark,i) => (
|
95
95
|
<Marker
|
96
|
-
key={
|
96
|
+
key={i}
|
97
97
|
icon={getMarkerIcon(mark.UID)}
|
98
98
|
zIndexOffset={getMarkerZindex(mark.UID)}
|
99
99
|
position={[
|
@@ -72,6 +72,12 @@ export default {
|
|
72
72
|
de: "Lokale Kategorien",
|
73
73
|
nl: "Lokale categorieën",
|
74
74
|
},
|
75
|
+
"Catégories spécifiques": {
|
76
|
+
en: 'Specific categories',
|
77
|
+
fr: "Catégories spécifiques",
|
78
|
+
de: "Spezifische Kategorien",
|
79
|
+
nl: "Specifieke categorieën",
|
80
|
+
},
|
75
81
|
"Quoi": {
|
76
82
|
en: 'What',
|
77
83
|
fr: "Quoi",
|
@@ -168,6 +174,12 @@ export default {
|
|
168
174
|
de: ' Veranstaltung gefunden',
|
169
175
|
nl: ' Evenement gevonden',
|
170
176
|
},
|
177
|
+
'Gratuit': {
|
178
|
+
en: 'Free',
|
179
|
+
fr: 'Gratuit',
|
180
|
+
de: 'Kostenlos',
|
181
|
+
nl: 'Gratis',
|
182
|
+
},
|
171
183
|
"Aucun événement n'a été trouvé": {
|
172
184
|
en: 'No event was found',
|
173
185
|
fr: "Aucun événement n'a été trouvé",
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import sys, types, os;p = os.path.join(sys._getframe(1).f_locals['sitedir'], *('imio',));importlib = __import__('importlib.util');__import__('importlib.machinery');m = sys.modules.setdefault('imio', importlib.util.module_from_spec(importlib.machinery.PathFinder.find_spec('imio', [os.path.dirname(p)])));m = m or sys.modules.setdefault('imio', types.ModuleType('imio'));mp = (m or []) and m.__dict__.setdefault('__path__',[]);(p not in mp) and mp.append(p)
|
2
|
+
import sys, types, os;p = os.path.join(sys._getframe(1).f_locals['sitedir'], *('imio', 'smartweb'));importlib = __import__('importlib.util');__import__('importlib.machinery');m = sys.modules.setdefault('imio.smartweb', importlib.util.module_from_spec(importlib.machinery.PathFinder.find_spec('imio.smartweb', [os.path.dirname(p)])));m = m or sys.modules.setdefault('imio.smartweb', types.ModuleType('imio.smartweb'));mp = (m or []) and m.__dict__.setdefault('__path__',[]);(p not in mp) and mp.append(p);m and setattr(sys.modules['imio'], 'smartweb', m)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: imio.smartweb.core
|
3
|
-
Version: 1.2.
|
3
|
+
Version: 1.2.50
|
4
4
|
Summary: Core product for iMio websites
|
5
5
|
Home-page: https://github.com/imio/imio.smartweb.core
|
6
6
|
Author: Christophe Boulanger
|
@@ -26,7 +26,7 @@ License-File: LICENSE.rst
|
|
26
26
|
Requires-Dist: setuptools
|
27
27
|
Requires-Dist: z3c.jbot
|
28
28
|
Requires-Dist: z3c.unconfigure
|
29
|
-
Requires-Dist: plone.api
|
29
|
+
Requires-Dist: plone.api >=1.8.4
|
30
30
|
Requires-Dist: plone.gallery
|
31
31
|
Requires-Dist: plone.restapi
|
32
32
|
Requires-Dist: plone.app.dexterity
|
@@ -48,7 +48,7 @@ Requires-Dist: imio.smartweb.common
|
|
48
48
|
Requires-Dist: imio.smartweb.locales
|
49
49
|
Provides-Extra: test
|
50
50
|
Requires-Dist: plone.app.testing ; extra == 'test'
|
51
|
-
Requires-Dist: plone.testing
|
51
|
+
Requires-Dist: plone.testing >=5.0.0 ; extra == 'test'
|
52
52
|
Requires-Dist: plone.app.contenttypes ; extra == 'test'
|
53
53
|
Requires-Dist: plone.app.robotframework[debug] ; extra == 'test'
|
54
54
|
Requires-Dist: plone.restapi[test] ; extra == 'test'
|
@@ -189,6 +189,23 @@ Changelog
|
|
189
189
|
=========
|
190
190
|
|
191
191
|
|
192
|
+
1.2.50 (2024-05-30)
|
193
|
+
-------------------
|
194
|
+
|
195
|
+
- Fix loaded calcul of sticky filter menu in React view
|
196
|
+
[thomlamb]
|
197
|
+
|
198
|
+
|
199
|
+
1.2.49 (2024-05-29)
|
200
|
+
-------------------
|
201
|
+
|
202
|
+
- WEB-4101 : Encode URLs parameters for `search-filters`. This fixes issues with special chars.
|
203
|
+
[laulaz]
|
204
|
+
|
205
|
+
- WEB-3802: Fix after testing, complited traduction, optimize code
|
206
|
+
[thomlamb]
|
207
|
+
|
208
|
+
|
192
209
|
1.2.48 (2024-05-27)
|
193
210
|
-------------------
|
194
211
|
|