Ticket 91 (Open)

Created: by Isaac Foraker Mar 04, 2008
Severity: Minor Problem (3 of 5)
Priority: Low (1 of 4)
Attached: Plus Nothing
Assigned: to Isaac Foraker

Project admin can't add members

When a project administrator (not site admin) tried to add members to his project, devalot threw an exception. The problem does not occur if either site administrator clicks the “add member” button.

ActionView::TemplateError (undefined method `position' for #<Position:0xb75efd3c>) on line #6 of app/views/members/new.rhtml:
3: <% generate_form_for(nil, :legend => 'New Project Member', :url => {:action => 'create', :project => @project}) do |f| %>
4:   <% f.error(@create_errors) unless @create_errors.blank? %>
5:   <% f.text_field(:email, 'Email Address: (for a currently registered user)') %>
6:   <% f.collection_select(:role, 'Role:', current_user.role_list_for(@project), :position, :title) %>
7:   <% f.button('Add Member') %>
8:   <% f.button('Cancel', :url => {:action => 'index', :project => @project}) %>
9: <% end %>

    #{RAILS_ROOT}/vendor/rails/activerecord/lib/active_record/base.rb:1860:in `method_missing'
    #{RAILS_ROOT}/app/models/user.rb:151:in `role_list_for'
    #{RAILS_ROOT}/app/views/members/new.rhtml:6:in `_run_rhtml_47app47views47members47new46rhtml'
    #{RAILS_ROOT}/vendor/plugins/easy_forms/lib/description.rb:62:in `initialize'
    #{RAILS_ROOT}/vendor/plugins/easy_forms/lib/extend_av.rb:33:in `new'
    #{RAILS_ROOT}/vendor/plugins/easy_forms/lib/extend_av.rb:33:in `generate_form_for'

My suspicion is that ‘position’ is not defined in the role returned by self.positions.find_by_project_id.

 142   ################################################################################
 143   # List of roles at or below my current level
 144   def role_list_for (project)
 145     my_position = nil
 146
 147     if self.is_root?
 148       my_position = 0
 149     else
 150       role = self.positions.find_by_project_id(project.id)
 151       my_position = role.position unless role.nil?
 152     end
 153
 154     return [] if my_position.nil?
 155     Role.find(:all, :order => :position, :conditions => ['position >= ?', my_position])
 156   end

Tags:

This ticket hasn't been tagged yet.

Comments:

Bubble

Isaac Foraker, Mar 05, 2008
Level 5 (Governator with 12,347 points)


Bubble

Isaac Foraker, Mar 05, 2008
Level 5 (Governator with 12,347 points)


Confirmed that this also is broken on the main Devalot site. I cannot click the “add members” link on the Members page.

Have something to say? Login to post a comment.