Show More
Commit Description:
[web] fix time.new, time.now to use gmtime...
Commit Description:
[web] fix time.new, time.now to use gmtime
git-svn-id: http://theory.cpe.ku.ac.th/grader/web/trunk@249 6386c4cd-e34a-4fa8-8920-d93eb39b512e
References:
File last commit:
Show/Diff file:
Action:
app/controllers/problems_controller.rb
| 117 lines
| 2.9 KiB
| text/x-ruby
| RubyLexer
|
|
r0 | class ProblemsController < ApplicationController | ||
before_filter :authenticate, :authorization | ||||
|
r21 | in_place_edit_for :problem, :name | ||
in_place_edit_for :problem, :full_name | ||||
in_place_edit_for :problem, :full_score | ||||
|
r0 | def index | ||
list | ||||
render :action => 'list' | ||||
end | ||||
# GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html) | ||||
verify :method => :post, :only => [ :destroy, :create, :update ], | ||||
:redirect_to => { :action => :list } | ||||
def list | ||||
|
r1 | @problems = Problem.find(:all, :order => 'date_added DESC') | ||
|
r0 | end | ||
def show | ||||
@problem = Problem.find(params[:id]) | ||||
end | ||||
def new | ||||
@problem = Problem.new | ||||
|
r92 | @description = nil | ||
|
r0 | end | ||
def create | ||||
@problem = Problem.new(params[:problem]) | ||||
|
r92 | @description = Description.new(params[:description]) | ||
if @description.body!='' | ||||
if !@description.save | ||||
render :action => new and return | ||||
end | ||||
else | ||||
@description = nil | ||||
end | ||||
@problem.description = @description | ||||
|
r0 | if @problem.save | ||
flash[:notice] = 'Problem was successfully created.' | ||||
redirect_to :action => 'list' | ||||
else | ||||
render :action => 'new' | ||||
end | ||||
end | ||||
def edit | ||||
@problem = Problem.find(params[:id]) | ||||
|
r92 | @description = @problem.description | ||
|
r0 | end | ||
def update | ||||
@problem = Problem.find(params[:id]) | ||||
|
r92 | @description = @problem.description | ||
if @description == nil and params[:description][:body]!='' | ||||
@description = Description.new(params[:description]) | ||||
if !@description.save | ||||
flash[:notice] = 'Error saving description' | ||||
render :action => 'edit' and return | ||||
end | ||||
@problem.description = @description | ||||
elsif @description!=nil | ||||
if !@description.update_attributes(params[:description]) | ||||
flash[:notice] = 'Error saving description' | ||||
render :action => 'edit' and return | ||||
end | ||||
end | ||||
|
r0 | if @problem.update_attributes(params[:problem]) | ||
flash[:notice] = 'Problem was successfully updated.' | ||||
redirect_to :action => 'show', :id => @problem | ||||
else | ||||
render :action => 'edit' | ||||
end | ||||
end | ||||
def destroy | ||||
Problem.find(params[:id]).destroy | ||||
redirect_to :action => 'list' | ||||
end | ||||
def toggle_avail | ||||
problem = Problem.find(params[:id]) | ||||
problem.available = !(problem.available) | ||||
problem.save | ||||
redirect_to :action => 'list' | ||||
end | ||||
|
r56 | def turn_all_off | ||
Problem.find(:all, | ||||
:conditions => "available = 1").each do |problem| | ||||
problem.available = false | ||||
problem.save | ||||
end | ||||
redirect_to :action => 'list' | ||||
end | ||||
|
r101 | def turn_all_on | ||
Problem.find(:all, | ||||
:conditions => "available = 0").each do |problem| | ||||
problem.available = true | ||||
problem.save | ||||
end | ||||
redirect_to :action => 'list' | ||||
end | ||||
|
r0 | def stat | ||
@problem = Problem.find(params[:id]) | ||||
|
r100 | if !@problem.available | ||
redirect_to :controller => 'main', :action => 'list' | ||||
else | ||||
@submissions = Submission.find_all_last_by_problem(params[:id]) | ||||
end | ||||
|
r0 | end | ||
end | ||||