Example #1
0
def deleteSingleRecurrence(e, time):
    if(e.repeat):
        ex = ExceptionDate(exceptionTime=time)
        ex.save()
        e.exceptions.add(ex)
    return
Example #2
0
def gcal(request):

    events = json.loads(request.POST['responseJSON'])
    usr = UserProfile.objects.get(user=request.session['fbid'])
    if events.has_key('items') and events['items']:
        for event in events['items']:
            recurring = False;
            recurrence = '';


            if event.has_key('originalStartTime') and event.has_key('recurringEventId') :
                ev = usr.events.filter(gid=event['recurringEventId'])

                if len(ev) > 0 and ev[0].exceptions.filter(exceptionTime=(datetime.strptime(event['originalStartTime']['dateTime'][:-6], googleDateString)).replace(tzinfo=tz.gettz('UTC'))).count() == 0:
                    ex = ExceptionDate(exceptionTime=(datetime.strptime(event['originalStartTime']['dateTime'][:-6], googleDateString)).replace(tzinfo=tz.gettz('UTC')))
                    ex.save()
                    ev[0].exceptions.add(ex)
                    if not event.has_key('start'):
                        continue

            if event.has_key('id'):
                existentEvent = usr.events.filter(gid=event['id'])
                if(len(existentEvent) != 0):
                    continue
            if not event.has_key('summary'):
                event['summary'] = 'No-Title'
            if not event.has_key('description'):
                event['description'] = 'No-Description'
            if not event.has_key('location'):
                event['location'] = ''
            if not event.has_key('start'):
                continue
            if not event.has_key('end'):
                continue
            if not event.has_key('id'):
                event['id'] = 'googleEvent'
            if event['end'].has_key('date') and len(event['end']['date']) <=10 :
                continue

            startTime = datetime.strptime(event['start']['dateTime'][:-6], googleDateString)
            startTime = startTime.replace(tzinfo=tz.gettz('UTC'))
            endTime = datetime.strptime(event['end']['dateTime'][:-6], googleDateString)
            endTime = endTime.replace(tzinfo=tz.gettz('UTC'))


            if event.has_key('recurrence') and len(event['recurrence']) > 0:
                recurring = True;
                if not 'RRULE' in event['recurrence'][0] and len(event['recurrence']) > 1 and 'RRULE' in event['recurrence'][1]:
                    until = re.match(".*UNTIL=........", event['recurrence'][1]);
                    if until is not None:
                        recurrence = event['recurrence'][1].replace(until.group(0), until.group(0)+"T000000Z");
                else:
                    recurrence = event['recurrence'][0].replace("035959", "000000"); #.replace('u\'', '\'').replace("[\'", "").replace('\']', '')

            e = Event(title=event['summary'],
                      description=event['description'],
                      location=event['location'],
                      start=startTime,
                      end=endTime,
                      gid=event['id'],
                      repeat=recurring,
                      recurrence=recurrence,
                      kind = 'BUPU',
                      )
            e.save()
            usr.creators.add(e);
            usr.events.add(e)
    return HttpResponse()
Example #3
0
def createException(eid, event):
    ex = ExceptionDate(exceptionTime=(datetime.strptime(eid[eid.rfind("_")+1:], idfeDateString)).replace(tzinfo=tz.gettz('UTC')))
    ex.save()
    event.exceptions.add(ex)