def sbsubmitoriginal(): data = request.form task = Task.getTask(data["prefix"]) user = User.getUser(session["userid"]) original = task.getOriginal(data["id"]) try: if request.files["file"].filename[-3:] == "csv": csv = request.files["file"].stream original.loadcsv( user, csv, original.getNextnth(user), datetime.strptime(data["duration_start"], "%a %b %d %Y").date(), datetime.strptime(data["duration_end"], "%a %b %d %Y").date(), ) elif request.files["file"].filename[-4:] == "xlsx": xlsx = request.files["file"].stream original.loadxlsx( user, xlsx, original.getNextnth(user), datetime.strptime(data["duration_start"], "%a %b %d %Y").date(), datetime.strptime(data["duration_end"], "%a %b %d %Y").date(), ) else: return jsonify({"code": "err", "msg": "Wrong extension"}) except: return jsonify({"code": "err", "msg": "Wrong extension"}) return jsonify({"code": "success"})
def parsecsv(self): csvread = io.StringIO(self.file.decode("utf8")) reader = csv.reader(utf_8_encoder(csvread), delimiter=',', quotechar="'") parsedlist = list() for row in reader: tsmodel = self.taskclass(User.getUser(self.submitterid).name, self.id) for (column, data) in zip(filter(lambda x: x.name[:3] == u"sch", inspect(self.taskclass).columns ), row): if type(column.type) == INTEGER: try : setattr(tsmodel,column.name, int(data)) except : setattr(tsmodel,column.name, None) elif type(column.type) == DATETIME: try : setattr(tsmodel,column.name, datetime.strptime( data, "%Y-%m-%d %H:%M")) except : setattr(tsmodel,column.name, None) else : setattr(tsmodel,column.name, data) parsedlist.append(tsmodel) return parsedlist
def sbparsedlist(): data = request.get_json() task = Task.getTask(data["prefix"]) user = User.getUser(session["userid"]) parsedlist = task.getParsedBySubmitter(user) if task: return jsonify({"code": "success", "parsedlist": map(lambda x: x.dict(), parsedlist)}) else: return jsonify({"code": "err", "msg": "No task"})
def usedit(): data = request.get_json() user = User.getUser(session["userid"]) if "password" in data : user.editInfo(name = data["name"],password = data["password"], gender= data["gender"], address= data["address"], birth= data["birth"], cellphone= data["cellphone"]) else : user.editInfo(name = data["name"],password = "", gender= data["gender"], address= data["address"], birth= data["birth"], cellphone= data["cellphone"]) return jsonify({"code" : "success"})
def dict(self): return { "id" : self.id, "nth" : self.nth, "tuplenum" : self.tuplenum, "duplicatetuplenum" : self.duplicatetuplenum, "duration_start" : self.duration_start.isoformat(), "duration_end" : self.duration_end.isoformat(), "status" : self.status, "score" : self.score, "pnp" : self.pnp, "submitter" : User.getUser(self.submitterid).name, "original" : self.original.name, "evaluator": User.getUser(self.evaluatorid).name, "nullratio" : self.nullInfo() }
def sboriginal(): data = request.get_json() task = Task.getTask(data["prefix"]) user = User.getUser(session["userid"]) original = task.getOriginal(data["id"]) if task: json = original.getInfoByUser(user) return jsonify({"code": "success", "original": json}) else: return jsonify({"code": "err", "msg": "No task"})
def index(): if "logged_in" in session and session["logged_in"]: user = User.getUser(session["userid"]) if user.role == u"관리자": return render_template("admin.html") elif user.role == u"제출자": return render_template("submitter.html") elif user.role == u"평가자": return render_template("evaluator.html") return render_template("home.html")
def evsubmitevaluate(): data = request.get_json() task = Task.getTask(data["prefix"]) parsed = task.getParsed(data["id"]) if data["pass"]: parsed.evaluate(data["score"], "Pass") user = User.getUser(parsed.submitterid).setScore() parsed.insertcsv() else: parsed.evaluate(data["score"], "Nonpass") return jsonify({"code": "success"})
def sbapply(): data = request.get_json() task = Task.getTask(data["prefix"]) user = User.getUser(session["userid"]) if task: task.addUser(user) json = task.dict() json["originals"] = map(lambda x: x.dict(), task.getOriginals()) json["originalnum"] = len(json["originals"]) json["enrolled"] = task.checkUser(session["userid"]) return jsonify({"code": "success", "task": json}) else: return jsonify({"code": "err", "msg": "No task"})
def sbtask(): data = request.get_json() task = Task.getTask(data["prefix"]) user = User.getUser(session["userid"]) if task: json = task.dict() status = task.checkUserStatus(session["userid"]) if task.status == "Stop": status = "Stop" json["originals"] = map(lambda x: x.dict(), task.getOriginals()) json["originalnum"] = len(json["originals"]) json["enrolled"] = task.checkUser(session["userid"]) json["status"] = status json["parsednum"] = task.getParsedNumBySubmitter(user) json["submitok"] = status == "Approved" return jsonify({"code": "success", "task": json}) else: return jsonify({"code": "err", "msg": "No task"})
def sbgetinfo(): user = User.getUser(session["userid"]) return jsonify({"user": user.getSubmitInfo()})
def sbsubmit(start=0, end=10): user = User.getUser(session["userid"]) return jsonify({"tasks": user.enrollStatus()})
def usdelete(): user = User.getUser(session["userid"]) User.deleteUser(user) return logout()
def usinfo(): user = User.getUser(session["userid"]) return jsonify({"code" : "success", "user" : user.dict()})
def user(): data = request.get_json() user = User.getUser(data["id"]) return jsonify({"user" : user.dict()})