.. This README is meant for consumption by humans and pypi. Pypi can render rst files so please do not use Sphinx features.
If you want to learn more about writing documentation, please check out: http://docs.plone.org/about/documentation_styleguide_addons.html
This text does not appear on pypi or github. It is a comment.
.. image:: https://github.com/collective/collective.iconifiedcategory/actions/workflows/main.yml/badge.svg?branch=master
:target: https://github.com/collective/collective.iconifiedcategory/actions/workflows/main.yml
.. image:: https://coveralls.io/repos/github/collective/collective.iconifiedcategory/badge.svg
:target: https://coveralls.io/github/collective/collective.iconifiedcategory
.. image:: http://img.shields.io/pypi/v/collective.iconifiedcategory.svg
:alt: PyPI badge
:target: https://pypi.org/project/collective.iconifiedcategory
==============================================================================
collective.iconifiedcategory
==============================================================================
This product will let you categorize created content using a category identified by an icon.
A dexterity behavior can be enabled and will add a field "content category" that will list available categories defined in a configuration.
So you first have to define the categories by adding a ContentCategoryConfiguration somewhere. Then add a CategoryGroup on which some extra features may be activated :
- is content confidential?
- is content an element to print?
- is content an element to sign?
If activated, these fields will be available on the content using the behavior.
Then into a CategoryGroup, you will be able to add ContentCategory that are characterized by a title and an icon. These ContentCategory elements will be the terms of a vocabulary used to select a category on a content using the behavior.
This package is widely overridable and is made to manage many usecases of iconified categories.
A element that contains categorized content will display a special widget where categorized content are grouped by ContentCategory behind an icon.
A table view is also available listing categorized contents with more details.
Screenshots to come...
Installation
------------
Install collective.iconifiedcategory by adding it to your buildout::
[buildout]
...
eggs =
collective.iconifiedcategory
and then running ``bin/buildout``
Contribute
----------
- Issue Tracker: https://github.com/collective/collective.iconifiedcategory/issues
- Source Code: https://github.com/collective/collective.iconifiedcategory
License
-------
The project is licensed under the GPLv2.
Contributors
============
- Martin Peeters, Original Author [Affinitic]
Changelog
=========
0.66 (2024-02-27)
-----------------
- Corrected bug due to typo.
[sgeulette]
0.65 (2024-02-19)
-----------------
- Replaced container cloned event by moved event to handle rename, copy/paste and cut/paste of a container in the path.
[sgeulette]
- Removed useless IconifiedModifiedEvent
[sgeulette]
- Used `IIconifiedCategorizationMarker` in adequate subscribers definition
[sgeulette]
- Removed some hasattr tests (MOD-831) and corrected events object
[sgeulette]
- Handled cut/paste and rename of a categorized element
[sgeulette]
0.64 (2024-02-08)
-----------------
- Added `IExcludeFromNavigation` behavior on `ContentCategoryConfiguration` type.
[sgeulette]
- Corrected bad step dependency
[sgeulette]
0.63 (2024-01-02)
-----------------
- Added `get_` and `set_` methods for settings registry records in `config.py`.
[gbastien]
0.62 (2023-12-11)
-----------------
- Fixed `CategorizedObjectPreviewAdapter.status` when an existing element is updated.
[gbastien]
0.61 (2023-11-27)
-----------------
- Simplified `CategorizedChildView.has_elements_to_show`.
[gbastien]
0.60 (2023-09-21)
-----------------
- Fixed version (2105) in `metadata.xml`.
[gbastien]
0.59 (2023-09-04)
-----------------
- Display the document conversion spinner in any relevant case.
[gbastien]
- Added `contentType` value to the `categorized_elements` data.
[gbastien]
0.58 (2023-08-24)
-----------------
- Added new field `ICategorize.show_preview` to turn link to element to a
`collective.documentviewer` preview instead download.
Fixed icon displayed when preview computation in progress.
[gbastien]
- Force icon `width/height` to `16px` in `tooltipster`
(`categorized-childs.pt` and `categorized-childs-infos.pt`).
[gbastien]
- Fixed `ContentCategory` portal_type title in `ContentCategory.xml`.
[gbastien]
0.57 (2023-03-30)
-----------------
- When no request (when using `plone.app.async`), pass `None` instead `{}`
to `ImageDataModifiedImageScaling` so `plone.namedfile` scaling is happy
when using `plone.protect >= 3`.
[aduchene]
0.56 (2023-02-27)
-----------------
- Adapted french translation for `More infos`.
[gbastien]
0.55 (2022-09-29)
-----------------
- Fixed `utils.get_ordered_categories` and
`IconifiedCategoryGroupAdapter.get_every_categories` to make sure returned
categories are from the correct `config_root` and `cachekey` is invalidated
if `config_root` changed.
[gbastien]
0.54 (2022-06-14)
-----------------
- Added `@@categorized-childs-manage` that will render a link to manage
categorized elements.
[gbastien]
- Implemented `CategorizedContent._unrestrictedGetObject` as `collective.eeafaceted.z3ctable`
calls now `item._unrestrictedGetObject` instead `item.getObject` for performance optimization.
[gbastien]
- Added `safe_utils.py` that will only include safe utils.
[gbastien]
- We need to escape some content to avoid malicious content:
- Rely on collective.eeafaceted.z3ctable to display the categorized content table, it manages escaping content;
- Escape category title in vocabularies.
[gbastien]
0.53 (2022-04-22)
-----------------
- Make `validateFileIsPDF` invariant check if a `contentType` is directly
available on data, this avoid checking on the file.
[gbastien]
0.52 (2022-03-22)
-----------------
- Fixed `metadata.xml` version, set `2103` instead `2101`.
[gbastien]
0.51 (2022-03-10)
-----------------
- Updated upgrade step to 2103 (`Add 'last_updated' to categorized_elements`),
do not stop in case we found a `last_updated` key in `categorized_elements`
of an element but continue to next element, maybe some elements were updated
by another part of code.
[gbastien]
0.50 (2022-01-03)
-----------------
- Use unrestricted catalog query when possible.
[gbastien]
- For the view that generated the CSS, do the catalog query that gets the categories
without `path` and `sort_on` as called from portal and order does not matter.
[gbastien]
- Added `collective.iconifiedcategory.every_categories` and
`collective.iconifiedcategory.every_category_titles` vocabularies returning
every possible categories, including not enabled ones. This will be used to
manage a `MissingTerms` adapter for `z3c.form`.
[gbastien]
- Fixed view that generates `collective-iconifiedcategory.css`, get every
categories including ones that are not `enabled`.
[gbastien]
- Optimized `@@categorized-childs` view, compute everything only one time
(context url, context UID, ...) and use `python` or `string` in TAL expressions.
By default call `utils.get_categorized_elements` with `check_can_view=False`.
[gbastien]
- Added `check_can_view=True` parameter to `utils.get_categorized_elements`.
This will do the `IIconifiedContent.can_view` check only done when necessary.
[gbastien]
- Added data `last_updated` to `categorized_elements` to be used for caching.
Added upgrade step to version `2103`.
[gbastien]
- Optimized `ram.cache` key for `utils.get_ordered_categories`, cache until
any category added/deleted/position changed.
[gbastien]
0.49 (2021-07-16)
-----------------
- Added possibility to filter displayed categorized elements on any attribute
of the categorized element.
[gbastien]
- Rely on imio.helpers because we need the `:json` suffix type converter.
[gbastien]
- Register the `categorized_content_container_cloned ObjectClonedEvent` handler
only for `AT IBaseObject` and `DX IDexterityContent` or is is applied also
for other elements like `portal_type` because it provides `OFS IItem`.
[gbastien]
- Added specific `collective.iconifiedcategory.belowcategorizedelements` viewlet
manager just under the categorized elements table that will be displayed if
table displayed.
[gbastien]
- Make the `z3c.table CategorizedTable` easy to override by making a
`BrowserView` out of it.
[gbastien]
- Adapted `FilesizeColumn` to display total filesize in column header.
[gbastien]
- Added `soft_warn_filesize`, a CSS class applied to files of more that `1 Mb`
(like it is already the case for the `warn_filesize` CSS class applied to
files of more than `5 Mb`).
[gbastien]
- Removed the `Show details` action, details are always shown, except, for
display reasons, when more that 2 columns of elements in the popup.
[gbastien]
0.48 (2021-01-19)
-----------------
- Rely on `CategorizedObjectAdapter.can_view` to manage access to a categorized
element, this way, we may manage usecases where current user does not have
the `View` permission on the element but access is managed by the `can_view`
adapter method.
[gbastien]
0.47 (2020-08-18)
-----------------
- Added missing translation for `Nothing.`.
[gbastien]
- In `utils._categorized_elements`, use `aq_base` to get `categorized_elements`
to be sure we get the one on context.
Indeed the parent could have this attribute too...
[gbastien]
- Do not use `portal_catalog` to get `categorized_elements`, instead, store
`allowedRolesAndUsers` in the `categorized_elements` data and rely on it to
get the content directly stored in the parent. This for performance reasons.
[gbastien]
- Remove unused `utils.get_UID` function.
[gbastien]
- Make sure a content created with an unexisting `content_category`
does not break anything.
[gbastien]
0.46 (2020-06-24)
-----------------
- Make `plone.restapi` validation happy by defining default value for
`IIconifiedCategorization.default_titles` that is not stored on the
adapted context.
[gbastien]
0.45 (2020-05-26)
-----------------
- When using `collective.solr`, brains are not `ICatalogBrain` but `PloneFlare`
so register `IIconifiedContent` adapter for it when installed.
[gbastien]
0.44 (2020-05-08)
-----------------
- Do no more make the elements using behavior marked with
`IIconifiedCategorization` or `content_category.setter` is not working
anymore.
[gbastien]
0.43 (2020-04-30)
-----------------
- Adapted tests to use `file_txt` instead `file` as id for default `File`
as `file` is also the name of the field, `portal.file` returns the `File`
instance instead breaking because it does not have a `file` field.
[gbastien]
- Do not break in `utils.validateFileIsPDF` while creating a new element and
no file has been selected.
[gbastien]
0.42 (2020-04-29)
-----------------
- Added parameter `use_category_uid_as_token=False` to
`CategoryVocabulary.__call__` method to be able to use category/subcategory
as term token instead the calculated content_id (default).
[gbastien]
0.41 (2020-03-12)
-----------------
- Factorized events triggered when a categorized element attribute is changed
(`to_print`, `confidential`, ...). Now a single `IIconifiedAttrChangedEvent`
event is triggered. Moreover it is optimized to avoid too much process.
[gbastien]
- Removed specific call to `IconifiedAttrChangedEvent('confidential')`
when creating a new categorized element.
[gbastien]
- Added `ICategorize.only_pdf` parameter making it possible to define if the
categorized element is a file, that it can only be PDF. Added also invariant
on `IIconifiedCategorization` checking if file is a PDF when categorized
element has a file field and used content_category has `only_pdf=True`.
[gbastien]
0.40 (2020-02-18)
-----------------
- Make appearance of column in `CategorizedTabView` coherent with appearance of
detail icon in `@@categorized-childs-infos` view,
rely in both case on `CategorizedChildInfosView.show`
[gbastien]
0.39 (2019-11-26)
-----------------
- Added management of `publishable` attribute like it is the case for `to_print`
or `confidential` attributes. Factorized when possible.
[gbastien]
0.38 (2019-08-23)
-----------------
- Fixed code to work with `plone.app.async` as in this case, there is no
`REQUEST`. To do this, needed to get the `@@images` view by instantiating the
`ImageDataModifiedImageScaling` class, this could be a problem if it is
overrided by a subpackage.
[gbastien]
- Tried to fix again tooltipster popup when categorized element title is
displayed on several lines...
[gbastien]
0.37 (2019-06-14)
-----------------
- Avoid vertical scroll in tooltipster popup when categorized content title
is displayed on several lines.
[gbastien]
- Force use distribution trusty in Travis.
[gbastien]
0.36 (2019-04-23)
-----------------
- Overrided `ImageScaling.modified` to take into account real stored icon file
`_p_mtime` instead category `_p_mtime` because the category's `_p_mtime` can
be modified for several reasons and that breaks existing content using the
icon. Moreover, it is now necessary to update elements using a category only
when icon file changed.
[gbastien]
- Force display small icon in select2 droprown so it fits the available space,
this is the case when a large icon was uploaded. Added description on field
`ContentCategory.icon` explaining to use a 16x16 image icon.
[gbastien]
0.35 (2019-02-22)
-----------------
- Use ram.cache for utils.get_ordered_categories to cache during a REQUEST.
[gbastien]
- Added parameter `only_enabled (True by default)` when
`using utils.get_ordered_categories` and
`IconifiedCategoryGroupAdapter.get_every_categories` to be able to have every
categories in utils.sort_categorized_elements.
[gbastien]
- Use generated url for `scale mini` as icon url so it can be cached.
[gbastien]
- Trigger `CategorizedElementsUpdatedEvent` after elements using a
ContentCategory have been updated.
[gbastien]
- Use `natsorted` instead `realsorted` to sort annexes by title.
[gbastien]
- Updated upgrade step as step to 2100 should be done before step to 2000...
Removed step to 2000 and integrated it into step to 2100 so we first compute
ContentCategory icon listing scale then update every categorized elements.
[gbastien]
0.34 (2019-01-31)
-----------------
- Display `content_category` title at the top of `@@categorized-childs-infos`
tooltipster view.
[gbastien]
- Use `natsort.realsorted` to sort categorized elements on their title,
elements are sorted regardless of uppercase or lowercase title.
[gbastien]
- Moved `context._p_changed = True` to the `utils.sort_categorized_elements`
method so we are sure that calling it will correctly manage `_p_changed`.
[gbastien]
0.33 (2018-08-03)
-----------------
- Adapted CSS regarding `FontAwesome` where font name changed in version 5+
from `FontAwesome` to `Font Awesome 5 Free`.
Require `collective.fontawesome >= 1.1`.
[gbastien]
0.32 (2018-05-04)
-----------------
- Added `many_elements_7_columns` and `many_elements_8_columns` styles necessary
when displaying really many elements on several columns.
[gbastien]
- Make sure the icon sticks to the text first word in the tooltipster popup
by wrapping the icon and categorized element title first word in a `<span>`
that uses a `style="white-space: nowrap"`.
[gbastien]
0.31 (2018-05-03)
-----------------
- Fix CSS applied in tooltipster popup for active confidential.
[gbastien]
0.30 (2018-04-20)
-----------------
- Make sure number of elements applied CSS is done when tooltipstered or not.
[gbastien]
- Added possibility to pass a CSS selector to `categorizedChildsInfos`, the JS
method that initialize `tooltipster` for categorized elements.
[gbastien]
0.29 (2018-02-14)
-----------------
- Adapted JS call to `tooltipster` as `collective.js.tooltipster` now uses
`tooltipster` 4.2.6. Require `collective.js.tooltipster` > 0.1
[gbastien]
0.28 (2018-01-23)
-----------------
- When changing an element's `content_category`, reapply the default values for
fields `to_print`, `confidential`, `to_sign` and `signed` if it was still the
original default value defined on original `content_category`. Default values
are linked to the `content_category`.
[gbastien]
0.27 (2017-12-07)
-----------------
- In `actionview.BaseView`, moved the `ObjectModifiedEvent` from the `__call__`
to the `set_values` method so using it directly updates the
`categorized_elements` of the parent.
[gbastien]
0.26 (2017-11-29)
-----------------
- Use a specific static resourceDirectory for images.
[gbastien]
0.25 (2017-11-28)
-----------------
- Call `actionview._may_set_values` in `IconClickableColumn.is_editable`
to avoid double logic.
[gbastien]
0.24 (2017-11-27)
-----------------
- Fixed migration that adds `to_sign/signed` relevant data to the
`categorized_elements` of the parent containing categorized contents.
Execute the update with `limited=False` and do not care about already
migrated content, do the update on every found elements.
[gbastien]
- Added tests for the `SignedChangeView` view especially the `loop` among
possible `to_sign/signed` combination values.
[gbastien]
- Do not break when deleting an element having a `content_category` if container
does not have the `categorized_elements` dict.
[gbastien]
- Improved some translations.
[gbastien]
- Factorized the way categories and subcategories are get for the
`content_category` vocabularies `collective.iconifiedcategory.categories` and
`collective.iconifiedcategory.category_titles` so it is easy to override and
we rely on same method for both vocabularies that needs same source.
[gbastien]
0.23 (2017-08-10)
-----------------
- Added management of `to_sign` and `signed` attributes like it is the case for
`to_print` and `confidential` attributes. Both attributes are used behind a
single action `signed` that have 3 options : `not to sign`, `to sign` and
`signed`.
[gbastien]
- Default values for `to_print`, `confidential` and `to_sign/signed` are now
managed in the `IObjectAddedEvent` no more in the `content_category setter`,
this way every attribtues are managed the same way because `to_print` and
`confidential` are simple attributes where `to_sign/signed` can come from the
`Scan metadata` behavior of `collective.dms.scanbehavior`.
[gbastien]
- Added possibility to show/hide details about `to_print`, `confidential`,
`to_sign/signed` in the categorized elements tooltipster.
0.22 (2017-08-04)
-----------------
- Make portal available on the tabview instance.
[gbastien]
0.21 (2017-07-18)
-----------------
- Reverted changes from releases `0.19` and `0.20`, we do not bypass can_view if
element is not `confiential` because `can_view` could take into account other
elements than `confidential`.
[gbastien]
0.20 (2017-07-14)
-----------------
- Make sure we correctly bypass `can_view` in `utils._check_van_view` when
element is not confidential in case we do not receive `obj` but
`categorized_elements`.
[gbastien]
0.19 (2017-07-13)
-----------------
- Factorized call to _check_can_view from utils and views so we are sure that
the check is only done if obj is confidential. This fix a bug where can_view
check was done for not confidential obj and raised an error on @@download even
though it was displayed in the categorized elements table.
[gbastien]
0.18 (2017-05-29)
-----------------
- Added missing translation when updating categorized elements using the
@@update-categorized-elements view.
[gbastien]
- Use icon_expr instead content_icon on the types fti to define the icon.
Actually we want to define no icon as the type icon is displayed using CSS.
[gbastien]
- Added one additional level to the `content_category` generated by
`utils.calculate_category_id` to avoid same `content_category` generated for
different category group.
[gbastien]
- Added parameter `sort=True` to `utils.update_all_categorized_elements` to be
able to disable time consuming sorting.
[gbastien]
0.17 (2017-03-22)
-----------------
- Make the `plone.formwidget.namedfile` `@@download` view can_view aware.
[gbastien]
0.16 (2017-03-08)
-----------------
- Correctly hide to_print and confidential widgets on add and display view
if they were deactivated on the group
[mpeeters]
- Add new events to limit updated informations on parent
[mpeeters]
- Add an option to update only category informations on parent
[mpeeters]
0.15 (2017-02-17)
-----------------
- Adapted translations so it is more understandable.
[gbastien]
- Do only call `_cookCssResources` in `category_before_remove` if not currently
removing the `Plone Site`.
[gbastien]
- Make `ICategory.icon` a primary field so we may use a simpler download URL
that is only the `path_to_object/@@download` without the file name anymore.
This is done to surround a bug in Apache that occurs when the filename
contains the `%` character.
[gbastien]
0.14 (2017-02-13)
-----------------
- Generate a CSS class on the `<ul>` tag of the `categorized-childs-infos` view
that is the AJAX view called when hovering the `categorized-childs` elements
that will give the ability to display the infos on several columns. This is
necessary when displaying a large amount of categorized elements using same
content_category. The `Maximum number of elements to display by columns
when displaying categorized elements of same category in the tooltipster widget`
can be defined in the iconifiedcategory control panel.
[gbastien]
- Moved registry parameter `filesizelimit` to the IIconifiedCategorySettings.
[gbastien]
- Added a way to defer call to `utils.update_all_categorized_elements` in the
`categorized_content_container_cloned` IObjectClonedEvent event handler.
[gbastien]
0.13 (2017-02-09)
-----------------
- Makes `collective-iconifiedcategory.css` cacheable and cookable to avoid
recomputing it for every pages. We call `portal_css.cookResources` when
a category is added or moved. Not necessary to recook for subcategory
as it uses same CSS class as parent category.
[gbastien]
0.12 (2017-02-09)
-----------------
- Do not fail in `utils.get_categorized_elements` if context does not have the
`categorized_elements` OrderedDict.
[gbastien]
0.11 (2017-02-07)
-----------------
- Use a batchSize of 999 in the tabview to show every categorized elements.
[gbastien]
- In `utils.get_categorized_elements`, do not do the catalog query if the
categorized_elements dict is empty.
[gbastien]
0.10 (2017-02-05)
-----------------
- Only check `can_view` if current element is `confidential`, moreover only
instanciate the `IIconifiedContent` adapter to check for `can_view` when
element is `confidential`.
[gbastien]
0.9 (2017-01-31)
----------------
- Adapted CSS selector that changes `font-size` of number of categorized
elements displayed in the tooltipster
[gbastien]
- Added a way to defer the categorized_content_created event and to defer
call to utils.update_categorized_elements in the categorized_content_updated
event. This way we may manage adding several categorized elements but only
updating the categorized_elements dict (including time consuming sorting)
at the right time
[gbastien]
- Fixed tests to work in both Plone 4.3.7 and Plone 4.3.11
[gbastien]
0.8 (2017-01-25)
----------------
- Do not fail in `categorized-childs-infos` if current context does not have
the `categorized_elements` dict
[gbastien]
0.7 (2017-01-23)
----------------
- Use `category_uid` instead `category_id` as key for infos dict used by
`CategorizedChildInfosView`, indeed we may have different configurations
used on same container for different categorized elements and those
configurations may contain categories with same id
[gbastien]
- Do not break if icon used for iconified category contains special characters
[gbastien]
0.6 (2017-01-17)
----------------
- Use ajax to display the categorized childs informations
[gbastien]
- Display select2 widget larger and with no padding between options
so more options are displayed together
[gbastien]
- Added option `show_nothing=True` to the `categorized-childs` view
to be able to show/hide the 'Nothing' label when there is no categorized
content to display
[gbastien]
0.5 (2017-01-13)
----------------
- Do not fail in `utils.sort_categorized_elements` if a key is not found,
it can be the case when copy/pasting and new element use another
configuration
[gbastien]
0.4 (2017-01-12)
----------------
- Sort `categorized_elements` by alphabetical order into a category,
this way it can be directly displayed as it in the tooltipster
or in the tabview without having to sort elements again
[gbastien]
- Add method `IconifiedCategoryGroupAdapter.get_every_categories`
that gets every available categories. Mainly made to be overrided,
it is used in `utils.get_ordered_categories` to manage the fact
that a container could contain categorized elements using different
group of categories
[gbastien]
- Add a configlet to allow user to sort elements on title on the
categorized tab view
[mpeeters]
- Ensure that categorized elements are sorted by group folder order
[mpeeters]
- Refactoring of iconified JavaScript functions
[mpeeters]
- Increase speed that show the categorized elements in the tooltipster.
[gbastien]
- Do not fail to remove the Plone Site if categories or subcategorie exist.
[gbastien]
0.3 (2016-12-21)
----------------
- Changed icon used with link to `More infos`.
[gbastien]
- Do not fail if subcategory title contains special characters.
[gbastien]
- Turn icon `more_infos.png` into a separated resource, in addition to other
resources stored in the `static` folder declared as resourceDirectory,
so it is easy to override.
[gbastien]
0.2 (2016-12-07)
----------------
- Use `javascript:event.preventDefault()` when clicking on the tooltipster root
element to avoid the link action that will change the current url.
[gbastien]
- Open `More infos` link in `target=_parent` so it opens in the _parent frame
when displayed in an iframe, namely outside the iframe.
[gbastien]
0.1 (2016-12-02)
----------------
- Initial release.
[mpeeters]
Raw data
{
"_id": null,
"home_page": "https://pypi.python.org/pypi/collective.iconifiedcategory",
"name": "collective.iconifiedcategory",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "Python Plone",
"author": "IMIO",
"author_email": "support@imio.be",
"download_url": "https://files.pythonhosted.org/packages/c7/85/7388a35f0221069ab05f43f48fb05396aca1fd7468b1a9fb62e9e8b50ae9/collective.iconifiedcategory-0.66.tar.gz",
"platform": null,
"description": ".. This README is meant for consumption by humans and pypi. Pypi can render rst files so please do not use Sphinx features.\n If you want to learn more about writing documentation, please check out: http://docs.plone.org/about/documentation_styleguide_addons.html\n This text does not appear on pypi or github. It is a comment.\n\n.. image:: https://github.com/collective/collective.iconifiedcategory/actions/workflows/main.yml/badge.svg?branch=master\n :target: https://github.com/collective/collective.iconifiedcategory/actions/workflows/main.yml\n\n.. image:: https://coveralls.io/repos/github/collective/collective.iconifiedcategory/badge.svg\n :target: https://coveralls.io/github/collective/collective.iconifiedcategory\n\n.. image:: http://img.shields.io/pypi/v/collective.iconifiedcategory.svg\n :alt: PyPI badge\n :target: https://pypi.org/project/collective.iconifiedcategory\n\n\n==============================================================================\ncollective.iconifiedcategory\n==============================================================================\n\nThis product will let you categorize created content using a category identified by an icon.\n\nA dexterity behavior can be enabled and will add a field \"content category\" that will list available categories defined in a configuration.\n\nSo you first have to define the categories by adding a ContentCategoryConfiguration somewhere. Then add a CategoryGroup on which some extra features may be activated :\n\n- is content confidential?\n- is content an element to print?\n- is content an element to sign?\n\nIf activated, these fields will be available on the content using the behavior.\n\nThen into a CategoryGroup, you will be able to add ContentCategory that are characterized by a title and an icon. These ContentCategory elements will be the terms of a vocabulary used to select a category on a content using the behavior.\n\nThis package is widely overridable and is made to manage many usecases of iconified categories.\n\nA element that contains categorized content will display a special widget where categorized content are grouped by ContentCategory behind an icon.\n\nA table view is also available listing categorized contents with more details.\n\nScreenshots to come...\n\nInstallation\n------------\n\nInstall collective.iconifiedcategory by adding it to your buildout::\n\n [buildout]\n\n ...\n\n eggs =\n collective.iconifiedcategory\n\n\nand then running ``bin/buildout``\n\n\nContribute\n----------\n\n- Issue Tracker: https://github.com/collective/collective.iconifiedcategory/issues\n- Source Code: https://github.com/collective/collective.iconifiedcategory\n\n\nLicense\n-------\n\nThe project is licensed under the GPLv2.\n\nContributors\n============\n\n- Martin Peeters, Original Author [Affinitic]\n\nChangelog\n=========\n\n0.66 (2024-02-27)\n-----------------\n\n- Corrected bug due to typo.\n [sgeulette]\n\n0.65 (2024-02-19)\n-----------------\n\n- Replaced container cloned event by moved event to handle rename, copy/paste and cut/paste of a container in the path.\n [sgeulette]\n- Removed useless IconifiedModifiedEvent\n [sgeulette]\n- Used `IIconifiedCategorizationMarker` in adequate subscribers definition\n [sgeulette]\n- Removed some hasattr tests (MOD-831) and corrected events object\n [sgeulette]\n- Handled cut/paste and rename of a categorized element\n [sgeulette]\n\n0.64 (2024-02-08)\n-----------------\n\n- Added `IExcludeFromNavigation` behavior on `ContentCategoryConfiguration` type.\n [sgeulette]\n- Corrected bad step dependency\n [sgeulette]\n\n0.63 (2024-01-02)\n-----------------\n\n- Added `get_` and `set_` methods for settings registry records in `config.py`.\n [gbastien]\n\n0.62 (2023-12-11)\n-----------------\n\n- Fixed `CategorizedObjectPreviewAdapter.status` when an existing element is updated.\n [gbastien]\n\n0.61 (2023-11-27)\n-----------------\n\n- Simplified `CategorizedChildView.has_elements_to_show`.\n [gbastien]\n\n0.60 (2023-09-21)\n-----------------\n\n- Fixed version (2105) in `metadata.xml`.\n [gbastien]\n\n0.59 (2023-09-04)\n-----------------\n\n- Display the document conversion spinner in any relevant case.\n [gbastien]\n- Added `contentType` value to the `categorized_elements` data.\n [gbastien]\n\n0.58 (2023-08-24)\n-----------------\n\n- Added new field `ICategorize.show_preview` to turn link to element to a\n `collective.documentviewer` preview instead download.\n Fixed icon displayed when preview computation in progress.\n [gbastien]\n- Force icon `width/height` to `16px` in `tooltipster`\n (`categorized-childs.pt` and `categorized-childs-infos.pt`).\n [gbastien]\n- Fixed `ContentCategory` portal_type title in `ContentCategory.xml`.\n [gbastien]\n\n0.57 (2023-03-30)\n-----------------\n\n- When no request (when using `plone.app.async`), pass `None` instead `{}`\n to `ImageDataModifiedImageScaling` so `plone.namedfile` scaling is happy\n when using `plone.protect >= 3`.\n [aduchene]\n\n0.56 (2023-02-27)\n-----------------\n\n- Adapted french translation for `More infos`.\n [gbastien]\n\n0.55 (2022-09-29)\n-----------------\n\n- Fixed `utils.get_ordered_categories` and\n `IconifiedCategoryGroupAdapter.get_every_categories` to make sure returned\n categories are from the correct `config_root` and `cachekey` is invalidated\n if `config_root` changed.\n [gbastien]\n\n0.54 (2022-06-14)\n-----------------\n\n- Added `@@categorized-childs-manage` that will render a link to manage\n categorized elements.\n [gbastien]\n- Implemented `CategorizedContent._unrestrictedGetObject` as `collective.eeafaceted.z3ctable`\n calls now `item._unrestrictedGetObject` instead `item.getObject` for performance optimization.\n [gbastien]\n- Added `safe_utils.py` that will only include safe utils.\n [gbastien]\n- We need to escape some content to avoid malicious content:\n\n - Rely on collective.eeafaceted.z3ctable to display the categorized content table, it manages escaping content;\n - Escape category title in vocabularies.\n\n [gbastien]\n\n0.53 (2022-04-22)\n-----------------\n\n- Make `validateFileIsPDF` invariant check if a `contentType` is directly\n available on data, this avoid checking on the file.\n [gbastien]\n\n0.52 (2022-03-22)\n-----------------\n\n- Fixed `metadata.xml` version, set `2103` instead `2101`.\n [gbastien]\n\n0.51 (2022-03-10)\n-----------------\n\n- Updated upgrade step to 2103 (`Add 'last_updated' to categorized_elements`),\n do not stop in case we found a `last_updated` key in `categorized_elements`\n of an element but continue to next element, maybe some elements were updated\n by another part of code.\n [gbastien]\n\n0.50 (2022-01-03)\n-----------------\n\n- Use unrestricted catalog query when possible.\n [gbastien]\n- For the view that generated the CSS, do the catalog query that gets the categories\n without `path` and `sort_on` as called from portal and order does not matter.\n [gbastien]\n- Added `collective.iconifiedcategory.every_categories` and\n `collective.iconifiedcategory.every_category_titles` vocabularies returning\n every possible categories, including not enabled ones. This will be used to\n manage a `MissingTerms` adapter for `z3c.form`.\n [gbastien]\n- Fixed view that generates `collective-iconifiedcategory.css`, get every\n categories including ones that are not `enabled`.\n [gbastien]\n- Optimized `@@categorized-childs` view, compute everything only one time\n (context url, context UID, ...) and use `python` or `string` in TAL expressions.\n By default call `utils.get_categorized_elements` with `check_can_view=False`.\n [gbastien]\n- Added `check_can_view=True` parameter to `utils.get_categorized_elements`.\n This will do the `IIconifiedContent.can_view` check only done when necessary.\n [gbastien]\n- Added data `last_updated` to `categorized_elements` to be used for caching.\n Added upgrade step to version `2103`.\n [gbastien]\n- Optimized `ram.cache` key for `utils.get_ordered_categories`, cache until\n any category added/deleted/position changed.\n [gbastien]\n\n0.49 (2021-07-16)\n-----------------\n\n- Added possibility to filter displayed categorized elements on any attribute\n of the categorized element.\n [gbastien]\n- Rely on imio.helpers because we need the `:json` suffix type converter.\n [gbastien]\n- Register the `categorized_content_container_cloned ObjectClonedEvent` handler\n only for `AT IBaseObject` and `DX IDexterityContent` or is is applied also\n for other elements like `portal_type` because it provides `OFS IItem`.\n [gbastien]\n- Added specific `collective.iconifiedcategory.belowcategorizedelements` viewlet\n manager just under the categorized elements table that will be displayed if\n table displayed.\n [gbastien]\n- Make the `z3c.table CategorizedTable` easy to override by making a\n `BrowserView` out of it.\n [gbastien]\n- Adapted `FilesizeColumn` to display total filesize in column header.\n [gbastien]\n- Added `soft_warn_filesize`, a CSS class applied to files of more that `1 Mb`\n (like it is already the case for the `warn_filesize` CSS class applied to\n files of more than `5 Mb`).\n [gbastien]\n- Removed the `Show details` action, details are always shown, except, for\n display reasons, when more that 2 columns of elements in the popup.\n [gbastien]\n\n0.48 (2021-01-19)\n-----------------\n\n- Rely on `CategorizedObjectAdapter.can_view` to manage access to a categorized\n element, this way, we may manage usecases where current user does not have\n the `View` permission on the element but access is managed by the `can_view`\n adapter method.\n [gbastien]\n\n0.47 (2020-08-18)\n-----------------\n\n- Added missing translation for `Nothing.`.\n [gbastien]\n- In `utils._categorized_elements`, use `aq_base` to get `categorized_elements`\n to be sure we get the one on context.\n Indeed the parent could have this attribute too...\n [gbastien]\n- Do not use `portal_catalog` to get `categorized_elements`, instead, store\n `allowedRolesAndUsers` in the `categorized_elements` data and rely on it to\n get the content directly stored in the parent. This for performance reasons.\n [gbastien]\n- Remove unused `utils.get_UID` function.\n [gbastien]\n- Make sure a content created with an unexisting `content_category`\n does not break anything.\n [gbastien]\n\n0.46 (2020-06-24)\n-----------------\n\n- Make `plone.restapi` validation happy by defining default value for\n `IIconifiedCategorization.default_titles` that is not stored on the\n adapted context.\n [gbastien]\n\n0.45 (2020-05-26)\n-----------------\n\n- When using `collective.solr`, brains are not `ICatalogBrain` but `PloneFlare`\n so register `IIconifiedContent` adapter for it when installed.\n [gbastien]\n\n0.44 (2020-05-08)\n-----------------\n\n- Do no more make the elements using behavior marked with\n `IIconifiedCategorization` or `content_category.setter` is not working\n anymore.\n [gbastien]\n\n0.43 (2020-04-30)\n-----------------\n\n- Adapted tests to use `file_txt` instead `file` as id for default `File`\n as `file` is also the name of the field, `portal.file` returns the `File`\n instance instead breaking because it does not have a `file` field.\n [gbastien]\n- Do not break in `utils.validateFileIsPDF` while creating a new element and\n no file has been selected.\n [gbastien]\n\n0.42 (2020-04-29)\n-----------------\n\n- Added parameter `use_category_uid_as_token=False` to\n `CategoryVocabulary.__call__` method to be able to use category/subcategory\n as term token instead the calculated content_id (default).\n [gbastien]\n\n\n0.41 (2020-03-12)\n-----------------\n\n- Factorized events triggered when a categorized element attribute is changed\n (`to_print`, `confidential`, ...). Now a single `IIconifiedAttrChangedEvent`\n event is triggered. Moreover it is optimized to avoid too much process.\n [gbastien]\n- Removed specific call to `IconifiedAttrChangedEvent('confidential')`\n when creating a new categorized element.\n [gbastien]\n- Added `ICategorize.only_pdf` parameter making it possible to define if the\n categorized element is a file, that it can only be PDF. Added also invariant\n on `IIconifiedCategorization` checking if file is a PDF when categorized\n element has a file field and used content_category has `only_pdf=True`.\n [gbastien]\n\n0.40 (2020-02-18)\n-----------------\n\n- Make appearance of column in `CategorizedTabView` coherent with appearance of\n detail icon in `@@categorized-childs-infos` view,\n rely in both case on `CategorizedChildInfosView.show`\n [gbastien]\n\n0.39 (2019-11-26)\n-----------------\n\n- Added management of `publishable` attribute like it is the case for `to_print`\n or `confidential` attributes. Factorized when possible.\n [gbastien]\n\n0.38 (2019-08-23)\n-----------------\n\n- Fixed code to work with `plone.app.async` as in this case, there is no\n `REQUEST`. To do this, needed to get the `@@images` view by instantiating the\n `ImageDataModifiedImageScaling` class, this could be a problem if it is\n overrided by a subpackage.\n [gbastien]\n- Tried to fix again tooltipster popup when categorized element title is\n displayed on several lines...\n [gbastien]\n\n0.37 (2019-06-14)\n-----------------\n\n- Avoid vertical scroll in tooltipster popup when categorized content title\n is displayed on several lines.\n [gbastien]\n- Force use distribution trusty in Travis.\n [gbastien]\n\n0.36 (2019-04-23)\n-----------------\n\n- Overrided `ImageScaling.modified` to take into account real stored icon file\n `_p_mtime` instead category `_p_mtime` because the category's `_p_mtime` can\n be modified for several reasons and that breaks existing content using the\n icon. Moreover, it is now necessary to update elements using a category only\n when icon file changed.\n [gbastien]\n- Force display small icon in select2 droprown so it fits the available space,\n this is the case when a large icon was uploaded. Added description on field\n `ContentCategory.icon` explaining to use a 16x16 image icon.\n [gbastien]\n\n0.35 (2019-02-22)\n-----------------\n\n- Use ram.cache for utils.get_ordered_categories to cache during a REQUEST.\n [gbastien]\n- Added parameter `only_enabled (True by default)` when\n `using utils.get_ordered_categories` and\n `IconifiedCategoryGroupAdapter.get_every_categories` to be able to have every\n categories in utils.sort_categorized_elements.\n [gbastien]\n- Use generated url for `scale mini` as icon url so it can be cached.\n [gbastien]\n- Trigger `CategorizedElementsUpdatedEvent` after elements using a\n ContentCategory have been updated.\n [gbastien]\n- Use `natsorted` instead `realsorted` to sort annexes by title.\n [gbastien]\n- Updated upgrade step as step to 2100 should be done before step to 2000...\n Removed step to 2000 and integrated it into step to 2100 so we first compute\n ContentCategory icon listing scale then update every categorized elements.\n [gbastien]\n\n0.34 (2019-01-31)\n-----------------\n\n- Display `content_category` title at the top of `@@categorized-childs-infos`\n tooltipster view.\n [gbastien]\n- Use `natsort.realsorted` to sort categorized elements on their title,\n elements are sorted regardless of uppercase or lowercase title.\n [gbastien]\n- Moved `context._p_changed = True` to the `utils.sort_categorized_elements`\n method so we are sure that calling it will correctly manage `_p_changed`.\n [gbastien]\n\n0.33 (2018-08-03)\n-----------------\n\n- Adapted CSS regarding `FontAwesome` where font name changed in version 5+\n from `FontAwesome` to `Font Awesome 5 Free`.\n Require `collective.fontawesome >= 1.1`.\n [gbastien]\n\n0.32 (2018-05-04)\n-----------------\n\n- Added `many_elements_7_columns` and `many_elements_8_columns` styles necessary\n when displaying really many elements on several columns.\n [gbastien]\n- Make sure the icon sticks to the text first word in the tooltipster popup\n by wrapping the icon and categorized element title first word in a `<span>`\n that uses a `style=\"white-space: nowrap\"`.\n [gbastien]\n\n0.31 (2018-05-03)\n-----------------\n\n- Fix CSS applied in tooltipster popup for active confidential.\n [gbastien]\n\n0.30 (2018-04-20)\n-----------------\n\n- Make sure number of elements applied CSS is done when tooltipstered or not.\n [gbastien]\n- Added possibility to pass a CSS selector to `categorizedChildsInfos`, the JS\n method that initialize `tooltipster` for categorized elements.\n [gbastien]\n\n0.29 (2018-02-14)\n-----------------\n\n- Adapted JS call to `tooltipster` as `collective.js.tooltipster` now uses\n `tooltipster` 4.2.6. Require `collective.js.tooltipster` > 0.1\n [gbastien]\n\n0.28 (2018-01-23)\n-----------------\n\n- When changing an element's `content_category`, reapply the default values for\n fields `to_print`, `confidential`, `to_sign` and `signed` if it was still the\n original default value defined on original `content_category`. Default values\n are linked to the `content_category`.\n [gbastien]\n\n0.27 (2017-12-07)\n-----------------\n\n- In `actionview.BaseView`, moved the `ObjectModifiedEvent` from the `__call__`\n to the `set_values` method so using it directly updates the\n `categorized_elements` of the parent.\n [gbastien]\n\n0.26 (2017-11-29)\n-----------------\n\n- Use a specific static resourceDirectory for images.\n [gbastien]\n\n0.25 (2017-11-28)\n-----------------\n\n- Call `actionview._may_set_values` in `IconClickableColumn.is_editable`\n to avoid double logic.\n [gbastien]\n\n0.24 (2017-11-27)\n-----------------\n\n- Fixed migration that adds `to_sign/signed` relevant data to the\n `categorized_elements` of the parent containing categorized contents.\n Execute the update with `limited=False` and do not care about already\n migrated content, do the update on every found elements.\n [gbastien]\n- Added tests for the `SignedChangeView` view especially the `loop` among\n possible `to_sign/signed` combination values.\n [gbastien]\n- Do not break when deleting an element having a `content_category` if container\n does not have the `categorized_elements` dict.\n [gbastien]\n- Improved some translations.\n [gbastien]\n- Factorized the way categories and subcategories are get for the\n `content_category` vocabularies `collective.iconifiedcategory.categories` and\n `collective.iconifiedcategory.category_titles` so it is easy to override and\n we rely on same method for both vocabularies that needs same source.\n [gbastien]\n\n0.23 (2017-08-10)\n-----------------\n\n- Added management of `to_sign` and `signed` attributes like it is the case for\n `to_print` and `confidential` attributes. Both attributes are used behind a\n single action `signed` that have 3 options : `not to sign`, `to sign` and\n `signed`.\n [gbastien]\n- Default values for `to_print`, `confidential` and `to_sign/signed` are now\n managed in the `IObjectAddedEvent` no more in the `content_category setter`,\n this way every attribtues are managed the same way because `to_print` and\n `confidential` are simple attributes where `to_sign/signed` can come from the\n `Scan metadata` behavior of `collective.dms.scanbehavior`.\n [gbastien]\n- Added possibility to show/hide details about `to_print`, `confidential`,\n `to_sign/signed` in the categorized elements tooltipster.\n\n0.22 (2017-08-04)\n-----------------\n\n- Make portal available on the tabview instance.\n [gbastien]\n\n0.21 (2017-07-18)\n-----------------\n\n- Reverted changes from releases `0.19` and `0.20`, we do not bypass can_view if\n element is not `confiential` because `can_view` could take into account other\n elements than `confidential`.\n [gbastien]\n\n0.20 (2017-07-14)\n-----------------\n\n- Make sure we correctly bypass `can_view` in `utils._check_van_view` when\n element is not confidential in case we do not receive `obj` but\n `categorized_elements`.\n [gbastien]\n\n0.19 (2017-07-13)\n-----------------\n\n- Factorized call to _check_can_view from utils and views so we are sure that\n the check is only done if obj is confidential. This fix a bug where can_view\n check was done for not confidential obj and raised an error on @@download even\n though it was displayed in the categorized elements table.\n [gbastien]\n\n0.18 (2017-05-29)\n-----------------\n\n- Added missing translation when updating categorized elements using the\n @@update-categorized-elements view.\n [gbastien]\n- Use icon_expr instead content_icon on the types fti to define the icon.\n Actually we want to define no icon as the type icon is displayed using CSS.\n [gbastien]\n- Added one additional level to the `content_category` generated by\n `utils.calculate_category_id` to avoid same `content_category` generated for\n different category group.\n [gbastien]\n- Added parameter `sort=True` to `utils.update_all_categorized_elements` to be\n able to disable time consuming sorting.\n [gbastien]\n\n0.17 (2017-03-22)\n-----------------\n\n- Make the `plone.formwidget.namedfile` `@@download` view can_view aware.\n [gbastien]\n\n0.16 (2017-03-08)\n-----------------\n\n- Correctly hide to_print and confidential widgets on add and display view\n if they were deactivated on the group\n [mpeeters]\n- Add new events to limit updated informations on parent\n [mpeeters]\n- Add an option to update only category informations on parent\n [mpeeters]\n\n0.15 (2017-02-17)\n-----------------\n\n- Adapted translations so it is more understandable.\n [gbastien]\n- Do only call `_cookCssResources` in `category_before_remove` if not currently\n removing the `Plone Site`.\n [gbastien]\n- Make `ICategory.icon` a primary field so we may use a simpler download URL\n that is only the `path_to_object/@@download` without the file name anymore.\n This is done to surround a bug in Apache that occurs when the filename\n contains the `%` character.\n [gbastien]\n\n0.14 (2017-02-13)\n-----------------\n\n- Generate a CSS class on the `<ul>` tag of the `categorized-childs-infos` view\n that is the AJAX view called when hovering the `categorized-childs` elements\n that will give the ability to display the infos on several columns. This is\n necessary when displaying a large amount of categorized elements using same\n content_category. The `Maximum number of elements to display by columns\n when displaying categorized elements of same category in the tooltipster widget`\n can be defined in the iconifiedcategory control panel.\n [gbastien]\n- Moved registry parameter `filesizelimit` to the IIconifiedCategorySettings.\n [gbastien]\n- Added a way to defer call to `utils.update_all_categorized_elements` in the\n `categorized_content_container_cloned` IObjectClonedEvent event handler.\n [gbastien]\n\n0.13 (2017-02-09)\n-----------------\n\n- Makes `collective-iconifiedcategory.css` cacheable and cookable to avoid\n recomputing it for every pages. We call `portal_css.cookResources` when\n a category is added or moved. Not necessary to recook for subcategory\n as it uses same CSS class as parent category.\n [gbastien]\n\n0.12 (2017-02-09)\n-----------------\n\n- Do not fail in `utils.get_categorized_elements` if context does not have the\n `categorized_elements` OrderedDict.\n [gbastien]\n\n0.11 (2017-02-07)\n-----------------\n\n- Use a batchSize of 999 in the tabview to show every categorized elements.\n [gbastien]\n- In `utils.get_categorized_elements`, do not do the catalog query if the\n categorized_elements dict is empty.\n [gbastien]\n\n0.10 (2017-02-05)\n-----------------\n\n- Only check `can_view` if current element is `confidential`, moreover only\n instanciate the `IIconifiedContent` adapter to check for `can_view` when\n element is `confidential`.\n [gbastien]\n\n0.9 (2017-01-31)\n----------------\n\n- Adapted CSS selector that changes `font-size` of number of categorized\n elements displayed in the tooltipster\n [gbastien]\n- Added a way to defer the categorized_content_created event and to defer\n call to utils.update_categorized_elements in the categorized_content_updated\n event. This way we may manage adding several categorized elements but only\n updating the categorized_elements dict (including time consuming sorting)\n at the right time\n [gbastien]\n- Fixed tests to work in both Plone 4.3.7 and Plone 4.3.11\n [gbastien]\n\n0.8 (2017-01-25)\n----------------\n\n- Do not fail in `categorized-childs-infos` if current context does not have\n the `categorized_elements` dict\n [gbastien]\n\n0.7 (2017-01-23)\n----------------\n\n- Use `category_uid` instead `category_id` as key for infos dict used by\n `CategorizedChildInfosView`, indeed we may have different configurations\n used on same container for different categorized elements and those\n configurations may contain categories with same id\n [gbastien]\n- Do not break if icon used for iconified category contains special characters\n [gbastien]\n\n0.6 (2017-01-17)\n----------------\n\n- Use ajax to display the categorized childs informations\n [gbastien]\n- Display select2 widget larger and with no padding between options\n so more options are displayed together\n [gbastien]\n- Added option `show_nothing=True` to the `categorized-childs` view\n to be able to show/hide the 'Nothing' label when there is no categorized\n content to display\n [gbastien]\n\n0.5 (2017-01-13)\n----------------\n\n- Do not fail in `utils.sort_categorized_elements` if a key is not found,\n it can be the case when copy/pasting and new element use another\n configuration\n [gbastien]\n\n0.4 (2017-01-12)\n----------------\n\n- Sort `categorized_elements` by alphabetical order into a category,\n this way it can be directly displayed as it in the tooltipster\n or in the tabview without having to sort elements again\n [gbastien]\n- Add method `IconifiedCategoryGroupAdapter.get_every_categories`\n that gets every available categories. Mainly made to be overrided,\n it is used in `utils.get_ordered_categories` to manage the fact\n that a container could contain categorized elements using different\n group of categories\n [gbastien]\n- Add a configlet to allow user to sort elements on title on the\n categorized tab view\n [mpeeters]\n- Ensure that categorized elements are sorted by group folder order\n [mpeeters]\n- Refactoring of iconified JavaScript functions\n [mpeeters]\n- Increase speed that show the categorized elements in the tooltipster.\n [gbastien]\n- Do not fail to remove the Plone Site if categories or subcategorie exist.\n [gbastien]\n\n0.3 (2016-12-21)\n----------------\n\n- Changed icon used with link to `More infos`.\n [gbastien]\n- Do not fail if subcategory title contains special characters.\n [gbastien]\n- Turn icon `more_infos.png` into a separated resource, in addition to other\n resources stored in the `static` folder declared as resourceDirectory,\n so it is easy to override.\n [gbastien]\n\n0.2 (2016-12-07)\n----------------\n\n- Use `javascript:event.preventDefault()` when clicking on the tooltipster root\n element to avoid the link action that will change the current url.\n [gbastien]\n- Open `More infos` link in `target=_parent` so it opens in the _parent frame\n when displayed in an iframe, namely outside the iframe.\n [gbastien]\n\n0.1 (2016-12-02)\n----------------\n\n- Initial release.\n [mpeeters]\n\n\n\n",
"bugtrack_url": null,
"license": "GPL version 2",
"summary": "An add-on for Plone",
"version": "0.66",
"project_urls": {
"Homepage": "https://pypi.python.org/pypi/collective.iconifiedcategory"
},
"split_keywords": [
"python",
"plone"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c7857388a35f0221069ab05f43f48fb05396aca1fd7468b1a9fb62e9e8b50ae9",
"md5": "8f08f59414e382230a6e363939db2367",
"sha256": "38be3b3489a2c872bce68dc25608807ff91435399c83e5915d54a1ad9cc482c9"
},
"downloads": -1,
"filename": "collective.iconifiedcategory-0.66.tar.gz",
"has_sig": false,
"md5_digest": "8f08f59414e382230a6e363939db2367",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 123835,
"upload_time": "2024-02-27T13:20:21",
"upload_time_iso_8601": "2024-02-27T13:20:21.071842Z",
"url": "https://files.pythonhosted.org/packages/c7/85/7388a35f0221069ab05f43f48fb05396aca1fd7468b1a9fb62e9e8b50ae9/collective.iconifiedcategory-0.66.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-27 13:20:21",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "collective.iconifiedcategory"
}