Metadata-Version: 2.4
Name: collective.eeafaceted.dashboard
Version: 0.23.2
Summary: This package is the glue between different packages offering a usable and integrated dashboard application
Home-page: http://pypi.python.org/pypi/collective.eeafaceted.dashboard
Author: IMIO
Author-email: dev@imio.be
License: GPL V2
Keywords: Python Zope Plone
Classifier: Development Status :: 6 - Mature
Classifier: Environment :: Web Environment
Classifier: Framework :: Plone
Classifier: Framework :: Plone :: 4.3
Classifier: Framework :: Plone :: 5.0
Classifier: Framework :: Plone :: 5.1
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
License-File: LICENSE
Requires-Dist: Products.ZCatalog
Requires-Dist: plone.api
Requires-Dist: plone.batching>1.0.4
Requires-Dist: setuptools
Requires-Dist: collective.compoundcriterion
Requires-Dist: collective.documentgenerator>3.19
Requires-Dist: collective.eeafaceted.collectionwidget>0.9
Requires-Dist: collective.eeafaceted.z3ctable>1.0
Requires-Dist: eea.facetednavigation>=10.0
Requires-Dist: imio.prettylink
Requires-Dist: z3c.unconfigure
Provides-Extra: test
Requires-Dist: plone.app.dexterity; extra == "test"
Requires-Dist: plone.app.testing; extra == "test"
Requires-Dist: plone.app.relationfield; extra == "test"
Requires-Dist: plone.app.robotframework[reload,ride]; extra == "test"
Requires-Dist: robotframework-selenium2screenshots; extra == "test"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: summary

.. image:: https://github.com/collective/collective.eeafaceted.dashboard/actions/workflows/main.yml/badge.svg?branch=master
    :target: https://github.com/collective/collective.eeafaceted.dashboard/actions/workflows/main.yml

.. image:: https://coveralls.io/repos/collective/collective.eeafaceted.dashboard/badge.svg?branch=master
   :target: https://coveralls.io/r/collective/collective.eeafaceted.dashboard?branch=master

.. image:: https://img.shields.io/pypi/v/collective.eeafaceted.dashboard.svg
   :alt: PyPI badge
   :target: https://pypi.org/project/collective.eeafaceted.dashboard


collective.eeafaceted.dashboard
===============================

This package does the glue between :

- `collective.eeafaceted.collectionwidget <https://github.com/collective/collective.eeafaceted.collectionwidget>`_
- `collective.eeafaceted.z3ctable <https://github.com/collective/collective.eeafaceted.z3ctable>`_
- `collective.compoundcriterion <https://github.com/collective/collective.compoundcriterion>`_
- `collective.documentgenerator <https://github.com/collective/collective.documentgenerator>`_

This build a useable eea.facetednavigation based dashboard (works on both Plone 4.3.x and Plone 5.x).  Use the demo profile to easily check what it does :

.. image:: https://github.com/IMIO/collective.eeafaceted.dashboard/blob/master/doc/screenshots/application.png

.. image:: https://github.com/IMIO/collective.eeafaceted.dashboard/blob/master/doc/screenshots/review.png

Dashboard is essentially made of a faceted widget displaying pre-configured searches, results are displayed in a faceted layout using a table.

The searches filter (collective.eeafaceted.collectionwidget) :
--------------------------------------------------------------

This filter aims to display "functional and already well thought" searches to users.

