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')
Esempio n. 2
0
    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')
Esempio n. 3
0
    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()
Esempio n. 6
0
	def start(self):
		self.is_running = True
		Session.execute(sources_table.delete().where(sources_table.c.contest_id==self.id))
		self.timeStart = self.getTimeStart()
Esempio n. 7
0
	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()