def main(): try: form = CGIgetForm() user = CGIlogin(form) if user == "admin" or user in GetEditors(): message = "Contact added" if form.has_key("firstname") and form.has_key("lastname"): c = Contact() c.firstname = form["firstname"] c.lastname = form["lastname"] c.user = c.firstname + " " + c.lastname c.name = c.user else: raise CalendarError, "No full name specified" if form.has_key("phone"): c.phone = form["phone"] if form.has_key("email"): if IsEmail(form["email"]): c.email = form["email"] else: message = "Invalid email address" #Set an initial password at random c.password = SetPassword() c.Store() print c.ContactPage(message) else: print LoginPage("Not authorized for this operation", script="AddContact.py", form=form) except CalendarError, errorText: print AdminPage(errorText)
def main(): try: form = CGIgetForm() user = CGIlogin(form) if user == "admin" or user in GetSupervisors(): if form.has_key("username"): username = form["username"].lower() if username in GetEditors(): raise CalendarError, "Username already used." e = Editor(username) else: raise CalendarError, "No username specified" e.user = username if form.has_key("firstname") and form.has_key("lastname"): e.firstname = form["firstname"] e.lastname = form["lastname"] e.name = e.firstname + " " + e.lastname else: raise CalendarError, "No full name specified" #Set an initial password at random e.password = SetPassword() e.Store() print e.EditorPage() else: print LoginPage("Not authorized for this operation", script="AddEditor.py", form=form) except CalendarError, errorText: print AdminPage(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 == "admin": print AdminPage() elif user in GetEditors(): e = Editor(user) print e.EditorPage() return else: raise CalendarError, "Invalid user and/or password" except CalendarError, errorText: print ErrorPage(errorText)
def main(): try: form = CGIgetForm() user = CGIlogin(form) if user == "admin" or user in GetEditors(): if form.has_key("ID"): e = Event(form["ID"]) else: raise CalendarError, "Cannot edit non-existent event" print e.EditPage() else: print LoginPage(script="EditEvent.py", form=form) except CalendarError, errorText: print ErrorPage(errorText)
def main(): try: form = CGIgetForm() user = CGIlogin(form) if form.has_key("ID"): e = Event(form["ID"]) if form.has_key("cancel"): print e.EventView() return if user == "admin" or user in GetEditors(): name = Editor(user).name email = Editor(user).email mailto = calendarEmail bcc = e.notifyList bcc.append(email) subject = "%s Event Notification" % calendarAbbr if form.has_key("message"): message = "---------\n%s\n---------" % form["message"] else: message = "" text="""\ Title: %s Date: %s Time: %s to %s Location: %s %s %s Please visit the following URL to view further details: <%s/ViewEvent.py?ID=%s> If you wish to be removed from the notification list for this event, please contact the %s Administration."""\ % (e.title, FormatDate(e.start, day=True), FormatTime(e.start), FormatTime(e.end), e.location, StripHTML(ConvertBreaks(e.description)), message, cgiURL, e.ID, calendarAbbr) SendEmail(mailto, subject, text, bcc=bcc) message = \ "Requested information has been sent to the notification list" print e.EventView(message) else: print LoginPage(script="SendNotification.py", form=form) except CalendarError, errorText: print ErrorPage(errorText)
def main(): try: form = CGIgetForm() user = CGIlogin(form) if user == "admin" or user in GetEditors(): if form.has_key("ID"): ID = form["ID"] if IDexists(ID): e = Event(ID) print e.RemovePage() else: raise CalendarError, "Event does not exist" else: raise CalendarError, "No calendar event specified" else: print LoginPage(script="RemoveEvent.py", form=form) except CalendarError, errorText: print ErrorPage(errorText)
def main(): try: form = CGIgetForm() user = CGIlogin(form) if user: if form.has_key("editor"): username = form["editor"] if username not in GetEditors(): raise CalendarError, "Invalid editor name" if user == username or user == "admin" \ or user in GetSupervisors(): e = Editor(username) print e.EditorPage() else: raise CalendarError, "No editor specified" else: print LoginPage(script="EditEditor.py", form=form) except CalendarError, errorText: print ErrorPage(errorText)
def main(): try: form = CGIgetForm() user = CGIlogin(form) if user == "admin" or user in GetEditors(): if form.has_key("ID"): e = Event(form["ID"]) t = Event() t.Copy(e) t.status = "Requested" t.pattern = "Once Only" t.repeats = [] t.logs = [] t.notifyList = [] else: raise CalendarError, "Cannot copy non-existent event" print t.EditPage("Don't forget to change the date of this copy", copied=True) else: print LoginPage(script="CopyEvent.py", form=form) except CalendarError, errorText: print ErrorPage(errorText)
def main(): try: form = CGIgetForm() user = CGIlogin(form) if user == "admin" or user in GetSupervisors(): supervisor = True else: supervisor = False if user is None: print LoginPage(script="ModifyEvent.py", form=form) return if form.has_key("ID"): ID = form["ID"] if not IDexists(ID): raise CalendarError, "No event to edit" if ID.find("tmp") >= 0: e = TemporaryEvent(ID) else: e = TemporaryEvent() e.Copy(Event(ID)) e.oldID = ID e.oldDate = e.start[0:3] else: e = TemporaryEvent() if form.has_key("title"): e.title = form["title"] if form.has_key("type"): e.type = form["type"] else: e.type = "Event" if form.has_key("description"): e.description = ConvertCRLFs(form["description"]) else: e.description = "" if form.has_key("location"): if form["location"] == "Location...": e.location = "" else: e.location = form["location"] try: if type == "Banner" or type == "Holiday": e.start = ReadTime(form["startyear"], form["startmonth"], form["startday"], 12, 0, "AM") e.end = e.start else: e.start = ReadTime(form["startyear"], form["startmonth"], form["startday"], form["starthour"], form["startminute"], form["startampm"].upper()) e.end = ReadTime(form["startyear"], form["startmonth"], form["startday"], form["endhour"], form["endminute"], form["endampm"].upper(), end=True) except KeyError: if not hasattr(e, "oldID"): raise CalendarError, "Invalid date/time entry" if form.has_key("cancel"): if e.start: y, m, d = e.start[0:3] else: y, m, d = Today() print DayView(y, m, d) return if form.has_key("name") and form["name"] <> "Name...": if form["name"] in GetEditors(name=True): c = GetEditor(form["name"]) else: c = Contact(form["name"]) e.organizer = c.name e.phone = c.phone e.email = c.email elif form.has_key("organizer"): e.organizer = form["organizer"] if form.has_key("phone") and form.has_key("email"): e.phone = form["phone"] e.email = form["email"] else: if e.organizer in GetEditors(name=True): c = GetEditor(e.organizer) elif e.organizer in GetContacts(): c = Contact(e.organizer) else: c = None if form.has_key("phone"): e.phone = form["phone"] elif c: e.phone = c.phone if form.has_key("email"): e.email = form["email"] elif c: e.email = c.email else: e.organizer = "" try: e.reservation["option"] = form["reserve"] if e.reservation["option"] == "Same as Event": e.reservation["start"] = e.start e.reservation["end"] = e.end elif e.reservation["option"] == "All Day": e.reservation["start"] = ReadTime(form["startyear"], form["startmonth"], form["startday"], "12", "00", "AM") e.reservation["end"] = ReadTime(form["startyear"], form["startmonth"], form["startday"], "12", "00", "AM", end=True) else: e.reservation["start"] = ReadTime(form["startyear"], form["startmonth"], form["startday"], form["resstarthour"], form["resstartminute"], form["resstartampm"].upper()) e.reservation["end"] = ReadTime(form["startyear"], form["startmonth"], form["startday"], form["resendhour"], form["resendminute"], form["resendampm"].upper(), end=True) if e.reservation["start"] > e.start: e.reservation["start"] = e.start if e.reservation["end"] < e.end: e.reservation["end"] = e.end except KeyError: if not hasattr(e, "oldID"): raise CalendarError, "Invalid reservation time" if form.has_key("locations"): if isinstance(form["locations"], list): e.locations = form["locations"] else: e.locations = [form["locations"]] if "Locations..." in e.locations: e.locations.remove("Locations...") else: e.locations = [] if e.location: try: e.locations.remove(e.location) except ValueError: pass e.locations.insert(0, e.location) if form.has_key("resources"): if isinstance(form["resources"], list): e.resources = form["resources"] else: e.resources = [form["resources"]] if "Resources..." in e.resources: e.resources.remove("Resources...") else: e.resources = [] if form.has_key("categories"): if isinstance(form["categories"], list): e.categories = form["categories"] else: e.categories = [form["categories"]] if "Categories..." in e.categories: e.categories.remove("Categories...") else: e.categories = [] if form.has_key("setup"): e.setup = ConvertCRLFs(form["setup"]) else: e.setup = "" if form.has_key("status"): e.status = form["status"] if form.has_key("editor"): e.editor = form["editor"] if form.has_key("pattern"): e.pattern = form["pattern"] if form["pattern"] <> "Once Only": e.number, e.final = None, None if form.has_key("number"): e.number = int(form["number"]) if form.has_key("endyear"): e.final = ReadDate(form["endyear"], form["endmonth"], form["endday"]) e.repeats = MakeRepeats(e.pattern, e.start, e.final, e.number) else: e.repeats = [] elif form.has_key("repeat"): if form["repeat"] == "single": e.repeats = [] e.pattern = "Once Only" elif form.has_key("repeats"): if isinstance(form["repeats"], list): e.repeats = form["repeats"] else: e.repeats = [form["repeats"]] if form["repeat"] == "future": e.repeats = filter(lambda ID:IDdate(ID)>=Today(), e.repeats) else: e.repeats = [] message = None if e.type <> "Banner" and e.type <> "Holiday" and e.end < e.start: message = "Warning: End of event precedes the start." elif e.type <> "Banner" and e.type <> "Holiday" and e.end == e.start: message = "Warning: Event has no duration." elif e.start < Now(): message = "Warning: This event is in the past." elif not e.title: message = "Warning: No title given for event." if hasattr(e, "oldDate"): if e.oldDate <> e.start[0:3] and e.repeats: message = \ "Warning: Changing the date will break the link with event repeats." e.repeats = [] e.pattern = "Once Only" e.Store() print e.EventView(message=message, updating=True) except CalendarError, errorText: print ErrorPage(errorText)
def main(): try: form = CGIgetForm() user = CGIlogin(form) if form.has_key("ID"): e = Event(form["ID"]) if form.has_key("cancel"): print e.EventView() return if user in GetEditors(): name = Editor(user).name email = Editor(user).email if email: emailLink = "<%s>" % email else: emailLink = "" mailto = [] for supervisor in GetSupervisors(): mailto.append(Editor(supervisor).email) mailto.append(calendarEmail) subject = "%s Event Request" % calendarAbbr if form.has_key("message"): message = "Additional Message:\n%s" % form["message"] else: message = "" if form.has_key("prefix"): prefix = form["prefix"] else: prefix = "A change to" if e.status == "Approved": script = "EditEvent.py" else: script = "ViewEvent.py" text = """\ %s the following %s event has been requested: Title: %s Date: %s Time: %s to %s Location: %s Resource: %s Category: %s Requested by: %s %s Please visit the following URL to approve or modify the requested event: <%s/%s?ID=%s> %s """ % (prefix, calendarAbbr, e.title, FormatDate(e.start, day=True), FormatTime(e.reservation["start"]), FormatTime(e.reservation["end"]), ", ".join(e.locations), ", ".join(e.resources), ", ".join( e.categories), name, emailLink, cgiURL, script, e.ID, message) SendEmail(mailto, subject, text, cc=email) message = \ "Requested information has been sent to the %s Administration" \ % calendarAbbr print e.EventView(message) else: print LoginPage(script="SendRequest.py", form=form) except CalendarError, errorText: print ErrorPage(errorText)