Description:
assigns all users from on contest list to another
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r298:e6c044028e60 - - 2 files changed: 40 inserted, 15 deleted

@@ -157,17 +157,27
157 157 # contest management
158 158
159 159 def contests
160 - if params[:id]!='none'
161 - @contest = Contest.find(params[:id])
162 - else
163 - @contest = nil
160 + @contest, @users = find_contest_and_user_from_contest_id(params[:id])
161 + @contests = Contest.enabled
162 + end
163 +
164 + def assign_from_list
165 + contest_id = params[:users_contest_id]
166 + org_contest, users = find_contest_and_user_from_contest_id(contest_id)
167 + contest = Contest.find(params[:new_contest][:id])
168 + if !contest
169 + flash[:notice] = 'Error: no contest'
170 + redirect_to :action => 'contests', :id =>contest_id
164 171 end
165 - if @contest
166 - @users = @contest.users
167 - else
168 - @users = User.find_users_with_no_contest
172 +
173 + note = []
174 + users.each do |u|
175 + u.contests = [contest]
176 + note << u.login
169 177 end
170 - @contests = Contest.enabled
178 + flash[:notice] = 'User(s) ' + note.join(', ') +
179 + " were successfully reassigned to #{contest.title}."
180 + redirect_to :action => 'contests', :id =>contest.id
171 181 end
172 182
173 183 def add_to_contest
@@ -379,4 +389,18
379 389 logger.info body
380 390 send_mail(user.email, subject, body)
381 391 end
392 +
393 + def find_contest_and_user_from_contest_id(id)
394 + if id!='none'
395 + @contest = Contest.find(id)
396 + else
397 + @contest = nil
398 + end
399 + if @contest
400 + @users = @contest.users
401 + else
402 + @users = User.find_users_with_no_contest
403 + end
404 + return [@contest, @users]
405 + end
382 406 end
@@ -14,6 +14,13
14 14 <% end %>
15 15 <%= link_to "[no contest]", :action => 'contests', :id => 'none' %>
16 16 <% end %>
17 + <br/>
18 + <% form_tag :action => 'assign_from_list' do %>
19 + <%= hidden_field_tag 'users_contest_id', (@contest ? @contest.id : 'none') %>
20 + Assign all to
21 + <%= select("new_contest","id",Contest.all.collect {|c| [c.title, c.id]}) %>
22 + <%= submit_tag "Assign", :confirm => 'Are you sure?' %>
23 + <% end %>
17 24 </div>
18 25
19 26 <table class="info">
@@ -57,9 +64,3
57 64 </tr>
58 65 <% end %>
59 66 </table>
60 -
61 -
62 - <br />
63 -
64 - <%= link_to 'New user', :action => 'new' %>
65 - <%= link_to 'New list of users', :action => 'new_list' %>
You need to be logged in to leave comments. Login now