def get(self): params = self.request.params context = { } context = login.generateLogInOutContextInfo(self, context) """Get user information""" user = users.get_current_user(); context['user'] = user; if user: context['userId'] = user.user_id(); context['userEmail'] = user.email(); """Query all sessions""" sessions_query = sessions_datastore.Session.query(ancestor=sessions_datastore.sessions_key()).order(-sessions_datastore.Session.sessionStartTime); sessions = sessions_query.fetch(1000000); context['sessions'] = sessions; """Query all reservations""" reservations_query = reservations_datastore.Reservation.query(ancestor=reservations_datastore.reservations_key()).order(-reservations_datastore.Reservation.reservationStartTime); reservations = reservations_query.fetch(1000000); context['reservations'] = reservations; context['present'] = datetime.datetime.now(); context['datetime'] = datetime; context['str'] = str; contents = JINJA_ENVIRONMENT.get_template('index.html').render(context) self.response.write(contents)
def post(self): params = self.request.params context = {} context = login.generateLogInOutContextInfo(self, context) """Get user information""" user = users.get_current_user() context['user'] = user if user: context['userId'] = user.user_id() context['userEmail'] = user.email() context['seekUserName'] = params['seekUserName'] context['seekUserId'] = params['seekUserId'] """Query all resources""" resources_query = resources_datastore.resource.query( ancestor=resources_datastore.resources_key()).order( -resources_datastore.resource.resourceStartTime) resources = resources_query.fetch(1000000) context['resources'] = resources """Query all reservations""" reservations_query = reservations_datastore.Reservation.query( ancestor=reservations_datastore.reservations_key()).order( -reservations_datastore.Reservation.reservationTime) reservations = reservations_query.fetch(1000000) context['reservations'] = reservations context['str'] = str context['present'] = datetime.datetime.now() context['datetime'] = datetime contents = JINJA_ENVIRONMENT.get_template('user.html').render(context) self.response.write(contents)
def post(self): params = self.request.params context = {} context = login.generateLogInOutContextInfo(self, context) """Get user information""" user = users.get_current_user() context["user"] = user if user: context["userId"] = user.user_id() context["userEmail"] = user.email() context["seekUserName"] = params["seekUserName"] context["seekUserId"] = params["seekUserId"] """Query all sessions""" sessions_query = sessions_datastore.Session.query(ancestor=sessions_datastore.sessions_key()).order( -sessions_datastore.Session.sessionStartTime ) sessions = sessions_query.fetch(1000000) context["sessions"] = sessions """Query all reservations""" reservations_query = reservations_datastore.Reservation.query( ancestor=reservations_datastore.reservations_key() ).order(-reservations_datastore.Reservation.reservationTime) reservations = reservations_query.fetch(1000000) context["reservations"] = reservations context["str"] = str context["present"] = datetime.datetime.now() context["datetime"] = datetime contents = JINJA_ENVIRONMENT.get_template("user.html").render(context) self.response.write(contents)
def post(self): params = self.request.params """Query all reservations""" reservations_query = reservations_datastore.Reservation.query( ancestor=reservations_datastore.reservations_key()).order( reservations_datastore.Reservation.reservationStartTime) reservations = reservations_query.fetch(1000000) """Delete the reservation specified""" for reservation in reservations: if reservation.reservationGUID == params['reservationGUID']: reservation.key.delete() self.get()
def redirectToIndexPage(self, context): params = self.request.params context = { } """Generate log in/out information""" context = login.generateLogInOutContextInfo(self, context) """Get user information""" user = users.get_current_user(); context['user'] = user; if user: context['userId'] = user.user_id(); context['userEmail'] = user.email(); """Query all resources""" resources_query = resources_datastore.resource.query(ancestor=resources_datastore.resources_key()).order(-resources_datastore.resource.resourceStartTime); resources = resources_query.fetch(1000000); context['resources'] = resources; """Query all reservations""" reservations_query = reservations_datastore.Reservation.query(ancestor=reservations_datastore.reservations_key()).order(-reservations_datastore.Reservation.reservationTime); reservations = reservations_query.fetch(1000000); context['reservations'] = reservations; resourcesGUIDByLastReservation = []; resourcesByLastReservation = []; allTags = []; for reservation in reservations: if not (reservation.resourceGUID in resourcesGUIDByLastReservation): resourcesGUIDByLastReservation.append(reservation.resourceGUID); for resource in resources: if resource.resourceGUID == reservation.resourceGUID: resourcesByLastReservation.append(resource); break; for resource in resources: if not (resource in resourcesByLastReservation): resourcesByLastReservation.append(resource); context['resourcesByLastReservation'] = resourcesByLastReservation; for resource in resources: for tag in str(resource.resourceTags).split(","): if tag not in allTags: allTags.append(tag); context['allTags'] = allTags; context['present'] = datetime.datetime.now(); context['datetime'] = datetime; context['str'] = str; return context;
def redirectToIndexPage(self, context): params = self.request.params context = {} """Generate log in/out information""" context = login.generateLogInOutContextInfo(self, context) """Get user information""" user = users.get_current_user() context["user"] = user if user: context["userId"] = user.user_id() context["userEmail"] = user.email() """Query all sessions""" sessions_query = sessions_datastore.Session.query(ancestor=sessions_datastore.sessions_key()).order( -sessions_datastore.Session.sessionStartTime ) sessions = sessions_query.fetch(1000000) context["sessions"] = sessions """Query all reservations""" reservations_query = reservations_datastore.Reservation.query( ancestor=reservations_datastore.reservations_key() ).order(-reservations_datastore.Reservation.reservationTime) reservations = reservations_query.fetch(1000000) context["reservations"] = reservations sessionsGUIDByLastReservation = [] sessionsByLastReservation = [] for reservation in reservations: if not (reservation.sessionGUID in sessionsGUIDByLastReservation): sessionsGUIDByLastReservation.append(reservation.sessionGUID) for session in sessions: if session.sessionGUID == reservation.sessionGUID: sessionsByLastReservation.append(session) break for session in sessions: if not (session in sessionsByLastReservation): sessionsByLastReservation.append(session) context["sessionsByLastReservation"] = sessionsByLastReservation context["present"] = datetime.datetime.now() context["datetime"] = datetime context["str"] = str return context
def post(self): params = self.request.params context = { } """Generate log in/out information""" context = login.generateLogInOutContextInfo(self, context) """Query all sessions""" sessions_query = sessions_datastore.Session.query(ancestor=sessions_datastore.sessions_key()).order(-sessions_datastore.Session.sessionStartTime); sessions = sessions_query.fetch(1000000); context['sessions'] = sessions; """Query all reservations""" reservations_query = reservations_datastore.Reservation.query(ancestor=reservations_datastore.reservations_key()).order(-reservations_datastore.Reservation.reservationTime); reservations = reservations_query.fetch(1000000); context['reservations'] = reservations; """Get the selected session""" context['sessionGUID'] = params['sessionGUID']; context['present'] = datetime.datetime.now(); context['datetime'] = datetime; contents = JINJA_ENVIRONMENT.get_template('xmlpage.html').render(context) self.response.write(contents)
def post(self): params = self.request.params context = {} """Generate log in/out information""" context = login.generateLogInOutContextInfo(self, context) """Query all resources""" resources_query = resources_datastore.resource.query( ancestor=resources_datastore.resources_key()).order( -resources_datastore.resource.resourceStartTime) resources = resources_query.fetch(1000000) context['resources'] = resources """Query all reservations""" reservations_query = reservations_datastore.Reservation.query( ancestor=reservations_datastore.reservations_key()).order( -reservations_datastore.Reservation.reservationTime) reservations = reservations_query.fetch(1000000) context['reservations'] = reservations """Get the selected resource""" context['resourceGUID'] = params['resourceGUID'] context['present'] = datetime.datetime.now() context['datetime'] = datetime contents = JINJA_ENVIRONMENT.get_template('rss.html').render(context) self.response.write(contents)
def post(self): params = self.request.params context = {} context = login.generateLogInOutContextInfo(self, context) """Get user information""" user = users.get_current_user() context['user'] = user if user: context['userId'] = user.user_id() context['userEmail'] = user.email() """Query all resources""" resources_query = resources_datastore.resource.query( ancestor=resources_datastore.resources_key()).order( -resources_datastore.resource.resourceStartTime) resources = resources_query.fetch(1000000) context['resources'] = resources """Get the clicked resource""" for resource in resources: if resource.resourceGUID == params['resourceGUID']: context['resource'] = resource thisresource = resource """Query all reservations""" reservations_query = reservations_datastore.Reservation.query( ancestor=reservations_datastore.reservations_key()).order( -reservations_datastore.Reservation.reservationTime) reservations = reservations_query.fetch(1000000) context['reservations'] = reservations """Check if modify resource form had been submitted""" if 'edit_resource_submit' in params: thisresource.resourceName = params['resource_name'] rawStartTimeInput = params['resource_start_time'] startDate = rawStartTimeInput.split("T")[0] startTime = rawStartTimeInput.split("T")[1] startDateTokens = startDate.split("-") startTimeTokens = startTime.split(":") parsedStartTimeInput = datetime.datetime(int(startDateTokens[0]), int(startDateTokens[1]), int(startDateTokens[2]), int(startTimeTokens[0]), int(startTimeTokens[1])) rawEndTimeInput = params['resource_end_time'] endDate = rawEndTimeInput.split("T")[0] endTime = rawEndTimeInput.split("T")[1] endDateTokens = endDate.split("-") endTimeTokens = endTime.split(":") parsedEndTimeInput = datetime.datetime(int(endDateTokens[0]), int(endDateTokens[1]), int(endDateTokens[2]), int(endTimeTokens[0]), int(endTimeTokens[1])) thisresource.resourceStartTime = parsedStartTimeInput thisresource.resourceEndTime = parsedEndTimeInput thisresource.resourceRawStartTime = params['resource_start_time'] thisresource.resourceRawEndTime = params['resource_end_time'] thisresource.resourceTags = params['resource_tags'] present = datetime.datetime.now() if thisresource.resourceStartTime > present and thisresource.resourceStartTime < thisresource.resourceEndTime: thisresource.put() context['notification'] = 'resource modifications submitted!' elif thisresource.resourceStartTime <= present: context['notification'] = 'Invalid start time specified!' elif thisresource.resourceStartTime > resource.resourceEndTime: context['notification'] = 'Invalid end time specified!' context['resource'] = thisresource """Check if a reservation form had been submitted""" if user and 'reserve_resource_submit' in params: rawStartTimeInput = params['reservation_start_time'] startDate = rawStartTimeInput.split("T")[0] startTime = rawStartTimeInput.split("T")[1] startDateTokens = startDate.split("-") startTimeTokens = startTime.split(":") parsedStartTimeInput = datetime.datetime(int(startDateTokens[0]), int(startDateTokens[1]), int(startDateTokens[2]), int(startTimeTokens[0]), int(startTimeTokens[1])) reservationGUID = str(uuid.uuid4()) reservation = reservations_datastore.Reservation( parent=reservations_datastore.reservations_key()) reservation.reservationTime = datetime.datetime.now() reservation.reservationGUID = reservationGUID reservation.reservationOwnerName = user.nickname() reservation.reservationOwner = user.user_id() reservation.reservationEmail = user.email() reservation.reservationStartTime = parsedStartTimeInput reservation.reservationDuration = int( params['reservation_duration']) reservation.resourceGUID = params['resourceGUID'] reservation.resourceInstructor = params['resourceInstructor'] reservation.resourceOwner = params['resourceOwner'] reservation.resourceName = params['resourceName'] """Check if reservation valid before storing""" alreadyReserved = False for reservationClone in reservations: if reservationClone.reservationOwner == user.user_id( ) and reservationClone.resourceGUID == params['resourceGUID']: alreadyReserved = True present = datetime.datetime.now() durationInSeconds = reservation.reservationDuration * 60 if alreadyReserved: context[ 'notification'] = 'You have already reserved the resource!' elif parsedStartTimeInput > present and parsedStartTimeInput >= thisresource.resourceStartTime and durationInSeconds > 0: potentialEndTime = parsedStartTimeInput + datetime.timedelta( seconds=durationInSeconds) if potentialEndTime <= thisresource.resourceEndTime: reservation.put() context['notification'] = 'Reservation made!' else: context['notification'] = 'Duration specified is too long!' elif durationInSeconds <= 0: context['notification'] = 'Invalid duration specified!' elif parsedStartTimeInput < thisresource.resourceStartTime: context['notification'] = 'Invalid start time specified!' elif parsedStartTimeInput <= present: context['notification'] = 'Invalid start time specified!' context['reservationGUID'] = reservation.reservationGUID context['reservationOwnerName'] = reservation.reservationOwnerName context['reservationOwner'] = reservation.reservationOwner context['reservationEmail'] = reservation.reservationEmail context['reservationStartTime'] = reservation.reservationStartTime context['reservationDuration'] = reservation.reservationDuration context['resourceGUID'] = reservation.resourceGUID context['resourceInstructor'] = reservation.resourceInstructor context['resourceOwner'] = reservation.resourceOwner context['resourceName'] = reservation.resourceName elif 'reserve_resource_submit' in params: context[ 'notification'] = 'You must be signed in to make a reservation!' context['present'] = datetime.datetime.now() context['datetime'] = datetime context['tags'] = str(context['resource'].resourceTags).split(",") contents = JINJA_ENVIRONMENT.get_template('resource.html').render( context) self.response.write(contents)
def post(self): params = self.request.params; context = { }; context = login.generateLogInOutContextInfo(self, context) if 'delete_form_submit' in params: """Query all reservations""" reservations_query = reservations_datastore.Reservation.query(ancestor=reservations_datastore.reservations_key()).order(reservations_datastore.Reservation.reservationStartTime); reservations = reservations_query.fetch(1000000); """Delete the reservation specified""" for reservation in reservations: if reservation.reservationGUID == params['reservationGUID']: reservation.key.delete(); if 'session_search_submit' in params: """Query all sessions""" sessions_query = sessions_datastore.Session.query(ancestor=sessions_datastore.sessions_key()).order(-sessions_datastore.Session.sessionStartTime) sessions = sessions_query.fetch(1000000); matchedSessions = []; sessionSearched = params['sessionSearchText']; for session in sessions: if session.sessionName == sessionSearched: matchedSessions.append(session); context['sessions'] = matchedSessions; context['str'] = str; context['present'] = datetime.datetime.now(); context['datetime'] = datetime; contents = JINJA_ENVIRONMENT.get_template('search.html').render(context) self.response.write(contents) return; if 'session_search_by_time_submit' in params: """Query all sessions""" sessions_query = sessions_datastore.Session.query(ancestor=sessions_datastore.sessions_key()).order(-sessions_datastore.Session.sessionStartTime) sessions = sessions_query.fetch(1000000); matchedSessions = []; searchStartTime = params['reservation_start_time']; startDate = searchStartTime.split("T")[0]; startTime = searchStartTime.split("T")[1]; startDateTokens = startDate.split("-"); startTimeTokens = startTime.split(":"); convertedStartTime = datetime.datetime(int(startDateTokens[0]), int(startDateTokens[1]), int(startDateTokens[2]), int(startTimeTokens[0]), int(startTimeTokens[1])); if params['reservation_duration'] != "": if not utilities.is_integer(params['reservation_duration']) or 'reservation_duration'<= 0: context['notification'] = 'Invalid duration entered!'; contents = JINJA_ENVIRONMENT.get_template('search.html').render(context) self.response.write(contents) return; else: searchDuration = int(params['reservation_duration']); durationInSeconds = searchDuration * 60; convertedEndTime = convertedStartTime + datetime.timedelta(seconds = durationInSeconds); present = datetime.datetime.now(); for session in sessions: if session.sessionStartTime > present and session.sessionStartTime > convertedStartTime: if params['reservation_duration'] != "": if session.sessionEndTime > convertedEndTime: matchedSessions.append(session); else: matchedSessions.append(session); context['sessions'] = matchedSessions; context['str'] = str; context['present'] = datetime.datetime.now(); context['datetime'] = datetime; contents = JINJA_ENVIRONMENT.get_template('search.html').render(context) self.response.write(contents) return; self.get();
def post(self): params = self.request.params context = { } context = login.generateLogInOutContextInfo(self, context) """Get user information""" user = users.get_current_user(); context['user'] = user; if user: context['userId'] = user.user_id(); context['userEmail'] = user.email(); """Query all sessions""" sessions_query = sessions_datastore.Session.query(ancestor=sessions_datastore.sessions_key()).order(-sessions_datastore.Session.sessionStartTime) sessions = sessions_query.fetch(1000000); context['sessions'] = sessions; """Get the clicked session""" for session in sessions: if session.sessionGUID == params['sessionGUID']: context['session'] = session; thisSession = session; """Query all reservations""" reservations_query = reservations_datastore.Reservation.query(ancestor=reservations_datastore.reservations_key()).order(-reservations_datastore.Reservation.reservationTime); reservations = reservations_query.fetch(1000000); context['reservations'] = reservations; """Check if modify session form had been submitted""" if 'edit_session_submit' in params: thisSession.sessionName = params['session_name']; rawStartTimeInput = params['session_start_time']; startDate = rawStartTimeInput.split("T")[0]; startTime = rawStartTimeInput.split("T")[1]; startDateTokens = startDate.split("-"); startTimeTokens = startTime.split(":"); parsedStartTimeInput = datetime.datetime(int(startDateTokens[0]), int(startDateTokens[1]), int(startDateTokens[2]), int(startTimeTokens[0]), int(startTimeTokens[1])); rawEndTimeInput = params['session_end_time']; endDate = rawEndTimeInput.split("T")[0]; endTime = rawEndTimeInput.split("T")[1]; endDateTokens = endDate.split("-"); endTimeTokens = endTime.split(":"); parsedEndTimeInput = datetime.datetime(int(endDateTokens[0]), int(endDateTokens[1]), int(endDateTokens[2]), int(endTimeTokens[0]), int(endTimeTokens[1])); thisSession.sessionStartTime = parsedStartTimeInput; thisSession.sessionEndTime = parsedEndTimeInput; thisSession.sessionRawStartTime = params['session_start_time']; thisSession.sessionRawEndTime = params['session_end_time']; thisSession.sessionTags = params['session_tags']; present = datetime.datetime.now(); if thisSession.sessionStartTime > present and thisSession.sessionStartTime < thisSession.sessionEndTime: thisSession.put(); context['notification'] = 'Session modifications submitted!'; elif thisSession.sessionStartTime <= present: context['notification'] = 'Invalid start time specified!'; elif thisSession.sessionStartTime > session.sessionEndTime: context['notification'] = 'Invalid end time specified!'; context['session'] = thisSession; """Check if a reservation form had been submitted""" if user and 'reserve_session_submit' in params: rawStartTimeInput = params['reservation_start_time']; startDate = rawStartTimeInput.split("T")[0]; startTime = rawStartTimeInput.split("T")[1]; startDateTokens = startDate.split("-"); startTimeTokens = startTime.split(":"); parsedStartTimeInput = datetime.datetime(int(startDateTokens[0]), int(startDateTokens[1]), int(startDateTokens[2]), int(startTimeTokens[0]), int(startTimeTokens[1])); reservationGUID = str(uuid.uuid4()); reservation = reservations_datastore.Reservation(parent = reservations_datastore.reservations_key()); reservation.reservationTime = datetime.datetime.now(); reservation.reservationGUID = reservationGUID; reservation.reservationOwnerName = user.nickname(); reservation.reservationOwner = user.user_id(); reservation.reservationEmail = user.email(); reservation.reservationStartTime = parsedStartTimeInput; validDuration = True; try: reservation.reservationDuration = int(params['reservation_duration']); except ValueError: reservation.reservationDuration = 0; validDuration = False; reservation.sessionGUID = params['sessionGUID']; reservation.sessionInstructor = params['sessionInstructor']; reservation.sessionOwner = params['sessionOwner']; reservation.sessionName = params['sessionName']; """Check if reservation valid before storing""" alreadyReserved = False; for reservationClone in reservations: if reservationClone.reservationOwner == user.user_id() and reservationClone.sessionGUID == params['sessionGUID']: alreadyReserved = True; present = datetime.datetime.now(); durationInSeconds = reservation.reservationDuration * 60; if not validDuration: context['notification'] = 'Invalid duration entered!'; if alreadyReserved: context['notification'] = 'You have already reserved the session!'; elif parsedStartTimeInput > present and parsedStartTimeInput >= thisSession.sessionStartTime and durationInSeconds > 0: potentialEndTime = parsedStartTimeInput + datetime.timedelta(seconds = durationInSeconds); if potentialEndTime <= thisSession.sessionEndTime: reservation.put(); context['notification'] = 'Reservation made!'; else: context['notification'] = 'Duration specified is too long!'; elif durationInSeconds <= 0: context['notification'] = 'Invalid duration specified!'; elif parsedStartTimeInput < thisSession.sessionStartTime: context['notification'] = 'Invalid start time specified!'; elif parsedStartTimeInput <= present: context['notification'] = 'Invalid start time specified!'; context['reservationGUID'] = reservation.reservationGUID; context['reservationOwnerName'] = reservation.reservationOwnerName; context['reservationOwner'] = reservation.reservationOwner; context['reservationEmail'] = reservation.reservationEmail; context['reservationStartTime'] = reservation.reservationStartTime; context['reservationDuration'] = reservation.reservationDuration; context['sessionGUID'] = reservation.sessionGUID; context['sessionInstructor'] = reservation.sessionInstructor; context['sessionOwner'] = reservation.sessionOwner; context['sessionName'] = reservation.sessionName; elif 'reserve_session_submit' in params: context['notification'] = 'You must be signed in to make a reservation!'; context['present'] = datetime.datetime.now(); context['datetime'] = datetime; context['tags'] = str(context['session'].sessionTags).split(","); contents = JINJA_ENVIRONMENT.get_template('session.html').render(context) self.response.write(contents)