def admin(self, id=None, param=None): self.auth(admin=True) if param=="remove": Session.execute(runners_table.delete().where(runners_table.c.id==int(id))) Session.commit() if id=="save": self._save() c.list = Session.query(Runner).all() return render('/admin/runners.mako')
def admin(self, id, param): self.auth(admin=True) if id == "remove" and param: Session.execute( users_table.delete().where(users_table.c.id == int(param))) Session.commit() if id == "save" and param: params = request.params self._adminSave(param, params) return redirect_to(id="edit") if id == "edit" and param: c.user = Session.query(User).filter_by(id=int(param)).first() return render("admin/userEdit.mako") if id == "source_rerun" and param: c.source = Session.query(Source).filter_by(id=int(param)).first() contest = Session.query(Contest).filter_by( id=c.source.contest_id).first() result = c.source.run(contest, Runner, Judge) c.source.status = result['status'] c.source.points = result['points'] c.source.errors = '' sum = len(result['judges']) for i, result in enumerate(result['judges']): c.source.errors += '<li>%s/%s: %s</li>' % (i + 1, sum, result) Session.commit() return redirect_to(id="source_view") if id == "source_view" and param: c.source = Session.query(Source).filter_by(id=int(param)).first() c.user = Session.query(User).filter_by(id=c.source.user_id).first() c.task_name = self._getTaskName(c.source.task_id) return render("admin/viewSource.mako") if id == "sources" and param: c.user = Session.query(User).filter_by(id=int(param)).first() c.sources = Session.query(Source).filter_by( user_id=int(param)).order_by( sources_table.c.datetime.desc()).all() c.getTaskName = self._getTaskName c.taskExists = self._taskExists return render("admin/userSources.mako") c.users = Session.query(User).order_by(users_table.c.lname, users_table.c.fname).all() return render('admin/user.mako')
def admin(self, id=None, param=None): self.auth(admin=True) if param == "remove": Session.execute( runners_table.delete().where(runners_table.c.id == int(id))) Session.commit() if id == "save": self._save() c.list = Session.query(Runner).all() return render('/admin/runners.mako')
def admin(self, id=None, param=None, num=None): self.auth(admin=True) if param=="deljudge" and num is not None: Session.execute(judges_table.delete().where(judges_table.c.id==int(num))) Session.commit() self._load(id) if param=="download": if num is None: download = self.task.source name = str(self.task.id)+"."+self.task.filetype size = self.task.sourceSize() file = download else: download = Session.query(Judge).filter_by(id=num).one() name = download.name size = download.size() file = download.getFile() response.headers['Content-Type'] = "text/plain; name=%s" % (name) response.headers['Content-length'] = "%s" % (size) response.headers['Content-Disposition'] = "attachment; filename= %s" %(name) shutil.copyfileobj(file, response) return if param=="save": self._save() if param=="remove": contest_id = self.task.contest_id self._remove() return redirect_to(action="contest", id=contest_id, param=None) c.task = self.task if self.task.source: c.runner = Session.query(Runner).filter_by(lang=self.task.filetype).one() c.contest = self.contest c.runners = Session.query(Runner).all() return render('/admin/taskEdit.mako')
def _remove(self): Session.execute(tasks_table.delete().where(tasks_table.c.id==self.task.id)) Session.execute(sources_table.delete().where(sources_table.c.task_id==self.task.id)) Session.commit()
def start(self): self.is_running = True Session.execute(sources_table.delete().where(sources_table.c.contest_id==self.id)) self.timeStart = self.getTimeStart()
def _remove(self, id): Session.execute(contests_table.delete().where(contests_table.c.id==int(id))) Session.execute(tasks_table.delete().where(tasks_table.c.contest_id==int(id))) Session.execute(sources_table.delete().where(sources_table.c.contest_id==int(id))) Session.commit()