imio.smartweb.core 1.2.42__py3-none-any.whl → 1.2.43__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/browser/sitemap.py +10 -3
- imio/smartweb/core/contents/pages/portal_page/view.py +3 -0
- imio/smartweb/core/contents/pages/views.py +2 -0
- imio/smartweb/core/contents/rest/utils.py +0 -1
- imio/smartweb/core/contents/sections/configure.zcml +18 -0
- imio/smartweb/core/contents/sections/files/view.py +2 -1
- imio/smartweb/core/contents/sections/macros.pt +25 -0
- imio/smartweb/core/contents/sections/views.py +37 -1
- imio/smartweb/core/interfaces.py +4 -0
- imio/smartweb/core/profiles/default/metadata.xml +1 -1
- imio/smartweb/core/profiles/default/types/imio.smartweb.SectionFiles.xml +1 -0
- imio/smartweb/core/tests/test_htmx_in_sections.py +124 -0
- imio/smartweb/core/upgrades/configure.zcml +19 -1
- imio/smartweb/core/upgrades/profiles/1055_to_1056/types/imio.smartweb.SectionFiles.xml +12 -0
- imio/smartweb/core/utils.py +23 -0
- imio/smartweb/core/viewlets/configure.zcml +22 -0
- imio/smartweb/core/viewlets/htmx.py +15 -0
- imio/smartweb/core/viewlets/htmx_js_header.pt +59 -0
- imio/smartweb/core/webcomponents/src/components/News/News.scss +1 -1
- {imio.smartweb.core-1.2.42.dist-info → imio.smartweb.core-1.2.43.dist-info}/METADATA +17 -1
- {imio.smartweb.core-1.2.42.dist-info → imio.smartweb.core-1.2.43.dist-info}/RECORD +27 -23
- /imio.smartweb.core-1.2.42-py3.10-nspkg.pth → /imio.smartweb.core-1.2.43-py3.10-nspkg.pth +0 -0
- {imio.smartweb.core-1.2.42.dist-info → imio.smartweb.core-1.2.43.dist-info}/LICENSE.GPL +0 -0
- {imio.smartweb.core-1.2.42.dist-info → imio.smartweb.core-1.2.43.dist-info}/LICENSE.rst +0 -0
- {imio.smartweb.core-1.2.42.dist-info → imio.smartweb.core-1.2.43.dist-info}/WHEEL +0 -0
- {imio.smartweb.core-1.2.42.dist-info → imio.smartweb.core-1.2.43.dist-info}/namespace_packages.txt +0 -0
- {imio.smartweb.core-1.2.42.dist-info → imio.smartweb.core-1.2.43.dist-info}/top_level.txt +0 -0
@@ -4,7 +4,6 @@ from imio.smartweb.core.config import EVENTS_URL
|
|
4
4
|
from imio.smartweb.core.config import NEWS_URL
|
5
5
|
from imio.smartweb.core.contents.rest.utils import get_auth_sources_response
|
6
6
|
from imio.smartweb.core.contents.rest.utils import get_entity_id
|
7
|
-
from imio.smartweb.core.utils import get_json
|
8
7
|
from plone import api
|
9
8
|
from plone.base.interfaces import IPloneSiteRoot
|
10
9
|
from plone.app.layout.sitemap.sitemap import SiteMapView
|
@@ -13,6 +12,10 @@ from Products.CMFCore.utils import getToolByName
|
|
13
12
|
from Products.CMFPlone.utils import normalizeString
|
14
13
|
from zope.component import getUtility
|
15
14
|
|
15
|
+
import logging
|
16
|
+
|
17
|
+
logger = logging.getLogger("imio.smartweb.core")
|
18
|
+
|
16
19
|
|
17
20
|
class CustomSiteMapView(SiteMapView):
|
18
21
|
|
@@ -122,8 +125,12 @@ class CustomSiteMapView(SiteMapView):
|
|
122
125
|
return self.request.response.setStatus(
|
123
126
|
404, "No default authentic source found"
|
124
127
|
)
|
125
|
-
|
126
|
-
obj
|
128
|
+
obj = api.content.get(UID=auth_source_uid)
|
129
|
+
if obj is None:
|
130
|
+
logger.warning(
|
131
|
+
f"Seems that a main authentic view (for {auth_source_key}) is not found"
|
132
|
+
)
|
133
|
+
continue
|
127
134
|
auth_source_view_url = obj.absolute_url()
|
128
135
|
results = get_auth_sources_response(
|
129
136
|
auth_source_key, normalizeString(entity_id), (60 * 60 * 24)
|
@@ -1,8 +1,11 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
|
3
|
+
from imio.smartweb.core.interfaces import IHtmxViewUtils
|
3
4
|
from Products.Five.browser import BrowserView
|
5
|
+
from zope.interface import implementer
|
4
6
|
|
5
7
|
|
8
|
+
@implementer(IHtmxViewUtils)
|
6
9
|
class NoTitleView(BrowserView):
|
7
10
|
def __call__(self):
|
8
11
|
return ""
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
from Acquisition import aq_inner
|
4
4
|
from imio.smartweb.core.utils import get_scale_url
|
5
|
+
from imio.smartweb.core.interfaces import IHtmxViewUtils
|
5
6
|
from imio.smartweb.core.interfaces import IViewWithoutLeadImage
|
6
7
|
from imio.smartweb.locales import SmartwebMessageFactory as _
|
7
8
|
from Products.CMFPlone.resources import add_bundle_on_request
|
@@ -17,6 +18,7 @@ from zope.interface import implementer
|
|
17
18
|
|
18
19
|
|
19
20
|
@implementer(IViewWithoutLeadImage)
|
21
|
+
@implementer(IHtmxViewUtils)
|
20
22
|
class PagesView(FolderView):
|
21
23
|
"""Pages view"""
|
22
24
|
|
@@ -5,7 +5,6 @@ from imio.smartweb.core.config import EVENTS_URL
|
|
5
5
|
from imio.smartweb.core.config import NEWS_URL
|
6
6
|
from imio.smartweb.core.utils import get_wca_token
|
7
7
|
from plone.memoize import ram
|
8
|
-
from plone.memoize.view import memoize
|
9
8
|
from time import time
|
10
9
|
from zope.component import getUtility
|
11
10
|
from zope.schema.interfaces import IVocabularyFactory
|
@@ -54,6 +54,24 @@
|
|
54
54
|
layer="imio.smartweb.core.interfaces.IImioSmartwebCoreLayer"
|
55
55
|
/>
|
56
56
|
|
57
|
+
<browser:page
|
58
|
+
for="*"
|
59
|
+
name="getsizes"
|
60
|
+
attribute="get_sizes"
|
61
|
+
class="imio.smartweb.core.contents.sections.views.SectionView"
|
62
|
+
permission="zope2.View"
|
63
|
+
layer="imio.smartweb.core.interfaces.IImioSmartwebCoreLayer"
|
64
|
+
/>
|
65
|
+
|
66
|
+
<browser:page
|
67
|
+
for="*"
|
68
|
+
name="savesize"
|
69
|
+
attribute="save_size"
|
70
|
+
class="imio.smartweb.core.contents.sections.views.SectionView"
|
71
|
+
permission="zope2.View"
|
72
|
+
layer="imio.smartweb.core.interfaces.IImioSmartwebCoreLayer"
|
73
|
+
/>
|
74
|
+
|
57
75
|
<subscriber
|
58
76
|
for="imio.smartweb.core.contents.ISection
|
59
77
|
zope.lifecycleevent.interfaces.IObjectAddedEvent"
|
@@ -10,6 +10,7 @@ class FilesView(CarouselOrTableSectionView):
|
|
10
10
|
"""Files Section view"""
|
11
11
|
|
12
12
|
def items(self):
|
13
|
+
orientation = self.context.orientation
|
13
14
|
image_scale = self.image_scale
|
14
15
|
items = self.context.listFolderContents()
|
15
16
|
results = []
|
@@ -18,7 +19,7 @@ class FilesView(CarouselOrTableSectionView):
|
|
18
19
|
has_image = True if getattr(item.aq_base, "image", None) else False
|
19
20
|
file_view = queryMultiAdapter((item, self.request), name="file_view")
|
20
21
|
scale_url = get_scale_url(
|
21
|
-
item, self.request, "image", image_scale, orientation
|
22
|
+
item, self.request, "image", image_scale, orientation
|
22
23
|
)
|
23
24
|
results.append(
|
24
25
|
{
|
@@ -53,6 +53,31 @@
|
|
53
53
|
<a tal:attributes="href string:${context/absolute_url}/delete_confirmation"
|
54
54
|
i18n:translate="">Delete section</a>
|
55
55
|
|
56
|
+
<form class="form_section_size"
|
57
|
+
style="display: none;"
|
58
|
+
hx-swap="innerHTML"
|
59
|
+
hx-trigger="change"
|
60
|
+
tal:attributes="name string:sizesForm_${context/UID};
|
61
|
+
id string:sizesForm_${context/UID};
|
62
|
+
hx-boost string:${context/UID};
|
63
|
+
hx-post string:${context/absolute_url}/@@savesize;
|
64
|
+
hx-target string:#selected_size_${context/UID}">
|
65
|
+
<select name="sectionSize"
|
66
|
+
class="form-select select_section_size"
|
67
|
+
hx-vals="serialize"
|
68
|
+
tal:attributes="name string:select_${context/UID};
|
69
|
+
id string:select_${context/UID}">
|
70
|
+
<option tal:repeat="size view/get_sizes"
|
71
|
+
tal:attributes="value size/key"
|
72
|
+
tal:content="size/value"></option>
|
73
|
+
</select>
|
74
|
+
</form>
|
75
|
+
<a class="section_size"
|
76
|
+
href="#"
|
77
|
+
tal:attributes="id string:selected_size_${context/UID};
|
78
|
+
uid string:${context/UID}"
|
79
|
+
tal:content="string:${view/get_section_size}"></a>
|
80
|
+
|
56
81
|
<tal:dates define="modified context/ModificationDate">
|
57
82
|
<span class="documentModified"
|
58
83
|
tal:condition="modified">
|
@@ -1,5 +1,9 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
|
3
|
+
from Acquisition import aq_inner
|
4
|
+
from imio.smartweb.common.utils import get_vocabulary
|
5
|
+
from imio.smartweb.common.utils import translate_vocabulary_term
|
6
|
+
from imio.smartweb.core.utils import get_current_language
|
3
7
|
from imio.smartweb.core.utils import hash_md5
|
4
8
|
from imio.smartweb.locales import SmartwebMessageFactory as _
|
5
9
|
from plone import api
|
@@ -60,6 +64,38 @@ class SectionView(BrowserView):
|
|
60
64
|
def is_anonymous(self):
|
61
65
|
return api.user.is_anonymous()
|
62
66
|
|
67
|
+
def get_section_size(self):
|
68
|
+
if not self.context.bootstrap_css_class:
|
69
|
+
return _("Define section size")
|
70
|
+
current_lang = api.portal.get_current_language()[:2]
|
71
|
+
return translate_vocabulary_term(
|
72
|
+
"imio.smartweb.vocabulary.BootstrapCSS",
|
73
|
+
self.context.bootstrap_css_class,
|
74
|
+
current_lang,
|
75
|
+
)
|
76
|
+
|
77
|
+
@property
|
78
|
+
def get_sizes(self):
|
79
|
+
voc = get_vocabulary("imio.smartweb.vocabulary.BootstrapCSS")
|
80
|
+
sizes = [{"key": t.token, "value": _(t.title)} for t in voc]
|
81
|
+
return sizes
|
82
|
+
|
83
|
+
@property
|
84
|
+
def save_size(self):
|
85
|
+
if not self.request.form.get("sectionSize"):
|
86
|
+
return json.dumps({})
|
87
|
+
section_size = self.request.form.get("sectionSize")
|
88
|
+
context = aq_inner(self.context)
|
89
|
+
context.bootstrap_css_class = section_size
|
90
|
+
context.reindexObject()
|
91
|
+
current_lang = get_current_language(self.context)[:2]
|
92
|
+
size_txt = translate_vocabulary_term(
|
93
|
+
"imio.smartweb.vocabulary.BootstrapCSS",
|
94
|
+
self.request.form.get("sectionSize"),
|
95
|
+
current_lang,
|
96
|
+
)
|
97
|
+
return json.dumps({"id": section_size, "title": size_txt})
|
98
|
+
|
63
99
|
|
64
100
|
class CarouselOrTableSectionView(SectionView):
|
65
101
|
"""Section view that can display a carousel"""
|
@@ -71,7 +107,7 @@ class CarouselOrTableSectionView(SectionView):
|
|
71
107
|
if layout == "carousel_view":
|
72
108
|
return self.context.nb_results_by_batch == 1 and "affiche" or "vignette"
|
73
109
|
elif layout == "table_view":
|
74
|
-
return self.context.nb_results_by_batch == 1 and "
|
110
|
+
return self.context.nb_results_by_batch == 1 and "affiche" or "vignette"
|
75
111
|
else:
|
76
112
|
return getattr(self.context, "image_scale", "")
|
77
113
|
|
imio/smartweb/core/interfaces.py
CHANGED
@@ -0,0 +1,124 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
from imio.smartweb.core.interfaces import IImioSmartwebCoreLayer
|
4
|
+
from imio.smartweb.core.testing import IMIO_SMARTWEB_CORE_FUNCTIONAL_TESTING
|
5
|
+
from imio.smartweb.core.testing import ImioSmartwebTestCase
|
6
|
+
from plone import api
|
7
|
+
from plone.app.testing import logout
|
8
|
+
from plone.app.testing import setRoles
|
9
|
+
from plone.app.testing import TEST_USER_ID
|
10
|
+
from plone.app.testing import TEST_USER_NAME
|
11
|
+
from plone.app.testing import TEST_USER_PASSWORD
|
12
|
+
from plone.app.textfield.value import RichTextValue
|
13
|
+
from plone.protect.authenticator import createToken
|
14
|
+
from plone.testing.zope import Browser
|
15
|
+
from zope.component import getMultiAdapter
|
16
|
+
from zope.component import queryMultiAdapter
|
17
|
+
from zope.interface import alsoProvides
|
18
|
+
|
19
|
+
import json
|
20
|
+
import re
|
21
|
+
import transaction
|
22
|
+
|
23
|
+
|
24
|
+
class TestSections(ImioSmartwebTestCase):
|
25
|
+
layer = IMIO_SMARTWEB_CORE_FUNCTIONAL_TESTING
|
26
|
+
|
27
|
+
def setUp(self):
|
28
|
+
self.request = self.layer["request"]
|
29
|
+
self.portal = self.layer["portal"]
|
30
|
+
setRoles(self.portal, TEST_USER_ID, ["Manager"])
|
31
|
+
self.page = api.content.create(
|
32
|
+
container=self.portal,
|
33
|
+
type="imio.smartweb.Page",
|
34
|
+
id="page",
|
35
|
+
)
|
36
|
+
alsoProvides(self.request, IImioSmartwebCoreLayer)
|
37
|
+
self.section_text = api.content.create(
|
38
|
+
container=self.page,
|
39
|
+
type="imio.smartweb.SectionText",
|
40
|
+
title="Section Text",
|
41
|
+
id="section-text",
|
42
|
+
)
|
43
|
+
self.section_text.text = RichTextValue(
|
44
|
+
"<p>My rich text</p>", "text/html", "text/html"
|
45
|
+
)
|
46
|
+
api.content.transition(self.page, "publish")
|
47
|
+
|
48
|
+
def test_htmx_not_loaded_for_anonymous(self):
|
49
|
+
logout()
|
50
|
+
view = queryMultiAdapter((self.page, self.request), name="full_view")
|
51
|
+
self.assertNotIn("https://unpkg.com/htmx.org@1.9.10/dist/htmx.js", view())
|
52
|
+
|
53
|
+
def test_all_html_elements_are_here(self):
|
54
|
+
view = queryMultiAdapter((self.page, self.request), name="full_view")
|
55
|
+
# test if htmx well loaded
|
56
|
+
self.assertIn("https://unpkg.com/htmx.org@1.9.10/dist/htmx.js", view())
|
57
|
+
section_text_uid = self.section_text.UID()
|
58
|
+
# test if elements are here and have the right id
|
59
|
+
self.assertIn(f"sizesForm_{section_text_uid}", view())
|
60
|
+
self.assertIn(f'hx-boost="{section_text_uid}"', view())
|
61
|
+
self.assertIn(f'id="selected_size_{section_text_uid}"', view())
|
62
|
+
self.assertIn(f'hx-target="#selected_size_{section_text_uid}"', view())
|
63
|
+
|
64
|
+
def test_options_in_select(self):
|
65
|
+
view = queryMultiAdapter((self.page, self.request), name="full_view")
|
66
|
+
section_text_view = getMultiAdapter(
|
67
|
+
(self.section_text, self.request), name="view"
|
68
|
+
)
|
69
|
+
available_sizes = section_text_view.get_sizes
|
70
|
+
match = re.search(
|
71
|
+
r'<form class="form_section_size".*?</form>', view(), re.DOTALL
|
72
|
+
)
|
73
|
+
form_to_choose_size = match.group(0)
|
74
|
+
nb_occurrences = len(re.findall(r"<option", form_to_choose_size))
|
75
|
+
self.assertEqual(len(available_sizes), nb_occurrences)
|
76
|
+
for size in available_sizes:
|
77
|
+
self.assertIn(
|
78
|
+
f'<option value="{size["key"]}">{size["value"]}</option>',
|
79
|
+
form_to_choose_size,
|
80
|
+
)
|
81
|
+
|
82
|
+
def test_change_section_size(self):
|
83
|
+
transaction.commit()
|
84
|
+
section_text_uid = self.section_text.UID()
|
85
|
+
browser = Browser(self.layer["app"])
|
86
|
+
browser.addHeader(
|
87
|
+
"Authorization",
|
88
|
+
"Basic %s:%s"
|
89
|
+
% (
|
90
|
+
TEST_USER_NAME,
|
91
|
+
TEST_USER_PASSWORD,
|
92
|
+
),
|
93
|
+
)
|
94
|
+
browser.open(f"{self.page.absolute_url()}/full_view/?language=fr")
|
95
|
+
contents = browser.contents
|
96
|
+
div_section_container = (
|
97
|
+
'<div class="sortable-section sectiontext" data-id="section-text" style="">'
|
98
|
+
)
|
99
|
+
self.assertIn(div_section_container, contents)
|
100
|
+
|
101
|
+
select = browser.getControl(name=f"select_{section_text_uid}")
|
102
|
+
select.value = "col-sm-12"
|
103
|
+
browser.getForm(name=f"sizesForm_{section_text_uid}").submit()
|
104
|
+
section_text_view = getMultiAdapter(
|
105
|
+
(self.section_text, self.request), name="view"
|
106
|
+
)
|
107
|
+
self.assertEqual(section_text_view.save_size, json.dumps({}))
|
108
|
+
|
109
|
+
self.request.form["sectionSize"] = select.value[0]
|
110
|
+
self.request.form["_authenticator"] = createToken()
|
111
|
+
section_text_view = getMultiAdapter(
|
112
|
+
(self.section_text, self.request), name="view"
|
113
|
+
)
|
114
|
+
section_text_view.save_size
|
115
|
+
self.assertEqual(
|
116
|
+
section_text_view.save_size,
|
117
|
+
json.dumps({"id": "col-sm-12", "title": "Full width"}),
|
118
|
+
)
|
119
|
+
transaction.commit()
|
120
|
+
|
121
|
+
browser.open(f"{self.page.absolute_url()}/full_view/?language=fr")
|
122
|
+
contents = browser.contents
|
123
|
+
div_section_container = f'<div class="sortable-section sectiontext {select.value[0]}" data-id="section-text" style="">'
|
124
|
+
self.assertIn(div_section_container, contents)
|
@@ -219,6 +219,14 @@
|
|
219
219
|
provides="Products.GenericSetup.interfaces.EXTENSION"
|
220
220
|
/>
|
221
221
|
|
222
|
+
<genericsetup:registerProfile
|
223
|
+
name="upgrade_1055_to_1056"
|
224
|
+
title="Upgrade core from 1055 to 1056"
|
225
|
+
directory="profiles/1055_to_1056"
|
226
|
+
description="Add imio.smartweb.orientation to section files"
|
227
|
+
provides="Products.GenericSetup.interfaces.EXTENSION"
|
228
|
+
/>
|
229
|
+
|
222
230
|
<genericsetup:upgradeStep
|
223
231
|
title="Configure first official release"
|
224
232
|
description="Run needed profiles steps and reindex catalog"
|
@@ -783,4 +791,14 @@
|
|
783
791
|
/>
|
784
792
|
</genericsetup:upgradeSteps>
|
785
793
|
|
786
|
-
|
794
|
+
<genericsetup:upgradeSteps
|
795
|
+
source="1055"
|
796
|
+
destination="1056"
|
797
|
+
profile="imio.smartweb.core:default">
|
798
|
+
<genericsetup:upgradeDepends
|
799
|
+
title="Add imio.smartweb.orientation to section files"
|
800
|
+
import_profile="imio.smartweb.core.upgrades:upgrade_1055_to_1056"
|
801
|
+
/>
|
802
|
+
</genericsetup:upgradeSteps>
|
803
|
+
|
804
|
+
</configure>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<object xmlns:i18n="http://xml.zope.org/namespaces/i18n"
|
3
|
+
name="imio.smartweb.SectionHTML"
|
4
|
+
meta_type="Dexterity FTI"
|
5
|
+
i18n:domain="imio.smartweb">
|
6
|
+
|
7
|
+
<!-- Enabled behaviors -->
|
8
|
+
<property name="behaviors" purge="false">
|
9
|
+
<element value="imio.smartweb.orientation"/>
|
10
|
+
</property>
|
11
|
+
|
12
|
+
</object>
|
imio/smartweb/core/utils.py
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
|
3
|
+
from Acquisition import aq_inner
|
3
4
|
from Acquisition import aq_parent
|
4
5
|
from collective.taxonomy.interfaces import ITaxonomy
|
5
6
|
from imio.smartweb.core.config import WCA_URL
|
@@ -13,6 +14,7 @@ from Products.CMFPlone.interfaces.siteroot import IPloneSiteRoot
|
|
13
14
|
from Products.CMFPlone.utils import base_hasattr
|
14
15
|
from zope.component import getSiteManager
|
15
16
|
from zope.component import queryMultiAdapter
|
17
|
+
from zope.globalrequest import getRequest
|
16
18
|
|
17
19
|
import hashlib
|
18
20
|
import json
|
@@ -196,3 +198,24 @@ def get_plausible_vars():
|
|
196
198
|
return plausible_vars
|
197
199
|
else:
|
198
200
|
return None
|
201
|
+
|
202
|
+
|
203
|
+
def get_current_language(context=None):
|
204
|
+
"""Return the current negotiated language.
|
205
|
+
|
206
|
+
:param context: context object
|
207
|
+
:type context: object
|
208
|
+
:returns: language identifier
|
209
|
+
:rtype: string
|
210
|
+
:Example: :ref:`portal-get-current-language-example`
|
211
|
+
"""
|
212
|
+
request = getRequest()
|
213
|
+
if request is None:
|
214
|
+
return (
|
215
|
+
context and aq_inner(context).Language()
|
216
|
+
) or api.portal.get_default_language()
|
217
|
+
return (
|
218
|
+
request.get("LANGUAGE", None)
|
219
|
+
or (context and aq_inner(context).Language())
|
220
|
+
or api.portal.get_default_language()
|
221
|
+
)
|
@@ -328,6 +328,28 @@
|
|
328
328
|
/>
|
329
329
|
</configure>
|
330
330
|
|
331
|
+
<browser:viewlet
|
332
|
+
name="smartweb.htmx.js"
|
333
|
+
for="imio.smartweb.core.contents.IPage"
|
334
|
+
view="imio.smartweb.core.interfaces.IHtmxViewUtils"
|
335
|
+
manager="plone.app.layout.viewlets.interfaces.IHtmlHead"
|
336
|
+
layer="imio.smartweb.core.interfaces.IImioSmartwebCoreLayer"
|
337
|
+
template="htmx_js_header.pt"
|
338
|
+
class=".htmx.HtmxViewlet"
|
339
|
+
permission="zope2.View"
|
340
|
+
/>
|
341
|
+
|
342
|
+
<browser:viewlet
|
343
|
+
name="smartweb.htmx.js"
|
344
|
+
for="imio.smartweb.core.contents.IPortalPage"
|
345
|
+
view="imio.smartweb.core.interfaces.IHtmxViewUtils"
|
346
|
+
manager="plone.app.layout.viewlets.interfaces.IHtmlHead"
|
347
|
+
layer="imio.smartweb.core.interfaces.IImioSmartwebCoreLayer"
|
348
|
+
template="htmx_js_header.pt"
|
349
|
+
class=".htmx.HtmxViewlet"
|
350
|
+
permission="zope2.View"
|
351
|
+
/>
|
352
|
+
|
331
353
|
<!-- Overrides to change viewlets managers -->
|
332
354
|
|
333
355
|
<configure package="plone.app.multilingual.browser">
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
from plone import api
|
4
|
+
from plone.app.layout.viewlets.httpheaders import HeaderViewlet
|
5
|
+
|
6
|
+
|
7
|
+
class HtmxViewlet(HeaderViewlet):
|
8
|
+
"""htmx"""
|
9
|
+
|
10
|
+
def update(self):
|
11
|
+
super(HtmxViewlet, self).update()
|
12
|
+
|
13
|
+
@property
|
14
|
+
def is_anonymous(self):
|
15
|
+
return api.user.is_anonymous()
|
@@ -0,0 +1,59 @@
|
|
1
|
+
<tal:cond condition="python:not view.is_anonymous">
|
2
|
+
<script src="https://unpkg.com/htmx.org@1.9.10/dist/htmx.js"></script>
|
3
|
+
|
4
|
+
<script type="text/javascript">
|
5
|
+
$(document).ready(function() {
|
6
|
+
/**
|
7
|
+
Manage section size
|
8
|
+
When clicking on link (<a>) with class "section_size", display the form to select the section size
|
9
|
+
*/
|
10
|
+
$(".manage-section > a.section_size").on("click", function(event) {
|
11
|
+
event.preventDefault();
|
12
|
+
var clickedElement = event.target;
|
13
|
+
var uid = clickedElement.getAttribute("uid");
|
14
|
+
var sizesForm = $("#sizesForm_" + uid);
|
15
|
+
// Get <select>
|
16
|
+
var selectElement = document.querySelector("#sizesForm_" + uid + " > select");
|
17
|
+
sizesForm.css({ "display": "inline-block", "position": "absolute", "zIndex": "2" });
|
18
|
+
selectElement.selectedIndex = -1;
|
19
|
+
selectElement.size = selectElement.options.length;
|
20
|
+
selectElement.focus();
|
21
|
+
selectElement.addEventListener('focusout', function(event) {
|
22
|
+
sizesForm.css("display", "none");
|
23
|
+
});
|
24
|
+
});
|
25
|
+
|
26
|
+
/**
|
27
|
+
Manage section size
|
28
|
+
When submitting the form, update the section size and the class of the parent element
|
29
|
+
(to directly resize the section)
|
30
|
+
*/
|
31
|
+
$(".manage-section > form").on("htmx:afterRequest", function(event) {
|
32
|
+
event.preventDefault();
|
33
|
+
var response = JSON.parse(event.detail.xhr.response);
|
34
|
+
var currentForm = event.target;
|
35
|
+
var uid = currentForm.getAttribute("hx-boost");
|
36
|
+
var link = document.getElementById("selected_size_" + uid);
|
37
|
+
var parent = currentForm.closest('.sortable-section');
|
38
|
+
var lst_parent_classes = $(parent).attr("class").split(" ");
|
39
|
+
var new_parent_classes = ""
|
40
|
+
var find = false;
|
41
|
+
for (var i = 0; i < lst_parent_classes.length; i++) {
|
42
|
+
if (lst_parent_classes[i].startsWith("col-")) {
|
43
|
+
find = true;
|
44
|
+
lst_parent_classes[i] = response.id;
|
45
|
+
}
|
46
|
+
new_parent_classes += new_parent_classes + " " + lst_parent_classes[i];
|
47
|
+
}
|
48
|
+
// "col-" can not be found if there is no section size defined
|
49
|
+
if (find == false) {
|
50
|
+
new_parent_classes += " " + response.id;
|
51
|
+
}
|
52
|
+
$(parent).removeClass().addClass(new_parent_classes);
|
53
|
+
currentForm.style.display = "none";
|
54
|
+
link.innerText = response.title;
|
55
|
+
link.style.display = "inline-block";
|
56
|
+
});
|
57
|
+
});
|
58
|
+
</script>
|
59
|
+
</tal:cond>
|
@@ -133,7 +133,7 @@
|
|
133
133
|
.r-list-item-group {
|
134
134
|
&:hover {
|
135
135
|
.r-item-arrow-more {
|
136
|
-
background: url(
|
136
|
+
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20.44 10'%3E%3Cg data-name='Calque 2'%3E%3Cg data-name='Calque 1'%3E%3Cpath d='M1 5h18.44' data-name='Ligne 7' style='fill:none;stroke:%23fff;stroke-linecap:round;stroke-width:2px'/%3E%3Cpath d='m14.83 1 4.61 4' data-name='Ligne 8' style='fill:none;stroke:%23fff;stroke-linecap:round;stroke-width:2px'/%3E%3Cpath d='m14.83 9 4.61-4' data-name='Ligne 9' style='fill:none;stroke:%23fff;stroke-linecap:round;stroke-width:2px'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"), #F9B331;
|
137
137
|
background-repeat: no-repeat;
|
138
138
|
background-size: 20px;
|
139
139
|
background-position: center;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: imio.smartweb.core
|
3
|
-
Version: 1.2.
|
3
|
+
Version: 1.2.43
|
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,22 @@ Changelog
|
|
189
189
|
=========
|
190
190
|
|
191
191
|
|
192
|
+
1.2.43 (2024-04-18)
|
193
|
+
-------------------
|
194
|
+
|
195
|
+
- WEB-4099 : Resize sections in front-end thanks to htmx / jquery
|
196
|
+
[boulch]
|
197
|
+
|
198
|
+
- WEB-4098 : Add affiche scale for section on table view display and one element by lot
|
199
|
+
[thomlamb]
|
200
|
+
|
201
|
+
- WEB-4098 : Add new profile for imio.smartweb.orientation to section files
|
202
|
+
[thomlamb]
|
203
|
+
|
204
|
+
- SUP-35100 : Fix sitemap.xml.gz generation. When a "main" rest view was removed, continue to build sitemap for others rest views
|
205
|
+
[boulch]
|
206
|
+
|
207
|
+
|
192
208
|
1.2.42 (2024-04-12)
|
193
209
|
-------------------
|
194
210
|
|
@@ -1,10 +1,10 @@
|
|
1
|
-
imio.smartweb.core-1.2.
|
1
|
+
imio.smartweb.core-1.2.43-py3.10-nspkg.pth,sha256=wnCUSUElqssZ5FI3x-9HqwD229HQ-bAuPoDUNJHmMtU,1684
|
2
2
|
imio/smartweb/core/__init__.py,sha256=iwhKnzeBJLKxpRVjvzwiRE63_zNpIBfaKLITauVph-0,24
|
3
3
|
imio/smartweb/core/config.py,sha256=BUgfvh4hCaw0onCYAG4gQI1O4hZ-GzXWEltdHi4YLIs,337
|
4
4
|
imio/smartweb/core/configure.zcml,sha256=PeC4rF--rF6MfVQ0NzggQrZWIl35oPtJdEhvQwGxhhI,1459
|
5
5
|
imio/smartweb/core/indexers.py,sha256=Lv1lHWFzM71ju822N8y7w61GDOyi6qmUbveZNI1tCz4,3887
|
6
6
|
imio/smartweb/core/indexers.zcml,sha256=XHvKTkNcF5mkX-dVwRbjNsrBwIwwqa2Cm81PoXBqtow,968
|
7
|
-
imio/smartweb/core/interfaces.py,sha256=
|
7
|
+
imio/smartweb/core/interfaces.py,sha256=ioMwBC-HdOyz35HQGMZTksaJf8GLS2hbRz2wjvB_r5w,1217
|
8
8
|
imio/smartweb/core/permissions.zcml,sha256=ZyBEARyO8NAq7tKFTb3G1FqEWERT1mQQ6vCVzji1ci8,1777
|
9
9
|
imio/smartweb/core/profiles.zcml,sha256=H9crlNrI8zLxgmkpbkhkD3Ti5LRF8Zutk3AJXNBpvw0,2299
|
10
10
|
imio/smartweb/core/setuphandlers.py,sha256=k1K8-ezP2gELwCNM5An2bBwQJjAKeS0rYtr2-q_InK8,932
|
@@ -12,7 +12,7 @@ imio/smartweb/core/subscribers.py,sha256=9I6fAJj1FhtkYQZ2Ug_3Bl-p_rn1Nf9_BBHo_iU
|
|
12
12
|
imio/smartweb/core/subscribers.zcml,sha256=48jHmwwnW37LFCN8HFlxdCe8CgNohYRY_pvbKYa2Gww,1016
|
13
13
|
imio/smartweb/core/testing.py,sha256=t0Y3t3FXX2RjgklcRzHT37AjKbMKL3ZjjT3d2UhQm7A,3636
|
14
14
|
imio/smartweb/core/testing.zcml,sha256=VyKjWW2QHYuUYKkGUvtsdFI_Pa7Wcp1yBBDla112eMc,172
|
15
|
-
imio/smartweb/core/utils.py,sha256=
|
15
|
+
imio/smartweb/core/utils.py,sha256=ozDjW737fjTtAHLocs6YzVssOgKfg8De51NxnSER3Z0,7245
|
16
16
|
imio/smartweb/core/vocabularies.py,sha256=dZTt0hTNKwnlBNFDtKEc-10ISDXeMB9pxZOJx10GvQA,20587
|
17
17
|
imio/smartweb/core/vocabularies.zcml,sha256=lqiCmaaJwMcO18fWlrtdpI-1g3AZ-Krh9mXRTt1y8o4,5264
|
18
18
|
imio/smartweb/core/behaviors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -29,7 +29,7 @@ imio/smartweb/core/browser/forms.py,sha256=_6Z0x7yVeA5JaW4IwpYkX7bTIbw0UskgvtGfN
|
|
29
29
|
imio/smartweb/core/browser/icons.py,sha256=LFBCYTfynp4qNX2OQuNmMTOUEcJv-oQ8Izu6opE3o7A,2065
|
30
30
|
imio/smartweb/core/browser/layout.py,sha256=wvo_Q2dYg1Yd8wOdYSfPg29NPESy9ndAGl6z3r5kxnY,2066
|
31
31
|
imio/smartweb/core/browser/redirect_to_main_react_view.py,sha256=vzJwAet0P2uoMhlOtNjMy02e4LQw9DsHb6mRgBXGOB8,1668
|
32
|
-
imio/smartweb/core/browser/sitemap.py,sha256=
|
32
|
+
imio/smartweb/core/browser/sitemap.py,sha256=voch7Bvchz3NTCm9zUC75sShCLD4KunLKyWA6OtaGmE,5962
|
33
33
|
imio/smartweb/core/browser/utils.py,sha256=ccA2DVA994S3t92_fQeMSFIGfAblE9C1vw78ZFUAJiU,3218
|
34
34
|
imio/smartweb/core/browser/vocabulary.py,sha256=CHQeWZwvjDeoPLZS6C89ucfGGGnxBbAYpVu31_n7TSA,1142
|
35
35
|
imio/smartweb/core/browser/banner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -166,7 +166,7 @@ imio/smartweb/core/contents/pages/pages.py,sha256=iCQwzbp4nnGqwy31UE5Q9MaeJVAzJU
|
|
166
166
|
imio/smartweb/core/contents/pages/subscriber.py,sha256=2efcWPA5VsoEzv1_fIWh3sn1k2g0Kx_B_cTyQ5LIhLg,961
|
167
167
|
imio/smartweb/core/contents/pages/view.pt,sha256=0-rTH5tgN9mgSHdt9_0qwYQpJO0nC4Wc0Kg6CUGRCbY,3127
|
168
168
|
imio/smartweb/core/contents/pages/view_section.pt,sha256=_jYm5FqFVYr1Jia5r9qmqryd2a6NDNXO5SWu6osTZ0A,1345
|
169
|
-
imio/smartweb/core/contents/pages/views.py,sha256=
|
169
|
+
imio/smartweb/core/contents/pages/views.py,sha256=hHuK6_1JsmIJVWKRGXApcgVwl50k3jAFH2M2Z20BhTo,4938
|
170
170
|
imio/smartweb/core/contents/pages/cirkwi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
171
171
|
imio/smartweb/core/contents/pages/cirkwi/configure.zcml,sha256=f5kNhtZhY10aHetW5nZZZ00tbBQP1EiezVia5_JfJlg,378
|
172
172
|
imio/smartweb/core/contents/pages/cirkwi/content.py,sha256=SYRqRgs5cluwHeMVnM63cmzrmeZp3tHlNyTTXTbsbII,664
|
@@ -184,7 +184,7 @@ imio/smartweb/core/contents/pages/page/content.py,sha256=aW9zBWQCNPTbE-heY5eiM_M
|
|
184
184
|
imio/smartweb/core/contents/pages/portal_page/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
185
185
|
imio/smartweb/core/contents/pages/portal_page/configure.zcml,sha256=2ItrYCWjrdvvk5_piKmAkOeO4gbdn70gzgNKAuST-Vs,352
|
186
186
|
imio/smartweb/core/contents/pages/portal_page/content.py,sha256=abPGe30xSvPUMCl96asDe453J-wI3QQ6tNF5tM1jfkg,336
|
187
|
-
imio/smartweb/core/contents/pages/portal_page/view.py,sha256=
|
187
|
+
imio/smartweb/core/contents/pages/portal_page/view.py,sha256=RrCUBUDSZeTohtSSINn8wFvqLAV1q0ZPL5voUjXd6n8,272
|
188
188
|
imio/smartweb/core/contents/pages/procedure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
189
189
|
imio/smartweb/core/contents/pages/procedure/configure.zcml,sha256=pyeShXwkU4p6WrEQmLm-_SbTtRwtn0GLvQWU5wbm7i0,356
|
190
190
|
imio/smartweb/core/contents/pages/procedure/content.py,sha256=e_kv7YsRF0vblfpxqqs9uhTLObA1NmiXiVyh0JWwoEc,1297
|
@@ -194,7 +194,7 @@ imio/smartweb/core/contents/rest/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRk
|
|
194
194
|
imio/smartweb/core/contents/rest/base.py,sha256=8VWBC7EKJUW6rNVH8DLD4JWGCHY7lDSQ-xJtEOsdBW0,2428
|
195
195
|
imio/smartweb/core/contents/rest/configure.zcml,sha256=vANiA3brvm8rsJIUSVNf0BdlEnejpEGXoC82-hpxKkA,433
|
196
196
|
imio/smartweb/core/contents/rest/traversal.py,sha256=KLNGhUmvTAzaRqSIzT3B28HgMBK4vcNV75AfyIesjN8,540
|
197
|
-
imio/smartweb/core/contents/rest/utils.py,sha256=
|
197
|
+
imio/smartweb/core/contents/rest/utils.py,sha256=paMFXc81Hni0a8fpfNQtRTAr1vXNtXgBs5qLOn3_k2Q,3073
|
198
198
|
imio/smartweb/core/contents/rest/view.py,sha256=nOdJ3It-cEzwCLqz4QMAzMwZCWsMnWIJrSIhLcbCU4s,1014
|
199
199
|
imio/smartweb/core/contents/rest/directory/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
200
200
|
imio/smartweb/core/contents/rest/directory/configure.zcml,sha256=_K34jECLk9RWscAyiRXwoJLLBIVj-EJRGFOEbUU5Ito,1035
|
@@ -219,10 +219,10 @@ imio/smartweb/core/contents/rest/search/configure.zcml,sha256=BTFcBQ28NINyEfoVgY
|
|
219
219
|
imio/smartweb/core/contents/rest/search/endpoint.py,sha256=i5LMM0R1Xvpy76JHO6pI98G41Xep15fPR9uv9rqropo,9797
|
220
220
|
imio/smartweb/core/contents/sections/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
221
221
|
imio/smartweb/core/contents/sections/base.py,sha256=2e3lIG_RGGFAshBEkTNG97OReAnn9GLQk_O_Eqh7SRY,2486
|
222
|
-
imio/smartweb/core/contents/sections/configure.zcml,sha256=
|
223
|
-
imio/smartweb/core/contents/sections/macros.pt,sha256=
|
222
|
+
imio/smartweb/core/contents/sections/configure.zcml,sha256=bUqipFja2372GWcS029GK4--1vtYG5C947VI6LZqLyc,2754
|
223
|
+
imio/smartweb/core/contents/sections/macros.pt,sha256=1Jk_bbaBCqfIBcuM4EoO94aBD7jcXgvmozBGs2yQY8Y,5541
|
224
224
|
imio/smartweb/core/contents/sections/subscriber.py,sha256=WM7nEZVPOkmyT1GfkWGDWwLhuhUYaTnlBr6BJVqUJMk,642
|
225
|
-
imio/smartweb/core/contents/sections/views.py,sha256=
|
225
|
+
imio/smartweb/core/contents/sections/views.py,sha256=NdD8dJKYhnruXhxwguoeoScI3bT04wjfR2lVAJaEfGs,5046
|
226
226
|
imio/smartweb/core/contents/sections/collection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
227
227
|
imio/smartweb/core/contents/sections/collection/configure.zcml,sha256=Ak4UbKFjogWZad6-5_y6oSx8tWXt3nN7bEdKXG7pQCI,920
|
228
228
|
imio/smartweb/core/contents/sections/collection/content.py,sha256=DMmU9rIaRlbRjIaot5RHXu59vJmAbun0FCmyahWhBCM,2379
|
@@ -254,7 +254,7 @@ imio/smartweb/core/contents/sections/external_content/views.py,sha256=yInKcthDf-
|
|
254
254
|
imio/smartweb/core/contents/sections/files/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
255
255
|
imio/smartweb/core/contents/sections/files/configure.zcml,sha256=DyyHzDEKLWmOywbV08Zf7bvf0At5jyAeDfZ8PCK5Rog,501
|
256
256
|
imio/smartweb/core/contents/sections/files/content.py,sha256=60wt1VguNqKBu3fyuuG2dcrHC-9FjxTf96af2IqU3fw,871
|
257
|
-
imio/smartweb/core/contents/sections/files/view.py,sha256=
|
257
|
+
imio/smartweb/core/contents/sections/files/view.py,sha256=ThEXBCD-WhTYDz6BsJqO8pJiIB1cT_twVgaAPvM4h7I,1286
|
258
258
|
imio/smartweb/core/contents/sections/gallery/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
259
259
|
imio/smartweb/core/contents/sections/gallery/configure.zcml,sha256=0fq5_PWU9vFrmPkExvFPBCzZrDSnlN8B0K7fHQReAvA,424
|
260
260
|
imio/smartweb/core/contents/sections/gallery/content.py,sha256=l6HLGVNi70gcEP-zz9OXi2WYtyd-V6LCAZH44a2Td_s,780
|
@@ -316,7 +316,7 @@ imio/smartweb/core/profiles/default/browserlayer.xml,sha256=j9-hf9pW0KRVUx9S7sOH
|
|
316
316
|
imio/smartweb/core/profiles/default/catalog.xml,sha256=AZx3c3qR6ANx8y269IxmDOIvB7yVSOTy6D1nP9kXza0,864
|
317
317
|
imio/smartweb/core/profiles/default/controlpanel.xml,sha256=9FSBU7UaS7-b02DRCmbAs-j0HgdVzbP-TQQ8T9rXvyE,400
|
318
318
|
imio/smartweb/core/profiles/default/diff_tool.xml,sha256=66L2L7ZBGJajPDeHl16A3h6RUcj9l0C7qpwe8JSYe7o,212
|
319
|
-
imio/smartweb/core/profiles/default/metadata.xml,sha256=
|
319
|
+
imio/smartweb/core/profiles/default/metadata.xml,sha256=A-x4_Rq09ieonn0OJ7kSAFBCK7IIdHDQTlK9oy88DGs,1218
|
320
320
|
imio/smartweb/core/profiles/default/repositorytool.xml,sha256=aTErs-VvEEV3dm9_TdgPZfx1Pb1f5Sw7ap7IgiJOK4w,227
|
321
321
|
imio/smartweb/core/profiles/default/rolemap.xml,sha256=xZIPtzR9vfQLMZKg8FPLdIIeYb2VzjXl8z2CtURWGsc,2726
|
322
322
|
imio/smartweb/core/profiles/default/types.xml,sha256=xkQyPtEccUnAHu5mL83r96dmtnCWNn17lVRJPP2jWMg,2040
|
@@ -347,7 +347,7 @@ imio/smartweb/core/profiles/default/types/imio.smartweb.SectionCollection.xml,sh
|
|
347
347
|
imio/smartweb/core/profiles/default/types/imio.smartweb.SectionContact.xml,sha256=gh4Aal-ZNoV-_t1TiNIdyYsyZaYGQ56fRk9Ata37on0,1183
|
348
348
|
imio/smartweb/core/profiles/default/types/imio.smartweb.SectionEvents.xml,sha256=5qfrH7XxqyDssiS_9dFh4_ub16IYdJr5wSXJ5se3lTE,1484
|
349
349
|
imio/smartweb/core/profiles/default/types/imio.smartweb.SectionExternalContent.xml,sha256=C1BFq3Kn52p4xLfYgiJg9B1AOimq5lPd-3IyNUtjtZI,1284
|
350
|
-
imio/smartweb/core/profiles/default/types/imio.smartweb.SectionFiles.xml,sha256=
|
350
|
+
imio/smartweb/core/profiles/default/types/imio.smartweb.SectionFiles.xml,sha256=h7GNc8Kt4nNp-8yK9JMYohjqnU_CEQ6eWzGcoY7S4Us,1539
|
351
351
|
imio/smartweb/core/profiles/default/types/imio.smartweb.SectionGallery.xml,sha256=8CPXF2CBF-9cz13jowiU0eUqLxzph6ic4Ly6GzVD0NQ,1349
|
352
352
|
imio/smartweb/core/profiles/default/types/imio.smartweb.SectionHTML.xml,sha256=qIaImpJ6b70saTXNs-X5EgU8jqx6FGyR3Kguyt7Tc3A,1191
|
353
353
|
imio/smartweb/core/profiles/default/types/imio.smartweb.SectionLinks.xml,sha256=Ee5OyXdJNjGNhdyAvm6TkxiWVzIi2WtTgUkaqvyhsOQ,1595
|
@@ -388,6 +388,7 @@ imio/smartweb/core/tests/test_faceted.py,sha256=4wCfxDsU_zQ2G9xAy0g2jcuYl4HBALHs
|
|
388
388
|
imio/smartweb/core/tests/test_folder.py,sha256=JjV5Hvo6IMEFHo2kowbqhLxcXy11zHRTKL9jYJrRHV0,13527
|
389
389
|
imio/smartweb/core/tests/test_footer.py,sha256=5FYaKDRrY10_rXvetVmbo6-uOZSRQuOkaO_fvuv94N4,10970
|
390
390
|
imio/smartweb/core/tests/test_herobanner.py,sha256=oCbnS288FcJqbhWDmqdWcAXi4S7qdnf2MvBtxrLVd_I,5940
|
391
|
+
imio/smartweb/core/tests/test_htmx_in_sections.py,sha256=Y1aiIAWBqT9ej_Ms6iwLHmfzfLYG0uUEr_QEyZUeAvs,5000
|
391
392
|
imio/smartweb/core/tests/test_icons.py,sha256=sP1lIVnImCREersIZp1_QfD1LLyLFyr_mSMpt-ybgfY,2788
|
392
393
|
imio/smartweb/core/tests/test_indexes.py,sha256=DtRgpdkZ2PKu8y8OrARY1Gk3JU-siWlkDf98A_ZvzFI,10784
|
393
394
|
imio/smartweb/core/tests/test_instance_behaviors.py,sha256=YMLtXkhxrLlD0nh0wx1-kX2hawQiOGvJqYXh_s53GPI,4274
|
@@ -453,7 +454,7 @@ imio/smartweb/core/tests/robot/test_ct_page.robot,sha256=UoH47egHyCCVHmfqPdA1vQe
|
|
453
454
|
imio/smartweb/core/tests/robot/test_ct_procedure.robot,sha256=vTeIpI4inkRWbJy41EZc1bkLL5tLrblRFYtNA820H68,2712
|
454
455
|
imio/smartweb/core/tests/robot/test_example.robot,sha256=G_rUe5kTswB8E8xtM92zF78H1wotHxhzzZH8zrfrDi8,2003
|
455
456
|
imio/smartweb/core/upgrades/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
456
|
-
imio/smartweb/core/upgrades/configure.zcml,sha256
|
457
|
+
imio/smartweb/core/upgrades/configure.zcml,sha256=HIv5j2bYTD5K7d4uuOXab6NFy0PYA0N9G5pSDiXkhtc,26858
|
457
458
|
imio/smartweb/core/upgrades/upgrades.py,sha256=SZHVeYODErjQZR_LzQ0cxBnJoqWRWsIiRpUhNTMiz7k,8295
|
458
459
|
imio/smartweb/core/upgrades/profiles/1015_to_1016/registry/e-guichet-icon.xml,sha256=CG5K3-MCDqdMl7Dog-yvNZK0u0t8ipK-6QCcBNLb4cY,481
|
459
460
|
imio/smartweb/core/upgrades/profiles/1016_to_1017/registry/shop-icon.xml,sha256=vvmcWnYlU5Yic6RrOhziRj0RsveKaclNM5xWJVHx6r0,478
|
@@ -567,6 +568,7 @@ imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.NewsView.x
|
|
567
568
|
imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.Page.xml,sha256=nLcb2onLazsotJrFKTriUlR7gXAyMm1gOdMPDGCXr0M,307
|
568
569
|
imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.PortalPage.xml,sha256=h9d7ik0t38bivtJ4iVbO4UJ-hpURQ1jLiTP2Jp3KVqk,313
|
569
570
|
imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.Procedure.xml,sha256=lLd6CWzYpZZoHP_bktcV7m5i1BebkPXF4u7fo7oJhxY,312
|
571
|
+
imio/smartweb/core/upgrades/profiles/1055_to_1056/types/imio.smartweb.SectionFiles.xml,sha256=oTc9d6l88GaP311Vs6l0tD8PQ1cwBuWyKt2ekUzkBEU,327
|
570
572
|
imio/smartweb/core/viewlets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
571
573
|
imio/smartweb/core/viewlets/actions.py,sha256=QWj_pLNxH4223XPk4b4Dc79DiajF0HHfaXlUmXTwJ8k,661
|
572
574
|
imio/smartweb/core/viewlets/arcgis_header.pt,sha256=iQc5ZG3g1Cmap963OG-wPotllr7oWmVSMoAnA7tctrQ,3428
|
@@ -576,7 +578,7 @@ imio/smartweb/core/viewlets/category.pt,sha256=JElI8UGE7Lk-Uhf2KsKlTlX3EvqPdjmgk
|
|
576
578
|
imio/smartweb/core/viewlets/category.py,sha256=F8Vqxy3686-jY6ymjvZJFtK1Kj2a8Sqj8tAC37ZsCOU,308
|
577
579
|
imio/smartweb/core/viewlets/chatbot.pt,sha256=ataC2OtLpEawvrIZnM9vR8ChLfwkeMl78tOieSGpvSM,611
|
578
580
|
imio/smartweb/core/viewlets/chatbot.py,sha256=WgY4PQ7hZAuMRdACxRmwAs7-71Vl-h1Jk7CM1YPc6b0,329
|
579
|
-
imio/smartweb/core/viewlets/configure.zcml,sha256
|
581
|
+
imio/smartweb/core/viewlets/configure.zcml,sha256=-KaEEu6ijuZyY8Q9fTti5JxQDyNtS2Cey_lMpE6JLEo,13785
|
580
582
|
imio/smartweb/core/viewlets/default_page_warning.pt,sha256=nw1G01jkmyY776NMmSxg-7ZHuNcZkzbrrZirTaRVyXY,531
|
581
583
|
imio/smartweb/core/viewlets/external_content.py,sha256=YeTvnnfnAS1jsgsqvwTmYjjOHxg9BYX1MlQPNef_HkA,558
|
582
584
|
imio/smartweb/core/viewlets/footer.pt,sha256=PbbXe2krY6DvCFWidShbo5XU9PATf8smpGM3N33vhkw,872
|
@@ -587,6 +589,8 @@ imio/smartweb/core/viewlets/header_actions_viewlet.pt,sha256=8XzyvcdvhyWneUrv7FU
|
|
587
589
|
imio/smartweb/core/viewlets/header_top_viewlet.pt,sha256=nn7AhTim_4yfhxevbW1-UsQ62tREyFZhZKq1FODmccc,137
|
588
590
|
imio/smartweb/core/viewlets/herobanner.pt,sha256=Zg7Hv44VkU5FZ7T0RcuDCcZ7oDcvVX5HQyiVrPU62bU,688
|
589
591
|
imio/smartweb/core/viewlets/herobanner.py,sha256=RkuqUWY7pXcSgIW7amSnJCi5MzGDbjWHtuUAes0yhgc,1359
|
592
|
+
imio/smartweb/core/viewlets/htmx.py,sha256=ylacmUstXdyZbr4gDSo9VaymBTI8c4dEDKEUP83A810,309
|
593
|
+
imio/smartweb/core/viewlets/htmx_js_header.pt,sha256=15-ff8m7gXpQdkfE4LQIHAhSPv45yPsgJRgzgT-kDxY,2575
|
590
594
|
imio/smartweb/core/viewlets/httpheaders.py,sha256=-bLAtb_N5wNCe9yoQ_5hcw5Ok74uEwjsDvbiKM0uQEY,389
|
591
595
|
imio/smartweb/core/viewlets/interfaces.py,sha256=guKxKhsi93k2GXX5Ohw-wAdxwZKxstQScUjLvi7jJ94,498
|
592
596
|
imio/smartweb/core/viewlets/lead_image.py,sha256=z7MVIBEcdmjR53TYCP60YHi-6fgUz7RHbK82GtfDjKk,318
|
@@ -699,7 +703,7 @@ imio/smartweb/core/webcomponents/src/components/Events/Filters/Filter.jsx,sha256
|
|
699
703
|
imio/smartweb/core/webcomponents/src/components/Filters/DateFilter.jsx,sha256=yWZdgoOlXLrhQsprCsaV1O795L7ClrBVk7vAjycgZnA,5631
|
700
704
|
imio/smartweb/core/webcomponents/src/components/Filters/DateFilter.scss,sha256=9gQ-SR8xzL3aYMP9mSwNKHtzBxWvvXnmPmIoMD9Mkjo,1577
|
701
705
|
imio/smartweb/core/webcomponents/src/components/News/News.jsx,sha256=UnBsl51Eg8xOTZYG9rzllvo8bv_uQ1Z5rEPReODv-Qk,7080
|
702
|
-
imio/smartweb/core/webcomponents/src/components/News/News.scss,sha256=
|
706
|
+
imio/smartweb/core/webcomponents/src/components/News/News.scss,sha256=wE8cD2IIWbuxMoVUWW4hhBgtXbPdGfg0pPbqF8Jeu-I,3755
|
703
707
|
imio/smartweb/core/webcomponents/src/components/News/index.js,sha256=-I1awA2Z7q9UPwBtrr0Ab3TlFRTpDODf2hIJ2r5tGlA,93
|
704
708
|
imio/smartweb/core/webcomponents/src/components/News/Filters/Filter.jsx,sha256=VxXd4yayo-ziaXc_89qXrd1QsGQc7zG_Fuxz3YdWe-A,6225
|
705
709
|
imio/smartweb/core/webcomponents/src/components/News/NewsCard/NewsCard.jsx,sha256=2vgkR-on4YunRjbM8TbdhPi9tW4xqLJFzFZwrd0uHnQ,2717
|
@@ -719,10 +723,10 @@ imio/smartweb/core/webcomponents/src/utils/Map.jsx,sha256=x9xi6Ym29ENfIdeysHeh0g
|
|
719
723
|
imio/smartweb/core/webcomponents/src/utils/Map.scss,sha256=xXWz0O-JBwSZrzz2XeQdN4nZEOjppU2sVFtlLQOitQ8,77
|
720
724
|
imio/smartweb/core/webcomponents/src/utils/translation.js,sha256=SmhBsvncTNx95019NNz5uAm1foKqeKjcC5i9ZMo1G3E,6629
|
721
725
|
imio/smartweb/core/webcomponents/src/utils/url.js,sha256=iyl_1QXfPBgUn0LEbZYT_zMEEjmj5DMiEz44Z6AKLcg,244
|
722
|
-
imio.smartweb.core-1.2.
|
723
|
-
imio.smartweb.core-1.2.
|
724
|
-
imio.smartweb.core-1.2.
|
725
|
-
imio.smartweb.core-1.2.
|
726
|
-
imio.smartweb.core-1.2.
|
727
|
-
imio.smartweb.core-1.2.
|
728
|
-
imio.smartweb.core-1.2.
|
726
|
+
imio.smartweb.core-1.2.43.dist-info/LICENSE.GPL,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
|
727
|
+
imio.smartweb.core-1.2.43.dist-info/LICENSE.rst,sha256=RzkMFz6AX3-cHd531zd2YQcXai8RIbjFWTs6m66Y5u4,653
|
728
|
+
imio.smartweb.core-1.2.43.dist-info/METADATA,sha256=uOtHut0R3tm4ms0bZYtvguQwu4Z218uCf-pmlfdP6wU,51857
|
729
|
+
imio.smartweb.core-1.2.43.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
|
730
|
+
imio.smartweb.core-1.2.43.dist-info/namespace_packages.txt,sha256=Pg8AH8t9viMMW1hJbNZvTy_n2jXG2igIYUpon5RA4Js,19
|
731
|
+
imio.smartweb.core-1.2.43.dist-info/top_level.txt,sha256=ZktC0EGzThvMTAin9_q_41rzvvfMT2FYbP8pbhSLMSA,5
|
732
|
+
imio.smartweb.core-1.2.43.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{imio.smartweb.core-1.2.42.dist-info → imio.smartweb.core-1.2.43.dist-info}/namespace_packages.txt
RENAMED
File without changes
|
File without changes
|