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
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