def main(): try: form = CGIgetForm() user = CGIlogin(form) if user == "admin" or user in GetEditors(): new_event = Event() year, month, day = None, None, None if form.has_key("year"): date = form["year"] if form.has_key("month"): date += " " + form["month"] if form.has_key("day"): date += " " + form["day"] new_event.start = time.strptime(date, "%Y %m %d") else: new_event.start = time.strptime(date, "%Y %m") else: new_event.start = time.strptime(date, "%Y") new_event.end = new_event.start new_event.reservation["start"] = new_event.start new_event.reservation["end"] = new_event.end new_event.reservation["option"] = "Same as Event" new_event.pattern = "Once Only" print new_event.EditPage() else: print LoginPage(script="AddEvent.py", form=form) except CalendarError, errorText: print ErrorPage(errorText)
def main(): try: form = CGIgetForm() user = CGIlogin(form) if user == "admin" or user in GetEditors(): new_event = Event() year, month, day = None, None, None if form.has_key("year"): date = form["year"] if form.has_key("month"): date += " "+form["month"] if form.has_key("day"): date += " "+form["day"] new_event.start = time.strptime(date, "%Y %m %d") else: new_event.start = time.strptime(date, "%Y %m") else: new_event.start = time.strptime(date, "%Y") new_event.end = new_event.start new_event.reservation["start"] = new_event.start new_event.reservation["end"] = new_event.end new_event.reservation["option"] = "Same as Event" new_event.pattern = "Once Only" print new_event.EditPage() else: print LoginPage(script="AddEvent.py", form=form) except CalendarError, errorText: print ErrorPage(errorText)
def main(): try: form = CGIgetForm() user = CGIlogin(form) if user: if form.has_key("ID"): temporary_event = TemporaryEvent(form["ID"]) if form.has_key("cancel"): if temporary_event.start: y, m, d = temporary_event.start[0:3] else: y, m, d = Today() print DayView(y, m, d) if temporary_event.ID.find("tmp") >= 0: temporary_event.Remove() elif form.has_key("edit"): print temporary_event.EditPage() else: if hasattr(temporary_event, "oldID"): old = True oldID = temporary_event.oldID else: old = False primary_event = None if form.has_key("repeats"): IDs = [] for repeat in form["repeats"]: if IsValidID(repeat): ID = repeat else: ID = os.path.join(repeat, "%03d" % GetNextEvent(repeat)) IDs.append(ID) #Remove new set of repeats from other excluded repeats if old: old_repeats = Event(oldID).repeats if old_repeats: discards = filter(lambda ID:ID not in IDs, old_repeats) for ID in discards: old_event = Event(ID) old_event.repeats = discards old_event.AddLog( "Removed from repeat list of %s" % oldID, save=False) old_event.Store() #Now update the new set of repeats if old: primaryID = oldID logMessage = "Repeated events updated" else: primaryID = IDs[0] logMessage = "Repeated events created" for ID in IDs: new_event = Event(ID) new_event.Copy(temporary_event) new_event.start = CopyTime(ID, new_event.start) new_event.end = CopyTime(ID, new_event.end, end=True) new_event.reservation["start"] = \ CopyTime(ID, new_event.reservation["start"]) new_event.reservation["end"] = \ CopyTime(ID, new_event.reservation["end"], end=True) new_event.repeats = IDs if ID == primaryID: new_event.AddLog(logMessage) new_event.Store() primary_event = Event(primaryID) elif old: primary_event = Event(oldID) if hasattr(temporary_event, "pattern"): primary_event.ClearRepeats() if temporary_event.start[0:3] == \ primary_event.start[0:3]: primary_event.Copy(temporary_event) primary_event.repeats = [] primary_event.AddLog("Event updated") primary_event.Store() else: primary_event.Remove() primary_event.UpdatePages() primary_event = None if not primary_event: year, month, day = temporary_event.start[0:3] eventDir = DatePath(year, month, day) ID = os.path.join(eventDir, "%03d" % GetNextEvent(eventDir)) primary_event = Event(ID) primary_event.Copy(temporary_event) primary_event.created = Now() if old: primary_event.AddLog("Event date changed") else: primary_event.AddLog("Event created") primary_event.Store() temporary_event.Remove() primary_event.UpdatePages() print primary_event.EventView() CGIflush() else: raise CalendarError, "No event specified" else: print LoginPage(script="ConfirmEvent.py", form=form) except CalendarError, errorText: print ErrorPage(errorText)
def main(): try: form = CGIgetForm() user = CGIlogin(form) if user: if form.has_key("ID"): temporary_event = TemporaryEvent(form["ID"]) if form.has_key("cancel"): if temporary_event.start: y, m, d = temporary_event.start[0:3] else: y, m, d = Today() print DayView(y, m, d) if temporary_event.ID.find("tmp") >= 0: temporary_event.Remove() elif form.has_key("edit"): print temporary_event.EditPage() else: if hasattr(temporary_event, "oldID"): old = True oldID = temporary_event.oldID else: old = False primary_event = None if form.has_key("repeats"): IDs = [] for repeat in form["repeats"]: if IsValidID(repeat): ID = repeat else: ID = os.path.join( repeat, "%03d" % GetNextEvent(repeat)) IDs.append(ID) #Remove new set of repeats from other excluded repeats if old: old_repeats = Event(oldID).repeats if old_repeats: discards = filter(lambda ID: ID not in IDs, old_repeats) for ID in discards: old_event = Event(ID) old_event.repeats = discards old_event.AddLog( "Removed from repeat list of %s" % oldID, save=False) old_event.Store() #Now update the new set of repeats if old: primaryID = oldID logMessage = "Repeated events updated" else: primaryID = IDs[0] logMessage = "Repeated events created" for ID in IDs: new_event = Event(ID) new_event.Copy(temporary_event) new_event.start = CopyTime(ID, new_event.start) new_event.end = CopyTime(ID, new_event.end, end=True) new_event.reservation["start"] = \ CopyTime(ID, new_event.reservation["start"]) new_event.reservation["end"] = \ CopyTime(ID, new_event.reservation["end"], end=True) new_event.repeats = IDs if ID == primaryID: new_event.AddLog(logMessage) new_event.Store() primary_event = Event(primaryID) elif old: primary_event = Event(oldID) if hasattr(temporary_event, "pattern"): primary_event.ClearRepeats() if temporary_event.start[0:3] == \ primary_event.start[0:3]: primary_event.Copy(temporary_event) primary_event.repeats = [] primary_event.AddLog("Event updated") primary_event.Store() else: primary_event.Remove() primary_event.UpdatePages() primary_event = None if not primary_event: year, month, day = temporary_event.start[0:3] eventDir = DatePath(year, month, day) ID = os.path.join(eventDir, "%03d" % GetNextEvent(eventDir)) primary_event = Event(ID) primary_event.Copy(temporary_event) primary_event.created = Now() if old: primary_event.AddLog("Event date changed") else: primary_event.AddLog("Event created") primary_event.Store() temporary_event.Remove() primary_event.UpdatePages() print primary_event.EventView() CGIflush() else: raise CalendarError, "No event specified" else: print LoginPage(script="ConfirmEvent.py", form=form) except CalendarError, errorText: print ErrorPage(errorText)