decidim-members 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
 - data/README.md +27 -0
 - data/Rakefile +3 -0
 - data/app/assets/config/decidim_members_manifest.js +2 -0
 - data/app/assets/javascripts/decidim/members/application.js +1 -0
 - data/app/assets/stylesheets/decidim/members/application.css +15 -0
 - data/app/commands/decidim/members/system/update_organization_module.rb +47 -0
 - data/app/controllers/decidim/members/application_controller.rb +9 -0
 - data/app/controllers/decidim/members/members_controller.rb +37 -0
 - data/app/controllers/decidim/members/system/members_controller.rb +42 -0
 - data/app/forms/decidim/members/system/organization_module_form.rb +17 -0
 - data/app/helpers/decidim/members/application_helper.rb +8 -0
 - data/app/models/decidim/members/application_record.rb +9 -0
 - data/app/models/decidim/members/user.rb +16 -0
 - data/app/permissions/decidim/members/admin/permissions.rb +20 -0
 - data/app/permissions/decidim/members/permissions.rb +19 -0
 - data/app/presenters/decidim/members/member_collection_presenter.rb +56 -0
 - data/app/queries/decidim/members/filtered_members.rb +20 -0
 - data/app/queries/decidim/members/organization_members.rb +16 -0
 - data/app/views/decidim/members/members/_user.html.erb +12 -0
 - data/app/views/decidim/members/members/index.html.erb +31 -0
 - data/app/views/decidim/members/system/members/_form.html.erb +13 -0
 - data/app/views/decidim/members/system/members/edit.html.erb +7 -0
 - data/app/views/decidim/members/system/members/index.html.erb +38 -0
 - data/app/views/layouts/decidim/_head_extra.html.erb +12 -0
 - data/app/views/layouts/decidim/system/_login_items.html.erb +8 -0
 - data/app/views/layouts/decidim/system/_sidebar.html.erb +11 -0
 - data/config/locales/en.yml +42 -0
 - data/config/locales/es.yml +42 -0
 - data/config/locales/fr.yml +42 -0
 - data/config/routes.rb +4 -0
 - data/db/migrate/20171003112400_create_search_config.rb +8 -0
 - data/db/migrate/20180406122449_add_checkboxes_to_enable_module_members_and_placeholder.rb +8 -0
 - data/lib/decidim/members.rb +12 -0
 - data/lib/decidim/members/admin.rb +8 -0
 - data/lib/decidim/members/admin_engine.rb +14 -0
 - data/lib/decidim/members/engine.rb +48 -0
 - data/lib/decidim/members/system/engine.rb +37 -0
 - data/lib/decidim/members/version.rb +7 -0
 - metadata +173 -0
 
    
        checksums.yaml
    ADDED
    
    | 
         @@ -0,0 +1,7 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ---
         
     | 
| 
      
 2 
     | 
    
         
            +
            SHA256:
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 6cfe0e036f0abaa17fb244daa43edea6f5b02ec765784ab656ccbeaed95cee11
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: dd578fd54f49a7274ccfdff373dccf12b005acd824f289fb67389de076bd3dc1
         
     | 
| 
      
 5 
     | 
    
         
            +
            SHA512:
         
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 27245bc10fe3e4a23ceb045b2489454d990702e1e1ef3df591cdb864ee4e92ef7feec2e99a9504f7bf6647b31d7e0a60c3cf19f4f0856ea4dcd7fa644e8ddec8
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 273c88cd99351d0c55510b56c11b5c2a9cc7ce7a8706257cd940935d37836326fb6803d9b39909e89bcee67effd8189e5b7532914a24f028047ebd1177b1cb45
         
     | 
    
        data/README.md
    ADDED
    
    | 
         @@ -0,0 +1,27 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Decidim::Members
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            The Members list and search plugin for Decidim adds an index page to search
         
     | 
| 
      
 4 
     | 
    
         
            +
            the members registered on the platform.
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            ## Usage
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            Adding this plugin to your Decidim based Rails app will add a new main menu
         
     | 
| 
      
 9 
     | 
    
         
            +
            entry _Members_ which shows a searchable list of all members.
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            ## Installation
         
     | 
| 
      
 12 
     | 
    
         
            +
            Add this line to your application's Gemfile:
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 15 
     | 
    
         
            +
            gem 'decidim-members'
         
     | 
| 
      
 16 
     | 
    
         
            +
            ```
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            And then execute:
         
     | 
| 
      
 19 
     | 
    
         
            +
            ```bash
         
     | 
| 
      
 20 
     | 
    
         
            +
            $ bundle
         
     | 
