def _save(self): self.task.description = request.POST['description'] self.task.example_in = request.POST['example_in'] self.task.example_out = request.POST['example_out'] self.task.filetype = request.POST['filetype'] if request.POST['source'] != '': self.task.saveSource(request.POST['source']) for i in range(int(request.POST['count'])): if self.contest.mode == 2: # codex points = request.POST['points['+str(i)+']'] else: points = 0 if request.POST.has_key('file_in['+str(i)+']') and request.POST['file_in['+str(i)+']'] != '': judge = Judge(self.task.id, points=points, time_limit=request.POST['time_limit['+str(i)+']'], memory_limit=request.POST['memory_limit['+str(i)+']']) Session.add(judge) Session.commit() judge.saveFile(request.POST['file_in['+str(i)+']']) elif request.POST.has_key('id['+str(i)+']'): judge = Session.query(Judge).filter_by(id=request.POST['id['+str(i)+']']).one() judge.points = points judge.time_limit = request.POST['time_limit['+str(i)+']'] judge.memory_limit = request.POST['memory_limit['+str(i)+']'] Session.commit() self.task.load()
def save(self): self.auth() id = self.user.id user = Session.query(User).filter_by(id=id).first() l = request.params if l['password'] == l['cpassword'] and l['password'] != "": user.password = hash(l['password']) if l['mail'] != "": user.mail = l['mail'] user.fname = l['fname'] user.lname = l['lname'] user.cls = l['cls'] Session.commit() del session['user'] request.environ['REMOTE_USER'] = user request.environ['REMOTE_USER_NAME'] = session.get('user_name') self.user = user session['user'] = user session.save() return self.index() #redirect_to(controller=None)
def register(self, data): try: Session.add(User(data['login'], data['password'], data['mail'], data['fname'], data['lname'], data['cls'])) Session.commit() except: return False return True
def register(self, data): try: Session.add( User(data['login'], data['password'], data['mail'], data['fname'], data['lname'], data['cls'])) Session.commit() except: return False return True
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 _adminSave(self, id, params): user = Session.query(User).filter_by(id=id).first() user.fname = params['fname'] user.lname = params['lname'] user.mail = params['mail'] user.cls = params['cls'] if params['password'] != '' and params['password'] == params[ 'cpassword']: user.password = hash(params['password']) if params.has_key('admin'): user.admin = True else: user.admin = False Session.commit()
def admin(self, id=None, param=None): self.auth(admin=True) if not id: c.list = self._getContestsList() return render('/admin/contestList.mako') if param=="remove": self._remove(id) return self.toIndex() if param=="reset": self._reset(id) return self.toIndex() if id=="_" and param=="create": id = self._create(request.params['name']) return self.toIndex(id=id) self._loadContest(id) if param=="save": self.contest.name = request.params['contest_name'] self.contest.mode = request.params['mode'] if request.params.has_key('results'): self.contest.results = True else: self.contest.results = False Session.commit() return redirect_to(param=None) if param=="start": self.contest.start() Session.commit() return self.toIndex() if param=="stop": self.contest.stop() Session.commit() return self.toIndex() if param=="create_task": t = Task(self.contest.id, request.params['name']) Session.add(t) Session.commit() return redirect_to(controller="admin", action="task", id=t.id, param=None) c.list = self._loadTasks() c.contest = self.contest return render('/admin/contestTasks.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 commit(self): self._save(self.source) self.datetime = datetime.datetime.now() Session.commit()
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 _create(self, name): c = Contest(name) Session.add(c) Session.commit() return c.id
def _reset(self, id): self._loadContest(id) self.contest.timeStart = None Session.commit()
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()
def _save(self): r = Runner(request.params['lang'], request.params['compile'], request.params['run']) Session.add(r) Session.commit()
def _save(self): r = Runner(request.params['lang'], request.params['compile'], request.params['run']) Session.add(r) Session.commit()
def saveFile(self, file): self.name = file.filename Session.commit() f = open(self._getFileName(), 'w') f.write(file.value)
def commit(self): self._save(self.source) self.datetime = datetime.datetime.now() Session.commit()