Description:
assigns all users from on contest list to another
Commit status:
[Not Reviewed]
References:
Diff options:
Comments:
0 Commit comments
0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
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 |
- |
|
|
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