def get(id_name): """ Gets an event by the given filter (either name or ID. ID preferred.) """ event = Event.get_by(name=str(id_name).decode("utf-8")) if type(event) != Event: event = Event.get_by(id=id_name) if type(event) != Event: raise gjms.core.exceptions.NonExistentEvent("Event does not exist.") else: return event else: return event
def get(id_name): """ Gets an event by the given filter (either name or ID. ID preferred.) """ event = Event.get_by(name=str(id_name).decode("utf-8")) if type(event) != Event: event = Event.get_by(id=id_name) if type(event) != Event: raise gjms.core.exceptions.NonExistentEvent( "Event does not exist.") else: return event else: return event
def by_slug(slug): """ Get an event by its slug. """ event = Event.get_by(slug=slug) if type(event) != Event: raise gjms.core.exceptions.NonExistentEvent("Event with this slug does not exist.") else: return event
def add(start, end, name, theme="", voting=False): """ Preferred way to add an event. Checks for valid datetime formats, raises errors on failure. Automatically fills in an empty theme, and sets voting to false. """ if type(start) == datetime.datetime: if type(end) == datetime.datetime: event = Event(start=start, end=end, name=name, theme=theme, voting=voting) return event else: raise gjms.core.exceptions.InvalidValue( "End time must be datetime") else: raise gjms.core.exceptions.InvalidValue("Start time must be datetime")