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,