reuse flattening of events line in homepage (#1111)
This commit is contained in:
parent
e02700404b
commit
3868cf9dbc
|
@ -6,6 +6,8 @@ from zope import component
|
|||
|
||||
from Products.CMFCore.utils import getToolByName
|
||||
|
||||
from tabellio.agenda.utils import MonthlyView
|
||||
|
||||
|
||||
|
||||
class IFolderWithBottomNavView(Interface):
|
||||
|
@ -88,16 +90,19 @@ class PcfHomeFolder(BrowserView):
|
|||
# do not go more than 100 days in the future
|
||||
end = context.start + datetime.timedelta(100)
|
||||
start = context.start
|
||||
r = catalog(
|
||||
portal_type=['tabellio.agenda.parlevent',
|
||||
'tabellio.agenda.comevent',
|
||||
'tabellio.agenda.event'],
|
||||
start={'query': start, 'range': 'min'},
|
||||
end={'query': end, 'range': 'max'},
|
||||
sort_on='start')
|
||||
if len(r) < 2: # r[0] will be the current event
|
||||
return ''
|
||||
return r[1].getURL()
|
||||
monthly_view = MonthlyView(self.context, init_calendar=True)
|
||||
serie_of_events = monthly_view.get_events_from_catalog(
|
||||
start, end, portal_type=['tabellio.agenda.parlevent',
|
||||
'tabellio.agenda.comevent',
|
||||
'tabellio.agenda.event'])
|
||||
for i, event in enumerate(serie_of_events):
|
||||
event_id = ((type(event.getId) is str) and event.getId or event.getId())
|
||||
if event_id == context.id:
|
||||
try:
|
||||
return serie_of_events[i+1].getURL()
|
||||
except IndexError:
|
||||
return None
|
||||
return None
|
||||
|
||||
def previous_event_url(self):
|
||||
context = self.get_event()
|
||||
|
@ -105,17 +110,18 @@ class PcfHomeFolder(BrowserView):
|
|||
end = context.start
|
||||
# do not go back more than 100 days in the past
|
||||
start = context.start - datetime.timedelta(100)
|
||||
r = catalog(
|
||||
portal_type=['tabellio.agenda.parlevent',
|
||||
'tabellio.agenda.comevent',
|
||||
'tabellio.agenda.event'],
|
||||
start={'query': start, 'range': 'min'},
|
||||
end={'query': end, 'range': 'max'},
|
||||
sort_on='start')
|
||||
if len(r) == 0:
|
||||
return ''
|
||||
return r[-1].getURL()
|
||||
|
||||
monthly_view = MonthlyView(self.context, init_calendar=True)
|
||||
serie_of_events = monthly_view.get_events_from_catalog(
|
||||
start, end, portal_type=['tabellio.agenda.parlevent',
|
||||
'tabellio.agenda.comevent',
|
||||
'tabellio.agenda.event'])
|
||||
for i, event in enumerate(serie_of_events):
|
||||
event_id = ((type(event.getId) is str) and event.getId or event.getId())
|
||||
if event_id == context.id:
|
||||
if i == 0:
|
||||
return None
|
||||
return serie_of_events[i-1].getURL()
|
||||
return None
|
||||
|
||||
def last_docs(self):
|
||||
catalog = getToolByName(self.context, 'portal_catalog')
|
||||
|
|
Reference in New Issue