Skip to content

Commit

Permalink
add scope to include pending members, and follow through to views. cl…
Browse files Browse the repository at this point in the history
…oses #64
  • Loading branch information
zr2d2 committed Apr 2, 2012
1 parent d212445 commit 4401c61
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 5 deletions.
14 changes: 11 additions & 3 deletions app/models/group.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,23 @@ class Group < ActiveRecord::Base
has_many :users, :through => :memberships, :conditions => ["memberships.level > ?", Membership::LEVELS[:pending]]
has_many :screens, :as => :owner

#Scoped relations for leaders
# Scoped relation for members and pending members
has_many :all_users, :through => :memberships, :source => :user, :conditions => ["memberships.level != ?", Membership::LEVELS[:denied]]

# Scoped relations for leaders
has_many :leaders, :through => :memberships, :source => :user, :conditions => {"memberships.level" => Membership::LEVELS[:leader]}

#Validations
# Validations
validates :name, :presence => true, :uniqueness => true

#Test if a member is part of this group
# Test if a user is part of this group
def has_member?(user)
users.include?(user)
end

# Test if a user has requested membership in this group
def made_request?(user)
all_users.include?(user)
end

end
2 changes: 1 addition & 1 deletion app/views/groups/index.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
<% @groups.each do |group| %>
<tr>
<td><%= group.name %></td>
<td><%= link_to 'Show', group %> <%= link_to 'Edit', edit_group_path(group) %> <%= link_to 'Destroy', group, :confirm => 'Are you sure?', :method => :delete %><%= link_to("Join", group_memberships_path(:group_id => group.id, :membership => {:user_id => current_user.id}), :method => :post) if user_signed_in? & !group.has_member?(current_user) %></td>
<td><%= link_to 'Show', group %> <%= link_to 'Edit', edit_group_path(group) %> <%= link_to 'Destroy', group, :confirm => 'Are you sure?', :method => :delete %><%= link_to("Join", group_memberships_path(:group_id => group.id, :membership => {:user_id => current_user.id}), :method => :post) if user_signed_in? & !group.made_request?(current_user) %></td>
</tr>
<% end %>
</table>
Expand Down
2 changes: 1 addition & 1 deletion app/views/groups/show.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
<p>
<b>Add Member:</b>
<%= form_for([@group, @group.memberships.new]) do |f| %>
<%= f.collection_select :user_id, User.all - @group.users, :id, :name %>
<%= f.collection_select :user_id, User.all - @group.all_users, :id, :name %>
<%= hidden_field_tag 'autoconfirm', true %>
<%= f.submit %>
<% end %>
Expand Down

0 comments on commit 4401c61

Please sign in to comment.