{ "info": { "author": "Alec Mitchell", "author_email": "alecpm@gmail.com", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Programming Language :: Python" ], "description": "Introduction\n============\n\nThis package integrates the `Verite TimelineJS `_\napplication into Plone, providing a beautiful, customizable timeline view\nfor folders and collections.\n\nIt adds a view ``timeline-view`` for Folders, new-style Collections, \nand old-style Collections (ATTopic).\n\nIn addition, it adds a Dexterity behavior for setting timeline dates\non content and a schema extender that applies to all Archetypes\ncontent (except ATEvent, for which the normal date fields are used).\n\nIf the content has a remoteUrl (i.e. an ATLink), that link will be\nused to generate the thumbnail for the page. Special handling is\nbuilt in for Youtube, Twitter, Wikipedia and Flickr links, among\nothers. Otherwise, the page url is used to generate the thumbnail.\n\n\nCustomizations\n--------------\n\nThe default adapters for Archetypes and Dexterity content should\nhandle most use cases. However, you may customize the timeline\nmetadata for specific content types by registering adapters to the\n``ITimelineContent`` and/or ``ITimelineSupplement`` interfaces.\n\nFor example if I wanted to change the asset url for my IFoo content type\nI would simply add the following to a grokked package::\n\n from five import grok\n from collective.timelines.interfaces import ITimelineSupplement\n\n class FooTimelineSupplement(grok.Adapter):\n grok.name('foo')\n grok.context(IFoo)\n grok.provides(ITimelineSupplement)\n\n def update(self, data):\n data['asset']['media'] = self.context.my_url\n return data\n\nThere is an example of a timeline supplement provided in the\nmap_support module, which uses metadata from ``Products.Maps`` enabled\ncontent to display a map in the timeline.\n\nTo override the date calculation to use a custom date, or to\ncompletely change the base data, you can override the ITimelineContent\nadapter::\n\n from five import grok\n from DateTime import DateTime\n from collective.timelines.interfaces import ITimelineContent\n from collective.timelines.dexterity_content import TimeLineContent\n\n class FooTimelineContent(TimelineContent):\n grok.provides(ITimelineContent)\n grok.context(IFoo)\n\n def date(self):\n date = self.context.my_date\n return DateTime(date.year, date.month, date.day)\n\n def data(self):\n # Calculate custom dictionary for timeline date entry\n\nThere is an example of a custom ``ITimelineContent`` data provider in\nthe at_content module, which handles ATEvent content by automatically\nusing the start and end dates.\n\n\nCore Content Migration\n----------------------\n\nIf you have extended ATCT content with this add-on and would like to preserve the data\nwhen migrating to plone.app.contenttypes content, you will need to apply the dexterity\nbehavior `collective.timelines.dexterity_content.ITimelineBehavior` to the target\ncontent types before migrating.\n\nCredits\n-------\n\n* Alec Mitchell\n* Carlos de la Guardia\n* Jazkarta, Inc.\n* With support and funding from `Dumbarton Oaks Research Library and Collection `_, Washington DC\n\nChangelog\n=========\n\n2.0 (2020-07-16)\n----------------\n\n- Fix Plone 5.1 support for image determination and site settings lookup\n\n- Add view registrations for plone.app.contenttype types.\n\n- Add custom migrator to migrate data from ATCT core content to plone.app.contenttypes content\n\n1.0 (2019-10-30)\n----------------\n\n- Fix bug when field data is missing.\n\n- Documentation updates.\n\n\n1.0b1 (2013-11-08)\n------------------\n\n- Datetime formatting fixes.\n\n- Add collective.contentleadimage support.\n\n- Dexterity schema and view link fixes.\n\n\n0.5 (2013-03-07)\n----------------\n\n- Initial Release", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://svn.plone.org/svn/collective/", "keywords": "", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "collective.timelines", "package_url": "https://pypi.org/project/collective.timelines/", "platform": "", "project_url": "https://pypi.org/project/collective.timelines/", "project_urls": { "Homepage": "http://svn.plone.org/svn/collective/" }, "release_url": "https://pypi.org/project/collective.timelines/2.0/", "requires_dist": null, "requires_python": "", "summary": "Timeline views for collections and folders (using verite TimelineJS).", "version": "2.0", "yanked": false, "yanked_reason": null }, "last_serial": 7715810, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "d627ba4019f4d7fdc3708ee71551a11e", "sha256": "2e57453687c2a91f47139ccadefb424cfd0e35b762cfff0f587930a4c479653a" }, "downloads": -1, "filename": "collective.timelines-1.0.tar.gz", "has_sig": false, "md5_digest": "d627ba4019f4d7fdc3708ee71551a11e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10773, "upload_time": "2019-10-30T17:00:06", "upload_time_iso_8601": "2019-10-30T17:00:06.113708Z", "url": "https://files.pythonhosted.org/packages/2a/9d/68c3dd5e04f2bf0f940f527c0c84c7e2bb5b1f6ba6f13014514e583930b2/collective.timelines-1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0a1": [ { "comment_text": "", "digests": { "md5": "5ffeb5d72547c4ef8804764c28fe9415", "sha256": "e252569218d56190bf823a94ae9c116690e7fc8008c09eb55f50b2fddee213f4" }, "downloads": -1, "filename": "collective.timelines-1.0a1.zip", "has_sig": false, "md5_digest": "5ffeb5d72547c4ef8804764c28fe9415", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 302671, "upload_time": "2013-08-15T21:35:50", "upload_time_iso_8601": "2013-08-15T21:35:50.013808Z", "url": "https://files.pythonhosted.org/packages/1a/7c/7189ec89fa7d855650adabb0ec82d9f02460fa58d20614425d48842b47ac/collective.timelines-1.0a1.zip", "yanked": false, "yanked_reason": null } ], "1.0b1": [ { "comment_text": "", "digests": { "md5": "5e29b20a21eb4099646cee907152f4b6", "sha256": "ef59a401aeb73716b9aa0fd3f32efadd2737fbefb8ad2c948c4b8baee49911da" }, "downloads": -1, "filename": "collective.timelines-1.0b1.zip", "has_sig": false, "md5_digest": "5e29b20a21eb4099646cee907152f4b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 302739, "upload_time": "2013-11-09T04:10:13", "upload_time_iso_8601": "2013-11-09T04:10:13.652626Z", "url": "https://files.pythonhosted.org/packages/e7/41/1b3cbaa2713710be35ca1a9f0c35e8b7c7572dd3a2e738082c24fb6f4ce9/collective.timelines-1.0b1.zip", "yanked": false, "yanked_reason": null } ], "2.0": [ { "comment_text": "", "digests": { "md5": "b5bf8f4b6fe39a617e70c8f807a7ebec", "sha256": "d5c948ca5b6cda229904351f803375750153bc3fc39eca8d202c5deb91de6b75" }, "downloads": -1, "filename": "collective.timelines-2.0.tar.gz", "has_sig": false, "md5_digest": "b5bf8f4b6fe39a617e70c8f807a7ebec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11472, "upload_time": "2020-07-16T17:38:23", "upload_time_iso_8601": "2020-07-16T17:38:23.857673Z", "url": "https://files.pythonhosted.org/packages/09/bd/8732356c88d9f21eef3c1d737f88987271a3ee0a0381e1176f852c5ad850/collective.timelines-2.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b5bf8f4b6fe39a617e70c8f807a7ebec", "sha256": "d5c948ca5b6cda229904351f803375750153bc3fc39eca8d202c5deb91de6b75" }, "downloads": -1, "filename": "collective.timelines-2.0.tar.gz", "has_sig": false, "md5_digest": "b5bf8f4b6fe39a617e70c8f807a7ebec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11472, "upload_time": "2020-07-16T17:38:23", "upload_time_iso_8601": "2020-07-16T17:38:23.857673Z", "url": "https://files.pythonhosted.org/packages/09/bd/8732356c88d9f21eef3c1d737f88987271a3ee0a0381e1176f852c5ad850/collective.timelines-2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }