imio.smartweb.core 1.2.47__py3-none-any.whl → 1.2.49__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.
Files changed (77) hide show
  1. imio/smartweb/core/contents/rest/base.py +8 -6
  2. imio/smartweb/core/contents/rest/directory/endpoint.py +2 -2
  3. imio/smartweb/core/contents/rest/events/endpoint.py +2 -2
  4. imio/smartweb/core/contents/rest/news/endpoint.py +2 -2
  5. imio/smartweb/core/contents/sections/events/view.py +2 -1
  6. imio/smartweb/core/contents/sections/news/view.py +2 -1
  7. imio/smartweb/core/contents/sections/text/views.py +2 -0
  8. imio/smartweb/core/contents/sections/views.py +2 -0
  9. imio/smartweb/core/tests/resources/json_rest_events.json +4 -1
  10. imio/smartweb/core/tests/test_rest.py +20 -17
  11. imio/smartweb/core/tests/test_section_events.py +9 -8
  12. imio/smartweb/core/tests/test_section_news.py +6 -6
  13. imio/smartweb/core/tests/test_vocabularies.py +2 -2
  14. imio/smartweb/core/utils.py +1 -1
  15. imio/smartweb/core/viewlets/footer.pt +5 -0
  16. imio/smartweb/core/viewlets/footer.py +5 -0
  17. imio/smartweb/core/vocabularies.py +2 -2
  18. imio/smartweb/core/webcomponents/build/css/373.smartweb-webcomponents-compiled.css +1 -1
  19. imio/smartweb/core/webcomponents/build/css/486.smartweb-webcomponents-compiled.css +1 -1
  20. imio/smartweb/core/webcomponents/build/css/884.smartweb-webcomponents-compiled.css +1 -0
  21. imio/smartweb/core/webcomponents/build/css/smartweb-webcomponents-compiled.css +1 -1
  22. imio/smartweb/core/webcomponents/build/js/218.smartweb-webcomponents-compiled.js +1 -1
  23. imio/smartweb/core/webcomponents/build/js/218.smartweb-webcomponents-compiled.js.LICENSE.txt +5 -0
  24. imio/smartweb/core/webcomponents/build/js/373.smartweb-webcomponents-compiled.js +1 -1
  25. imio/smartweb/core/webcomponents/build/js/486.smartweb-webcomponents-compiled.js +1 -1
  26. imio/smartweb/core/webcomponents/build/js/736.smartweb-webcomponents-compiled.js +1 -1
  27. imio/smartweb/core/webcomponents/build/js/736.smartweb-webcomponents-compiled.js.LICENSE.txt +3 -3
  28. imio/smartweb/core/webcomponents/build/js/884.smartweb-webcomponents-compiled.js +1 -0
  29. imio/smartweb/core/webcomponents/build/js/919.smartweb-webcomponents-compiled.js +1 -1
  30. imio/smartweb/core/webcomponents/build/js/smartweb-webcomponents-compiled.js +1 -1
  31. imio/smartweb/core/webcomponents/package.json +1 -0
  32. imio/smartweb/core/webcomponents/src/components/Annuaire/Annuaire.jsx +112 -74
  33. imio/smartweb/core/webcomponents/src/components/Annuaire/Annuaire.scss +14 -22
  34. imio/smartweb/core/webcomponents/src/components/Annuaire/ContactCard/ContactCard.jsx +24 -20
  35. imio/smartweb/core/webcomponents/src/components/Annuaire/ContactContent/ContactContent.jsx +6 -4
  36. imio/smartweb/core/webcomponents/src/components/Annuaire/ContactList/ContactList.jsx +7 -2
  37. imio/smartweb/core/webcomponents/src/components/Annuaire/Filters/Filter.jsx +211 -98
  38. imio/smartweb/core/webcomponents/src/components/Events/EventCard/EventCard.jsx +1 -1
  39. imio/smartweb/core/webcomponents/src/components/Events/EventContent/EventContent.jsx +570 -379
  40. imio/smartweb/core/webcomponents/src/components/Events/EventList/EventList.jsx +13 -4
  41. imio/smartweb/core/webcomponents/src/components/Events/Events.jsx +128 -82
  42. imio/smartweb/core/webcomponents/src/components/Events/Events.scss +79 -29
  43. imio/smartweb/core/webcomponents/src/components/Events/Filters/Filter.jsx +257 -90
  44. imio/smartweb/core/webcomponents/src/components/Filters/DateFilter.jsx +63 -56
  45. imio/smartweb/core/webcomponents/src/components/Filters/DateFilter.scss +60 -12
  46. imio/smartweb/core/webcomponents/src/components/Filters/IamData.jsx +42 -0
  47. imio/smartweb/core/webcomponents/src/components/Filters/MainFilter.scss +227 -0
  48. imio/smartweb/core/webcomponents/src/components/Filters/PublicTargetData.jsx +94 -0
  49. imio/smartweb/core/webcomponents/src/components/Filters/SelectStyles.js +58 -0
  50. imio/smartweb/core/webcomponents/src/components/Filters/TaxonomyFilter.jsx +149 -0
  51. imio/smartweb/core/webcomponents/src/components/Filters/TaxonomyFilter.scss +70 -0
  52. imio/smartweb/core/webcomponents/src/components/News/Filters/Filter.jsx +139 -82
  53. imio/smartweb/core/webcomponents/src/components/News/News.jsx +98 -55
  54. imio/smartweb/core/webcomponents/src/components/News/News.scss +29 -9
  55. imio/smartweb/core/webcomponents/src/components/News/NewsCard/NewsCard.jsx +34 -31
  56. imio/smartweb/core/webcomponents/src/components/News/NewsContent/NewsContent.jsx +264 -244
  57. imio/smartweb/core/webcomponents/src/components/News/NewsList/NewsList.jsx +13 -8
  58. imio/smartweb/core/webcomponents/src/components/Search/ContactResult/ContactResult.jsx +23 -12
  59. imio/smartweb/core/webcomponents/src/components/Search/EventsResult/EventsResult.jsx +23 -12
  60. imio/smartweb/core/webcomponents/src/components/Search/Filters/Filter.jsx +5 -5
  61. imio/smartweb/core/webcomponents/src/components/Search/NewsResult/NewsResult.jsx +23 -12
  62. imio/smartweb/core/webcomponents/src/components/Search/Search.jsx +4 -4
  63. imio/smartweb/core/webcomponents/src/components/Search/WebResult/WebResult.jsx +13 -4
  64. imio/smartweb/core/webcomponents/src/index.jsx +3 -3
  65. imio/smartweb/core/webcomponents/src/index.scss +25 -68
  66. imio/smartweb/core/webcomponents/src/utils/Map.jsx +20 -11
  67. imio/smartweb/core/webcomponents/src/utils/translation.js +30 -0
  68. {imio.smartweb.core-1.2.47.dist-info → imio.smartweb.core-1.2.49.dist-info}/METADATA +30 -1
  69. {imio.smartweb.core-1.2.47.dist-info → imio.smartweb.core-1.2.49.dist-info}/RECORD +75 -69
  70. imio/smartweb/core/webcomponents/build/css/686.smartweb-webcomponents-compiled.css +0 -1
  71. imio/smartweb/core/webcomponents/build/js/686.smartweb-webcomponents-compiled.js +0 -1
  72. /imio.smartweb.core-1.2.47-py3.8-nspkg.pth → /imio.smartweb.core-1.2.49-py3.8-nspkg.pth +0 -0
  73. {imio.smartweb.core-1.2.47.dist-info → imio.smartweb.core-1.2.49.dist-info}/LICENSE.GPL +0 -0
  74. {imio.smartweb.core-1.2.47.dist-info → imio.smartweb.core-1.2.49.dist-info}/LICENSE.rst +0 -0
  75. {imio.smartweb.core-1.2.47.dist-info → imio.smartweb.core-1.2.49.dist-info}/WHEEL +0 -0
  76. {imio.smartweb.core-1.2.47.dist-info → imio.smartweb.core-1.2.49.dist-info}/namespace_packages.txt +0 -0
  77. {imio.smartweb.core-1.2.47.dist-info → imio.smartweb.core-1.2.49.dist-info}/top_level.txt +0 -0
