def autocomplete_for_user
@group = Group.find(params[:id])
- @users = User.active.like(params[:q]).find(:all, :limit => 100) - @group.users
+ @users = User.active.not_in_group(@group).like(params[:q]).all(:limit => 100)
render :layout => false
end
group_id = group.is_a?(Group) ? group.id : group.to_i
{ :conditions => ["#{User.table_name}.id IN (SELECT gu.user_id FROM #{table_name_prefix}groups_users#{table_name_suffix} gu WHERE gu.group_id = ?)", group_id] }
}
+ named_scope :not_in_group, lambda {|group|
+ group_id = group.is_a?(Group) ? group.id : group.to_i
+ { :conditions => ["#{User.table_name}.id NOT IN (SELECT gu.user_id FROM #{table_name_prefix}groups_users#{table_name_suffix} gu WHERE gu.group_id = ?)", group_id] }
+ }
def before_create
self.mail_notification = Setting.default_notification_option if self.mail_notification.blank?
</div>
<div class="splitcontentright">
-<% users = User.active.find(:all, :limit => 100) - @group.users %>
+<% users = User.active.not_in_group(@group).all(:limit => 100) %>
<% if users.any? %>
<% remote_form_for(:group, @group, :url => {:controller => 'groups', :action => 'add_users', :id => @group}, :method => :post) do |f| %>
<fieldset><legend><%=l(:label_user_new)%></legend>
post :destroy_membership, :id => 10, :membership_id => 6
end
end
+
+ def test_autocomplete_for_user
+ get :autocomplete_for_user, :id => 10, :q => 'mis'
+ assert_response :success
+ users = assigns(:users)
+ assert_not_nil users
+ assert users.any?
+ assert !users.include?(Group.find(10).users.first)
+ end
end