app/controllers/decidim/admin/user_groups_controller.rb in decidim-admin-0.25.2 vs app/controllers/decidim/admin/user_groups_controller.rb in decidim-admin-0.26.0.rc1
- old
+ new
@@ -4,22 +4,20 @@
module Admin
# Controller that allows managing user groups at the admin panel.
#
class UserGroupsController < Decidim::Admin::ApplicationController
include UserGroups
+ include Decidim::Admin::UserGroups::Filterable
before_action :enforce_user_groups_enabled
layout "decidim/admin/users"
def index
enforce_permission_to :index, :user_group
- @query = params[:q]
- @state = params[:state]
- @user_groups = Decidim::Admin::UserGroupsEvaluation.for(collection, @query, @state)
- .page(params[:page]).per(15)
+ @user_groups = filtered_collection
end
def verify
@user_group = collection.find(params[:id])
enforce_permission_to :verify, :user_group, user_group: @user_group
@@ -54,13 +52,23 @@
end
end
private
+ def filtered_collection
+ paginate(query.result)
+ end
+
+ def base_query
+ Decidim::Admin::UserGroupsEvaluation.for(collection, @query, @state)
+ end
+
def collection
UserGroup
- .includes(:memberships)
+ .left_outer_joins(:memberships)
+ .select("decidim_users.*, COUNT(decidim_user_group_memberships.decidim_user_group_id) as users_count")
.where(decidim_user_group_memberships: { decidim_user_id: current_organization.users })
+ .group(Arel.sql("decidim_users.id"))
end
end
end
end