@@ -13,7 +13,10 @@ const ContactResult = (props) => {
13
13
  headers: {
14
14
  Accept: "application/json",
15
15
  },
16
- params: (props.urlParams.SearchableText || props.urlParams.iam || props.urlParams.topics) ? props.urlParams : {},
16
+ params:
17
+ props.urlParams.SearchableText || props.urlParams.iam || props.urlParams.topics
18
+ ? props.urlParams
19
+ : {},
17
20
  },
18
21
  [props]
19
22
  );
@@ -32,7 +35,14 @@ const ContactResult = (props) => {
32
35
  <Translate text="Contacts" />
33
36
  </h2>
34
37
  <p className="r-search-header-count">
35
- {resultArray.length > 0 ? <> {resultArray.length} {" "} <Translate text='Résultats' /> </> : <Translate text='Aucun résultat' />}
38
+ {resultArray.length > 0 ? (
39
+ <>
40
+ {" "}
41
+ {resultArray.length} <Translate text="Résultats" />{" "}
42
+ </>
43
+ ) : (
44
+ <Translate text="Aucun résultat" />
45
+ )}
36
46
  </p>
37
47
  </div>
38
48
  <ul className="r-search-list">
@@ -40,15 +50,16 @@ const ContactResult = (props) => {
40
50
  <li key={i} className="r-search-item">
41
51
  <a href={item["_url"]}>
42
52
  <div className="r-search-img">
43
- {
44
- item.has_leadimage[0] ? (
45
- <div className="r-search-img" style={{
46
- backgroundImage: "url(" + item.image_url + ")"
47
- }}></div>
48
- ) : (
49
- <div className="r-search-img no-search-item-img"></div>
50
- )
51
- }
53
+ {item.has_leadimage[0] ? (
54
+ <div
55
+ className="r-search-img"
56
+ style={{
57
+ backgroundImage: "url(" + item.image_url + ")",
58
+ }}
59
+ ></div>
60
+ ) : (
61
+ <div className="r-search-img no-search-item-img"></div>
62
+ )}
52
63
  </div>
53
64
  <Highlighter
54
65
  highlightClassName="r-search-highlighter"
@@ -62,4 +73,4 @@ const ContactResult = (props) => {
62
73
  </div>
63
74
  );
64
75
  };
65
- export default ContactResult;
76
+ export default ContactResult;
@@ -13,7 +13,10 @@ const EventsResult = (props) => {
13
13
  headers: {
14
14
  Accept: "application/json",
15
15
  },
16
- params: (props.urlParams.SearchableText || props.urlParams.iam || props.urlParams.topics) ? props.urlParams : {},
16
+ params:
17
+ props.urlParams.SearchableText || props.urlParams.iam || props.urlParams.topics
18
+ ? props.urlParams
19
+ : {},
17
20
  },
18
21
  [props]
19
22
  );
