Commit b0348f2c5da83dca912de7edcfe5dd8b877b4471
1 parent
8d3bc892
Exists in
staging
and in
42 other branches
Makes it possible for the admin to see pending submissions
Showing
4 changed files
with
48 additions
and
2 deletions
Show diff stats
plugins/custom_forms/controllers/custom_forms_plugin_myprofile_controller.rb
| ... | ... | @@ -93,6 +93,14 @@ class CustomFormsPluginMyprofileController < MyProfileController |
| 93 | 93 | @form = @submission.form |
| 94 | 94 | end |
| 95 | 95 | |
| 96 | + def pending | |
| 97 | + @form = CustomFormsPlugin::Form.find(params[:id]) | |
| 98 | + @pendings = CustomFormsPlugin::AdmissionSurvey.from(@form.profile).pending.select {|task| task.form_id == @form.id}.map {|a| {:profile => a.target, :time => a.created_at} } | |
| 99 | + | |
| 100 | + @sort_by = params[:sort_by] | |
| 101 | + @pendings = @pendings.sort_by { |s| s[:profile].name } if @sort_by == 'user' | |
| 102 | + end | |
| 103 | + | |
| 96 | 104 | private |
| 97 | 105 | |
| 98 | 106 | def normalize_positions(form) | ... | ... |
plugins/custom_forms/test/functional/custom_forms_plugin_myprofile_controller_test.rb
| ... | ... | @@ -216,5 +216,14 @@ class CustomFormsPluginMyprofileControllerTest < ActionController::TestCase |
| 216 | 216 | assert_not_nil assigns(:sort_by) |
| 217 | 217 | assert_select 'table.action-table', /Author\W*Time\W*bob[\W\dh]*john[\W\dh]*/ |
| 218 | 218 | end |
| 219 | -end | |
| 220 | 219 | |
| 220 | + should 'list pending submissions for a form' do | |
| 221 | + person = fast_create(Person) | |
| 222 | + form = CustomFormsPlugin::Form.create!(:profile => profile, :name => 'Free Software', :for_admission => true) | |
| 223 | + task = CustomFormsPlugin::AdmissionSurvey.create!(:form_id => form.id, :target => person, :requestor => profile) | |
| 224 | + | |
| 225 | + get :pending, :profile => profile.identifier, :id => form.id | |
| 226 | + | |
| 227 | + assert_tag :td, :content => person.name | |
| 228 | + end | |
| 229 | +end | ... | ... |
plugins/custom_forms/views/custom_forms_plugin_myprofile/index.html.erb
| ... | ... | @@ -17,7 +17,9 @@ |
| 17 | 17 | <td><%= access_text(form) %></td> |
| 18 | 18 | <td class="actions"> |
| 19 | 19 | <%= button_without_text :edit, _('Edit'), :action => 'edit', :id => form.id %> |
| 20 | - <%= button_without_text :remove, _('Remove'), {:action => 'remove', :id => form.id}, :confirm => _('Are you sure you want to remove this form?') %></td> | |
| 20 | + <%= button_without_text :remove, _('Remove'), {:action => 'remove', :id => form.id}, :confirm => _('Are you sure you want to remove this form?') %> | |
| 21 | + <%= button_without_text :search, _('Pending'), :action => 'pending', :id => form.id if form.for_admission %> | |
| 22 | + </td> | |
| 21 | 23 | </tr> |
| 22 | 24 | <% end %> |
| 23 | 25 | <tr id="new-item"> | ... | ... |
plugins/custom_forms/views/custom_forms_plugin_myprofile/pending.html.erb
0 → 100644
| ... | ... | @@ -0,0 +1,27 @@ |
| 1 | +<% self.extend CustomFormsPlugin::Helper %> | |
| 2 | + | |
| 3 | +<h1><%= _('Pending submissions for %s') % @form.name %></h1> | |
| 4 | + | |
| 5 | +<% if @pendings.empty? %> | |
| 6 | + <%= _('There are no pending submissions for this form.') %> | |
| 7 | +<% else %> | |
| 8 | + <p> | |
| 9 | + <%= labelled_select(_('Sort by')+': ', :sort_by, :first, :last, @sort_by, [['time', _('Time')], ['user', _('User')]], :onchange => 'document.location.href = "?sort_by="+this.value') %> | |
| 10 | + </p> | |
| 11 | + <table class="action-table"> | |
| 12 | + <tr> | |
| 13 | + <th style='width: 50%'><%= _('User') %></th> | |
| 14 | + <th style='width: 50%'><%= _('Time') %></th> | |
| 15 | + </tr> | |
| 16 | + <% @pendings.each do |pending| %> | |
| 17 | + <tr> | |
| 18 | + <td><%= link_to(pending[:profile].name, {:controller => :profile, :profile => pending[:profile].identifier}) %></td> | |
| 19 | + <td><%= time_format(pending[:time]) %></td> | |
| 20 | + </tr> | |
| 21 | + <% end %> | |
| 22 | + </table> | |
| 23 | +<% end %> | |
| 24 | + | |
| 25 | +<% button_bar do %> | |
| 26 | + <%= button :back, _('Back to forms'), :action => 'index' %> | |
| 27 | +<% end %> | ... | ... |