Metadata-Version: 2.1
Name: collective.eeafaceted.dashboard
Version: 0.22.0
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
Platform: UNKNOWN
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
Provides-Extra: test
License-File: LICENSE

.. 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.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]