@@ -32,7 +35,14 @@ const EventsResult = (props) => {
32
35
  <Translate text="Événements" />
33
36
  </h2>
34
37
  <p className="r-search-header-count">
35
- {resultArray.length > 0 ? <> {resultArray.length} {" "} <Translate text='Résultats' /> </> : <Translate text='Aucun résultat' />}
38
+ {resultArray.length > 0 ? (
39
+ <>
40
+ {" "}
41
+ {resultArray.length} <Translate text="Résultats" />{" "}
42
+ </>
43
+ ) : (
44
+ <Translate text="Aucun résultat" />
45
+ )}
36
46
  </p>
37
47
  </div>
38
48
  <ul className="r-search-list">
@@ -40,15 +50,16 @@ const EventsResult = (props) => {
40
50
  <li key={i} className="r-search-item">
41
51
  <a href={item["_url"]}>
42
52
  <div className="r-search-img">
43
- {
44
- item.has_leadimage[0] ? (
45
- <div className="r-search-img" style={{
46
- backgroundImage: "url(" + item.image_url + ")"
47
- }}></div>
48
- ) : (
49
- <div className="r-search-img no-search-item-img"></div>
50
- )
51
- }
53
+ {item.has_leadimage[0] ? (
54
+ <div
55
+ className="r-search-img"
56
+ style={{
57
+ backgroundImage: "url(" + item.image_url + ")",
58
+ }}
59
+ ></div>
60
+ ) : (
61
+ <div className="r-search-img no-search-item-img"></div>
62
+ )}
52
63
  </div>
53
64
  <Highlighter
54
65
  highlightClassName="r-search-highlighter"
@@ -62,4 +73,4 @@ const EventsResult = (props) => {
62
73
  </div>
63
74
  );
64
75
  };
65
- export default EventsResult;
76
+ export default EventsResult;
@@ -3,7 +3,7 @@ import Select from "react-select";
3
3
  import { useNavigate } from "react-router-dom";
4
4
  import axios from "axios";
5
5
  import { Translate, Translator } from "react-translated";
6
- import queryString from 'query-string';
6
+ import queryString from "query-string";
7
7
 
8
8
  function Filters(props) {
9
9
  let navigate = useNavigate();
@@ -153,7 +153,7 @@ function Filters(props) {
153
153
  onChange={HandlerText}
154
154
  value={searchValues.SearchableText}
155
155
  placeholder={translate({
156
- text: 'Recherche'
156
+ text: "Recherche",
157
157
  })}
158
158
  />
159
159
  )}
@@ -173,7 +173,7 @@ function Filters(props) {
173
173
  onChange={onChangeHandlerSelect}
174
174
  options={iamFilter && iamFilter}
175
175
  placeholder={translate({
176
- text: 'Je suis'
176
+ text: "Je suis",
177
177
  })}
178
178
  value={actIam && actIam[0]}
179
179
  />
@@ -191,7 +191,7 @@ function Filters(props) {
191
191
  onChange={onChangeHandlerSelect}
192
192
  options={topicsFilter && topicsFilter}
193
193
  placeholder={translate({
194
- text: 'Thématiques'
194
+ text: "Thématiques",
195
195
  })}
196
196
  value={actTopi && actTopi[0]}
197
197
  />
@@ -202,4 +202,4 @@ function Filters(props) {
202
202
  );
203
203
  }
204
204
 
205
- export default Filters;
205
+ export default Filters;
@@ -13,7 +13,10 @@ const NewsResult = (props) => {
13
13
  headers: {
14
14
  Accept: "application/json",
15
15
  },
16
- params: (props.urlParams.SearchableText || props.urlParams.iam || props.urlParams.topics) ? props.urlParams : {},
16
+ params:
17
+ props.urlParams.SearchableText || props.urlParams.iam || props.urlParams.topics
18
+ ? props.urlParams
19
+ : {},
17
20
  },
18
21
  [props]
19
22
  );
@@ -32,7 +35,14 @@ const NewsResult = (props) => {
32
35
  <Translate text="Actualités" />
33
36
  </h2>
34
37
  <p className="r-search-header-count">
35
- {resultArray.length > 0 ? <> {resultArray.length} {" "} <Translate text='Résultats' /> </> : <Translate text='Aucun résultat' />}
38
+ {resultArray.length > 0 ? (
39
+ <>
40
+ {" "}
41
+ {resultArray.length} <Translate text="Résultats" />{" "}
42
+ </>
43
+ ) : (
44
+ <Translate text="Aucun résultat" />
45
+ )}
36
46
  </p>
37
47
  </div>
38
48
  <ul className="r-search-list">
@@ -40,15 +50,16 @@ const NewsResult = (props) => {
40
50
  <li key={i} className="r-search-item">
41
51
  <a href={item["_url"]}>
42
52
  <div className="r-search-img">
43
- {
44
- item.has_leadimage[0] ? (
45
- <div className="r-search-img" style={{
46
- backgroundImage: "url(" + item.image_url + ")"
47
- }}></div>
48
- ) : (
49
- <div className="r-search-img no-search-item-img"></div>
50
- )
51
- }
53
+ {item.has_leadimage[0] ? (
54
+ <div
55
+ className="r-search-img"
56
+ style={{
57
+ backgroundImage: "url(" + item.image_url + ")",
58
+ }}
59
+ ></div>
60
+ ) : (
61
+ <div className="r-search-img no-search-item-img"></div>
62
+ )}
52
63
  </div>
53
64
  <Highlighter
54
65
  highlightClassName="r-search-highlighter"
@@ -62,4 +73,4 @@ const NewsResult = (props) => {
62
73
  </div>
63
74
  );
64
75
  };
65
- export default NewsResult;
76
+ export default NewsResult;
@@ -7,8 +7,8 @@ import EventsResult from "./EventsResult/EventsResult";
7
7
  import WebResult from "./WebResult/WebResult";
8
8
  import useFilterQuery from "../../hooks/useFilterQuery";
9
9
  import { Provider } from "react-translated";
10
- import translation from '../../utils/translation';
11
- import queryString from 'query-string';
10
+ import translation from "../../utils/translation";
11
+ import queryString from "query-string";
12
12
 
13
13
  import "./Search.scss";
14
14
 
@@ -22,13 +22,13 @@ export default function Search(props) {
22
22
  resultOption={JSON.parse(props.resultOption)}
23
23
  />
24
24
  </Provider>
25
- </BrowserRouter >
25
+ </BrowserRouter>
26
26
  );
27
27
  }
28
28
  const SearchView = (props) => {
29
29
  const parsed = queryString.parse(useFilterQuery().toString());
30
30
  const { SearchableText, iam, topics } = parsed;
31
- const parsed2 = { 'SearchableText': SearchableText, 'iam': iam, 'topics': topics };
31
+ const parsed2 = { SearchableText: SearchableText, iam: iam, topics: topics };
32
32
  // const parsed2 = { ...parsed };
33
33
  const [filters, setFilters] = useState(parsed2);
34
34
  const [batchSize, setBatchSize] = useState(6);
@@ -13,7 +13,10 @@ const WebResult = (props) => {
13
13
  headers: {
14
14
  Accept: "application/json",
15
15
  },
16
- params: (props.urlParams.SearchableText || props.urlParams.iam || props.urlParams.topics) ? props.urlParams : {},
16
+ params:
17
+ props.urlParams.SearchableText || props.urlParams.iam || props.urlParams.topics
18
+ ? props.urlParams
19
+ : {},
17
20
  },
18
21
  [props]
19
22
  );
@@ -30,10 +33,16 @@ const WebResult = (props) => {
30
33
  <div className="r-search-header">
31
34
  <h2 className="r-search-header-title">
32
35
  <Translate text="Infos pratiques" />
33
-
34
36
  </h2>
35
37
  <p className="r-search-header-count">
36
- {resultArray.length > 0 ? <> {resultArray.length} {" "} <Translate text='Résultats' /> </> : <Translate text='Aucun résultat' />}
38
+ {resultArray.length > 0 ? (
39
+ <>
40
+ {" "}
41
+ {resultArray.length} <Translate text="Résultats" />{" "}
42
+ </>
43
+ ) : (
44
+ <Translate text="Aucun résultat" />
45
+ )}
37
46
  </p>
38
47
  </div>
39
48
  <ul className="r-search-list">
@@ -52,4 +61,4 @@ const WebResult = (props) => {
52
61
  </div>
53
62
  );
54
63
  };
55
- export default WebResult;
64
+ export default WebResult;
@@ -16,6 +16,6 @@ ReactWebComponent.create(<Events />, "smartweb-events", false);
16
16
  ReactWebComponent.create(<Search />, "smartweb-search", false);
17
17
 
18
18
  if (module.hot) {
19
- // Accept hot module replacement (HMR) while live-reloading
20
- module.hot.accept();
21
- }
19
+ // Accept hot module replacement (HMR) while live-reloading
20
+ module.hot.accept();
21
+ }
@@ -12,7 +12,6 @@
12
12
  }
