def deleteSingleRecurrence(e, time): if(e.repeat): ex = ExceptionDate(exceptionTime=time) ex.save() e.exceptions.add(ex) return
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()
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)