예제 #1
0
	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()
예제 #2
0
	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
예제 #4
0
    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
예제 #5
0
	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')
예제 #6
0
	def _create(self, name):
		c = Contest(name)
		Session.add(c)
		Session.commit()
		return c.id
예제 #7
0
 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()