def getInfo(self): self.setTables() data = self.dict() data["schemas"] = self.getMapInfo() data["originalnum"] = session.query(self.original).count() data["parsednum"] = session.query(self.parsed).count() data["tasknum"] = session.query(self.task).count() return data
def getEvaluateAll(userid): tasks = session.query(Task).all() evlist = [] for task in tasks: task.setTables() pslist = session.query(task.parsed).filter(task.parsed.evaluatorid == userid).all() for parsed in pslist: p = parsed.dict() p["taskprefix"] = task.prefix p["taskname"] = task.name evlist.append(p) return evlist
def getSubmitInfo(self): info = self.dict() submitinfo = dict(parsed = 0, taskdata = 0) for en in self.enrolls: en.task.setTables() submitinfo["parsed"] += session.query(en.task.parsed).filter(en.task.parsed.submitterid == self.id).count() ps = session.query(en.task.parsed).filter(en.task.parsed.submitterid == self.id).filter(en.task.parsed.status == u"Evaluated").all() for p in ps: submitinfo["taskdata"] += len(p.tasks) info["submitinfo"] = submitinfo return info
def login(loginid, password): user = session.query(User).filter(User.loginid == loginid).first() if user and user.checkPassword(password) : return user else : return None
def setScore(self): sums = list() for en in self.enrolls: en.task.setTables() ps = session.query(en.task.parsed).filter(en.task.parsed.submitterid == self.id).filter(en.task.parsed.status == u"Evaluated").all() for p in ps: sums.append(p.score) self.score = sum(sums)/len(sums)
def deleteUser(user): for en in user.enrolls: en.task.setTables() ps = session.query(en.task.parsed).filter(en.task.parsed.submitterid == user.id).all() for p in ps: for t in p.tasks: session.delete(t) session.delete(p) for e in user.enrolls : session.delete(e) session.delete(user) session.commit()
def getSubmitters(self): us = ( session.query(User, Enroll.status) .join(User.enrolls) .join(Enroll.task) .filter(User.role == u"제출자") .filter(Task.prefix == self.prefix) .all() ) submitters = list() for user, status in us: u = user.dict() u["status"] = status submitters.append(u) return submitters
def randomEvaluator(): maxnum = session.query(User).filter(User.role == u"평가자").count() if maxnum == 0: return session.query(User).filter(User.role == u"관리자").first() return session.query(User).filter(User.role == u"평가자")[random.randrange(0,maxnum)]
def getTask(prefix): task = session.query(Task).filter(Task.prefix == prefix).first() if task: task.setTables() return task
def getParsedNumBySubmitter(self, user): return session.query(self.parsed).filter(self.parsed.submitterid == user.id).order_by(self.parsed.id).count()
def getParsed(self, id): return session.query(self.parsed).get(id)
def getTaskDatas(self): return session.query(self.task).order_by(self.task.id).all()
def getParseds(self): return session.query(self.parsed).order_by(self.parsed.id).all()
def getOriginal(self, id): return session.query(self.original).get(id)
def getOriginals(self): return session.query(self.original).order_by(self.original.id).all()
def getUser(id): return session.query(User).get(id)
def getUsers(): return session.query(User).order_by(User.id).all()
def checkPrefix(prefix): return session.query(Task).filter(Task.prefix == prefix).count() != 0
def getTasks(start=0, end=10): return session.query(Task).order_by(Task.prefix)[start:end]
def getNextnth(self,user): nth = session.query( func.max(self.parsedclass.nth)).filter(self.parsedclass.originalid == self.id).filter(self.parsedclass.submitterid == user.id).first() if nth[0]: return nth[0] +1 else : return 1