{ "info": { "author": "Thomas Desvenain", "author_email": "thomas.desvenain@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Plone", "Framework :: Plone :: 4.3", "Framework :: Plone :: 5.0", "Framework :: Plone :: 5.1", "Programming Language :: Python", "Programming Language :: Python :: 2.7" ], "description": ".. image:: https://secure.travis-ci.org/collective/collective.excelexport.png\n :target: http://travis-ci.org/collective/collective.excelexport\n\n.. image:: https://coveralls.io/repos/collective/collective.excelexport/badge.png?branch=master\n :target: https://coveralls.io/r/collective/collective.excelexport?branch=master\n\n\n======================\ncollective.excelexport\n======================\n\nWhat does this product\n======================\n\nThis product provides tools to provide excel exports to Plone users,\nunder xls or csv format.\n\nA framework, with default utilities to export the dexterity contents of a folder,\nthe results of a catalog search,\nand the results of a eea faceted navigation search.\nMany field types are managed (text, list, file, boolean, datagrid...).\n\nTry @@collective.excelexport view on any folder containing dexterity elements.\nTry @@collective.excelexport?excelexport.policy=excelexport.search&review_state=published on site root.\n\nTry @@collective.excelexportcsv view on any folder for csv export.\n\n\nHow to configure this product\n=============================\n\nYou can set a list of fields to be excluded from export via the registry record:\n*collective.excelexport.excluded_exportables*\n\n\nHow to extend it\n================\n\nDatasources\n-----------\n\nIf you want to implement a new way to get content to export,\nyou can register a #datasource#,\nwich is an adapter for collective.excelexport.interfaces.IDataSource interface.\n\nThis adapter can be a named one.\n\nYou will call this datasource calling the view @@collective.excelexport?excelexport.policy=datasourcename\n\nSee the IDataSource interface for more information\n\n\n\nExportables (excel sheet columns)\n---------------------------------\n\nIf you want to define new columns for your excel export, you will write or override: ::\n\n - Exportable factories, adapters for IExportableFactory interface that provides a list of Exportables\n - Exportables, that define columns.\n\nExample of an exportable factory: ::\n\n from plone.dexterity.interfaces import IDexterityFTI\n from collective.excelexport.exportables.base import BaseExportableFactory\n from collective.excelexport.exportables.dexterityfields import get_ordered_fields\n from collective.excelexport.exportables.dexterityfields import get_exportable\n from collective.excelexport.exportables.dexterityfields import ParentField\n from collective.excelexport.exportables.dexterityfields import GrandParentField\n\n class PSTActionFieldsFactory(BaseExportableFactory):\n adapts(IDexterityFTI, Interface, Interface)\n portal_types = ('pstaction',)\n\n def get_exportables(self):\n portal_types = api.portal.get_tool('portal_types')\n action_fti = portal_types['pstaction']\n oo_fti = portal_types['operationalobjective']\n os_fti = portal_types['strategicobjective']\n fields = []\n fields.extend([get_exportable(\n field[1], self.context, self.request)\n for field in get_ordered_fields(action_fti)])\n fields.extend([get_exportable(\n ParentField(field[1]), self.context, self.request)\n for field in get_ordered_fields(oo_fti)])\n fields.extend([get_exportable(\n GrandParentField(field[1]), self.context, self.request)\n for field in get_ordered_fields(os_fti)])\n return fields\n\n\nDexterity exportables\n---------------------\n\nYou have a complete set of exportables for dexterity fields.\nThose are multi-adapters of field, context and request.\n\nYou can override them declaring a more specific adapter.\n\nYou can also declare a named adapter with the field name if you want a specific\nrendering for one field.\n\n\nStyles\n------\n\nIf you don't feel good with default styles, you can register a specific one for: ::\n - the export policy\n - the context\n - the layer\n\nYou just have to register a new IStyle adapter, in a zcml: ::\n\n \n\nIf you do not specify the name, the styles will be registered for all policies.\n\nand in python: ::\n\n\n\tclass MyNeutralStyle(Styles):\n\n\t content = xlwt.easyxf('font: height 200, name Arial, colour_index black, bold off; '\n\t 'align: wrap off, vert centre, horiz left;'\n\t 'borders: top thin, bottom thin, left thin, right thin;'\n\t 'pattern: pattern solid, back_colour white, fore_colour white'\n\t )\n\n\t headers = xlwt.easyxf('font: height 200, name Arial, colour_index black, bold on; '\n\t 'align: wrap off, vert centre, horiz left; '\n\t 'borders: top thin, bottom thin, left thin, right thin; '\n\t 'pattern: pattern solid, back_colour white, fore_colour white; '\n\t )\n\nplone.restapi\n=============\n\nTo get an export via rest api, query @collective.excelexport / @collective.excelexportcsv (with one @)\n\n\nContributors\n============\n\n- Thomas Desvenain, thomas.desvenain@gmail.com\n\nChangelog\n=========\n\n\n1.8 (2019-09-12)\n----------------\n\n# BREAKING CHANGES\n\nCONFIGURATION_FIELDS constant has been removed, we now use a registry record: collective.excelexport.excluded_exportables\n\n# CHANGES\n\n- Explicit inclusion of plone.restapi zcml\n [thomasdesvenain]\n\n- Exclude dexterity 'allow discussion' and 'exclude_from_nav' fields\n (previously, only archetypes fields were excluded)\n [thomasdesvenain]\n\n- Fix error when referenced object value has no Title method.\n [thomasdesvenain]\n\n- Fix: Don't ommit fields that are in the default fieldset if there is one\n [petchesi-iulian]\n\n- Fix error on eea.faceted when there is a widget operator.\n [thomasdesvenain]\n\n- Archetypes support,\n Products.ATExtensions support (RecordField, RecordsField, FormattableNamesField).\n [thomasdesvenain]\n\n- Fix encoding issue.\n\n1.7 (2018-06-22)\n----------------\n\n- Added plone.restapi service.\n [thomasdesvenain]\n\n- Fixed csv export mimetype.\n\n- Added helper method get_exportable_for_fieldname.\n [gbastien]\n\n1.6 (2018-01-05)\n----------------\n\n- Fix: no limit for number of results in eeafaceted datasource.\n [cedricmessiant]\n\n1.5 (2017-11-28)\n----------------\n\n- Upgrade bootstrap.\n [sgeulette]\n- Fix: render choice field with source vocabulary\n [sgeulette]\n\n1.4 (2017-05-31)\n----------------\n\n- Prevent removal of exportables with similar names when ordering them\n [thomasdesvenain]\n- Refactor: view exposes method that creates data buffer from sheet data.\n [thomasdesvenain]\n- Made correct release\n [sgeulette]\n\n1.3 (2016-11-28)\n----------------\n\n- Fix: check if value_type is empty for collection field render.\n [bsuttor]\n\n- Fix: try to get the value of a method if the field is a method and translate\n DateTime results to a unicode, this fixes the export for objects with the IPublication\n Behavior.\n [pcdummy]\n\n- Fix: be sure to not retrieve an attribute on an object by acquisition.\n [vincentfretin]\n\n- Feature: render_style can now return a Style object with content and headers\n attribute to be able to customise the header style per exportable.\n [vincentfretin]\n\n- Feature: the passed obj to render_value is now\n exportable.field.bind(obj).context to make it easier to get data from\n parent or grandparent.\n [vincentfretin]\n\n- Feature: BaseFieldRenderer.render_header method returns now the translated field\n title instead of the Message object.\n [vincentfretin]\n\n- Fix: Ignore reverse parameter when creating export url.\n [cedricmessiant]\n\n- Feature: Add sort exportables feature using exportables_order list.\n Works with field and non-field exportables.\n [cedricmessiant, ebrehault, thomasdevenain]\n\n1.2 (2014-09-10)\n----------------\n\n- Feature: Added export under csv format.\n [thomasdesvenain]\n\n- API: Filter exportables by field name by default using excluded_exportables list.\n [cedricmessiant]\n\n- API: We can define a dexterity adapter for just one field using field name as\n adapter name.\n [thomasdesvenain]\n\n- Fix: Faceted nav export link ignores results per page criterion.\n [thomasdesvenain]\n\n- Fix: Translate sheet title.\n [thomasdesvenain]\n\n- Fix: Improve text fields support.\n [fngaha, thomasdesvenain]\n\n1.1 (2014-06-19)\n----------------\n\n- Rename search policy excelexport.search to avoid conflict with 'search' view.\n [thomasdesvenain]\n\n\n1.0 (2014-06-02)\n----------------\n\n- Initial release.\n [thomasdesvenain]", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pypi.python.org/pypi/collective.excelexport", "keywords": "Export,Plone,Excel", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "collective.excelexport", "package_url": "https://pypi.org/project/collective.excelexport/", "platform": "", "project_url": "https://pypi.org/project/collective.excelexport/", "project_urls": { "Homepage": "http://pypi.python.org/pypi/collective.excelexport" }, "release_url": "https://pypi.org/project/collective.excelexport/1.8/", "requires_dist": null, "requires_python": "", "summary": "Export dexterity contents in an excel file, one column by field", "version": "1.8" }, "last_serial": 5819845, "releases": { "1.1": [ { "comment_text": "", "digests": { "md5": "8d395e6fe0ef715054f62b4a496b5bc9", "sha256": "aea2f61dda54d43f204932a25d42a8e65cb016ab200886fe0f512fb32857fe09" }, "downloads": -1, "filename": "collective.excelexport-1.1.zip", "has_sig": false, "md5_digest": "8d395e6fe0ef715054f62b4a496b5bc9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32379, "upload_time": "2014-06-19T14:13:33", "url": "https://files.pythonhosted.org/packages/7a/03/991a3ade3beba48b33d7ff3cea76d37f773f7b54a9cb58554cb8ebfdd382/collective.excelexport-1.1.zip" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "340780e82a111bd2b915a83e426f7359", "sha256": "b640c8f666158c9a66b5c5d34f8ef6a2c505b85eca65d5920f9144a745f4e567" }, "downloads": -1, "filename": "collective.excelexport-1.2.zip", "has_sig": false, "md5_digest": "340780e82a111bd2b915a83e426f7359", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36751, "upload_time": "2014-09-10T17:49:09", "url": "https://files.pythonhosted.org/packages/de/5e/a8814468a9f261212c0b2707c6e3923fddd93dace0454054ffec68e78ac9/collective.excelexport-1.2.zip" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "b7ddb0612fe4133363affd0e2c291477", "sha256": "967457041878677d09a9dc31e593b72e32c07ee2d0d5dd5e08c16f1f8a3b6d3b" }, "downloads": -1, "filename": "collective.excelexport-1.3.tar.gz", "has_sig": false, "md5_digest": "b7ddb0612fe4133363affd0e2c291477", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24211, "upload_time": "2016-11-28T09:38:47", "url": "https://files.pythonhosted.org/packages/5a/0f/cc7ee2505bf6ffb9c804e643457eb3ddeb8f9cf057ce8e985241af04989b/collective.excelexport-1.3.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "af7dfa8e88128365c45eaf67e5db9f9d", "sha256": "507b29c2cd9e2574d4fd5197b9ab4d63f1705afadc6e4990e4e2ffc32c69369d" }, "downloads": -1, "filename": "collective.excelexport-1.4.tar.gz", "has_sig": false, "md5_digest": "af7dfa8e88128365c45eaf67e5db9f9d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33071, "upload_time": "2017-05-31T10:18:13", "url": "https://files.pythonhosted.org/packages/22/d9/12652884f749065946cc4603b17720b493fffb515eb6d16c1146277fc1fa/collective.excelexport-1.4.tar.gz" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "7297066aa442cf34c6941e183dd7e957", "sha256": "8a5ca14fd69622214496d65278a8e7f59e36f2d6fe5a8cb72b1257d198ff03a9" }, "downloads": -1, "filename": "collective.excelexport-1.5.tar.gz", "has_sig": false, "md5_digest": "7297066aa442cf34c6941e183dd7e957", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33880, "upload_time": "2017-11-28T20:42:55", "url": "https://files.pythonhosted.org/packages/4f/63/fd6fa1f0114e3ff64300f5d7c0b349cd7f9075c6879a2449f7510f4f4d4a/collective.excelexport-1.5.tar.gz" } ], "1.6": [ { "comment_text": "", "digests": { "md5": "a112e80b62c3e35cf579ed8601e7e97a", "sha256": "5b4f35c12a4a8152a22f27f88ca1e4ebc2b8208256c3d1f4d5dda4d42224182b" }, "downloads": -1, "filename": "collective.excelexport-1.6.tar.gz", "has_sig": false, "md5_digest": "a112e80b62c3e35cf579ed8601e7e97a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36475, "upload_time": "2018-01-05T09:30:25", "url": "https://files.pythonhosted.org/packages/0f/75/f3a75f1a5aa457dbd1c0994719cc99f5a236d6f4a2293441da37d9bb1480/collective.excelexport-1.6.tar.gz" } ], "1.7": [ { "comment_text": "", "digests": { "md5": "36aa10bf66a8d2447ad76343c68372f2", "sha256": "7ebaf8d4297e0dff8689119b67704203252c77639d35871e749374c98f20bc63" }, "downloads": -1, "filename": "collective.excelexport-1.7.tar.gz", "has_sig": false, "md5_digest": "36aa10bf66a8d2447ad76343c68372f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36622, "upload_time": "2018-06-22T06:56:46", "url": "https://files.pythonhosted.org/packages/e5/72/60b185e4db09fda6a949ff19071b33b0e76fe2c54af2aa208fdd63482884/collective.excelexport-1.7.tar.gz" } ], "1.8": [ { "comment_text": "", "digests": { "md5": "b09e52d9e7f2b4cdf7f595795b512c41", "sha256": "3e91e98b77a291babbe64d0faf55a0285c27ef4a391f835a484c0fd9944fe3c1" }, "downloads": -1, "filename": "collective.excelexport-1.8.tar.gz", "has_sig": false, "md5_digest": "b09e52d9e7f2b4cdf7f595795b512c41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39681, "upload_time": "2019-09-12T11:09:59", "url": "https://files.pythonhosted.org/packages/f4/b4/f9277add2fcb52171976deb411458c937149931bcc3bec6c03e4d5f2fd17/collective.excelexport-1.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b09e52d9e7f2b4cdf7f595795b512c41", "sha256": "3e91e98b77a291babbe64d0faf55a0285c27ef4a391f835a484c0fd9944fe3c1" }, "downloads": -1, "filename": "collective.excelexport-1.8.tar.gz", "has_sig": false, "md5_digest": "b09e52d9e7f2b4cdf7f595795b512c41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39681, "upload_time": "2019-09-12T11:09:59", "url": "https://files.pythonhosted.org/packages/f4/b4/f9277add2fcb52171976deb411458c937149931bcc3bec6c03e4d5f2fd17/collective.excelexport-1.8.tar.gz" } ] }