def __init__(self, request): super(MeetingCalendarViewer, self).__init__(request) self.mgr = MeetingManager(self.request.dbsession) route = self.request.matched_route.name tsdict = dict(meeting_calendar=False, meeting_calendar_ts=True) #self.get_ranged_meetings(timestamps=tsdict[route]) start, end = self._bare_start_end() timestamps = True if '-' in start and '-' in end: timestamps = False self.get_ranged_meetings(timestamps=timestamps)
def __init__(self, request): super(MeetingCalendarViewer, self).__init__(request) self.mgr = MeetingManager(self.request.db) route = self.request.matched_route.name tsdict = dict(meeting_calendar=False, meeting_calendar_ts=True) #self.get_ranged_meetings(timestamps=tsdict[route]) self.get_ranged_meetings(timestamps=True)
class MeetingCalendarViewer(BaseView): def __init__(self, request): super(MeetingCalendarViewer, self).__init__(request) self.mgr = MeetingManager(self.request.dbsession) route = self.request.matched_route.name tsdict = dict(meeting_calendar=False, meeting_calendar_ts=True) #self.get_ranged_meetings(timestamps=tsdict[route]) start, end = self._bare_start_end() timestamps = True if '-' in start and '-' in end: timestamps = False self.get_ranged_meetings(timestamps=timestamps) def _bare_start_end(self): start = self.request.GET['start'] end = self.request.GET['end'] print("START, END", start, end) return start, end def _get_start_end_from_request(self, timestamps): start, end = self._bare_start_end() if not timestamps: year, month, day = [int(p) for p in start.split('-')] start = datetime(year, month, day) if not timestamps: year, month, day = [int(p) for p in end.split('-')] end = datetime(year, month, day) return start, end # json responses should not be lists # this method is for the fullcalendar # widget. Fullcalendar v2 uses yyyy-mm-dd # for start and end parameters, rather than # timestamps. def get_ranged_meetings(self, timestamps=False): start, end = self._get_start_end_from_request(timestamps) meetings = self.mgr.get_ranged_meetings(start, end, timestamps=timestamps) mlist = list() for m in meetings: mdata = m.serialize() del mdata['rss'] mlist.append(mdata) headers = [('Access-Control-Allow-Origin', '*')] self.request.response.headerlist.extend(headers) self.response = mlist