13
13
  }
14
14
 
15
- /* Filters */
16
15
  .r-wrapper {
17
16
  position: relative;
18
17
 
@@ -21,77 +20,33 @@
21
20
  }
22
21
  }
23
22
 
24
- .r-result-filter-container,
25
23
  .r-actu-wrapper {
26
24
  padding-top: 1rem;
27
25
  }
28
26
 
29
27
  .r-result {
30
28
  position: relative;
31
-
32
- &-filter {
33
- display: flex;
34
- flex-wrap: wrap;
35
- gap: 20px;
36
- padding-bottom: 20px;
37
- border-bottom: solid 1px #cccc;
38
- align-items: center;
39
-
40
- .r-filter {
41
- width: 100%;
42
- max-width: 200px;
43
-
44
- label {
45
- display: block;
46
- }
47
-
48
- .r-filter-search {
49
- position: relative;
50
-
51
- .input-custom-class {
52
- line-height: 50px;
53
- border: 1px solid #CCCCCC;
54
- height: 50px;
55
- padding: 0 10px;
56
- font-weight: bold;
57
- color: #000;
58
- width: 100%;
59
- letter-spacing: 1.2px;
60
-
61
- &::placeholder {
62
- color: #000;
63
- font-size: 12px;
64
- opacity: 1;
65
- text-transform: uppercase;
66
- letter-spacing: '1.2px';
67
- }
68
- }
69
-
70
- button {
71
- background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cg id='Calque_2' data-name='Calque 2'%3E%3Cg id='Calque_1-2' data-name='Calque 1'%3E%3Cg id='search'%3E%3Cpath id='Shape' d='M11.08,6.77a4.31,4.31,0,1,0-4.31,4.31h0A4.32,4.32,0,0,0,11.08,6.77Zm4.92,8A1.24,1.24,0,0,1,14.77,16a1.17,1.17,0,0,1-.86-.37l-3.3-3.28a6.77,6.77,0,1,1,1.74-1.74l3.3,3.3A1.25,1.25,0,0,1,16,14.77Z' style='fill:%23141414;fill-rule:evenodd'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E") no-repeat;
72
- background-position: center;
73
- background-size: 80%;
74
- border: none;
75
- width: 20px;
76
- position: absolute;
77
- right: 10px;
78
- top: 0;
79
- bottom: 0;
80
- }
81
- }
82
-
83
- }
84
- }
85
29
  }
