def add_repeat(request): if request.method == 'POST': # get new event data user = request.user title = request.POST['title'] start = strToDateTime(request.POST['start']) end = strToDateTime(request.POST['end']) allDay = True if (request.POST['allDay'] == 'true') else False rrule = int(request.POST['rrule']) endRepeat = strToDateTime(request.POST['endRepeat']) print request.POST['endRepeat'] print endRepeat # make new RepeatEvent and save event = RepeatEvent( user = user, title=title, start=start, end=end, allDay=allDay, endRepeat = endRepeat, rrule = rrule ) event.save() # return the id of the new event return HttpResponse(str(event.id)) else: return HttpResponseRedirect('/')
def add_repeat(request): if request.method == 'POST': # get new event data user = request.user title = request.POST['title'] start = strToDateTime(request.POST['start']) end = strToDateTime(request.POST['end']) allDay = True if (request.POST['allDay'] == 'true') else False rrule = int(request.POST['rrule']) endRepeat = strToDateTime(request.POST['endRepeat']) print request.POST['endRepeat'] print endRepeat # make new RepeatEvent and save event = RepeatEvent(user=user, title=title, start=start, end=end, allDay=allDay, endRepeat=endRepeat, rrule=rrule) event.save() # return the id of the new event return HttpResponse(str(event.id)) else: return HttpResponseRedirect('/')
def add_repeat(request): # get new event data user = request.user title = request.POST['title'] start = strToDateTime(request.POST['start']) end = strToDateTime(request.POST['end']) allDay = True if (request.POST['allDay'] == 'true') else False # make new RepeatEvent and save event = RepeatEvent( user = user, title=title, start=start, end=end, allDay=allDay ) event.save() # return the id of the new event return HttpResponse(str(event.id))
def edit_repeat(request): if request.method == 'POST': # get passed in data user = request.user id = request.POST['sid'] oldStart = strToDateTime(request.POST['oldStart']) newStart = strToDateTime(request.POST['start']) newEnd = strToDateTime(request.POST['end']) type = request.POST['type'] endRepeat = request.POST['endRepeat'] # handle datatype conversions if endRepeat == 'null': endRepeat = None # get old RepeatEvent object repeat = user.repeatevent_set.get(pk = id) breaks = repeat.breaks.all() oldEndRepeat = repeat.endRepeat # get break events to move to new repeatevent breaks_new = [] for br in breaks: if br.date > oldStart: # remove from old repeat repeat.breaks.remove(br) # add to breaks_new array breaks_new.append(br) # container to hold httpresponse of ids ids = '' # check whether oldStart is the head if oldStart == repeat.start: # delete old RepeatEvent repeat.delete() # check if you are one past the head elif oneBack(oldStart, repeat) == repeat.start: # make the head of the old RepeatEvent into a new Event object event = Event( user = user, title=repeat.title, start=repeat.start, end=repeat.end, allDay=repeat.allDay ) event.save() # add id to container ids = str(event.id) + ',' # delete old RepeatEvent repeat.delete() # otherwise else: # set end date of old RepeatEvent to one instance back of the passed in date end = oneBack(oldStart,repeat) # update old RepeatEvent and save repeat.endRepeat = end repeat.save() # create new Event object if you edited the last in the chain # could be editing last in chain and making it a new rrule if type == 'event': tail = Event( user = user, title=request.POST['title'], start=newStart, end=newEnd, allDay=request.POST['allDay'] ) tail.save() # add id to container ids += str(tail.id) # create new RepeatEvent object otherwise else: new_repeat = RepeatEvent( user = user, title=request.POST['title'], start=newStart, end=newEnd, allDay=request.POST['allDay'], rrule = int(request.POST['rrule']), endRepeat = endRepeat ) new_repeat.save() # add id to container ids += str(new_repeat.id) # move breaks and endRepeat to new chain by delta delta = newStart - oldStart for br in breaks_new: br.date += delta br.save() new_repeat.breaks.add(br) if (oldEndRepeat): new_repeat.endRepeat = oldEndRepeat + delta new_repeat.save() # '3' OR '1,3' where first number is the event id for the head and second is id of new RepeatEvent / Event (if last moved is tail) return HttpResponse(ids) else: return HttpResponseRedirect('/')
def edit_repeat(request): user = request.user id = request.POST['sid'] oldStart = strToDateTime(request.POST['oldStart']) newStart = strToDateTime(request.POST['start']) newEnd = strToDateTime(request.POST['end']) # get old RepeatEvent object repeat = user.repeatevent_set.get(pk = id) breaks = repeat.breaks.all() # get break events to move to new repeatevent breaks_new = [] for br in breaks: if br.date > oldStart: # remove from old repeat repeat.breaks.remove(br) # save to breaks_new array breaks_new.append(br) # container to hold httpresponse of ids ids = '' # check whether oldStart is the head if oldStart == repeat.start: # delete RepeatEvent repeat.delete() # check if you are one past the head elif oneBack(oldStart, 'rrule') == repeat.start: # make the head into a new Event object event = Event( user = user, title=repeat.title, start=repeat.start, end=repeat.end, allDay=repeat.allDay ) event.save() # add id to container ids = str(event.id) + ',' # delete RepeatEvent repeat.delete() # otherwise else: # set end date to one instance back of the passed in date end = oneBack(oldStart,'rrule') # update repeat and save repeat.endRepeat = end repeat.save() # create new RepeatEvent object based on new datetimes new_repeat = RepeatEvent( user = user, title=request.POST['title'], start=newStart, end=newEnd, allDay=request.POST['allDay'] ) new_repeat.save() # add id to container ids += str(new_repeat.id) # move breaks to new chain by delta delta = newStart - oldStart for br in breaks_new: br.date += delta br.save() new_repeat.breaks.add(br) # '3' OR '1,3' where first number is the event id for the head and second is id of new RepeatEvent return HttpResponse(ids)
def edit_repeat(request): if request.method == 'POST': # get passed in data user = request.user id = request.POST['sid'] oldStart = strToDateTime(request.POST['oldStart']) newStart = strToDateTime(request.POST['start']) newEnd = strToDateTime(request.POST['end']) type = request.POST['type'] endRepeat = request.POST['endRepeat'] # handle datatype conversions if endRepeat == 'null': endRepeat = None # get old RepeatEvent object repeat = user.repeatevent_set.get(pk=id) breaks = repeat.breaks.all() oldEndRepeat = repeat.endRepeat # get break events to move to new repeatevent breaks_new = [] for br in breaks: if br.date > oldStart: # remove from old repeat repeat.breaks.remove(br) # add to breaks_new array breaks_new.append(br) # container to hold httpresponse of ids ids = '' # check whether oldStart is the head if oldStart == repeat.start: # delete old RepeatEvent repeat.delete() # check if you are one past the head elif oneBack(oldStart, repeat) == repeat.start: # make the head of the old RepeatEvent into a new Event object event = Event(user=user, title=repeat.title, start=repeat.start, end=repeat.end, allDay=repeat.allDay) event.save() # add id to container ids = str(event.id) + ',' # delete old RepeatEvent repeat.delete() # otherwise else: # set end date of old RepeatEvent to one instance back of the passed in date end = oneBack(oldStart, repeat) # update old RepeatEvent and save repeat.endRepeat = end repeat.save() # create new Event object if you edited the last in the chain # could be editing last in chain and making it a new rrule if type == 'event': tail = Event(user=user, title=request.POST['title'], start=newStart, end=newEnd, allDay=request.POST['allDay']) tail.save() # add id to container ids += str(tail.id) # create new RepeatEvent object otherwise else: new_repeat = RepeatEvent(user=user, title=request.POST['title'], start=newStart, end=newEnd, allDay=request.POST['allDay'], rrule=int(request.POST['rrule']), endRepeat=endRepeat) new_repeat.save() # add id to container ids += str(new_repeat.id) # move breaks and endRepeat to new chain by delta delta = newStart - oldStart for br in breaks_new: br.date += delta br.save() new_repeat.breaks.add(br) if (oldEndRepeat): new_repeat.endRepeat = oldEndRepeat + delta new_repeat.save() # '3' OR '1,3' where first number is the event id for the head and second is id of new RepeatEvent / Event (if last moved is tail) return HttpResponse(ids) else: return HttpResponseRedirect('/')