- this filter uses the collective.eeafaceted.collectionwidget that is a faceted navigation widget displaying a list of searches stored in current folder;
- searches stored in folder are elements of type DashboardCollection (based on plone.app.contenttypes Collection) with 3 specific fields "Show number of items in filter?", "Enabled?" and "Condition" (let's Managers enter a TAL expression to define to who this search will be displayed in the collection faceted filter);
- it is possible to display the count information on a per search basis (here it is enabled for "Elements to review" and "Expired elements" searches);
- the current page title changes depending on selected search;
- a default search can be selected so it is executed when user access the dashboard.

The table faceted layout (collective.eeafaceted.z3ctable) :
-----------------------------------------------------------

Every faceted layout can be selected to display the dashboard results but collective.eeafaceted.z3ctable add a new faceted layout that displays a z3c.table with sortable columns (using the sort icons in the column header) and a selection column.

- columns may be selected on the defined DashboardCollections so different columns may be displayed for different searches;
- a "refresh search results" is available so user may refresh the faceted layout without having to reload the entire page;
- the selection column is useable with collective.documentgenerator or collection.eeafaceted.batchactions for example.

Managing complex searches (collective.compoundcriterion) :
----------------------------------------------------------

This package rely on collective.compoundcriterion, it adds a new search criterion called "Filter" for Collections that will let user select a named adapter registered for the ICompoundCriterionFilter.  This adapter returns a catalog query compatible with a Collection query.  This makes it possible to manage complex searches that are not configurable on a Collection using the querywidget.

Document generation (collective.documentgenerator) :
----------------------------------------------------

Dashboard integrates the colletive.documentgenerator package that makes it possible to export a dashboard in any format supported by collective.documentgenerator (odt, doc, docx, ods, xls, pdf, ...).  Exportable documents are managed by DashboardPODTemplates added in the dashboard folder.

- it is possible to restrict exportation templates to specific dashboard searches;
- as for DashboardCollections, it is possible to define a availability condition so document may only be generated by some users.

TODO :
------
- integrate collective.eeafaceted.batchactions when it will work on Plone 5 (integration is already possible on Plone 4).



Changelog
=========

0.23.2 (2026-03-03)
-------------------

- Adapted CSS class used on terms ti fix behavior with currently selected
  elements that must not be highlighted when outside faceted, and to adapt
  CSS class name to make sure it it unique.
  [gbastien]

0.23.1 (2026-02-19)
-------------------

- Added collection ID as class in collection widget term template.
  [chris-adam]

0.23.0 (2026-01-15)
-------------------

- Allowed Dashboard POD template to have no max objects.
  [chris-adam]

0.22.0 (2023-12-07)
-------------------

- Update count only on viewable tabs. Be more resilient in js.
  [sgeulette]
- Pinned last py2 eea.facetednavigation version
  [sgeulette]

0.21.1 (2023-09-08)
-------------------

- Corrected existing count title check.
  [sgeulette]

0.21.0 (2023-09-08)
-------------------

- The `update_tabs_count` is now available anywhere, not only on faceted context.
  [sgeulette]
- A span has been added so the tab count can be styled.
  [sgeulette]

0.20 (2022-08-26)
-----------------

- Adapted `DashboardDocumentGeneratorLinksViewlet.get_links_info` to be
  compatible with `collective.documentgenerator>=3.35`.
  [gbastien]

0.19 (2022-05-16)
-----------------

- Fixed CSS when using `select2 widget`, a small `margin-left` gap was visible
  between the input and the dropdown.
  [gbastien]

0.18 (2022-01-03)
-----------------

- Searched unrestrictedly countable tabs.
  [sgeulette]

0.17 (2021-08-27)
-----------------

- Adapt code to allow override of faceted context
  [mpeeters]
- Fixed bug in JS function `generatePodDocument` that was only taking elements
  of the current dashboard page and no more following pages.
  [gbastien]

0.16 (2021-04-20)
-----------------

- Avoid double different checks in
  `DashboardDocumentGenerationView._get_generation_context` (one time checked
  on presence of `facetedQuery` in `REQUEST` then if context is
  `IFacetedNavigable`, only check if context is `IFacetedNavigable`).
  [gbastien]
- Adapted `DashboardDocumentGeneratorLinksViewlet` template
  (`generationlinks.pt`) to use svg icons now that it is the case in
  `collective.documentgenerator`.
  Require `collective.documentgenerator>3.19`.
  [gbastien]
- Small fix in faceted criterion CSS to be sure that first value is
  correctly displayed.
  [gbastien]

0.15 (2020-10-02)
-----------------

- Fixed pretty link displayed in dashboards, not necessary to change
  `vertical-align` CSS property.
  [gbastien]
- Added total collections results count on folder tabs providing ICountableTab.
  Only manual refresh for now.
  [daggelpop, sgeulette]

0.14 (2020-09-10)
-----------------

- Fixed css of `no results` sentence for `eea.facetednavigation>14`.
  [gbastien]

0.13.2 (2020-08-18)
-------------------

- Fixed IndexError when generating a dashboardpotemplte whith empty elements.
  [odelaere]

0.13.1 (2020-06-25)
-------------------

- Check if received `pod_template` has a `max_objects` before restricting
  number of `brains` to `max_objects`.
  [gbastien]

0.13 (2020-06-24)
-----------------

- Limit the number of items that can be generated in a DashboardPodTemplate.
  [odelaere]

0.12 (2019-11-27)
-----------------

- Implement our own `IDashboardGenerablePODTemplates` adapter like it is the
  case for `collective.documentgenerator` `IGenerablePODTemplates` adapter to
  be used in the `dashboard-document-generation-link` viewlet so it is
  registered for `IFacetedNavigation` and easier to override when necessary.
  [gbastien]

0.11 (2019-11-26)
-----------------

- Adapted override of `collective.documentgenerator` method
  `get_all_pod_templates` now that it is handled by an `IGenerablePODTemplates`
  adapter instead the `DocumentGeneratorLinksViewlet`.
  [gbastien]

0.10 (2019-08-13)
-----------------

- Adapted code to render term as term.value does not contain the collection
  object anymore but it's path.
  [gbastien]
- Do not compute kept_criteria when widget is rendered outside dashboard as
  faceted criteria will not be displayed.
  [gbastien]
- Use `collectionwidget.utils.getCurrentCollection` to get the current
  collection to use for `DashboardFacetedTableView` columns.
  [gbastien]

0.9 (2019-06-07)
----------------

- Added function utils.addFacetedCriteria to ease applying a faceted conf xml
  that adds extra faceted criteria to an existing dashboard.
  [gbastien]
- Improved template evaluate method to avoid getting collection and criterias
  if not necessary
  [sgeulette]
- Display dashboard-document-generation-link only on IFacetedNavigable
  [sgeulette]
- Corrected robot tests
  [sgeulette]

0.8 (2019-05-16)
----------------

- Do not compute collections count when initializing collections portlet, as it
  is updated in the Faceted.AJAX_QUERY_SUCCESS event, it avoid being computed
  twice.
  [gbastien]

0.7 (2019-01-03)
----------------

- Do not render widget twice when portlet faceted displayed outside dashboard.
  [gbastien]

0.6 (2018-12-18)
----------------

- Adapted CSS for `div.table_faceted_results` displaying number of results.
  [gbastien]

0.5 (2018-12-06)
----------------

- Remove contsraint on Products.ZCatalog.
  [sdelcourt]
- Always use latest versions of eea products.
  [gbastien]

0.4 (2018-11-29)
----------------

- Sort uniquely collection vocabulary columns names, because multiple columns
  with same name can be defined for different interfaces.
  [sgeulette]
- Added parameter `default_UID` to `utils.enableFacetedDashboardFor` to set
  default collection UID when enabling faceted on a folder.
  [gbastien]
- When calling `utils.enableFacetedDashboardFor`, set a value in the `REQUEST`
  `enablingFacetedDashboard` specifying that we are currently enabling a
  faceted dashboard.
  [gbastien]

0.3 (2018-11-20)
----------------

- Make sure overrided vocabulary `plone.app.contenttypes.metadatafields` is
  also used when adding a new DashboardCollection, so when current context is
  not a DashboardCollection but the parent.
  [gbastien]
- Added `demo` profile.
  [gbastien]
- Added parameter `show_left_column=True` to `utils.enableFacetedDashboardFor`
  to be able to not show the Plone left column when enabling dashboard on a
  faceted folder.
  [gbastien]
- Added `DashboardCollectionsVocabulary._render_term_title` to make it easy to
  override term title rendering.
  [gbastien]
- Override default eea.facetednavigation spinner (ajax-loader.gif).
  [gbastien]

0.2 (2018-09-04)
----------------

- Get current URL in JS to call the @@json_collections_count a way it works in
  both Plone4 and Plone5.
  [gbastien]
- Moved the `PrettyLinkColumn` and `RelationPrettyLinkColumn` to
  `collective.eeafaceted.z3ctable`.
  [gbastien]

0.1 (2018-06-21)
----------------
- Initial release.
  [gbastien]

