Metadata-Version: 2.1
Name: collective.excelexport
Version: 1.7
Summary: Export dexterity contents in an excel file, one column by field
Home-page: http://pypi.python.org/pypi/collective.excelexport
Author: Thomas Desvenain
Author-email: thomas.desvenain@gmail.com
License: GPL
Description: ======================
        collective.excelexport
        ======================
        
        What does this product
        ======================
        
        This product provides tools to provide excel exports to Plone users,
        under xls or csv format.
        
        A framework, with default utilities to export the dexterity contents of a folder,
        the results of a catalog search,
        and the results of a eea faceted navigation search.
        Many field types are managed (text, list, file, boolean, datagrid...).
        
        Try @@collective.excelexport view on any folder containing dexterity elements.
        Try @@collective.excelexport?excelexport.policy=excelexport.search&review_state=published on site root.
        
        Try @@collective.excelexportcsv view on any folder for csv export.
        
        
        How to extend it
        ================
        
        Datasources
        -----------
        
        If you want to implement a new way to get content to export,
        you can register a #datasource#,
        wich is an adapter for collective.excelexport.interfaces.IDataSource interface.
        
        This adapter can be a named one.
        
        You will call this datasource calling the view @@collective.excelexport?excelexport.policy=datasourcename
        
        See the IDataSource interface for more information
        
        
        
        Exportables (excel sheet columns)
        ---------------------------------
        
        If you want to define new columns for your excel export, you will write or override: ::
        
          - Exportable factories, adapters for IExportableFactory interface that provides a list of Exportables
          - Exportables, that define columns.
        
        Example of an exportable factory: ::
        
            from plone.dexterity.interfaces import IDexterityFTI
            from collective.excelexport.exportables.base import BaseExportableFactory
            from collective.excelexport.exportables.dexterityfields import get_ordered_fields
            from collective.excelexport.exportables.dexterityfields import get_exportable
            from collective.excelexport.exportables.dexterityfields import ParentField
            from collective.excelexport.exportables.dexterityfields import GrandParentField
        
            class PSTActionFieldsFactory(BaseExportableFactory):
                adapts(IDexterityFTI, Interface, Interface)
                portal_types = ('pstaction',)
        
                def get_exportables(self):
                    portal_types = api.portal.get_tool('portal_types')
                    action_fti = portal_types['pstaction']
                    oo_fti = portal_types['operationalobjective']
                    os_fti = portal_types['strategicobjective']
                    fields = []
                    fields.extend([get_exportable(
                        field[1], self.context, self.request)
                        for field in get_ordered_fields(action_fti)])
                    fields.extend([get_exportable(
                        ParentField(field[1]), self.context, self.request)
                        for field in get_ordered_fields(oo_fti)])
                    fields.extend([get_exportable(
                        GrandParentField(field[1]), self.context, self.request)
                        for field in get_ordered_fields(os_fti)])
                    return fields
        
        
        Dexterity exportables
        ---------------------
        
        You have a complete set of exportables for dexterity fields.
        Those are multi-adapters of field, context and request.
        
        You can override them declaring a more specific adapter.
        
        You can also declare a named adapter with the field name if you want a specific
        rendering for one field.
        
        
        Styles
        ------
        
        If you don't feel good with default styles, you can register a specific one for: ::
          - the export policy
          - the context
          - the layer
        
        You just have to register a new IStyle adapter, in a zcml: ::
        
            <adapter for="zope.interface.Interface
                          .interfaces.IThemeSpecific"
                     factory=".excelstyles.MyNeutralStyle"
                     provides="collective.excelexport.interfaces.IStyles"
                      />
        
        If you do not specify the name, the styles will be registered for all policies.
        
        and in python: ::
        
        
        	class MyNeutralStyle(Styles):
        
        	    content = xlwt.easyxf('font: height 200, name Arial, colour_index black, bold off; '
        	                     'align: wrap off, vert centre, horiz left;'
        	                     'borders: top thin, bottom thin, left thin, right thin;'
        	                     'pattern: pattern solid, back_colour white, fore_colour white'
        	                     )
        
        	    headers = xlwt.easyxf('font: height 200, name Arial, colour_index black, bold on; '
        	                         'align: wrap off, vert centre, horiz left; '
        	                         'borders: top thin, bottom thin, left thin, right thin; '
        	                         'pattern: pattern solid, back_colour white, fore_colour white; '
        	                         )
        
        plone.restapi
        =============
        
        To get an export via rest api, query @collective.excelexport / @collective.excelexportcsv (with one @)
        
        
        Tests
        =====
        
        This add-on is tested using Travis CI. The current status of the add-on is :
        
        .. image:: https://secure.travis-ci.org/collective/collective.excelexport.png
            :target: http://travis-ci.org/collective/collective.excelexport
        
        .. image:: https://coveralls.io/repos/collective/collective.excelexport/badge.png?branch=master
            :target: https://coveralls.io/r/collective/collective.excelexport?branch=master
        
        Contributors
        ============
        
        - Thomas Desvenain, thomas.desvenain@gmail.com
        Changelog
        =========
        
        
        1.7 (2018-06-22)
        ----------------
        
        - Added plone.restapi service.
          [thomasdesvenain]
        
        - Fixed csv export mimetype.
        
        - Added helper method get_exportable_for_fieldname.
          [gbastien]
        
        1.6 (2018-01-05)
        ----------------
        
        - Fix: no limit for number of results in eeafaceted datasource.
          [cedricmessiant]
        
        1.5 (2017-11-28)
        ----------------
        
        - Upgrade bootstrap.
          [sgeulette]
        - Fix: render choice field with source vocabulary
          [sgeulette]
        
        1.4 (2017-05-31)
        ----------------
        
        - Prevent removal of exportables with similar names when ordering them
          [thomasdesvenain]
        - Refactor: view exposes method that creates data buffer from sheet data.
          [thomasdesvenain]
        - Made correct release
          [sgeulette]
        
        1.3 (2016-11-28)
        ----------------
        
        - Fix: check if value_type is empty for collection field render.
          [bsuttor]
        
        - Fix: try to get the value of a method if the field is a method and translate
          DateTime results to a unicode, this fixes the export for objects with the IPublication
          Behavior.
          [pcdummy]
        
        - Fix: be sure to not retrieve an attribute on an object by acquisition.
          [vincentfretin]
        
        - Feature: render_style can now return a Style object with content and headers
          attribute to be able to customise the header style per exportable.
          [vincentfretin]
        
        - Feature: the passed obj to render_value is now
          exportable.field.bind(obj).context to make it easier to get data from
          parent or grandparent.
          [vincentfretin]
        
        - Feature: BaseFieldRenderer.render_header method returns now the translated field
          title instead of the Message object.
          [vincentfretin]
        
        - Fix: Ignore reverse parameter when creating export url.
          [cedricmessiant]
        
        - Feature: Add sort exportables feature using exportables_order list.
          Works with field and non-field exportables.
          [cedricmessiant, ebrehault, thomasdevenain]
        
        1.2 (2014-09-10)
        ----------------
        
        - Feature: Added export under csv format.
          [thomasdesvenain]
        
        - API: Filter exportables by field name by default using excluded_exportables list.
          [cedricmessiant]
        
        - API: We can define a dexterity adapter for just one field using field name as
          adapter name.
          [thomasdesvenain]
        
        - Fix: Faceted nav export link ignores results per page criterion.
          [thomasdesvenain]
        
        - Fix: Translate sheet title.
          [thomasdesvenain]
        
        - Fix: Improve text fields support.
          [fngaha, thomasdesvenain]
        
        1.1 (2014-06-19)
        ----------------
        
        - Rename search policy excelexport.search to avoid conflict with 'search' view.
          [thomasdesvenain]
        
        
        1.0 (2014-06-02)
        ----------------
        
        - Initial release.
          [thomasdesvenain]
        
        
Keywords: Export,Plone,Excel
Platform: UNKNOWN
Classifier: Environment :: Web Environment
Classifier: Framework :: Plone
Classifier: Framework :: Plone :: 4.3
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Provides-Extra: test
