collective.tiles.carousel 1.0.3__tar.gz → 1.0.4__tar.gz
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.
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/CHANGES.rst +10 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/PKG-INFO +33 -2
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/setup.py +1 -1
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/__init__.py +1 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/tests/test_setup.py +1 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/tile.py +10 -37
- collective_tiles_carousel-1.0.4/src/collective/tiles/carousel/utils.py +22 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective.tiles.carousel.egg-info/PKG-INFO +33 -2
- collective.tiles.carousel-1.0.3/src/collective/tiles/carousel/utils.py +0 -36
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/CONTRIBUTORS.rst +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/DEVELOP.rst +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/LICENSE.GPL +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/LICENSE.rst +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/README.rst +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/constraints.txt +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/docs/conf.py +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/docs/index.rst +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/requirements.txt +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/setup.cfg +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/__init__.py +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/__init__.py +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/configure.zcml +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/interfaces.py +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/locales/README.rst +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/locales/__init__.py +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/locales/collective.tiles.carousel.pot +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/locales/en/LC_MESSAGES/collective.tiles.carousel.mo +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/locales/en/LC_MESSAGES/collective.tiles.carousel.po +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/locales/update.py +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/locales/update.sh +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/profiles/default/browserlayer.xml +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/profiles/default/metadata.xml +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/profiles/default/registry/mosaic.xml +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/profiles/uninstall/browserlayer.xml +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/setuphandlers.py +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/slides/__init__.py +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/slides/configure.zcml +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/slides/slide_full_view.pt +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/slides/slide_full_view.py +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/slides/slide_view.pt +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/slides/slide_view.py +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/slides/static/.gitkeep +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/testing.py +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/tests/__init__.py +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/tests/robot/test_example.robot +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/tests/test_robot.py +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/carousel/tile.pt +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective.tiles.carousel.egg-info/SOURCES.txt +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective.tiles.carousel.egg-info/dependency_links.txt +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective.tiles.carousel.egg-info/entry_points.txt +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective.tiles.carousel.egg-info/namespace_packages.txt +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective.tiles.carousel.egg-info/not-zip-safe +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective.tiles.carousel.egg-info/requires.txt +0 -0
- {collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective.tiles.carousel.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: collective.tiles.carousel
|
3
|
-
Version: 1.0.
|
3
|
+
Version: 1.0.4
|
4
4
|
Summary: Slider for plone.app.mosaic based on Bootstrap 5
|
5
5
|
Home-page: https://github.com/collective/collective.tiles.carousel
|
6
6
|
Author: Peter Holzer
|
@@ -23,9 +23,30 @@ Classifier: Programming Language :: Python :: 3.11
|
|
23
23
|
Classifier: Operating System :: OS Independent
|
24
24
|
Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2)
|
25
25
|
Requires-Python: >=3.8
|
26
|
-
Provides-Extra: test
|
27
26
|
License-File: LICENSE.GPL
|
28
27
|
License-File: LICENSE.rst
|
28
|
+
Requires-Dist: setuptools
|
29
|
+
Requires-Dist: Products.GenericSetup
|
30
|
+
Requires-Dist: plone.app.contenttypes
|
31
|
+
Requires-Dist: plone.app.querystring
|
32
|
+
Requires-Dist: plone.app.mosaic
|
33
|
+
Requires-Dist: plone.app.tiles
|
34
|
+
Requires-Dist: plone.app.z3cform
|
35
|
+
Requires-Dist: plone.autoform
|
36
|
+
Requires-Dist: plone.base
|
37
|
+
Requires-Dist: plone.dexterity
|
38
|
+
Requires-Dist: plone.memoize
|
39
|
+
Requires-Dist: plone.supermodel
|
40
|
+
Requires-Dist: plone.tiles
|
41
|
+
Requires-Dist: plone.api
|
42
|
+
Requires-Dist: z3c.relationfield
|
43
|
+
Provides-Extra: test
|
44
|
+
Requires-Dist: plone.app.dexterity; extra == "test"
|
45
|
+
Requires-Dist: plone.app.testing; extra == "test"
|
46
|
+
Requires-Dist: plone.browserlayer; extra == "test"
|
47
|
+
Requires-Dist: plone.testing; extra == "test"
|
48
|
+
Requires-Dist: plone.app.robotframework[debug]; extra == "test"
|
49
|
+
Requires-Dist: robotsuite; extra == "test"
|
29
50
|
|
30
51
|
.. This README is meant for consumption by humans and pypi. Pypi can render rst files so please do not use Sphinx features.
|
31
52
|
If you want to learn more about writing documentation, please check out: http://docs.plone.org/about/documentation_styleguide.html
|
@@ -87,6 +108,16 @@ Changelog
|
|
87
108
|
=========
|
88
109
|
|
89
110
|
|
111
|
+
1.0.4 (2024-05-02)
|
112
|
+
------------------
|
113
|
+
|
114
|
+
- Fix ``limit``.
|
115
|
+
[petschki]
|
116
|
+
|
117
|
+
- code cleanup.
|
118
|
+
[petschki]
|
119
|
+
|
120
|
+
|
90
121
|
1.0.3 (2023-11-03)
|
91
122
|
------------------
|
92
123
|
|
@@ -15,7 +15,7 @@ long_description = "\n\n".join(
|
|
15
15
|
|
16
16
|
setup(
|
17
17
|
name="collective.tiles.carousel",
|
18
|
-
version="1.0.
|
18
|
+
version="1.0.4",
|
19
19
|
description="Slider for plone.app.mosaic based on Bootstrap 5",
|
20
20
|
long_description=long_description,
|
21
21
|
# Get more from https://pypi.org/classifiers/
|
@@ -7,8 +7,6 @@ from plone import api
|
|
7
7
|
from plone.app.contenttypes.browser.link_redirect_view import NON_RESOLVABLE_URL_SCHEMES
|
8
8
|
from plone.app.contenttypes.interfaces import ICollection
|
9
9
|
from plone.app.contenttypes.utils import replace_link_variables_by_paths
|
10
|
-
from plone.app.querystring import queryparser
|
11
|
-
from plone.app.querystring.interfaces import IParsedQueryIndexModifier
|
12
10
|
from plone.app.z3cform.widgets.querystring import QueryStringFieldWidget
|
13
11
|
from plone.app.z3cform.widgets.relateditems import RelatedItemsFieldWidget
|
14
12
|
from plone.autoform import directives as form
|
@@ -22,7 +20,6 @@ from z3c.relationfield.schema import RelationChoice
|
|
22
20
|
from z3c.relationfield.schema import RelationList
|
23
21
|
from zope import schema
|
24
22
|
from zope.component import getMultiAdapter
|
25
|
-
from zope.component import getUtilitiesFor
|
26
23
|
from zope.component import getUtility
|
27
24
|
from zope.interface import alsoProvides
|
28
25
|
from zope.interface import implementer
|
@@ -248,37 +245,10 @@ class SliderTile(Tile):
|
|
248
245
|
values.append(name)
|
249
246
|
return values
|
250
247
|
|
251
|
-
def parse_query_from_data(data, context=None):
|
252
|
-
"""Parse query from data dictionary"""
|
253
|
-
if context is None:
|
254
|
-
context = api.portal.get()
|
255
|
-
query = data.get("query", {}) or {}
|
256
|
-
try:
|
257
|
-
parsed = queryparser.parseFormquery(context, query)
|
258
|
-
except KeyError:
|
259
|
-
parsed = {}
|
260
|
-
|
261
|
-
index_modifiers = getUtilitiesFor(IParsedQueryIndexModifier)
|
262
|
-
for name, modifier in index_modifiers:
|
263
|
-
if name in parsed:
|
264
|
-
new_name, query = modifier(parsed[name])
|
265
|
-
parsed[name] = query
|
266
|
-
# if a new index name has been returned, we need to replace
|
267
|
-
# the native ones
|
268
|
-
if name != new_name:
|
269
|
-
del parsed[name]
|
270
|
-
parsed[new_name] = query
|
271
|
-
|
272
|
-
if data.get("sort_on"):
|
273
|
-
parsed["sort_on"] = data["sort_on"]
|
274
|
-
if data.get("sort_reversed", False):
|
275
|
-
parsed["sort_order"] = "reverse"
|
276
|
-
return parsed
|
277
|
-
|
278
248
|
@property
|
279
249
|
def items(self):
|
280
250
|
items = OrderedDict()
|
281
|
-
if "carousel_items"
|
251
|
+
if len(self.data.get("carousel_items") or []):
|
282
252
|
for item in self.data["carousel_items"]:
|
283
253
|
if ICollection.providedBy(item.to_object):
|
284
254
|
items.update(
|
@@ -309,16 +279,19 @@ class SliderTile(Tile):
|
|
309
279
|
else:
|
310
280
|
items[item.to_object] = None
|
311
281
|
|
312
|
-
|
282
|
+
query = self.query
|
283
|
+
if query:
|
313
284
|
items.update(
|
314
|
-
OrderedDict.fromkeys(
|
315
|
-
[x.getObject() for x in api.content.find(**self.query)]
|
316
|
-
)
|
285
|
+
OrderedDict.fromkeys([x.getObject() for x in self.catalog(**query)])
|
317
286
|
)
|
287
|
+
|
318
288
|
result = []
|
319
|
-
|
289
|
+
limit = self.data.get("limit") or 12
|
290
|
+
for count, obj in enumerate(items.keys(), 1):
|
320
291
|
result.append(obj)
|
321
|
-
|
292
|
+
if count >= limit:
|
293
|
+
break
|
294
|
+
ips = self.data.get("items_per_slide", 1) or 1
|
322
295
|
slides = [
|
323
296
|
result[i : i + ips]
|
324
297
|
for i in [x * ips for x in range(0, int(len(result) / ips) + int(1))]
|
@@ -0,0 +1,22 @@
|
|
1
|
+
"""Utilities."""
|
2
|
+
|
3
|
+
from plone import api
|
4
|
+
from plone.app.querystring import queryparser
|
5
|
+
|
6
|
+
|
7
|
+
def parse_query_from_data(data, context=None):
|
8
|
+
"""Parse query from data dictionary"""
|
9
|
+
if context is None:
|
10
|
+
context = api.portal.get()
|
11
|
+
query = data.get("query", {}) or {}
|
12
|
+
try:
|
13
|
+
parsed = queryparser.parseAndModifyFormquery(
|
14
|
+
context,
|
15
|
+
query,
|
16
|
+
data.get("sort_on"),
|
17
|
+
"desc" if data.get("sort_reversed", False) else "asc",
|
18
|
+
)
|
19
|
+
except KeyError:
|
20
|
+
parsed = {}
|
21
|
+
|
22
|
+
return parsed
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: collective.tiles.carousel
|
3
|
-
Version: 1.0.
|
3
|
+
Version: 1.0.4
|
4
4
|
Summary: Slider for plone.app.mosaic based on Bootstrap 5
|
5
5
|
Home-page: https://github.com/collective/collective.tiles.carousel
|
6
6
|
Author: Peter Holzer
|
@@ -23,9 +23,30 @@ Classifier: Programming Language :: Python :: 3.11
|
|
23
23
|
Classifier: Operating System :: OS Independent
|
24
24
|
Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2)
|
25
25
|
Requires-Python: >=3.8
|
26
|
-
Provides-Extra: test
|
27
26
|
License-File: LICENSE.GPL
|
28
27
|
License-File: LICENSE.rst
|
28
|
+
Requires-Dist: setuptools
|
29
|
+
Requires-Dist: Products.GenericSetup
|
30
|
+
Requires-Dist: plone.app.contenttypes
|
31
|
+
Requires-Dist: plone.app.querystring
|
32
|
+
Requires-Dist: plone.app.mosaic
|
33
|
+
Requires-Dist: plone.app.tiles
|
34
|
+
Requires-Dist: plone.app.z3cform
|
35
|
+
Requires-Dist: plone.autoform
|
36
|
+
Requires-Dist: plone.base
|
37
|
+
Requires-Dist: plone.dexterity
|
38
|
+
Requires-Dist: plone.memoize
|
39
|
+
Requires-Dist: plone.supermodel
|
40
|
+
Requires-Dist: plone.tiles
|
41
|
+
Requires-Dist: plone.api
|
42
|
+
Requires-Dist: z3c.relationfield
|
43
|
+
Provides-Extra: test
|
44
|
+
Requires-Dist: plone.app.dexterity; extra == "test"
|
45
|
+
Requires-Dist: plone.app.testing; extra == "test"
|
46
|
+
Requires-Dist: plone.browserlayer; extra == "test"
|
47
|
+
Requires-Dist: plone.testing; extra == "test"
|
48
|
+
Requires-Dist: plone.app.robotframework[debug]; extra == "test"
|
49
|
+
Requires-Dist: robotsuite; extra == "test"
|
29
50
|
|
30
51
|
.. This README is meant for consumption by humans and pypi. Pypi can render rst files so please do not use Sphinx features.
|
31
52
|
If you want to learn more about writing documentation, please check out: http://docs.plone.org/about/documentation_styleguide.html
|
@@ -87,6 +108,16 @@ Changelog
|
|
87
108
|
=========
|
88
109
|
|
89
110
|
|
111
|
+
1.0.4 (2024-05-02)
|
112
|
+
------------------
|
113
|
+
|
114
|
+
- Fix ``limit``.
|
115
|
+
[petschki]
|
116
|
+
|
117
|
+
- code cleanup.
|
118
|
+
[petschki]
|
119
|
+
|
120
|
+
|
90
121
|
1.0.3 (2023-11-03)
|
91
122
|
------------------
|
92
123
|
|
@@ -1,36 +0,0 @@
|
|
1
|
-
"""Utilities."""
|
2
|
-
|
3
|
-
from plone import api
|
4
|
-
from plone.app.querystring import queryparser
|
5
|
-
from plone.app.querystring.interfaces import IParsedQueryIndexModifier
|
6
|
-
from zope.component import getUtilitiesFor
|
7
|
-
|
8
|
-
|
9
|
-
def parse_query_from_data(data, context=None):
|
10
|
-
"""Parse query from data dictionary"""
|
11
|
-
if context is None:
|
12
|
-
context = api.portal.get()
|
13
|
-
query = data.get("query", {}) or {}
|
14
|
-
try:
|
15
|
-
parsed = queryparser.parseFormquery(context, query)
|
16
|
-
except KeyError:
|
17
|
-
parsed = {}
|
18
|
-
|
19
|
-
index_modifiers = getUtilitiesFor(IParsedQueryIndexModifier)
|
20
|
-
for name, modifier in index_modifiers:
|
21
|
-
if name in parsed:
|
22
|
-
new_name, query = modifier(parsed[name])
|
23
|
-
parsed[name] = query
|
24
|
-
# if a new index name has been returned, we need to replace
|
25
|
-
# the native ones
|
26
|
-
if name != new_name:
|
27
|
-
del parsed[name]
|
28
|
-
parsed[new_name] = query
|
29
|
-
|
30
|
-
if data.get("sort_on"):
|
31
|
-
parsed["sort_on"] = data["sort_on"]
|
32
|
-
if data.get("limit"):
|
33
|
-
parsed["sort_limit"] = data["limit"]
|
34
|
-
if data.get("sort_reversed", False):
|
35
|
-
parsed["sort_order"] = "reverse"
|
36
|
-
return parsed
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/__init__.py
RENAMED
File without changes
|
{collective.tiles.carousel-1.0.3 → collective_tiles_carousel-1.0.4}/src/collective/tiles/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|