from p4a.common.dtutils import dt2DT from kss.core import KSSView, kssaction from datetime import datetime from p4a.ploneevent import PloneEventMessageFactory as _ FREQ = {0: 'year', 1: 'month', 2: 'week', 3: 'day', 4: 'hour', 5: 'minute', 6: 'second', } CALVOCAB = {0: (_(u'year'), _(u'years')), 1: (_(u'month'), _(u'months')), 2: (_(u'week'), _(u'weeks')), 3: (_(u'day'), _(u'days')), } class EventView(BrowserView): def same_day(self): return self.context.start().Date() == self.context.end().Date() def short_start_date(self): return self.context.toLocalizedTime(self.context.start(), long_format=0) def long_start_date(self): return self.context.toLocalizedTime(self.context.start(), long_format=1)
from dateutil.rrule import YEARLY, MONTHLY, WEEKLY, DAILY from p4a.ploneevent import PloneEventMessageFactory as _ from Products.Archetypes.utils import IntDisplayList class TextField(ExtensionField, atapi.TextField): pass class DateTimeField(ExtensionField, atapi.DateTimeField): pass class IntegerField(ExtensionField, atapi.IntegerField): pass class StringField(ExtensionField, atapi.StringField): pass freqDisplayList = IntDisplayList([(-1, _(u'Does not repeat')), (YEARLY, _(u'Yearly')), (MONTHLY, _(u'Monthly')), (WEEKLY, _(u'Weekly')), (DAILY, _(u'Daily'))]) class RecurrenceExtension(object): component.adapts(IOrderableSchemaExtender, IRecurringEvent) interface.implements(IEventSchemaExtension) fields = [ IntegerField('frequency', schemata='recurrence', required=True, vocabulary=freqDisplayList, default=-1,