| 
      
 21 
     | 
    
         
            +
            ```
         
     | 
| 
      
 22 
     | 
    
         
            +
            ## Contributing
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            Fork it and create a pull request.
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            ## License
         
     | 
| 
      
 27 
     | 
    
         
            +
            Same as Decidim, AGPL v3.
         
     | 
    
        data/Rakefile
    ADDED
    
    
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            //= require_tree .
         
     | 
| 
         @@ -0,0 +1,15 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            /*
         
     | 
| 
      
 2 
     | 
    
         
            +
             * This is a manifest file that'll be compiled into application.css, which will include all the files
         
     | 
| 
      
 3 
     | 
    
         
            +
             * listed below.
         
     | 
| 
      
 4 
     | 
    
         
            +
             *
         
     | 
| 
      
 5 
     | 
    
         
            +
             * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
         
     | 
| 
      
 6 
     | 
    
         
            +
             * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
         
     | 
| 
      
 7 
     | 
    
         
            +
             *
         
     | 
| 
      
 8 
     | 
    
         
            +
             * You're free to add application-wide styles to this file and they'll appear at the bottom of the
         
     | 
| 
      
 9 
     | 
    
         
            +
             * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
         
     | 
| 
      
 10 
     | 
    
         
            +
             * files in this directory. Styles in this file should be added after the last require_* statement.
         
     | 
| 
      
 11 
     | 
    
         
            +
             * It is generally better to create a new file per style scope.
         
     | 
| 
      
 12 
     | 
    
         
            +
             *
         
     | 
| 
      
 13 
     | 
    
         
            +
             *= require_tree .
         
     | 
| 
      
 14 
     | 
    
         
            +
             *= require_self
         
     | 
| 
      
 15 
     | 
    
         
            +
             */
         
     | 
| 
         @@ -0,0 +1,47 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Decidim
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Members
         
     | 
| 
      
 5 
     | 
    
         
            +
                module System
         
     | 
| 
      
 6 
     | 
    
         
            +
                  class UpdateOrganizationModule < Rectify::Command
         
     | 
| 
      
 7 
     | 
    
         
            +
                    def initialize(id, form)
         
     | 
| 
      
 8 
     | 
    
         
            +
                      @organization_id = id
         
     | 
| 
      
 9 
     | 
    
         
            +
                      @form = form
         
     | 
| 
      
 10 
     | 
    
         
            +
                    end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                    # Executes the command. Broadcasts these events:
         
     | 
| 
      
 13 
     | 
    
         
            +
                    #
         
     | 
| 
      
 14 
     | 
    
         
            +
                    # - :ok when everything is valid.
         
     | 
| 
      
 15 
     | 
    
         
            +
                    # - :invalid if the form wasn't valid and we couldn't proceed.
         
     | 
| 
      
 16 
     | 
    
         
            +
                    #
         
     | 
| 
      
 17 
     | 
    
         
            +
                    # Returns nothing.
         
     | 
| 
      
 18 
     | 
    
         
            +
                    def call
         
     | 
| 
      
 19 
     | 
    
         
            +
                      return broadcast(:invalid) if form.invalid?
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                      transaction do
         
     | 
| 
      
 22 
     | 
    
         
            +
                        save_organization
         
     | 
| 
      
 23 
     | 
    
         
            +
                      end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                      broadcast(:ok)
         
     | 
| 
      
 26 
     | 
    
         
            +
                    rescue ActiveRecord::RecordInvalid, ActiveRecord::RecordNotUnique
         
     | 
| 
      
 27 
     | 
    
         
            +
                      broadcast(:invalid)
         
     | 
| 
      
 28 
     | 
    
         
            +
                    end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                    private
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                    attr_reader :form, :organization_id
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                    def organization
         
     | 
| 
      
 35 
     | 
    
         
            +
                      @organization ||= Organization.find(organization_id)
         
     | 
| 
      
 36 
     | 
    
         
            +
                    end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                    def save_organization
         
     | 
| 
      
 39 
     | 
    
         
            +
                      organization.enable_module_members = form.enable_module_members
         
     | 
| 
      
 40 
     | 
    
         
            +
                      organization.enable_placeholder_members = form.enable_placeholder_members
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                      organization.save!
         
     | 
| 
      
 43 
     | 
    
         
            +
                    end
         
     | 
| 
      
 44 
     | 
    
         
            +
                  end
         
     | 
| 
      
 45 
     | 
    
         
            +
                end
         
     | 
| 
      
 46 
     | 
    
         
            +
              end
         
     | 
| 
      
 47 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,37 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Decidim
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Members
         
     | 
| 
      
 5 
     | 
    
         
            +
                class MembersController < Decidim::ApplicationController
         
     | 
| 
      
 6 
     | 
    
         
            +
                  # protect_from_forgery with: :exception
         
     | 
| 
      
 7 
     | 
    
         
            +
                  include NeedsPermission
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                  def index
         
     | 
| 
      
 10 
     | 
    
         
            +
                    if current_user.present? && current_organization.enable_module_members?
         
     | 
| 
      
 11 
     | 
    
         
            +
                      enforce_permission_to :read, Decidim::Members::User
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                      @members = MemberCollectionPresenter.new(
         
     | 
| 
      
 14 
     | 
    
         
            +
                        organization: current_organization,
         
     | 
| 
      
 15 
     | 
    
         
            +
                        page: params[:page].to_i,
         
     | 
| 
      
 16 
     | 
    
         
            +
                        query: params[:q]
         
     | 
| 
      
 17 
     | 
    
         
            +
                      ).attach_controller self
         
     | 
| 
      
 18 
     | 
    
         
            +
                    else
         
     | 
| 
      
 19 
     | 
    
         
            +
                      raise ActionController::RoutingError, 'Not Found'
         
     | 
| 
      
 20 
     | 
    
         
            +
                    end
         
     | 
| 
      
 21 
     | 
    
         
            +
                  end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                  private
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                  def permission_class_chain
         
     | 
| 
      
 26 
     | 
    
         
            +
                    [
         
     | 
| 
      
 27 
     | 
    
         
            +
                      Decidim::Members::Permissions,
         
     | 
| 
      
 28 
     | 
    
         
            +
                      Decidim::Permissions
         
     | 
| 
      
 29 
     | 
    
         
            +
                    ]
         
     | 
| 
      
 30 
     | 
    
         
            +
                  end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                  def permission_scope
         
     | 
| 
      
 33 
     | 
    
         
            +
                    :public
         
     | 
| 
      
 34 
     | 
    
         
            +
                  end
         
     | 
| 
      
 35 
     | 
    
         
            +
                end
         
     | 
| 
      
 36 
     | 
    
         
            +
              end
         
     | 
| 
      
 37 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,42 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Decidim
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Members
         
     | 
| 
      
 5 
     | 
    
         
            +
                module System
         
     | 
| 
      
 6 
     | 
    
         
            +
                  # Controller that allows managing the appearance of the organization.
         
     | 
| 
      
 7 
     | 
    
         
            +
                  class MembersController < Decidim::System::ApplicationController
         
     | 
| 
      
 8 
     | 
    
         
            +
                    helper_method :organization
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                    def index
         
     | 
| 
      
 11 
     | 
    
         
            +
                      @organizations = Decidim::Organization.all
         
     | 
| 
      
 12 
     | 
    
         
            +
                    end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                    def edit
         
     | 
| 
      
 15 
     | 
    
         
            +
                      @form = form(OrganizationModuleForm).from_model(organization)
         
     | 
| 
      
 16 
     | 
    
         
            +
                    end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                    def update
         
     | 
| 
      
 19 
     | 
    
         
            +
                      @form = form(OrganizationModuleForm).from_params(params)
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                      UpdateOrganizationModule.call(organization.id, @form) do
         
     | 
| 
      
 22 
     | 
    
         
            +
                        on(:ok) do
         
     | 
| 
      
 23 
     | 
    
         
            +
                          flash[:notice] = I18n.t('members.update.success', scope: 'decidim.members.system')
         
     | 
| 
      
 24 
     | 
    
         
            +
                          redirect_to organization_members_path
         
     | 
| 
      
 25 
     | 
    
         
            +
                        end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                        on(:invalid) do
         
     | 
| 
      
 28 
     | 
    
         
            +
                          flash.now[:alert] = I18n.t('members.update.error', scope: 'decidim.members.system')
         
     | 
| 
      
 29 
     | 
    
         
            +
                          render :edit
         
     | 
| 
      
 30 
     | 
    
         
            +
                        end
         
     | 
| 
      
 31 
     | 
    
         
            +
                      end
         
     | 
| 
      
 32 
     | 
    
         
            +
                    end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                    private
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                    def organization
         
     | 
| 
      
 37 
     | 
    
         
            +
                      @organization ||= Decidim::Organization.find(params[:id])
         
     | 
| 
      
 38 
     | 
    
         
            +
                    end
         
     | 
| 
      
 39 
     | 
    
         
            +
                  end
         
     | 
| 
      
 40 
     | 
    
         
            +
                end
         
     | 
| 
      
 41 
     | 
    
         
            +
              end
         
     | 
| 
      
 42 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,17 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Decidim
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Members
         
     | 
| 
      
 5 
     | 
    
         
            +
                module System
         
     | 
| 
      
 6 
     | 
    
         
            +
                  # A form object used to update the current organization appearance
         
     | 
| 
      
 7 
     | 
    
         
            +
                  # from the admin dashboard.
         
     | 
| 
      
 8 
     | 
    
         
            +
                  #
         
     | 
| 
      
 9 
     | 
    
         
            +
                  class OrganizationModuleForm < Form
         
     | 
| 
      
 10 
     | 
    
         
            +
                    mimic :organization
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                    attribute :enable_module_members, Boolean
         
     | 
| 
      
 13 
     | 
    
         
            +
                    attribute :enable_placeholder_members, Boolean
         
     | 
| 
      
 14 
     | 
    
         
            +
                  end
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
              end
         
     | 
| 
      
 17 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,16 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Decidim
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Members
         
     | 
| 
      
 5 
     | 
    
         
            +
                class User < Decidim::User
         
     | 
| 
      
 6 
     | 
    
         
            +
                  include PgSearch
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                  pg_search_scope :search_by_name_like, against: %i[name nickname],
         
     | 
| 
      
 9 
     | 
    
         
            +
                                                        using: { trigram: { threshold: 0.1 } }
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                  def self.public_spaces
         
     | 
| 
      
 12 
     | 
    
         
            +
                    not_deleted.no_active_invitation
         
     | 
| 
      
 13 
     | 
    
         
            +
                  end
         
     | 
| 
      
 14 
     | 
    
         
            +
                end
         
     | 
| 
      
 15 
     | 
    
         
            +
              end
         
     | 
| 
      
 16 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,20 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Decidim
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Members
         
     | 
| 
      
 5 
     | 
    
         
            +
                module Admin
         
     | 
| 
      
 6 
     | 
    
         
            +
                  class Permissions < Decidim::DefaultPermissions
         
     | 
| 
      
 7 
     | 
    
         
            +
                    def permissions
         
     | 
| 
      
 8 
     | 
    
         
            +
                      return permission_action unless user
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                      if permission_action.scope == :admin
         
     | 
| 
      
 11 
     | 
    
         
            +
                        disallow!
         
     | 
| 
      
 12 
     | 
    
         
            +
                        return permission_action
         
     | 
| 
      
 13 
     | 
    
         
            +
                      end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                      return permission_action unless user
         
     | 
| 
      
 16 
     | 
    
         
            +
                    end
         
     | 
| 
      
 17 
     | 
    
         
            +
                  end
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
              end
         
     | 
| 
      
 20 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,19 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Decidim
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Members
         
     | 
| 
      
 5 
     | 
    
         
            +
                class Permissions < Decidim::DefaultPermissions
         
     | 
| 
      
 6 
     | 
    
         
            +
                  def permissions
         
     | 
| 
      
 7 
     | 
    
         
            +
                    return permission_action unless user
         
     | 
| 
      
 8 
     | 
    
         
            +
                    return Decidim::Members::Admin::Permissions.new(user, permission_action, context).permissions if permission_action.scope == :admin
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                    if permission_action.scope == :public
         
     | 
| 
      
 11 
     | 
    
         
            +
                      allow!
         
     | 
| 
      
 12 
     | 
    
         
            +
                      return permission_action
         
     | 
| 
      
 13 
     | 
    
         
            +
                    end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                    return permission_action unless user
         
     | 
| 
      
 16 
     | 
    
         
            +
                  end
         
     | 
| 
      
 17 
     | 
    
         
            +
                end
         
     | 
| 
      
 18 
     | 
    
         
            +
              end
         
     | 
| 
      
 19 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,56 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Decidim
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Members
         
     | 
| 
      
 5 
     | 
    
         
            +
                class MemberCollectionPresenter < Rectify::Presenter
         
     | 
| 
      
 6 
     | 
    
         
            +
                  attribute :organization, Decidim::Organization
         
     | 
| 
      
 7 
     | 
    
         
            +
                  attribute :page, Integer
         
     | 
| 
      
 8 
     | 
    
         
            +
                  attribute :query, String
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                  def count
         
     | 
| 
      
 11 
     | 
    
         
            +
                    unsorted_org_members.count
         
     | 
| 
      
 12 
     | 
    
         
            +
                  end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                  def render_pagination
         
     | 
| 
      
 15 
     | 
    
         
            +
                    paginate collection, theme: 'decidim'
         
     | 
| 
      
 16 
     | 
    
         
            +
                  end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                  def render_current_page
         
     | 
| 
      
 19 
     | 
    
         
            +
                    render collection: decorated_members, partial: 'user'
         
     | 
| 
      
 20 
     | 
    
         
            +
                  end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                  private
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                  def collection
         
     | 
| 
      
 25 
     | 
    
         
            +
                    @collection ||= org_members.page(page).per(12)
         
     | 
| 
      
 26 
     | 
    
         
            +
                  end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                  def decorated_members
         
     | 
| 
      
 29 
     | 
    
         
            +
                    collection.map  do |m|
         
     | 
| 
      
 30 
     | 
    
         
            +
                      ::Decidim::UserPresenter.new(m.becomes(Decidim::User))
         
     | 
| 
      
 31 
     | 
    
         
            +
                    end
         
     | 
| 
      
 32 
     | 
    
         
            +
                  end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                  def unsorted_org_members
         
     | 
| 
      
 35 
     | 
    
         
            +
                    @org_members ||= begin
         
     | 
| 
      
 36 
     | 
    
         
            +
                      scope = OrganizationMembers.new(organization).query
         
     | 
| 
      
 37 
     | 
    
         
            +
                      scope = FilteredMembers.for(query, scope) if query.present?
         
     | 
| 
      
 38 
     | 
    
         
            +
                      scope
         
     | 
| 
      
 39 
     | 
    
         
            +
                    end
         
     | 
| 
      
 40 
     | 
    
         
            +
                  end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                  def org_members
         
     | 
| 
      
 43 
     | 
    
         
            +
                    if query.present?
         
     | 
| 
      
 44 
     | 
    
         
            +
                      session[:members_ordering] = nil
         
     | 
| 
      
 45 
     | 
    
         
            +
                      unsorted_org_members.order(name: :asc)
         
     | 
| 
      
 46 
     | 
    
         
            +
                    else
         
     | 
| 
      
 47 
     | 
    
         
            +
                      unsorted_org_members.reorder Hash[[session_ordering]]
         
     | 
| 
      
 48 
     | 
    
         
            +
                    end
         
     | 
| 
      
 49 
     | 
    
         
            +
                  end
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                  def session_ordering
         
     | 
| 
      
 52 
     | 
    
         
            +
                    session[:members_ordering] ||= [%i[id name email], %i[asc desc]].map(&:sample)
         
     | 
| 
      
 53 
     | 
    
         
            +
                  end
         
     | 
| 
      
 54 
     | 
    
         
            +
                end
         
     | 
| 
      
 55 
     | 
    
         
            +
              end
         
     | 
| 
      
 56 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,20 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Decidim
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Members
         
     | 
| 
      
 5 
     | 
    
         
            +
                class FilteredMembers < Rectify::Query
         
     | 
| 
      
 6 
     | 
    
         
            +
                  def self.for(query_string, scope)
         
     | 
| 
      
 7 
     | 
    
         
            +
                    new(query_string, scope).query
         
     | 
| 
      
 8 
     | 
    
         
            +
                  end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                  def initialize(query_string, scope)
         
     | 
| 
      
 11 
     | 
    
         
            +
                    @query_string = query_string
         
     | 
| 
      
 12 
     | 
    
         
            +
                    @scope = scope
         
     | 
| 
      
 13 
     | 
    
         
            +
                  end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                  def query
         
     | 
| 
      
 16 
     | 
    
         
            +
                    @scope.where("name LIKE ?", "%#{@query_string}%")
         
     | 
| 
      
 17 
     | 
    
         
            +
                  end
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
              end
         
     | 
| 
      
 20 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,16 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Decidim
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Members
         
     | 
| 
      
 5 
     | 
    
         
            +
                class OrganizationMembers < Rectify::Query
         
     | 
| 
      
 6 
     | 
    
         
            +
                  def initialize(organization)
         
     | 
| 
      
 7 
     | 
    
         
            +
                    @organization = organization
         
     | 
| 
      
 8 
     | 
    
         
            +
                  end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                  def query
         
     | 
| 
      
 11 
     | 
    
         
            +
                    user_ids = Decidim::Verifications::Authorizations.new(organization: @organization, granted: true).pluck(:decidim_user_id).uniq
         
     | 
| 
      
 12 
     | 
    
         
            +
                    Decidim::User.where(id: user_ids).not_deleted.no_active_invitation.order(name: :asc)
         
     | 
| 
      
 13 
     | 
    
         
            +
                  end
         
     | 
| 
      
 14 
     | 
    
         
            +
                end
         
     | 
| 
      
 15 
     | 
    
         
            +
              end
         
     | 
| 
      
 16 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <div class="column">
         
     | 
| 
      
 2 
     | 
    
         
            +
              <article class="card card--process">
         
     | 
| 
      
 3 
     | 
    
         
            +
                <%= link_to user.profile_path, class: "card__link" do %>
         
     | 
| 
      
 4 
     | 
    
         
            +
                  <div class="card__image-top" style="background-image:url(<%= user.avatar.url %>)"></div>
         
     | 
| 
      
 5 
     | 
    
         
            +
                <% end %>
         
     | 
| 
      
 6 
     | 
    
         
            +
                <div class="card__content">
         
     | 
| 
      
 7 
     | 
    
         
            +
                  <%= link_to user.profile_path, class: "card__link" do %>
         
     | 
| 
      
 8 
     | 
    
         
            +
                    <h4 class="card__title"><%= user.name %></h4>
         
     | 
| 
      
 9 
     | 
    
         
            +
                  <% end %>
         
     | 
| 
      
 10 
     | 
    
         
            +
                </div>
         
     | 
| 
      
 11 
     | 
    
         
            +
              </article>
         
     | 
| 
      
 12 
     | 
    
         
            +
            </div>
         
     | 
| 
         @@ -0,0 +1,31 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <% provide :meta_title, t("members.index.title", scope: "decidim") %>
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            <main class="wrapper">
         
     | 
| 
      
 4 
     | 
    
         
            +
              <section id="members-grid" class="section row collapse">
         
     | 
| 
      
 5 
     | 
    
         
            +
                <div class="row collapse order-by">
         
     | 
| 
      
 6 
     | 
    
         
            +
                  <% if @members.query.present? %>
         
     | 
| 
      
 7 
     | 
    
         
            +
                    <h2 class="order-by__text section-heading"><%= t "members.index.members_found", scope: "decidim", count: @members.count %></h2>
         
     | 
| 
      
 8 
     | 
    
         
            +
                      <span style="margin-left: 1em;">(<%= link_to t("members.index.show_all", scope: "decidim"), decidim_members.members_path %>)</span>
         
     | 
| 
      
 9 
     | 
    
         
            +
                  <% else %>
         
     | 
| 
      
 10 
     | 
    
         
            +
                    <h2 class="order-by__text section-heading"><%= t "members.index.members", scope: "decidim", count: @members.count %></h2>
         
     | 
| 
      
 11 
     | 
    
         
            +
                  <% end %>
         
     | 
| 
      
 12 
     | 
    
         
            +
                </div>
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                <div class="row" style="margin-bottom: 3em;">
         
     | 
| 
      
 15 
     | 
    
         
            +
                  <%= form_tag({}, id: 'member-search', method: :get) do %>
         
     | 
| 
      
 16 
     | 
    
         
            +
                    <div class="input-group" style='width: 50%; margin: auto;'>
         
     | 
| 
      
 17 
     | 
    
         
            +
                      <%= text_field_tag :q, @members.query, placeholder: t('members.index.search', scope: 'decidim'), class: 'input-group-field' %>
         
     | 
| 
      
 18 
     | 
    
         
            +
                      <div class="input-group-button">
         
     | 
| 
      
 19 
     | 
    
         
            +
                        <button type="submit" class="button button--muted">
         
     | 
| 
      
 20 
     | 
    
         
            +
                          <%= icon "magnifying-glass", aria_label: t('members.index.search', scope: 'decidim') %>
         
     | 
| 
      
 21 
     | 
    
         
            +
                        </button>
         
     | 
| 
      
 22 
     | 
    
         
            +
                      </div>
         
     | 
| 
      
 23 
     | 
    
         
            +
                    </div>
         
     | 
| 
      
 24 
     | 
    
         
            +
                  <% end %>
         
     | 
| 
      
 25 
     | 
    
         
            +
                </div>
         
     | 
| 
      
 26 
     | 
    
         
            +
                <div class="row small-up-1 medium-up-4 large-up-4 card-grid">
         
     | 
| 
      
 27 
     | 
    
         
            +
                  <%= @members.render_current_page %>
         
     | 
| 
      
 28 
     | 
    
         
            +
                </div>
         
     | 
| 
      
 29 
     | 
    
         
            +
              </section>
         
     | 
| 
      
 30 
     | 
    
         
            +
              <%= @members.render_pagination %>
         
     | 
| 
      
 31 
     | 
    
         
            +
            </main>
         
     | 
| 
         @@ -0,0 +1,13 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <div class="card">
         
     | 
| 
      
 2 
     | 
    
         
            +
              <div class="card-divider">
         
     | 
| 
      
 3 
     | 
    
         
            +
                <h2 class="card-title"><%= t ".module_members_organization" %></h2>
         
     | 
| 
      
 4 
     | 
    
         
            +
              </div>
         
     | 
| 
      
 5 
     | 
    
         
            +
              <div class="card-section">
         
     | 
| 
      
 6 
     | 
    
         
            +
                <div class="row column">
         
     | 
| 
      
 7 
     | 
    
         
            +
                  <%= form.check_box :enable_module_members %>
         
     | 
| 
      
 8 
     | 
    
         
            +
                </div>
         
     | 
| 
      
 9 
     | 
    
         
            +
                <div class="row column">
         
     | 
| 
      
 10 
     | 
    
         
            +
                  <%= form.check_box :enable_placeholder_members %>
         
     | 
| 
      
 11 
     | 
    
         
            +
                </div>
         
     | 
| 
      
 12 
     | 
    
         
            +
                  </div>
         
     | 
| 
      
 13 
     | 
    
         
            +
            </div>
         
     | 
| 
         @@ -0,0 +1,7 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <%#raise%>
         
     | 
| 
      
 2 
     | 
    
         
            +
            <%= decidim_form_for(@form, html: { class: "form edit_organization_module" }, url: organization_member_path(@organization), method: :put) do |f| %>
         
     | 
| 
      
 3 
     | 
    
         
            +
              <%= render partial: "form", object: f %>
         
     | 
| 
      
 4 
     | 
    
         
            +
              <div class="button--double form-general-submit">
         
     | 
| 
      
 5 
     | 
    
         
            +
                <%= f.submit t(".update") %>
         
     | 
| 
      
 6 
     | 
    
         
            +
              </div>
         
     | 
| 
      
 7 
     | 
    
         
            +
            <% end %>
         
     | 
| 
         @@ -0,0 +1,38 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <% provide :title do %>
         
     | 
| 
      
 2 
     | 
    
         
            +
              <h2><%= t ".title" %></h2>
         
     | 
| 
      
 3 
     | 
    
         
            +
            <% end %>
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            <table class="stack">
         
     | 
| 
      
 6 
     | 
    
         
            +
              <thead>
         
     | 
| 
      
 7 
     | 
    
         
            +
                <tr>
         
     | 
| 
      
 8 
     | 
    
         
            +
                  <th><%= t("models.organization.fields.name", scope: "decidim.system") %></th>
         
     | 
| 
      
 9 
     | 
    
         
            +
                  <th><%= t("models.organization.fields.created_at", scope: "decidim.system") %></th>
         
     | 
| 
      
 10 
     | 
    
         
            +
                  <th><%= t("models.organization.fields.enable_module_members", scope: "decidim.system") %></th>
         
     | 
| 
      
 11 
     | 
    
         
            +
                  <th><%= t("models.organization.fields.enable_placeholder_members", scope: "decidim.system") %></th>
         
     | 
| 
      
 12 
     | 
    
         
            +
                  <th class="actions"><%= t("actions.title", scope: "decidim.system") %></th>
         
     | 
| 
      
 13 
     | 
    
         
            +
                </tr>
         
     | 
| 
      
 14 
     | 
    
         
            +
              </thead>
         
     | 
| 
      
 15 
     | 
    
         
            +
              <tbody>
         
     | 
| 
      
 16 
     | 
    
         
            +
                <% @organizations.each do |organization| %>
         
     | 
| 
      
 17 
     | 
    
         
            +
                  <tr>
         
     | 
| 
      
 18 
     | 
    
         
            +
                    <td>
         
     | 
| 
      
 19 
     | 
    
         
            +
                      <%= link_to organization.name, decidim_system.organization_path(organization) %><br />
         
     | 
| 
      
 20 
     | 
    
         
            +
                      <%= organization.host %>
         
     | 
| 
      
 21 
     | 
    
         
            +
                    </td>
         
     | 
| 
      
 22 
     | 
    
         
            +
                    <td>
         
     | 
| 
      
 23 
     | 
    
         
            +
                      <%= l organization.created_at, format: :short %>
         
     | 
| 
      
 24 
     | 
    
         
            +
                    </td>
         
     | 
| 
      
 25 
     | 
    
         
            +
                    <td>
         
     | 
| 
      
 26 
     | 
    
         
            +
                      <%= organization.enable_module_members %>
         
     | 
| 
      
 27 
     | 
    
         
            +
                    </td>
         
     | 
| 
      
 28 
     | 
    
         
            +
                    <td>
         
     | 
| 
      
 29 
     | 
    
         
            +
                      <%= organization.enable_placeholder_members %>
         
     | 
| 
      
 30 
     | 
    
         
            +
                    </td>
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                    <td class="actions">
         
     | 
| 
      
 33 
     | 
    
         
            +
                      <%= link_to t("actions.edit", scope: "decidim.system"), decidim_members_system.edit_organization_member_path(organization) %>
         
     | 
| 
      
 34 
     | 
    
         
            +
                    </td>
         
     | 
| 
      
 35 
     | 
    
         
            +
                  </tr>
         
     | 
| 
      
 36 
     | 
    
         
            +
                <% end %>
         
     | 
| 
      
 37 
     | 
    
         
            +
              </tbody>
         
     | 
| 
      
 38 
     | 
    
         
            +
            </table>
         
     | 
| 
         @@ -0,0 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <% if current_organization.enable_placeholder_members? %>
         
     | 
| 
      
 2 
     | 
    
         
            +
              <%= javascript_tag do %>
         
     | 
| 
      
 3 
     | 
    
         
            +
                $(document).ready(function(){
         
     | 
| 
      
 4 
     | 
    
         
            +
                  $('.register-form').find("#user_name").each(function(ev){
         
     | 
| 
      
 5 
     | 
    
         
            +
                    if(!$(this).val()) {
         
     | 
| 
      
 6 
     | 
    
         
            +
                      $(this).attr("placeholder", "<%= t('decidim.members.user_form.name').html_safe %>");
         
     | 
| 
      
 7 
     | 
    
         
            +
                    }
         
     | 
| 
      
 8 
     | 
    
         
            +
                    $(this).siblings(".help-text").html("<%= t('decidim.members.user_form.username_help').html_safe %>");
         
     | 
| 
      
 9 
     | 
    
         
            +
                  });
         
     | 
| 
      
 10 
     | 
    
         
            +
                });
         
     | 
| 
      
 11 
     | 
    
         
            +
              <% end %>
         
     | 
| 
      
 12 
     | 
    
         
            +
            <% end %>
         
     | 
| 
         @@ -0,0 +1,42 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ---
         
     | 
| 
      
 2 
     | 
    
         
            +
            en:
         
     | 
| 
      
 3 
     | 
    
         
            +
              decidim:
         
     | 
| 
      
 4 
     | 
    
         
            +
                members:
         
     | 
| 
      
 5 
     | 
    
         
            +
                  user_form:
         
     | 
| 
      
 6 
     | 
    
         
            +
                    name: Your name & Organization
         
     | 
| 
      
 7 
     | 
    
         
            +
                    username_help: Public name and Organization that appears on your posts.
         
     | 
| 
      
 8 
     | 
    
         
            +
                  index:
         
     | 
| 
      
 9 
     | 
    
         
            +
                    title: Members
         
     | 
| 
      
 10 
     | 
    
         
            +
                    members:
         
     | 
| 
      
 11 
     | 
    
         
            +
                      one: One member
         
     | 
| 
      
 12 
     | 
    
         
            +
                      other: "%{count} members"
         
     | 
| 
      
 13 
     | 
    
         
            +
                    members_found:
         
     | 
| 
      
 14 
     | 
    
         
            +
                      one: One member found
         
     | 
| 
      
 15 
     | 
    
         
            +
                      other: "%{count} members found"
         
     | 
| 
      
 16 
     | 
    
         
            +
                    search: Search
         
     | 
| 
      
 17 
     | 
    
         
            +
                    show_all: Show all
         
     | 
| 
      
 18 
     | 
    
         
            +
                  system:
         
     | 
| 
      
 19 
     | 
    
         
            +
                    members:
         
     | 
| 
      
 20 
     | 
    
         
            +
                      edit:
         
     | 
| 
      
 21 
     | 
    
         
            +
                        update: Update
         
     | 
| 
      
 22 
     | 
    
         
            +
                      form:
         
     | 
| 
      
 23 
     | 
    
         
            +
                        module_members_organization: Module Members Organization
         
     | 
| 
      
 24 
     | 
    
         
            +
                      index:
         
     | 
| 
      
 25 
     | 
    
         
            +
                        title: Members
         
     | 
| 
      
 26 
     | 
    
         
            +
                      update:
         
     | 
| 
      
 27 
     | 
    
         
            +
                        error: There was an error when updating this organization module.
         
     | 
| 
      
 28 
     | 
    
         
            +
                        success: Organization module members updated successfully.
         
     | 
| 
      
 29 
     | 
    
         
            +
                menu:
         
     | 
| 
      
 30 
     | 
    
         
            +
                  members: Members
         
     | 
| 
      
 31 
     | 
    
         
            +
                pages:
         
     | 
| 
      
 32 
     | 
    
         
            +
                  home:
         
     | 
| 
      
 33 
     | 
    
         
            +
                    statistics:
         
     | 
| 
      
 34 
     | 
    
         
            +
                      members_count: Members
         
     | 
| 
      
 35 
     | 
    
         
            +
                system:
         
     | 
| 
      
 36 
     | 
    
         
            +
                  menu:
         
     | 
| 
      
 37 
     | 
    
         
            +
                    members: Members
         
     | 
| 
      
 38 
     | 
    
         
            +
                  models:
         
     | 
| 
      
 39 
     | 
    
         
            +
                    organization:
         
     | 
| 
      
 40 
     | 
    
         
            +
                      fields:
         
     | 
| 
      
 41 
     | 
    
         
            +
                        enable_module_members: Enable module members
         
     | 
| 
      
 42 
     | 
    
         
            +
                        enable_placeholder_members: Enable placeholder members
         
     | 
| 
         @@ -0,0 +1,42 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ---
         
     | 
| 
      
 2 
     | 
    
         
            +
            es:
         
     | 
| 
      
 3 
     | 
    
         
            +
              decidim:
         
     | 
| 
      
 4 
     | 
    
         
            +
                members:
         
     | 
| 
      
 5 
     | 
    
         
            +
                  user_form:
         
     | 
| 
      
 6 
     | 
    
         
            +
                    name: Tu nombre y Organización
         
     | 
| 
      
 7 
     | 
    
         
            +
                    username_help: Nombre público y Organización que aparece en sus publicaciones.
         
     | 
| 
      
 8 
     | 
    
         
            +
                  index:
         
     | 
| 
      
 9 
     | 
    
         
            +
                    title: Miembros
         
     | 
| 
      
 10 
     | 
    
         
            +
                    members:
         
     | 
| 
      
 11 
     | 
    
         
            +
                      one: Un miembro
         
     | 
| 
      
 12 
     | 
    
         
            +
                      other: "%{count} miembros"
         
     | 
| 
      
 13 
     | 
    
         
            +
                    members_found:
         
     | 
| 
      
 14 
     | 
    
         
            +
                      one: Un miembro encontrado
         
     | 
| 
      
 15 
     | 
    
         
            +
                      other: "%{count} miembros encontrados"
         
     | 
| 
      
 16 
     | 
    
         
            +
                    search: Buscar
         
     | 
| 
      
 17 
     | 
    
         
            +
                    show_all: Mostrar todos
         
     | 
| 
      
 18 
     | 
    
         
            +
                  system:
         
     | 
| 
      
 19 
     | 
    
         
            +
                    members:
         
     | 
| 
      
 20 
     | 
    
         
            +
                      edit:
         
     | 
| 
      
 21 
     | 
    
         
            +
                        update: Actualizar
         
     | 
| 
      
 22 
     | 
    
         
            +
                      form:
         
     | 
| 
      
 23 
     | 
    
         
            +
                        module_members_organization: Módulo miembros organización
         
     | 
| 
      
 24 
     | 
    
         
            +
                      index:
         
     | 
| 
      
 25 
     | 
    
         
            +
                        title: Miembros
         
     | 
| 
      
 26 
     | 
    
         
            +
                      update:
         
     | 
| 
      
 27 
     | 
    
         
            +
                        error: Ha habido un error al actualizar este módulo.
         
     | 
| 
      
 28 
     | 
    
         
            +
                        success: Módulo miembros de la organización acutalizado correctamente.
         
     | 
| 
      
 29 
     | 
    
         
            +
                menu:
         
     | 
| 
      
 30 
     | 
    
         
            +
                  members: Miembros
         
     | 
| 
      
 31 
     | 
    
         
            +
                pages:
         
     | 
| 
      
 32 
     | 
    
         
            +
                  home:
         
     | 
| 
      
 33 
     | 
    
         
            +
                    statistics:
         
     | 
| 
      
 34 
     | 
    
         
            +
                      members_count: Miembros
         
     | 
| 
      
 35 
     | 
    
         
            +
                system:
         
     | 
| 
      
 36 
     | 
    
         
            +
                  menu:
         
     | 
| 
      
 37 
     | 
    
         
            +
                    members: Miembros
         
     | 
| 
      
 38 
     | 
    
         
            +
                  models:
         
     | 
| 
      
 39 
     | 
    
         
            +
                    organization:
         
     | 
| 
      
 40 
     | 
    
         
            +
                      fields:
         
     | 
| 
      
 41 
     | 
    
         
            +
                        enable_module_members: Habilitar módulo miembros
         
     | 
| 
      
 42 
     | 
    
         
            +
                        enable_placeholder_members: Habilitat placeholder módulo miembros
         
     | 
| 
         @@ -0,0 +1,42 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ---
         
     | 
| 
      
 2 
     | 
    
         
            +
            fr:
         
     | 
| 
      
 3 
     | 
    
         
            +
              decidim:
         
     | 
| 
      
 4 
     | 
    
         
            +
                members:
         
     | 
| 
      
 5 
     | 
    
         
            +
                  user_form:
         
     | 
| 
      
 6 
     | 
    
         
            +
                    name: Votre nom et Organisation
         
     | 
| 
      
 7 
     | 
    
         
            +
                    username_help: Nom public et Organisation qui apparaît sur vos publications.
         
     | 
| 
      
 8 
     | 
    
         
            +
                  index:
         
     | 
| 
      
 9 
     | 
    
         
            +
                    title: Membres
         
     | 
| 
      
 10 
     | 
    
         
            +
                    members:
         
     | 
| 
      
 11 
     | 
    
         
            +
                      one: Un membre
         
     | 
| 
      
 12 
     | 
    
         
            +
                      other: "%{count} membres"
         
     | 
| 
      
 13 
     | 
    
         
            +
                    members_found:
         
     | 
| 
      
 14 
     | 
    
         
            +
                      one: Un membre trouvé
         
     | 
| 
      
 15 
     | 
    
         
            +
                      other: "%{count} membres trouvés"
         
     | 
| 
      
 16 
     | 
    
         
            +
                    search: Rechercher
         
     | 
| 
      
 17 
     | 
    
         
            +
                    show_all: Montre tout
         
     | 
| 
      
 18 
     | 
    
         
            +
                  system:
         
     | 
| 
      
 19 
     | 
    
         
            +
                    members:
         
     | 
| 
      
 20 
     | 
    
         
            +
                      edit:
         
     | 
| 
      
 21 
     | 
    
         
            +
                        update: Mettre à jour
         
     | 
| 
      
 22 
     | 
    
         
            +
                      form:
         
     | 
| 
      
 23 
     | 
    
         
            +
                        module_members_organization: Module Membres Organisation
         
     | 
| 
      
 24 
     | 
    
         
            +
                      index:
         
     | 
| 
      
 25 
     | 
    
         
            +
                        title: Membres
         
     | 
| 
      
 26 
     | 
    
         
            +
                      update:
         
     | 
| 
      
 27 
     | 
    
         
            +
                        error: Une erreur s'est produite lors de la mise à jour de ce module d'organisation.
         
     | 
| 
      
 28 
     | 
    
         
            +
                        success: Membres du module d'organisation mis à jour avec succès.
         
     | 
| 
      
 29 
     | 
    
         
            +
                menu:
         
     | 
| 
      
 30 
     | 
    
         
            +
                  members: Membres
         
     | 
| 
      
 31 
     | 
    
         
            +
                pages:
         
     | 
| 
      
 32 
     | 
    
         
            +
                  home:
         
     | 
| 
      
 33 
     | 
    
         
            +
                    statistics:
         
     | 
| 
      
 34 
     | 
    
         
            +
                      members_count: Membres
         
     | 
| 
      
 35 
     | 
    
         
            +
                system:
         
     | 
| 
      
 36 
     | 
    
         
            +
                  menu:
         
     | 
| 
      
 37 
     | 
    
         
            +
                    members: Membres
         
     | 
| 
      
 38 
     | 
    
         
            +
                  models:
         
     | 
| 
      
 39 
     | 
    
         
            +
                    organization:
         
     | 
| 
      
 40 
     | 
    
         
            +
                      fields:
         
     | 
| 
      
 41 
     | 
    
         
            +
                        enable_module_members: Activer les membres du module
         
     | 
| 
      
 42 
     | 
    
         
            +
                        enable_placeholder_members: Activer les membres réservés
         
     | 
    
        data/config/routes.rb
    ADDED
    
    
| 
         @@ -0,0 +1,8 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            class AddCheckboxesToEnableModuleMembersAndPlaceholder < ActiveRecord::Migration[5.1]
         
     | 
| 
      
 4 
     | 
    
         
            +
              def change
         
     | 
| 
      
 5 
     | 
    
         
            +
                add_column :decidim_organizations, :enable_module_members, :boolean, default: false
         
     | 
| 
      
 6 
     | 
    
         
            +
                add_column :decidim_organizations, :enable_placeholder_members, :boolean, default: false
         
     | 
| 
      
 7 
     | 
    
         
            +
              end
         
     | 
| 
      
 8 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'decidim/members/admin'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'decidim/members/engine'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'decidim/members/system/engine'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'decidim/members/admin_engine'
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            module Decidim
         
     | 
| 
      
 9 
     | 
    
         
            +
              module Members
         
     | 
| 
      
 10 
     | 
    
         
            +
                # Your code goes here...
         
     | 
| 
      
 11 
     | 
    
         
            +
              end
         
     | 
| 
      
 12 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,14 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'rails'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'decidim/core'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            module Decidim
         
     | 
| 
      
 7 
     | 
    
         
            +
              module Members
         
     | 
| 
      
 8 
     | 
    
         
            +
                # Decidim's Members Rails Admin Engine.
         
     | 
| 
      
 9 
     | 
    
         
            +
                # There is nothing to administer, it's 'only provided since Decidim
         
     | 
| 
      
 10 
     | 
    
         
            +
                # requires it.
         
     | 
| 
      
 11 
     | 
    
         
            +
                class AdminEngine < ::Rails::Engine
         
     | 
| 
      
 12 
     | 
    
         
            +
                end
         
     | 
| 
      
 13 
     | 
    
         
            +
              end
         
     | 
| 
      
 14 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,48 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'rails'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            require 'decidim/core'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'sanitize'
         
     | 
| 
      
 7 
     | 
    
         
            +
            require 'pg_search'
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            module Decidim
         
     | 
| 
      
 10 
     | 
    
         
            +
              module Members
         
     | 
| 
      
 11 
     | 
    
         
            +
                # Decidim's Members Rails Engine.
         
     | 
| 
      
 12 
     | 
    
         
            +
                class Engine < ::Rails::Engine
         
     | 
| 
      
 13 
     | 
    
         
            +
                  isolate_namespace Decidim::Members
         
     | 
| 
      
 14 
     | 
    
         
            +
                  engine_name 'decidim_members'
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                  initializer 'decidim_members.mount_routes' do |_app|
         
     | 
| 
      
 17 
     | 
    
         
            +
                    Decidim::Core::Engine.routes do
         
     | 
| 
      
 18 
     | 
    
         
            +
                      mount Decidim::Members::Engine => '/members'
         
     | 
| 
      
 19 
     | 
    
         
            +
                    end
         
     | 
| 
      
 20 
     | 
    
         
            +
                  end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                  routes do
         
     | 
| 
      
 23 
     | 
    
         
            +
                    root to: 'members#index', as: :members
         
     | 
| 
      
 24 
     | 
    
         
            +
                  end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                  initializer 'decidim.stats' do
         
     | 
| 
      
 27 
     | 
    
         
            +
                    Decidim.stats.register :members_count, priority: StatsRegistry::HIGH_PRIORITY do |organization, _start_at, _end_at|
         
     | 
| 
      
 28 
     | 
    
         
            +
                      if organization.enable_module_members?
         
     | 
| 
      
 29 
     | 
    
         
            +
                        user_ids = Decidim::Verifications::Authorizations.new(organization: organization, granted: true).pluck(:decidim_user_id).uniq
         
     | 
| 
      
 30 
     | 
    
         
            +
                        Decidim::Members::User.where(id: user_ids).public_spaces.count
         
     | 
| 
      
 31 
     | 
    
         
            +
                      else
         
     | 
| 
      
 32 
     | 
    
         
            +
                        0
         
     | 
| 
      
 33 
     | 
    
         
            +
                      end
         
     | 
| 
      
 34 
     | 
    
         
            +
                    end
         
     | 
| 
      
 35 
     | 
    
         
            +
                  end
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                  initializer 'decidim_members.menu' do
         
     | 
| 
      
 38 
     | 
    
         
            +
                    Decidim.menu :menu do |menu|
         
     | 
| 
      
 39 
     | 
    
         
            +
                      menu.item I18n.t('menu.members', scope: 'decidim'),
         
     | 
| 
      
 40 
     | 
    
         
            +
                                decidim_members.members_path,
         
     | 
| 
      
 41 
     | 
    
         
            +
                                position: 2.5,
         
     | 
| 
      
 42 
     | 
    
         
            +
                                active: :inclusive,
         
     | 
| 
      
 43 
     | 
    
         
            +
                                if: current_user.present? && current_organization.enable_module_members?
         
     | 
| 
      
 44 
     | 
    
         
            +
                    end
         
     | 
| 
      
 45 
     | 
    
         
            +
                  end
         
     | 
| 
      
 46 
     | 
    
         
            +
                end
         
     | 
| 
      
 47 
     | 
    
         
            +
              end
         
     | 
| 
      
 48 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,37 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'rails'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'active_support/all'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'decidim/core'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'decidim/system'
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            module Decidim
         
     | 
| 
      
 9 
     | 
    
         
            +
              module Members
         
     | 
| 
      
 10 
     | 
    
         
            +
                module System
         
     | 
| 
      
 11 
     | 
    
         
            +
                  # Decidim's core Rails Engine.
         
     | 
| 
      
 12 
     | 
    
         
            +
                  class Engine < ::Rails::Engine
         
     | 
| 
      
 13 
     | 
    
         
            +
                    isolate_namespace Decidim::Members::System
         
     | 
| 
      
 14 
     | 
    
         
            +
                    engine_name 'decidim_members_system'
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                    initializer 'decidim_members_system.mount_routes' do |_app|
         
     | 
| 
      
 17 
     | 
    
         
            +
                      Decidim::Core::Engine.routes do
         
     | 
| 
      
 18 
     | 
    
         
            +
                        mount Decidim::Members::System::Engine => '/system'
         
     | 
| 
      
 19 
     | 
    
         
            +
                      end
         
     | 
| 
      
 20 
     | 
    
         
            +
                    end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                    routes do
         
     | 
| 
      
 23 
     | 
    
         
            +
                      resources :organization_members, only: %i[index edit update], controller: 'members'
         
     | 
| 
      
 24 
     | 
    
         
            +
                    end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                    initializer 'decidim_members_system.menu' do
         
     | 
| 
      
 27 
     | 
    
         
            +
                      Decidim.menu :system_menu do |menu|
         
     | 
| 
      
 28 
     | 
    
         
            +
                        menu.item I18n.t('menu.members', scope: 'decidim.system'),
         
     | 
| 
      
 29 
     | 
    
         
            +
                                  decidim_members_system.organization_members_path,
         
     | 
| 
      
 30 
     | 
    
         
            +
                                  position: 4,
         
     | 
| 
      
 31 
     | 
    
         
            +
                                  active: :inclusive
         
     | 
| 
      
 32 
     | 
    
         
            +
                      end
         
     | 
| 
      
 33 
     | 
    
         
            +
                    end
         
     | 
| 
      
 34 
     | 
    
         
            +
                  end
         
     | 
| 
      
 35 
     | 
    
         
            +
                end
         
     | 
| 
      
 36 
     | 
    
         
            +
              end
         
     | 
| 
      
 37 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    ADDED
    
    | 
         @@ -0,0 +1,173 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            --- !ruby/object:Gem::Specification
         
     | 
| 
      
 2 
     | 
    
         
            +
            name: decidim-members
         
     | 
| 
      
 3 
     | 
    
         
            +
            version: !ruby/object:Gem::Version
         
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.13
         
     | 
| 
      
 5 
     | 
    
         
            +
            platform: ruby
         
     | 
| 
      
 6 
     | 
    
         
            +
            authors:
         
     | 
| 
      
 7 
     | 
    
         
            +
            - Isaac Massot
         
     | 
| 
      
 8 
     | 
    
         
            +
            autorequire: 
         
     | 
| 
      
 9 
     | 
    
         
            +
            bindir: bin
         
     | 
| 
      
 10 
     | 
    
         
            +
            cert_chain: []
         
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2019-02-04 00:00:00.000000000 Z
         
     | 
| 
      
 12 
     | 
    
         
            +
            dependencies:
         
     | 
| 
      
 13 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 14 
     | 
    
         
            +
              name: decidim-core
         
     | 
| 
      
 15 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 16 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 17 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 18 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 19 
     | 
    
         
            +
                    version: '0.15'
         
     | 
| 
      
 20 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 21 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 22 
     | 
    
         
            +
                    version: 0.15.0
         
     | 
| 
      
 23 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 24 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 25 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 26 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 27 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 28 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 29 
     | 
    
         
            +
                    version: '0.15'
         
     | 
| 
      
 30 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 31 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 32 
     | 
    
         
            +
                    version: 0.15.0
         
     | 
| 
      
 33 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 34 
     | 
    
         
            +
              name: pg_search
         
     | 
| 
      
 35 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 36 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 37 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 38 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 39 
     | 
    
         
            +
                    version: 2.1.4
         
     | 
| 
      
 40 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 41 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 42 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 43 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 44 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 45 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 46 
     | 
    
         
            +
                    version: 2.1.4
         
     | 
| 
      
 47 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 48 
     | 
    
         
            +
              name: rails
         
     | 
| 
      
 49 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 50 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 51 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 52 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 53 
     | 
    
         
            +
                    version: '5.2'
         
     | 
| 
      
 54 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 55 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 56 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 57 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 58 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 59 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 60 
     | 
    
         
            +
                    version: '5.2'
         
     | 
| 
      
 61 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 62 
     | 
    
         
            +
              name: sanitize
         
     | 
| 
      
 63 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 64 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 65 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 66 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 67 
     | 
    
         
            +
                    version: '4.5'
         
     | 
| 
      
 68 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 69 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 70 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 71 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 72 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 73 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 74 
     | 
    
         
            +
                    version: '4.5'
         
     | 
| 
      
 75 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 76 
     | 
    
         
            +
              name: decidim-admin
         
     | 
| 
      
 77 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 78 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 79 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 80 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 81 
     | 
    
         
            +
                    version: 0.15.0
         
     | 
| 
      
 82 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 83 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 84 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 85 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 86 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 87 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 88 
     | 
    
         
            +
                    version: 0.15.0
         
     | 
| 
      
 89 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 90 
     | 
    
         
            +
              name: decidim-dev
         
     | 
| 
      
 91 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 92 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 93 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 94 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 95 
     | 
    
         
            +
                    version: 0.15.0
         
     | 
| 
      
 96 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 97 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 98 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 99 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 100 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 101 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 102 
     | 
    
         
            +
                    version: 0.15.0
         
     | 
| 
      
 103 
     | 
    
         
            +
            description: This gem is a member list and search plugin for decidim, you can active
         
     | 
| 
      
 104 
     | 
    
         
            +
              the gem via system dashboard
         
     | 
| 
      
 105 
     | 
    
         
            +
            email:
         
     | 
| 
      
 106 
     | 
    
         
            +
            - isaac.mg@coditramuntana.com
         
     | 
| 
      
 107 
     | 
    
         
            +
            executables: []
         
     | 
| 
      
 108 
     | 
    
         
            +
            extensions: []
         
     | 
| 
      
 109 
     | 
    
         
            +
            extra_rdoc_files: []
         
     | 
| 
      
 110 
     | 
    
         
            +
            files:
         
     | 
| 
      
 111 
     | 
    
         
            +
            - README.md
         
     | 
| 
      
 112 
     | 
    
         
            +
            - Rakefile
         
     | 
| 
      
 113 
     | 
    
         
            +
            - app/assets/config/decidim_members_manifest.js
         
     | 
| 
      
 114 
     | 
    
         
            +
            - app/assets/javascripts/decidim/members/application.js
         
     | 
| 
      
 115 
     | 
    
         
            +
            - app/assets/stylesheets/decidim/members/application.css
         
     | 
| 
      
 116 
     | 
    
         
            +
            - app/commands/decidim/members/system/update_organization_module.rb
         
     | 
| 
      
 117 
     | 
    
         
            +
            - app/controllers/decidim/members/application_controller.rb
         
     | 
| 
      
 118 
     | 
    
         
            +
            - app/controllers/decidim/members/members_controller.rb
         
     | 
| 
      
 119 
     | 
    
         
            +
            - app/controllers/decidim/members/system/members_controller.rb
         
     | 
| 
      
 120 
     | 
    
         
            +
            - app/forms/decidim/members/system/organization_module_form.rb
         
     | 
| 
      
 121 
     | 
    
         
            +
            - app/helpers/decidim/members/application_helper.rb
         
     | 
| 
      
 122 
     | 
    
         
            +
            - app/models/decidim/members/application_record.rb
         
     | 
| 
      
 123 
     | 
    
         
            +
            - app/models/decidim/members/user.rb
         
     | 
| 
      
 124 
     | 
    
         
            +
            - app/permissions/decidim/members/admin/permissions.rb
         
     | 
| 
      
 125 
     | 
    
         
            +
            - app/permissions/decidim/members/permissions.rb
         
     | 
| 
      
 126 
     | 
    
         
            +
            - app/presenters/decidim/members/member_collection_presenter.rb
         
     | 
| 
      
 127 
     | 
    
         
            +
            - app/queries/decidim/members/filtered_members.rb
         
     | 
| 
      
 128 
     | 
    
         
            +
            - app/queries/decidim/members/organization_members.rb
         
     | 
| 
      
 129 
     | 
    
         
            +
            - app/views/decidim/members/members/_user.html.erb
         
     | 
| 
      
 130 
     | 
    
         
            +
            - app/views/decidim/members/members/index.html.erb
         
     | 
| 
      
 131 
     | 
    
         
            +
            - app/views/decidim/members/system/members/_form.html.erb
         
     | 
| 
      
 132 
     | 
    
         
            +
            - app/views/decidim/members/system/members/edit.html.erb
         
     | 
| 
      
 133 
     | 
    
         
            +
            - app/views/decidim/members/system/members/index.html.erb
         
     | 
| 
      
 134 
     | 
    
         
            +
            - app/views/layouts/decidim/_head_extra.html.erb
         
     | 
| 
      
 135 
     | 
    
         
            +
            - app/views/layouts/decidim/system/_login_items.html.erb
         
     | 
| 
      
 136 
     | 
    
         
            +
            - app/views/layouts/decidim/system/_sidebar.html.erb
         
     | 
| 
      
 137 
     | 
    
         
            +
            - config/locales/en.yml
         
     | 
| 
      
 138 
     | 
    
         
            +
            - config/locales/es.yml
         
     | 
| 
      
 139 
     | 
    
         
            +
            - config/locales/fr.yml
         
     | 
| 
      
 140 
     | 
    
         
            +
            - config/routes.rb
         
     | 
| 
      
 141 
     | 
    
         
            +
            - db/migrate/20171003112400_create_search_config.rb
         
     | 
| 
      
 142 
     | 
    
         
            +
            - db/migrate/20180406122449_add_checkboxes_to_enable_module_members_and_placeholder.rb
         
     | 
| 
      
 143 
     | 
    
         
            +
            - lib/decidim/members.rb
         
     | 
| 
      
 144 
     | 
    
         
            +
            - lib/decidim/members/admin.rb
         
     | 
| 
      
 145 
     | 
    
         
            +
            - lib/decidim/members/admin_engine.rb
         
     | 
| 
      
 146 
     | 
    
         
            +
            - lib/decidim/members/engine.rb
         
     | 
| 
      
 147 
     | 
    
         
            +
            - lib/decidim/members/system/engine.rb
         
     | 
| 
      
 148 
     | 
    
         
            +
            - lib/decidim/members/version.rb
         
     | 
| 
      
 149 
     | 
    
         
            +
            homepage: https://www.coditramuntana.com/
         
     | 
| 
      
 150 
     | 
    
         
            +
            licenses:
         
     | 
| 
      
 151 
     | 
    
         
            +
            - AGPL-3.0
         
     | 
| 
      
 152 
     | 
    
         
            +
            metadata: {}
         
     | 
| 
      
 153 
     | 
    
         
            +
            post_install_message: 
         
     | 
| 
      
 154 
     | 
    
         
            +
            rdoc_options: []
         
     | 
| 
      
 155 
     | 
    
         
            +
            require_paths:
         
     | 
| 
      
 156 
     | 
    
         
            +
            - lib
         
     | 
| 
      
 157 
     | 
    
         
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 158 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 159 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 160 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 161 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 162 
     | 
    
         
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 163 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 164 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 165 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 166 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 167 
     | 
    
         
            +
            requirements: []
         
     | 
| 
      
 168 
     | 
    
         
            +
            rubyforge_project: 
         
     | 
| 
      
 169 
     | 
    
         
            +
            rubygems_version: 2.7.6
         
     | 
| 
      
 170 
     | 
    
         
            +
            signing_key: 
         
     | 
| 
      
 171 
     | 
    
         
            +
            specification_version: 4
         
     | 
| 
      
 172 
     | 
    
         
            +
            summary: Member list and search plugin for decidim
         
     | 
| 
      
 173 
     | 
    
         
            +
            test_files: []
         
     |