86
30
 
87
31
  .r-add-event,
88
32
  .r-add-news,
89
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
+ }
90
40
  a {
91
- background: #000;
92
- color: #fff;
41
+ color: #2d2d2d;
93
42
  text-decoration: none;
94
- padding: 1rem;
43
+ display: flex;
44
+ flex-direction: row;
45
+ align-items: center;
46
+ gap: 7px;
47
+ &:hover,&:focus {
48
+ text-decoration: underline;
49
+ }
95
50
  }
96
51
  }
97
52
 
@@ -121,15 +76,7 @@
121
76
  }
122
77
 
123
78
  //// for bla ////
124
- /* filters */
125
- .r-filter {
126
- label {
127
- text-transform: uppercase;
128
- font-weight: bold;
129
- font-size: 13px;
130
- margin-bottom: 10px;
131
- }
132
- }
79
+
133
80
 
134
81
  // content
135
82
  .r-content-description {
@@ -372,4 +319,14 @@
372
319
 
373
320
  .r-search-img {
374
321
  background-color: #c9c9c9 !important;
322
+ }
323
+
324
+ .portaltype-imio-smartweb-eventsview,
325
+ .portaltype-imio-smartweb-directoryview,
326
+ .portaltype-imio-smartweb-newsview {
327
+
328
+ #portal-breadcrumbs,
329
+ #portal-header {
330
+ margin-bottom: 0 !important;
331
+ }
375
332
  }
