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