Package: collective.timelines
IntroductionThis package integrates theVerite TimelineJSapplication into Plone, providing a beautiful, customizable timeline view
for folders and collections.It adds a viewtimeline-viewfor Folders, new-style Collections,
and old-style Collections (ATTopic).In addition, it adds a Dexterity behavior for setting timeline dates
on content and a schema extender that applies to all Archetypes
content (except ATEvent, for which the normal date fields are used).If the content has a remoteUrl (i.e. an ATLink), that link will be
used to generate the thumbnail for the page.  Special handling is
built in for Youtube, Twitter, Wikipedia and Flickr links, among
others.  Otherwise, the page url is used to generate the thumbnail.CustomizationsThe default adapters for Archetypes and Dexterity content should
handle most use cases.  However, you may customize the timeline
metadata for specific content types by registering adapters to theITimelineContentand/orITimelineSupplementinterfaces.For example if I wanted to change the asset url for my IFoo content type
I would simply add the following to a grokked package:from five import grok
from collective.timelines.interfaces import ITimelineSupplement

class FooTimelineSupplement(grok.Adapter):
    grok.name('foo')
    grok.context(IFoo)
    grok.provides(ITimelineSupplement)

    def update(self, data):
        data['asset']['media'] = self.context.my_url
        return dataThere is an example of a timeline supplement provided in the
map_support module, which uses metadata fromProducts.Mapsenabled
content to display a map in the timeline.To override the date calculation to use a custom date, or to
completely change the base data, you can override the ITimelineContent
adapter:from five import grok
from DateTime import DateTime
from collective.timelines.interfaces import ITimelineContent
from collective.timelines.dexterity_content import TimeLineContent

class FooTimelineContent(TimelineContent):
    grok.provides(ITimelineContent)
    grok.context(IFoo)

    def date(self):
        date = self.context.my_date
        return DateTime(date.year, date.month, date.day)

    def data(self):
        # Calculate custom dictionary for timeline date entryThere is an example of a customITimelineContentdata provider in
the at_content module, which handles ATEvent content by automatically
using the start and end dates.Core Content MigrationIf you have extended ATCT content with this add-on and would like to preserve the data
when migrating to plone.app.contenttypes content, you will need to apply the dexterity
behaviorcollective.timelines.dexterity_content.ITimelineBehaviorto the target
content types before migrating.CreditsAlec MitchellCarlos de la GuardiaJazkarta, Inc.With support and funding fromDumbarton Oaks Research Library and Collection, Washington DCChangelog2.0 (2020-07-16)Fix Plone 5.1 support for image determination and site settings lookupAdd view registrations for plone.app.contenttype types.Add custom migrator to migrate data from ATCT core content to plone.app.contenttypes content1.0 (2019-10-30)Fix bug when field data is missing.Documentation updates.1.0b1 (2013-11-08)Datetime formatting fixes.Add collective.contentleadimage support.Dexterity schema and view link fixes.0.5 (2013-03-07)Initial Release