@@ -8,7 +8,7 @@ import { Link } from "react-router-dom";
8
8
  import "./Map.scss";
9
9
  import "leaflet/dist/leaflet.css";
10
10
  import removeAccents from "remove-accents";
11
- import queryString from 'query-string';
11
+ import queryString from "query-string";
12
12
 
13
13
  function ChangeMapView({ activeItem, arrayOfLatLngs }) {
14
14
  const map = useMap();
@@ -28,12 +28,17 @@ function Map(props) {
28
28
  const [activeItem, setActiveItem] = useState(null);
29
29
  const [filterGeoArray, setFilterGeoArray] = useState([]);
30
30
  const [allPosition, setAllPosition] = useState(null);
31
- const { u, ...parsed } = Object.assign(
32
- { UID: queryString.parse(useFilterQuery().toString())['u'] },
33
- );
31
+ const { u, ...parsed } = Object.assign({
32
+ UID: queryString.parse(useFilterQuery().toString())["u"],
33
+ });
34
34
  // Delete Imio positions
35
35
  useEffect(() => {
36
- const filterArray = props.items.filter((isgeo) => isgeo.geolocation.latitude && isgeo.geolocation.latitude !== 50.4989185 && isgeo.geolocation.longitude !== 4.7184485);
36
+ const filterArray = props.items.filter(
37
+ (isgeo) =>
38
+ isgeo.geolocation.latitude &&
39
+ isgeo.geolocation.latitude !== 50.4989185 &&
40
+ isgeo.geolocation.longitude !== 4.7184485
41
+ );
37
42
  setFilterGeoArray(filterArray);
38
43
  }, [props]);
39
44
 
@@ -43,7 +48,7 @@ function Map(props) {
43
48
  iconUrl: url,
44
49
  iconSize: [29, 37],
45
50
  });
46
- }
51
+ };
47
52
  // Get Marker Icon and Z-index
48
53
  const getMarkerIcon = (index) => {
49
54
  if (index === parsed.UID) {
@@ -73,7 +78,6 @@ function Map(props) {
73
78
  setActiveItem(result[0]);
74
79
  }, [filterGeoArray]);
75
80
 
76
-
77
81
  useEffect(() => {
78
82
  if (filterGeoArray.length > 0) {
79
83
  let posArray = [];
@@ -87,9 +91,9 @@ function Map(props) {
87
91
  }, [filterGeoArray]);
88
92
  const position = [50.85034, 4.35171];
89
93
 
90
- const markers = filterGeoArray.map((mark) => (
94
+ const markers = filterGeoArray.map((mark,i) => (
91
95
  <Marker
92
- key={mark.UID}
96
+ key={i}
93
97
  icon={getMarkerIcon(mark.UID)}
94
98
  zIndexOffset={getMarkerZindex(mark.UID)}
95
99
  position={[
@@ -107,7 +111,12 @@ function Map(props) {
107
111
  className="r-map-popup"
108
112
  style={{ textDecoration: "none" }}
109
113
  to={{
110
- pathname: "/" + removeAccents(mark.title).replace(/[^a-zA-Z ]/g, "").replace(/\s/g, "-").toLowerCase(),
114
+ pathname:
115
+ "/" +
116
+ removeAccents(mark.title)
117
+ .replace(/[^a-zA-Z ]/g, "")
118
+ .replace(/\s/g, "-")
119
+ .toLowerCase(),
111
120
  search: `?u=${mark.UID}`,
112
121
  state: {
113
122
  idItem: mark.UID,
@@ -147,4 +156,4 @@ function Map(props) {
147
156
  );
148
157
  }
149
158
 
150
- export default Map;
159
+ export default Map;
@@ -66,6 +66,24 @@ export default {
66
66
  de: "Kategorien",
67
67
  nl: "Categorieën",
68
68
  },
69
+ "Catégories locale": {
70
+ en: 'Local categories',
71
+ fr: "Catégories locale",
72
+ de: "Lokale Kategorien",
73
+ nl: "Lokale categorieën",
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
+ },
81
+ "Quoi": {
82
+ en: 'What',
83
+ fr: "Quoi",
84
+ de: "Was",
85
+ nl: "Wat",
86
+ },
69
87
  "Facilités": {
70
88
  en: 'Facilities',
71
89
  fr: "Facilités",
@@ -156,6 +174,12 @@ export default {
156
174
  de: ' Veranstaltung gefunden',
157
175
  nl: ' Evenement gevonden',
158
176
  },
177
+ 'Gratuit': {
178
+ en: 'Free',
179
+ fr: 'Gratuit',
180
+ de: 'Kostenlos',
181
+ nl: 'Gratis',
182
+ },
159
183
  "Aucun événement n'a été trouvé": {
160
184
  en: 'No event was found',
161
185
  fr: "Aucun événement n'a été trouvé",
@@ -210,6 +234,12 @@ export default {
210
234
  de: 'Kontakt vorschlagen',
211
235
  nl: 'Contact voorstellen',
212
236
  },
237
+ "Quand": {
238
+ en: 'When',
239
+ fr: "Quand",
240
+ de: 'Wann',
241
+ nl: 'Wanneer',
242
+ },
213
243
  "Toutes les dates": {
214
244
  en: 'All dates',
215
245
  fr: "Toutes les dates",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: imio.smartweb.core
3
- Version: 1.2.47
3
+ Version: 1.2.49
4
4
  Summary: Core product for iMio websites
5
5
  Home-page: https://github.com/imio/imio.smartweb.core
6
6
  Author: Christophe Boulanger
@@ -189,6 +189,35 @@ Changelog
189
189
  =========
190
190
 
191
191
 
192
+ 1.2.49 (2024-05-29)
193
+ -------------------
194
+
195
+ - WEB-4101 : Encode URLs parameters for `search-filters`. This fixes issues with special chars.
196
+ [laulaz]
197
+
198
+ - WEB-3802: Fix after testing, complited traduction, optimize code
199
+ [thomlamb]
200
+
201
+
202
+ 1.2.48 (2024-05-27)
203
+ -------------------
204
+
205
+ - WEB-3802: Add grouped filter for category and local category in React filters
206
+ [thomlamb]
207
+
208
+ - WEB-4101 : Handle (local) categories translations correctly
209
+ [laulaz]
210
+
211
+ - SUP-36937: Add Recurrence dates in React event content view
212
+ [thomlamb]
213
+
214
+ - WEB-4104 : When change section size (front-office method), reindexParent to refresh cache
215
+ [boulch]
216
+
217
+ - WEB-4105 : Make text section smarter about its lead image format (portrait / landscape)
218
+ [boulch]
219
+
220
+
192
221
  1.2.47 (2024-05-07)
193
222
  -------------------
194
223