def associateCourse(course, key): session = server.DBSession() course.survey = key session.add(course) session.commit() session.close()
def loadAllQuestions(): session = server.DBSession() allQaa = [] # Loop through all the questions that have not been deleted and append them to a list of 'all questions'. for question in session.query(Question).filter( Question.deleted == False).all(): allQaa.append(question) session.close() return allQaa
def loadAllCourseObjects(): session = server.DBSession() courseObjects = [] # Loop through the courses found in a session which are being offered and append them to a list of course objects. for course in session.query(SessionOffering).all(): courseObjects.append(course) session.close() return courseObjects
def getSurvey(self): session = server.DBSession() surv = session.query(Survey).filter(Survey.key == self.survey).first() currentTime = time.mktime(datetime.datetime.now().timetuple()) if (surv != None and currentTime - surv.createtime > surv.activetime): surv.phase = 3 surv.active = 0 session.close() return surv
def loadSurv(key): session = server.DBSession() survey = session.query(Survey).filter(Survey.key == key).first() currentTime = time.mktime(datetime.datetime.now().timetuple()) if (survey != None and currentTime - survey.createtime > survey.activetime): survey.phase = 3 survey.active = 0 session.close() return survey
def getQuestions(self): allQaa = [] session = server.DBSession() for id in self.questions.keys(): q = session.query(Question).filter(Question.id == id).first() print(q.id) if (q != None): allQaa.append(q) session.close() return allQaa
def toggleAuthenticationUser(userId): session = server.DBSession() user = session.query(User).filter(User.username == userId).first() if (user.authenticated == False): user.authenticated = True user.role = "guest" else: user.authenticated = False user.role = "unassigned" session.add(user) session.commit() session.close()
def loadOptionalQuestions(): optionQaa = [] session = server.DBSession() # Loop through all the optional questions that have not been deleted AND are not compulsory # and append them to a list of 'option questions'. for question in session.query(Question).filter( Question.deleted == False).filter( Question.compulsory == False).all(): optionQaa.append(question) print(question.compulsory) session.close() return optionQaa
def deleteSurvey(course, key): session = server.DBSession() survey = session.query(Survey).filter(Survey.key == key).first() if (course != None): cour = session.query(SessionOffering).filter( SessionOffering.session == course.session).first() if (cour != None): cour.survey = None session.delete(survey) session.commit() session.close()
def forceLogin(userId): global user_role session = server.DBSession() # Access the username from the database. user = session.query(User).filter(User.username == userId).first() user = session.query(eval( user.role.title())).filter(User.username == userId).first() session.close() # Print their user role. server.user = user print(server.user.role) user_role = user.role
def loadAllGuestUsers(): # Create new variables to allow for a new list of users to be added as valid users. session = server.DBSession() unassignedUsers = session.query(User).filter( User.role == "unassigned").all() guestUsers = session.query(User).filter(User.role == "guest").all() allGuestUsers = [] # Append the unassigned users and guest users to the list of permitted users. for user in unassignedUsers: allGuestUsers.append(user) for user in guestUsers: allGuestUsers.append(user) return allGuestUsers
def nextPhaseSurvey(survey): if (len(survey.questions) == 0): raise ValueError session = server.DBSession() survey.phase = survey.phase + 1 if (survey.phase == 2): survey.active = 1 if (survey.phase == 3): survey.active = 0 session.add(survey) session.commit() session.close()
def createSurv(key, active, phase, name, desc): session = server.DBSession() survey = Survey() survey.key = key survey.active = active survey.phase = phase currentTime = time.mktime(datetime.datetime.now().timetuple()) survey.createtime = currentTime survey.name = name survey.desc = desc survey.questions = {} survey.responses = [] session.add(survey) session.commit() session.close() return key
def addQuestion(surveyId, question, admin): # If the question is empty, return an error. if (question == None): raise ValueError session = server.DBSession() survey = session.query(Survey).filter(Survey.key == surveyId).first() # Add the given question into the dictionary of survey questions. temp = dict(survey.questions) temp[question] = admin survey.questions = temp session.add(survey) session.commit() session.close() return 1
def saveResponse(survey, userId, responses): # If the survey is non-existent, return an error. if (survey == None): raise ValueError # If the user's survey response is empty, return an error. if (responses == None or len(responses) != len(survey.questions)): raise ValueError # Loop through the number of questions as this will indicate how long a user's response will be. for i, question in enumerate(survey.getQuestions()): if (responses[i] == '' and question.compulsory): raise ValueError session = server.DBSession() user = session.query(User).filter(User.username == userId).first() # If the user is not registered, return an error. if (user == None): return -1 user = session.query(eval( user.role.title())).filter(User.username == userId).first() if (user == None): return -1 # If the user is not registered, return an error. if (user == None): return -1 userTemp = list(user.surveysResponded) userTemp.append(survey.key) user.surveysResponded = userTemp surveyTemp = list(survey.responses) surveyTemp.append(responses) survey.responses = surveyTemp session.add(user) session.add(survey) session.commit() session.close() forceLogin(userId) return 1
def createGuestRequest(userId, password, courseName): session = server.DBSession() user = session.query(User).filter(User.username == userId).first() if (user != None or user == '' or password == '' or courseName == ''): return -1 u = User() u.username = userId u.password = password # The user role is changed to guest upon approval of their request. u.role = "unassigned" u.courses = [courseName] u.surveysResponded = [] u.authenticated = False session.add(u) session.commit() session.close() return 1
def enrolUserToCourse(userId, courseName): # If the given course name is empty or not in the list of courses... if (courseName == "" or courseName == None): raise ValueError session = server.DBSession() user = session.query(User).filter(User.username == userId).first() # If the user is not in the list of users for the system... if (user == None): return -1 # If the user is already registered in the course, an admin cannot add them to the same course for a second time... if (courseName in user.courses): return 0 # If the information given passes the previous tests, then the user can be added to the course name given. userTemp = list(user.courses) userTemp.append(str(courseName)) user.courses = userTemp session.add(user) session.commit() session.close() return 1
def login(userID, password): global user_role session = server.DBSession() # A user will enter a query in which their username and password need to be validated. user = session.query(User).filter(User.username == userID).first() # Then load the user into an appropriate subclass if (user != None): user = session.query(eval( user.role.title())).filter(User.username == userID).first() session.close() # If the entered username or password is wrong, logout and return an error. if (user == None or user.password != password): logout() return -1 # If the user is still pending approval as a guest, logout and return. if (user.role == "unassigned"): logout() return 0 server.user = user user_role = user.role return user
def loadUser(self, userID): session = server.DBSession() user = session.query(User).filter(User.username == userID).first() session.close() return user
def loadKeyedQuestion(key): session = server.DBSession() q = session.query(Question).filter(Question.id == key).first() session.close() return q
def deleteQuestion(surveyId, key): session = server.DBSession() survey = session.query(Survey).filter(Survey.key == surveyId).first() survey.deleteQuestion(key) session.commit() session.close()
def getCourseFromName(key): session = server.DBSession() course = session.query(SessionOffering).filter( SessionOffering.session == key).first() session.close() return course
def deleteUser(userId): session = server.DBSession() user = session.query(User).filter(User.username == userId).first() session.delete(user) session.commit() session.close()