=====================
EEA App Visualization
=====================
.. image:: https://ci.eionet.europa.eu/buildStatus/icon?job=eea/eea.app.visualization/develop
:target: https://ci.eionet.europa.eu/job/eea/job/eea.app.visualization/job/develop/display/redirect
:alt: Develop
.. image:: https://ci.eionet.europa.eu/buildStatus/icon?job=eea/eea.app.visualization/master
:target: https://ci.eionet.europa.eu/job/eea/job/eea.app.visualization/job/master/display/redirect
:alt: Master
`EEA App Visualization`_ is the Core API for `EEA Daviz`_. This package was added
in order to be able to use `EEA Google Charts`_ without `EEA Exhibit`_ and
viceversa or any other visualization library as a standalone visualization
or as part of a bundle package (`eea.daviz`_)
.. image:: https://eea.github.io/_images/eea.daviz.layers.svg
This package as standalone is just an API, you have to either install
`eea.daviz`_ bundle, either install one of the available visualization
libraries (`eea.exhibit`_, `eea.googlecharts`_, etc) in order to have a working
Visualization Tool for your files.
.. contents::
Installation
============
If you are using `zc.buildout`_ and the `plone.recipe.zope2instance`_
recipe to manage your project, you can do this:
* Update your buildout.cfg file:
- Add `eea.app.visualization`_ to the list of eggs to install
- Tell the plone.recipe.zope2instance recipe to install a ZCML slug
::
[instance]
recipe = plone.recipe.zope2instance
eggs = eea.app.visualization
zcml = eea.app.visualization
* Re-run buildout, e.g. with
::
$ ./bin/buildout
You can skip the ZCML slug if you are going to explicitly include the package
from another package's configure.zcml file.
Dependencies
============
* python-dateutil
* plone.i18n
* Zope >= 2.12
* eea.jquery
* collective.js.jqueryui < 1.9 (Plone 4.0, 4.1, 4.2)
* collective.js.jqueryui > 1.9 (Plone 4.3+)
* eea.cache > 7.0 (optional)
.. image:: https://eea.github.io/_images/eea.daviz.dependencies.svg
Live demo
=========
1. http://www.simile-widgets.org/exhibit
2. Exhibit only: http://www.eea.europa.eu/data-and-maps/data/national-emissions-reported-to-the-unfccc-and-to-the-eu-greenhouse-gas-monitoring-mechanism-3/national-total-excluding-lulucf/ghg_v10_extract.csv
3. http://code.google.com/apis/chart/
Source code
===========
Latest source code (Zope 2 compatible):
- `Plone Collective on Github <https://github.com/collective/eea.app.visualization>`_
- `EEA on Github <https://github.com/eea/eea.app.visualization>`_
Copyright and license
=====================
The Initial Owner of the Original Code is European Environment Agency (EEA).
All Rights Reserved.
The EEA App Visualization (the Original Code) is free software;
you can redistribute it and/or modify it under the terms of the GNU
General Public License as published by the Free Software Foundation;
either version 2 of the License, or (at your option) any later
version.
More details under docs/License.txt
Links
=====
1. Simile Wiki - Exhibit 2.0: http://simile.mit.edu/wiki/Exhibit
2. Simile widgets: http://www.simile-widgets.org/exhibit
3. EEA Daviz howto: https://taskman.eionet.europa.eu/projects/zope/wiki/HowToDaviz
4. EEA Daviz backlog wiki: https://taskman.eionet.europa.eu/projects/zope/wiki/DaViz
5. Google charts: http://code.google.com/apis/chart/
Funding
=======
EEA_ - European Environment Agency (EU)
.. _EEA: https://www.eea.europa.eu/
.. _`EEA Daviz`: https://eea.github.io/docs/eea.daviz
.. _`EEA Google Charts`: https://eea.github.io/docs/eea.googlecharts
.. _`EEA Exhibit`: https://eea.github.io/docs/eea.exhibit
.. _`eea.daviz`: https://eea.github.io/docs/eea.daviz
.. _`eea.googlecharts`: https://eea.github.io/docs/eea.googlecharts
.. _`eea.exhibit`: https://eea.github.io/docs/eea.exhibit
.. _`eea.app.visualization`: https://eea.github.io/docs/eea.app.visualization
.. _`plone.recipe.zope2instance`: https://pypi.python.org/pypi/plone.recipe.zope2instance
.. _`zc.buildout`: https://pypi.python.org/pypi/zc.buildout
.. _`EEA App Visualization`: https://eea.github.io/docs/eea.app.visualization
Changelog
=========
13.3 - (2022-04-20)
---------------------------
* Change: IMultiDataProvenance default provenances to ExternalDataSpec and Data relatedItems
[avoinea refs #144026]
13.2 - (2021-06-17)
---------------------------
* Change: IMultiDataProvenance default provenances to ExternalDataSpec relatedItems
[avoinea refs #130851]
13.1 - (2021-06-16)
---------------------------
* Change: Register @provenances endpoint on a more generic interface: IContentish
[avoinea refs #130851]
13.0 - (2021-06-16)
---------------------------
* Feature: Added GET RestAPI endpoint for Daviz Charts @charts
[avoinea refs #126277]
* Feature: Added GET RestAPI endpoint for Data Table @table
[avoinea refs #133973]
* Feature: Added GET RestAPI endpoint for IDataProvenance @provenances
[iulianpetchesi refs #123935]
12.7 - (2020-12-16)
---------------------------
* Change: load google charts version 49 in order to avoid warning
that it tried to load it and then tried version 1.0
[ichim-david refs #125298]
* Change: avoid data sources header from visualization-info in case
there is no providence data entered avoiding a false positive
[ichim-david refs #125298]
12.6 - (2020-10-06)
---------------------------
* Change: daviz view design tweaks after latest eea redesign
[ichim-david refs #121911]
12.5 - (2020-08-24)
---------------------------
* Change: daviz view tabs design tweaks
[ichim-david refs #119540]
12.4 - (2020-02-28)
---------------------------
* Change: use prop instead of attr when setting value on input tags for jquery
1.9+ compatibility
[ichim-david refs #105112]
12.3 - (2019-10-02)
--------------------------
* Change: Added new resource for david view
[iulianpetchesi refs #107671]
12.2 - (2019-01-28)
--------------------------
* Jenkins: Add sonarqube step
[avoinea refs #101552]
12.1 - (2018-09-07)
--------------------------
* Cleanup: Remove backward-compatible is_exhibit property
[avoinea refs #98283]
12.0 - (2018-07-27)
--------------------------
* Bug fix: Don't try to scale if image is already cached in browser,
just return 304 with empty string
[szabozo0 refs #97222]
11.9 - (2018-06-20)
--------------------------
* Change: updated URLs pointing to eea.europa.eu with https://
[alecghica refs #95849]
11.8 - (2018-03-14)
-------------------
* Change: load customized collective.js.jqueryui on eea context for view pages
[ichim-david refs #91577]
11.7 - (2017-12-12)
-------------------
* Change: Replace eeacms/zptlint with eeacms/plone-test:4 zptlint
[avoinea refs #90415]
11.6 - (2017-11-07)
-------------------
* Change: Remove Sphinx generated documentation
[petchesi-iulian refs #88212]
11.5 - (2017-08-16)
-------------------
* Bug fix: added missing glyphicons-halflings.png to correct path
[zoltan_andras refs #84486]
11.4 - (2017-05-22)
-------------------
* Change: fixed PyLint warnings and errors
[valipod refs #84949]
11.3 - (2017-05-15)
-------------------
* Change: fixed PyLint warnings and errors
[eduard-fironda refs #84949]
11.2 - (2017-04-24)
-------------------
* Change: updated package information
[eduard-fironda]
11.1 - (2017-01-17)
-------------------
* Bug fix: Move zope.formlib to extra_require
[avoinea]
11.0 - (2017-01-17)
-------------------
* Bug fix: Add missing dependency to zope.formlib
[avoinea]
10.9 - (2016-12-28)
-------------------
* Change: Add more info on JSON UnicodeDecodeError
[voineali refs #79895]
10.8 - (2016-12-19)
-------------------
* Change: Replace misused logger.exception with logger.warn
[voineali refs #75388]
10.7 - (2016-10-10)
-------------------
* Bug fix: accept % and # in id of columns as some charts need
to have these characters
[ichim-david refs #75896]
10.6 - (2016-09-26)
-------------------
* Bug fix: Fixed profiles version
[avoinea]
10.5 - (2016-05-19)
-------------------
* Bug fix: Fix pylint warnings
[chiridra refs #71940]
10.4 - (2016-05-04)
-------------------
* Feature: html body field for daviz and gis application
- added new field "body"
- modified the view template
[chiridra refs #70146]
10.3 - (2016-03-14)
-------------------
* Bugfix: Fixed order of column labels when labels are numbers
[szabozo0 refs #69360]
10.2 - (2016-02-15)
-------------------
* Task: Improve DaViz Filter design/display
clean up unused CSS rule.
[chiridra refs #31309]
* Bug: DaViz: Color picker missing in GC
add en language on google.api to fix daviz color picker
[lucas refs #68198]
10.1 - (2016-02-03)
-------------------
* Task: Improve DaViz Filter design/display
[chiridra refs #31309]
10.0 - (2015-10-05)
-------------------
* Change: check if DavizEdit.Events exists before overriding it withing js files
in case DavizEdit isn't found and is constructed
[ichimdav refs #27220]
* Bug fix: use evnetlet to prevent hanging out connection
[lucas refs #29063]
9.9 - (2015-08-18)
------------------
* Bug fix: fixed data format popup which was hidden by the data cells
[ichimdav refs #27889]
* Bug fix: Auto-include zcml within plone context in order to make this package
work without having to add it within buildout zcml directive.
[avoinea]
9.8 - (2015-07-06)
------------------
* Change: daviz-edit.css uses content-box box-sizing property since
Google charts styles doesn't cope with border-box. This allows us
to use newer versions of Bootstrap which contains box-sizing
[ichimdav refs #25986]
* Bug fix: Always use https protocol for www.google.com/jsapi
[szabozo0]
9.7 - (2015-06-03)
------------------
* Bug fix: fixed unicode error when guessing columns type
[ghicaale refs #26068]
9.6 - (2015-06-02)
------------------
* Bug fix: fixed image viewing of preview images when they are referenced by the
fullview
[ichimdav refs #25835]
* Change: year and date types now have an lower and upper bounds of 1500-2500.
This loosens the previous restriction of 1900-2200 for valid year values
[ichimdav refs #25502]
9.5 - (2015-05-15)
------------------
* Bugfix: Removed default data provenance for blobs
[szabozo0 #25341]
9.4 - (2015-05-05)
------------------
* Bug fix: condition chart-tabs for existance.
This way we avoid a js error when no charts are added.
[ichimdav refs #22901]
* Cleanup: Removed fallback images from ZODB
[voineali refs #24901]
9.3 - (2015-03-17)
------------------
* Change: Switched to curl in the jenkins builds install script
[olimpiurob refs #22402]
* Change: Changed fetch url for jenkins builds install script to the install
script from the main EEA CPB repository
[olimpiurob refs #22402]
9.2 - (2015-02-03)
------------------
* Bug fix: Optimize edit form by not calling editform 3 times only to tal condition
[avoinea]
9.1 - (2014-12-23)
------------------
* Change: Fixed tests for xml download
[szabozo0]
9.0 - (2014-11-24)
------------------
* Bug fix: Removed hard dependency to Products.EEAContentTypes
[voineali thanks to Nuno Zimas]
8.9 - (2014-11-20)
------------------
* Feature: added belowcontenttitle.documentbyline viewlet to be visible under "Edit Visualizations" tab
[ghicaale refs #21457]
8.8 - (2014-08-27)
------------------
* Change: Cleanup memcache invalidation code as it's already handled by
eea.cache (7.0+)
[voineali refs #20678]
8.7 - (2014-06-06)
------------------
* Change: Moved tutorials to eea.daviz
[szabozo0]
8.6 - (2014-05-15)
------------------
* Bug fix: Increase the sample file data to 4096 due to csv sniffer unable to
properly guess the csv dialect from a sample data of 2048 characters.
[olimpiurob refs #19732]
8.5 - (2014-05-13)
------------------
* Bug fix: Added delimiter restrictions to CSV dialect detection. Valid CSV
delimiters are: {tab}, {space}, ;, ,, :
[olimpiurob refs #19535]
* Feature: Added test for missing values in json boolean fields and downloading
as tsv
[olimpiurob refs #19206]
* Change: Use null for missing values in boolean fields when downloading csv,tsv
and json
[olimpiurob refs #19206]
* Feature: Add InternalData utility that recognize and internal URL and bypass
security (if needed) in order to get visualization data
[voineali refs #19075]
8.4 - (2014-04-29)
------------------
* Bug fix: Fix date and year column converters by skipping missing values
instead of converting them to current year/date
[voineali fixes #19235]
* Change: WebDav lock object when a visualization is edited (edit visualization)
[voineali refs #19172]
* Change: Added possibility to hide rename option on spreadsheet,
Added warning on rename on the Data settings
[szabozo0 refs #19149]
* Feature: Added screencasts tutorial page
[szabozo0 refs #18400]
8.3 - (2014-03-10)
------------------
* Fixed version in metadata.xml
[szabozo0]
8.2 - (2014-02-03)
------------------
* Feature: Use FontAwesome icons on Data Settings and Exhibit facets configuration
[batradav refs #17861]
8.1 - (2014-01-22)
------------------
* Bug fix: Fix big header on "Edit Visualisations"
[soniaand refs #17970]
* Feature: adding Sphinx-generated documentation in Page Template format
[batradav refs #9502]
* Bug fix: Updated old URLs pointing Trac
[ghicaale refs #18003]
8.0 - (2014-01-14)
------------------
* Bugfix: Fixed adding data from URL
[szabozo0]
7.9 - (2013-11-20)
------------------
* Feature: Allow query in the url after the hash with the chart id
[szabozo0 refs #17066]
7.8 - (2013-10-24)
------------------
* Bug fix: Fixed modal's close button ui issues
[tiberich #16928]
7.7 - (2013-09-19)
------------------
* Change: Removed eea.jquery.js from jsregistry as it's no more required in Plone 4.3
7.6 - (2013-09-10)
------------------
* Bugfix: Increased max_length for column names; Added migration step
[szabozo0 refs #16684]
7.5 - (2013-06-17)
------------------
* Feature: Package localization enhanced [lepri]
* Feature: Changed data provenance to allow multiple data provenances
[szabozo0 #9561]
7.4 - (2013-05-20)
------------------
* Bug fix: Added CSV UnicodeWriter as by default python csv module doesn't
know how to write unicode (see http://docs.python.org/2/library/csv.html)
[voineali refs #14360]
* Feature: Also support content-type='text/html' as some external JSON/TSV
external URLs doesn't correctly set response headers
[voineali refs #14360]
* Feature: Removed lovely.memcached dependency
[voineali refs #14343]
7.3 - (2013-04-17)
------------------
* Bug fix: Redirect to daviz-edit.html only when users add new visualizations
[avoinea]
* Bug fix: Wrap visualization info and download section within daviz-view.html
with a div container in order to easily customize theme these sections
[avoinea]
7.2 - (2013-03-18)
------------------
* Bug fix: Remove collective.js.jqueryui < 1.9 pin as it make this package
unusable with Plone 4.3+
[avoinea]
7.1 - (2013-03-15)
------------------
* Change: Moved eea.exhibit specific code to eea.exhibit package and added API
to easily insert HTML code within daviz-view.html head element.
See IVisualizationViewHeader
[voineali refs #14003]
* Feature: Support all Simile Exhibit facets
[voineali refs #10007]
7.0 - (2013-02-25)
------------------
* Feature: added information for contributors
[ciobabog refs #13892]
* Upgrade step: Within "Plone > Site setup > Add-ons" click on
upgrade button available for eea.app.visualization
* Feature: Possibility to disable daviz views per Content-Type. See
Site Setup > Daviz Visualization > Enable / Disable
[voineali]
* Change: Refactoring ZCML slugs for daviz:view and daviz:edit. See
eea.app.visualisation.views.data.configure.zcml for examples.
[voineali]
* Change: Refactoring "Data settings" as a daviz:view in order to easily
disable it if necessary
[voineali]
* Change: Use jQuery tabs for "Daviz Visualization Settings"
within Plone ControlPanel
[voineali]
* Bug fix: Fix "embed" and "export to png" buttons CSS
[voineali]
* Bug fix: Improved CSV dialect detection for files with a lot of missing values
[voineali fixes #13851]
* Bug fix: Fixed daviz.json for uploaded files (.tsv, .csv)
[voineali]
* Feature: Upgraded to Simile Exhibit 3.0
[voineali refs #13807]
6.5 - (2013-02-04)
------------------
* Feature: Handling specific annotations for data values
[voineali refs #9558]
6.4 - (2013-01-18)
------------------
* Bug fix: Fixed fix_column_labels upgrade step from version 6.2
[szabozo0]
* Bug fix: Fixed table layout
[szabozo0]
6.3 - (2013-01-15)
------------------
* Feature: Added italian translations
[simahawk]
6.2 - (2013-01-10)
------------------
* Upgrade step: Within "Plone > Site setup > Add-ons" click on
upgrade button available for eea.app.visualization
* Change: Moved data annotations to Daviz settings Control Panel
[voineali refs #9558]
* Change: Cleanup old 'sections' code
[avoinea]
* Feature: Added confirm dialog in order to prevent accidentally disable of
visualizations
[voineali refs #9572]
* Feature: Support non-ASCII datasets (column headers and body)
[voineali refs #9610, #10168]
* Bug fix: Fixed download.(csv, tsv, html) methods for non-ASCII data
[voineali refs #9610, #10168]
* Change: Move column label settings from facet annotations directly to JSON
[voineali refs $9610]
* Feature: On saving a chart, copy the generic chart image in the visualization
[szabozo0 refs #10019]
* Change: Added a common.js and common.css in order to reuse common components
[voineali refs #9610]
* Bug fix: add namespace declaration for exhibit (makes Chameleon happy) [simahawk]
6.1 - (2012-11-09)
------------------
* Feature: Added i18n translations
[avoinea]
* Feature: Display image when javascript is disabled
[szabozo0 refs #9562]
* Upgrade step: Within "Plone > Site setup > Add-ons" click on
upgrade button available for eea.app.visualization
* Feature: Added utilities to get and convert external URL to
data ready for visualization
[voineali refs #9576]
* Feature: Added "year" column type in order to format dates columns as years
[voineali refs #9583]
* Change: Use SlickGrid jQuery plug-in to manipulate data table within
Edit Visualization > Data settings Tab
[avoinea refs #5599, #5625]
* Bugfix: Fixed KSS issues in daviz controlpanel
[szabozo0 refs #5616]
* Feature: Made plone collection as daviz data source
[avoinea refs #5604]
* Bug fix: Fixed 'Enable View' button CSS
[avoinea]
6.0 - (2012-10-08)
------------------
* Upgrade step: Within "Plone > Site setup > Add-ons" click on
upgrade button available for eea.app.visualization
* Feature: Added API for Visualization data source provenance
[voineali refs #5490]
* Change: Merged daviz-view.json and daviz-relateditems.json into one single
json file called daviz.json
[voineali refs #5449]
* Bug fix: fixed visualisation tabs layout when many tabs spanning
several rows are made.
[demarant]
* Feature: migrate daviz settings from portal_properties to portal_daviz
[szabozo0]
* Bug fix: Fixed columnTypes in table header using :type syntax
[voineali refs #5511]
* Change: Added IVisualizationData and IVisualizationJson adapters API
in order to dynamically provide data sources for visualization
[voineali refs #5511]
* Bug fix: Allow changing of column types within
Edit Visualization > Data settings if data source is copy & pasted
[voineali refs #5511]
* Feature: Added an easy way to register Google Maps key when using without
Plone by adding 'google_key' property on context (parents) or by providing
a utility (see eea.app.visualization.zopera.utils.py)
[voineali refs #5420, #5421]
* Feature: Added an easy way to plugin CSS/JS resources by simply providing
some utilities (see eea.app.visualization.browser.res.interfaces.py)
[voineali refs #5420]
* Feature: Made this package Plone independent (Zope2 minimal requirements)
[voineali refs #5420]
4.7 - (2012-08-27)
------------------
* Bug fix: Skip invalid or empty cells on conversion to daviz-json instead
of falling back to 0.
[voineali refs #5453]
4.6 - (2012-08-10)
------------------
* Upgrade step: Within "Plone > Site setup > Add-ons" click on
upgrade button available for eea.app.visualization
[voineali refs #5419]
* Feature: Removed p4a.z2utils dependency
[voineali fixes #5419]
* Feature: Improved UX of daviz regarding errors
[szabozo0 #5372]
* Bugfix: Fixed columns order
[szabozo0 #5137]
4.5 - (2012-07-23)
------------------
* Bug fix: Fixed 'Data settings' table when there are many columns by adding a
bottom scrollbar
[voineali refs #5363]
* Change: Moved 'Data settings' tab to the end as it seems it confuses users
about the next steps they have to take in order to create new visualizations
[voineali refs #5363]
* Bug fix: Made table's columns headers editable within 'Data settings' panel in
order to be able to edit them without having to add an Exhibit View
[voineali refs #5363]
4.4 - (2012-07-13)
------------------
* Change: Improved the labelling and display of downloadable data.
[demarant]
* Bug fix: Added list type in 'Data table (preview)' in order to be used with
Exhibit framework and also fix detection of columns that explicitly define
column type in header using ':' syntax (e.g. topics:list)
[voineali refs #5316]
* Bug fix: Fixed auto-detection of numbers by lowering boolean priority
[voineali refs #5316]
* Bug Fix: Fixed i18n missing tags and i18n:domain in .pt files
[prospchr refs #5162]
4.3 - (2012-06-12)
------------------
* Bug fix: Fixed 'unicode' object has no attribute 'get' error on download.json
[voineali fixes #5223]
* Bug fix: fixed markup of HISTORY.txt file
[ciobabog refs #5231]
* Feature: Allow the user to confirm and adjust auto-detected column types
[voineali refs #5024]
* Upgrade step: Within "Plone > Site setup > Add-ons" click on
upgrade button available for eea.app.visualization
* Feature: Added unique URLs for tabs in view mode in order to easily bookmark
and share them. Also support browser history (back and forward buttons)
[voineali refs #4851]
4.2 - (2012-04-26)
------------------
* Feature: Made Visualization data downloadable (HTML, CSV, TSV, JSON,
XML, XML with Schema)
[voineali #5038]
* Bug fix: Use non-@@ version of daviz-relateditems.json in order to easily cache
and purge it using plone.app.caching
[voineali #5074]
4.1 - (2012-04-11)
------------------
* Bug fix: Invalidate memcache on ObjectModifiedEvent for all
IVisualizationEnabled objects
[voineali #5074]
* Bug fix: Use converter fallback for table cells that doesn't contain valid
numbers, dates, etc in order to minimize errors
[voineali #4934]
4.0 - (2012-03-30)
------------------
* Initial release: Moved eea.daviz core API to this package in order to make
the visualization libraries usable as standalone packages outside
eea.daviz bundle
[voineali #4996]