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

@@ -148,35 +148,45
148 148 password = random_password
149 149 user.password = password
150 150 user.password_confirmation = password
151 151 user.save
152 152 end
153 153 @changed = true
154 154 end
155 155 end
156 156
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
174 184 user = User.find(params[:id])
175 185 contest = Contest.find(params[:contest_id])
176 186 if user and contest
177 187 user.contests << contest
178 188 end
179 189 redirect_to :action => 'list'
180 190 end
181 191
182 192 def remove_from_contest
@@ -370,13 +380,27
370 380 subject = t('contest.notification.email_subject', {
371 381 :contest_title_name => contest_title_name,
372 382 :contest_name => contest_name })
373 383 body = t('contest.notification.email_body', {
374 384 :full_name => user.full_name,
375 385 :contest_title_name => contest_title_name,
376 386 :contest_name => contest.name,
377 387 })
378 388
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
@@ -5,24 +5,31
5 5
6 6 <div class="submitbox">
7 7 <%= link_to '[View all users]', :action => 'list' %>
8 8 <% if Configuration.multicontests? %>
9 9 <%= link_to '[Manage bulk users in contests]', :action => 'contest_management' %>
10 10 <br/>
11 11 View users in:
12 12 <% @contests.each do |contest| %>
13 13 <%= link_to "[#{contest.name}]", :action => 'contests', :id => contest.id %>
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">
20 27 <tr class="info-head">
21 28 <th>Login</th>
22 29 <th>Full name</th>
23 30 <th>Email</th>
24 31 <th>Activated?</th>
25 32 <th></th>
26 33 <th></th>
27 34 <th></th>
28 35 <% if Configuration.multicontests? %>
@@ -48,18 +55,12
48 55 </td>
49 56 <td>
50 57 <% @contests.each do |contest| %>
51 58 <% if not user.contests.all.find {|c| c.id==contest.id } %>
52 59 <%= contest.name %> [<%= link_to '+', :action => 'add_to_contest', :id => user.id, :contest_id => contest.id %>]
53 60 <% end %>
54 61 <% end %>
55 62 </td>
56 63 <% end %>
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