from Products.Five.browser import BrowserView
from plone.event.interfaces import IEventAccessor
from plone.event.interfaces import IOccurrence
[docs]def get_location(accessor):
"""Return the location.
This method can be overwritten by external packages, for example to provide
a reference to a Location object as done by collective.venue.
:param accessor: Event, Occurrence or IEventAccessor object.
:type accessor: IEvent, IOccurrence or IEventAccessor
:returns: A location string. Possibly a HTML structure to link to another
object, representing the location.
:rtype: string
"""
if not IEventAccessor.providedBy(accessor):
accessor = IEventAccessor(accessor)
return accessor.location
class EventView(BrowserView):
def __init__(self, context, request):
self.context = context
self.request = request
self.data = IEventAccessor(context)
def __call__(self):
if IOccurrence.providedBy(self.context):
# The transient Occurrence objects cannot be edited. disable the
# edit border for them.
self.request.set('disable_border', True)
return self.index() # render me.