Description:
fix destroy for user and problem
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r605:1317cbdbc3df - - 2 files changed: 3 inserted, 4 deleted

@@ -1,63 +1,62
1 1 class ProblemsController < ApplicationController
2 2
3 3 before_filter :authenticate, :authorization
4 4
5 5 in_place_edit_for :problem, :name
6 6 in_place_edit_for :problem, :full_name
7 7 in_place_edit_for :problem, :full_score
8 8
9 9 def index
10 10 @problems = Problem.find(:all, :order => 'date_added DESC')
11 11 end
12 12
13 13 # GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
14 - verify :method => :post, :only => [ :destroy,
15 - :create, :quick_create,
14 + verify :method => :post, :only => [ :create, :quick_create,
16 15 :do_manage,
17 16 :do_import,
18 17 ],
19 18 :redirect_to => { :action => :index }
20 19
21 20 def show
22 21 @problem = Problem.find(params[:id])
23 22 end
24 23
25 24 def new
26 25 @problem = Problem.new
27 26 @description = nil
28 27 end
29 28
30 29 def create
31 30 @problem = Problem.new(params[:problem])
32 31 @description = Description.new(params[:description])
33 32 if @description.body!=''
34 33 if !@description.save
35 34 render :action => new and return
36 35 end
37 36 else
38 37 @description = nil
39 38 end
40 39 @problem.description = @description
41 40 if @problem.save
42 41 flash[:notice] = 'Problem was successfully created.'
43 42 redirect_to action: :index
44 43 else
45 44 render :action => 'new'
46 45 end
47 46 end
48 47
49 48 def quick_create
50 49 @problem = Problem.new(params[:problem])
51 50 @problem.full_name = @problem.name if @problem.full_name == ''
52 51 @problem.full_score = 100
53 52 @problem.available = false
54 53 @problem.test_allowed = true
55 54 @problem.output_only = false
56 55 @problem.date_added = Time.new
57 56 if @problem.save
58 57 flash[:notice] = 'Problem was successfully created.'
59 58 redirect_to action: :index
60 59 else
61 60 flash[:notice] = 'Error saving problem'
62 61 redirect_to action: :index
63 62 end
@@ -70,97 +69,97
70 69
71 70 def update
72 71 @problem = Problem.find(params[:id])
73 72 @description = @problem.description
74 73 if @description.nil? and params[:description][:body]!=''
75 74 @description = Description.new(params[:description])
76 75 if !@description.save
77 76 flash[:notice] = 'Error saving description'
78 77 render :action => 'edit' and return
79 78 end
80 79 @problem.description = @description
81 80 elsif @description
82 81 if !@description.update_attributes(params[:description])
83 82 flash[:notice] = 'Error saving description'
84 83 render :action => 'edit' and return
85 84 end
86 85 end
87 86 if params[:file] and params[:file].content_type != 'application/pdf'
88 87 flash[:notice] = 'Error: Uploaded file is not PDF'
89 88 render :action => 'edit' and return
90 89 end
91 90 if @problem.update_attributes(params[:problem])
92 91 flash[:notice] = 'Problem was successfully updated.'
93 92 unless params[:file] == nil or params[:file] == ''
94 93 flash[:notice] = 'Problem was successfully updated and a new PDF file is uploaded.'
95 94 out_dirname = "#{Problem.download_file_basedir}/#{@problem.id}"
96 95 if not FileTest.exists? out_dirname
97 96 Dir.mkdir out_dirname
98 97 end
99 98
100 99 out_filename = "#{out_dirname}/#{@problem.name}.pdf"
101 100 if FileTest.exists? out_filename
102 101 File.delete out_filename
103 102 end
104 103
105 104 File.open(out_filename,"wb") do |file|
106 105 file.write(params[:file].read)
107 106 end
108 107 @problem.description_filename = "#{@problem.name}.pdf"
109 108 @problem.save
110 109 end
111 110 redirect_to :action => 'show', :id => @problem
112 111 else
113 112 render :action => 'edit'
114 113 end
115 114 end
116 115
117 116 def destroy
118 - Problem.find(params[:id]).destroy
117 + p = Problem.find(params[:id]).destroy
119 118 redirect_to action: :index
120 119 end
121 120
122 121 def toggle
123 122 @problem = Problem.find(params[:id])
124 123 @problem.update_attributes(available: !(@problem.available) )
125 124 respond_to do |format|
126 125 format.js { }
127 126 end
128 127 end
129 128
130 129 def toggle_test
131 130 @problem = Problem.find(params[:id])
132 131 @problem.update_attributes(test_allowed: !(@problem.test_allowed?) )
133 132 respond_to do |format|
134 133 format.js { }
135 134 end
136 135 end
137 136
138 137 def turn_all_off
139 138 Problem.find(:all,
140 139 :conditions => "available = 1").each do |problem|
141 140 problem.available = false
142 141 problem.save
143 142 end
144 143 redirect_to action: :index
145 144 end
146 145
147 146 def turn_all_on
148 147 Problem.find(:all,
149 148 :conditions => "available = 0").each do |problem|
150 149 problem.available = true
151 150 problem.save
152 151 end
153 152 redirect_to action: :index
154 153 end
155 154
156 155 def stat
157 156 @problem = Problem.find(params[:id])
158 157 unless @problem.available or session[:admin]
159 158 redirect_to :controller => 'main', :action => 'list'
160 159 return
161 160 end
162 161 @submissions = Submission.includes(:user).where(problem_id: params[:id]).order(:user_id,:id)
163 162
164 163 #stat summary
165 164 range =65
166 165 @histogram = { data: Array.new(range,0), summary: {} }
@@ -1,58 +1,58
1 1 require 'csv'
2 2
3 3 class UserAdminController < ApplicationController
4 4
5 5 include MailHelperMethods
6 6
7 7 before_filter :admin_authorization
8 8
9 9 # GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
10 - verify :method => :post, :only => [ :destroy,
10 + verify :method => :post, :only => [
11 11 :create, :create_from_list,
12 12 :update,
13 13 :manage_contest,
14 14 :bulk_mail
15 15 ],
16 16 :redirect_to => { :action => :list }
17 17
18 18 def index
19 19 @user_count = User.count
20 20 if params[:page] == 'all'
21 21 @users = User.all
22 22 @paginated = false
23 23 else
24 24 @users = User.paginate :page => params[:page]
25 25 @paginated = true
26 26 end
27 27 @hidden_columns = ['hashed_password', 'salt', 'created_at', 'updated_at']
28 28 @contests = Contest.enabled
29 29 end
30 30
31 31 def active
32 32 sessions = ActiveRecord::SessionStore::Session.find(:all, :conditions => ["updated_at >= ?", 60.minutes.ago])
33 33 @users = []
34 34 sessions.each do |session|
35 35 if session.data[:user_id]
36 36 @users << User.find(session.data[:user_id])
37 37 end
38 38 end
39 39 end
40 40
41 41 def show
42 42 @user = User.find(params[:id])
43 43 end
44 44
45 45 def new
46 46 @user = User.new
47 47 end
48 48
49 49 def create
50 50 @user = User.new(params[:user])
51 51 @user.activated = true
52 52 if @user.save
53 53 flash[:notice] = 'User was successfully created.'
54 54 redirect_to :action => 'index'
55 55 else
56 56 render :action => 'new'
57 57 end
58 58 end
You need to be logged in to leave comments. Login now