Пример #1
0
def associateCourse(course, key):
    session = server.DBSession()

    course.survey = key

    session.add(course)
    session.commit()
    session.close()
Пример #2
0
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
Пример #3
0
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
Пример #4
0
 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
Пример #5
0
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
Пример #6
0
    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
Пример #7
0
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()
Пример #8
0
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
Пример #9
0
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()
Пример #10
0
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
Пример #11
0
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
Пример #12
0
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()
Пример #13
0
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
Пример #14
0
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
Пример #15
0
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
Пример #16
0
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
Пример #17
0
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
Пример #18
0
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
Пример #19
0
    def loadUser(self, userID):
        session = server.DBSession()

        user = session.query(User).filter(User.username == userID).first()
        session.close()
        return user
Пример #20
0
def loadKeyedQuestion(key):
    session = server.DBSession()
    q = session.query(Question).filter(Question.id == key).first()
    session.close()
    return q
Пример #21
0
def deleteQuestion(surveyId, key):
    session = server.DBSession()
    survey = session.query(Survey).filter(Survey.key == surveyId).first()
    survey.deleteQuestion(key)
    session.commit()
    session.close()
Пример #22
0
def getCourseFromName(key):
    session = server.DBSession()
    course = session.query(SessionOffering).filter(
        SessionOffering.session == key).first()
    session.close()
    return course
Пример #23
0
def deleteUser(userId):
    session = server.DBSession()
    user = session.query(User).filter(User.username == userId).first()
    session.delete(user)
    session.commit()
    session.close()