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 _upload(self): if request.POST['type']: response.set_cookie('source_type', request.POST['type']) try: file = request.POST['source'] if request.POST['type'] != '*': file.filename += "."+request.POST['type'] size = len(file.value) fileName = file.filename.replace(" ", "_").encode('ascii', 'ignore') fileValue = file.value except: if request.POST['code'] != '' and request.POST['type'] != '*': fileName = b16encode(request.POST['code'])[:16]+"."+request.POST['type'] fileValue = request.POST['code'] size = len(fileValue) else: return False if size>1024*10: # 10 kB return False if not self.source: self.source = Source(self.task.contest_id, self.task.id, self.user.id, fileName) Session.add(self.source) self.source.file = fileName self.source.source = fileValue self.source.commit() 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 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 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 _create(self, name): c = Contest(name) Session.add(c) Session.commit() return c.id
def _save(self): r = Runner(request.params['lang'], request.params['compile'], request.params['run']) Session.add(r) Session.commit()