Пример #1
0
def calendar_from_topic(context):
    """Container/Event adapter. Returns an icalendar.Calendar object from a
    Collection.
    """
    context = aq_inner(context)
    result = context.queryCatalog(batch=False, full_objects=False)
    return construct_icalendar(context, result)
Пример #2
0
 def ical(self):
     events = self.events(ret_mode=2, batch=False)  # get as objects
     cal = construct_icalendar(self.context, events)
     name = '%s.ics' % self.context.getId()
     self.request.RESPONSE.setHeader('Content-Type', 'text/calendar')
     self.request.RESPONSE.setHeader('Content-Disposition',
         'attachment; filename="%s"' % name)
     self.request.RESPONSE.write(cal.to_ical())
Пример #3
0
    def render(self):
        if not self.is_valid_date:
            raise NotFound()

        if not self.is_ical_export:
            return self._template.render(self)
        else:
            if self.date:
                calendar = construct_icalendar(self.context, [self.occurrence])
                for component in calendar.subcomponents:
                    if 'RRULE' in component:
                        del component['RRULE']
            else:
                calendar = construct_icalendar(self.context, [self.context])

            return utils.render_ical_response(self.request, self.context,
                                              calendar)
Пример #4
0
 def ical(self):
     events = self.events(ret_mode=2, batch=False)  # get as objects
     cal = construct_icalendar(self.context, events)
     name = '%s.ics' % self.context.getId()
     self.request.RESPONSE.setHeader('Content-Type', 'text/calendar')
     self.request.RESPONSE.setHeader('Content-Disposition',
         'attachment; filename="%s"' % name)
     self.request.RESPONSE.write(cal.to_ical())
Пример #5
0
    def calendar(self, search=None, term=None):
        if search:
            items = super(EventsDirectoryCatalog, self).search(search)
        elif term:
            items = super(EventsDirectoryCatalog, self).filter(term)
        else:
            items = super(EventsDirectoryCatalog, self).items()

        return construct_icalendar(self.directory, items)
Пример #6
0
    def calendar(self, search=None, term=None):
        if search:
            items = super(EventsDirectoryCatalog, self).search(search)
        elif term:
            items = super(EventsDirectoryCatalog, self).filter(term)
        else:
            items = super(EventsDirectoryCatalog, self).items()

        return construct_icalendar(self.directory, items)
Пример #7
0
    def render(self):
        if not self.is_valid_date:
            raise NotFound()

        if not self.is_ical_export:
            return self._template.render(self)
        else:
            if self.date:
                calendar = construct_icalendar(
                    self.context, [self.occurrence]
                )
                for component in calendar.subcomponents:
                    if 'RRULE' in component:
                        del component['RRULE']
            else:
                calendar = construct_icalendar(
                    self.context, [self.context]
                )

            utils.render_ical_response(self.request, self.context, calendar)
Пример #8
0
 def ical(self):
     # Get as objects.
     # Don't include occurrences to avoid having them along with their
     # original events and it's recurrence definition in icalendar exports.
     events = self.events(ret_mode=RET_MODE_OBJECTS,
                          expand=False,
                          batch=False)
     cal = construct_icalendar(self.context, events)
     name = '%s.ics' % self.context.getId()
     self.request.RESPONSE.setHeader('Content-Type', 'text/calendar')
     self.request.RESPONSE.setHeader('Content-Disposition',
                                     'attachment; filename="%s"' % name)
     self.request.RESPONSE.write(cal.to_ical())
Пример #9
0
 def ical(self):
     # Get as objects.
     # Don't include occurrences to avoid having them along with their
     # original events and it's recurrence definition in icalendar exports.
     events = self.events(ret_mode=RET_MODE_OBJECTS, expand=False,
                          batch=False)
     cal = construct_icalendar(self.context, events)
     name = '%s.ics' % self.context.getId()
     self.request.RESPONSE.setHeader('Content-Type', 'text/calendar')
     self.request.RESPONSE.setHeader(
         'Content-Disposition',
         'attachment; filename="%s"' % name
     )
     self.request.RESPONSE.write(cal.to_ical())
Пример #10
0
def construct_calendar(context, events):
    return construct_icalendar(context, events)