示例#1
0
    def addProjectRating(self, proj_id, user_id, rating):
        log = logging.getLogger('csdt')
        log.info("Project.addProjectRating()")

        # Checks if user has already submitted a rating to the given project. If not, it should return an empty set.
        sql = "SELECT pr.project_id AS project_id, pr.user_id AS user_id, pr.rating AS rating from projects p, project_ratings pr, users u WHERE p.id = pr.project_id AND u.id = pr.user_id AND pr.project_id = %s AND pr.user_id = %s AND u.active = 1 AND p.active = 1;" % (str(proj_id), str(user_id))
        result = database.executeSelectQuery(sql, "one")
        if result is None:
            if int(rating) == 0:
                log.warning("User has returned a 0 rating")
                return

            sql = "INSERT INTO project_ratings (project_id, user_id, rating) VALUES (%s, %s, %s);" % (str(proj_id), str(user_id), str(rating))
            result = database.executeInsertQuery(sql)
            return

        sql = "DELETE FROM project_ratings where project_id = %s AND user_id = %s;" % (str(proj_id), str(user_id))
        result = database.executeDeleteQuery(sql)

        if int(rating) == 0:
            log.warning("User has returned a 0 rating")
            return

        sql = "INSERT INTO project_ratings (project_id, user_id, rating) VALUES (%s, %s, %s);" % (str(proj_id), str(user_id), str(rating))
        result = database.executeInsertQuery(sql)

        return
    def createPublicAccount(self, first_name, last_name, username, password, email):
        log = logging.getLogger('csdt')
        log.info("RegisterPublic.createPublicAccount()")

        # Creates a user
        sql = "INSERT INTO users (first_name, last_name, email) VALUES ('%s', '%s', '%s');" % (str(first_name), str(last_name), str(email))
        user_id = database.executeInsertQuery(sql)
        log.debug("user_id = %s" % user_id)

        # Creates a username
        sql = "INSERT INTO usernames (user_id, username, pass) VALUES (\'%s\', \'%s\', \'%s\');" % (str(user_id), str(username), str(password))
        result = database.executeInsertQuery(sql)

        # Creates a user profile entry
        sql = "INSERT INTO user_profile (user_id, about) VALUES (\'%s\', \'%s\');" % (str(user_id), '')
        result = database.executeInsertQuery(sql)

        return user_id
    def createClass(self, user_id, classname, password, level):
        log = logging.getLogger('csdt')
        log.info("RegisterClass.createClass()")

        # Creates a classroom
        sql = "INSERT INTO classrooms (owner, description, flag_comment_level) VALUES (%s, '%s', %s);" % (str(user_id), "", str(level))
        class_id = database.executeInsertQuery(sql)
        log.debug("class_id = %s" % class_id)

        # Creates a classname
        sql = "INSERT INTO classnames (class_id, classname, pass) VALUES (%s, '%s', '%s');" % (str(class_id), str(classname), str(password))        
        result = database.executeInsertQuery(sql)

        # Creates an association between the user who created the class and the class itself
        sql = "INSERT INTO class_memberships (user_id, class_id, permissions) VALUES (%s, %s, '%s');" % (str(user_id), str(class_id), 't')
        result = database.executeInsertQuery(sql)

        return class_id
    def registerClass(self, user_id, class_id):
        log = logging.getLogger('csdt')
        log.info("RegisterClass.registerClass()")

        # Creates an association as a student of a particular class
        sql = "INSERT INTO class_memberships (user_id, class_id, permissions) VALUES (%s, %s, '%s');" % (str(user_id), str(class_id), 's')
        result = database.executeInsertQuery(sql)
        
        return
    def copyProjectToClass(self, proj_id, class_id): 
        log = logging.getLogger('csdt')
        log.info("AccountProject.copyProjectToClass()")
    
        # Adds the class that the project will be associated with
        sql = "INSERT INTO project_memberships (project_id, class_id) VALUES (%s, %s);" % (str(proj_id), str(class_id))
        result = database.executeInsertQuery(sql)

        return 
示例#6
0
    def addProject(self, user_id, proj_name, description, visible):
        log = logging.getLogger('csdt')
        log.debug("Upload.addProject()")
    
        # Stores details of the project
        sql = "INSERT INTO projects (user_id, proj_name, stored_proj_name, proj_type, description, visible) VALUES (%s, '%s', '%s', '%s', '%s', %s);" % (str(user_id), str(proj_name), "", "", str(description), str(visible))
        project_id = database.executeInsertQuery(sql)
        log.debug("project_id = %s" % project_id)

        return project_id