Show More
Commit Description:
associate logins with users
Commit Description:
associate logins with users
References:
File last commit:
Show/Diff file:
Action:
app/controllers/graders_controller.rb | 119 lines | 3.5 KiB | text/x-ruby | RubyLexer |
jittat
started grader_process...
r29 class GradersController < ApplicationController
jittat
add grader list...
r32
prepare for better hall of fame
r425 before_filter :admin_authorization, except: [ :submission ]
before_filter(only: [:submission]) {
return false unless authenticate
if GraderConfiguration["right.user_view_submission"]
return true;
end
admin_authorization
}
jittat
[web] updated grader monitoring...
r105
jittat
added more grader control...
r203 verify :method => :post, :only => ['clear_all',
'start_exam',
'start_grading',
'stop_all',
'clear_terminated'],
jittat
[web] updated grader monitoring...
r105 :redirect_to => {:action => 'index'}
def index
redirect_to :action => 'list'
end
jittat
add grader list...
r32
def list
jittat
updated grader list page...
r175 @grader_processes = GraderProcess.find_running_graders
jittat
add grader list...
r32 @stalled_processes = GraderProcess.find_stalled_process
jittat
updated grader list page...
r175
@terminated_processes = GraderProcess.find_terminated_graders
jittat
[web] more info on grader queues...
r127
@last_task = Task.find(:first,
:order => 'created_at DESC')
@last_test_request = TestRequest.find(:first,
:order => 'created_at DESC')
add last 20 submissions status
r461 @submission = Submission.order("id desc").limit(20)
jittat
add grader list...
r32 end
def clear
grader_proc = GraderProcess.find(params[:id])
grader_proc.destroy if grader_proc!=nil
redirect_to :action => 'list'
end
jittat
updated grader list page...
r175 def clear_terminated
GraderProcess.find_terminated_graders.each do |p|
p.destroy
end
redirect_to :action => 'list'
end
jittat
[web] updated grader monitoring...
r105 def clear_all
GraderProcess.find(:all).each do |p|
p.destroy
end
redirect_to :action => 'list'
end
def view
if params[:type]=='Task'
redirect_to :action => 'task', :id => params[:id]
else
redirect_to :action => 'test_request', :id => params[:id]
end
end
def test_request
@test_request = TestRequest.find(params[:id])
end
def task
@task = Task.find(params[:id])
end
def submission
@submission = Submission.find(params[:id])
add syntax highlighter for submission view using Rouge gem
r420 formatter = Rouge::Formatters::HTML.new(css_class: 'highlight', line_numbers: true )
lexer = case @submission.language.name
when "c" then Rouge::Lexers::C.new
when "cpp" then Rouge::Lexers::Cpp.new
when "pas" then Rouge::Lexers::Pas.new
when "ruby" then Rouge::Lexers::Ruby.new
when "python" then Rouge::Lexers::Python.new
when "java" then Rouge::Lexers::Java.new
add lexer for php
r451 when "php" then Rouge::Lexers::PHP.new
add syntax highlighter for submission view using Rouge gem
r420 end
@formatted_code = formatter.format(lexer.lex(@submission.source))
@css_style = Rouge::Themes::ThankfulEyes.render(scope: '.highlight')
jittat
[web] updated grader monitoring...
r105 end
jittat
added first grader script calls from web (to stop grader)...
r202 # various grader controls
def stop
grader_proc = GraderProcess.find(params[:id])
jittat
added more grader control...
r203 GraderScript.stop_grader(grader_proc.pid)
flash[:notice] = 'Grader stopped. It may not disappear now, but it should disappear shortly.'
redirect_to :action => 'list'
end
def stop_all
GraderScript.stop_graders(GraderProcess.find_running_graders +
GraderProcess.find_stalled_process)
flash[:notice] = 'Graders stopped. They may not disappear now, but they should disappear shortly.'
jittat
added first grader script calls from web (to stop grader)...
r202 redirect_to :action => 'list'
end
jittat
added more grader control...
r203 def start_grading
GraderScript.start_grader('grading')
flash[:notice] = '2 graders in grading env started, one for grading queue tasks, another for grading test request'
redirect_to :action => 'list'
end
jittat
added first grader script calls from web (to stop grader)...
r202
jittat
added more grader control...
r203 def start_exam
GraderScript.start_grader('exam')
flash[:notice] = '2 graders in grading env started, one for grading queue tasks, another for grading test request'
redirect_to :action => 'list'
jittat
added first grader script calls from web (to stop grader)...
r202 end
jittat
started grader_process...
r29 end