decidim-participatory_processes 0.9.3 → 0.10.0
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 +4 -4
 - data/app/commands/decidim/participatory_processes/admin/activate_participatory_process_step.rb +34 -4
 - data/app/commands/decidim/participatory_processes/admin/create_participatory_process.rb +25 -0
 - data/app/commands/decidim/participatory_processes/admin/create_participatory_process_admin.rb +36 -5
 - data/app/commands/decidim/participatory_processes/admin/create_participatory_process_step.rb +3 -1
 - data/app/commands/decidim/participatory_processes/admin/destroy_participatory_process_admin.rb +53 -0
 - data/app/commands/decidim/participatory_processes/admin/destroy_participatory_process_step.rb +16 -5
 - data/app/commands/decidim/participatory_processes/admin/publish_participatory_process.rb +9 -3
 - data/app/commands/decidim/participatory_processes/admin/unpublish_participatory_process.rb +9 -3
 - data/app/commands/decidim/participatory_processes/admin/update_participatory_process.rb +7 -1
 - data/app/commands/decidim/participatory_processes/admin/update_participatory_process_admin.rb +12 -1
 - data/app/commands/decidim/participatory_processes/admin/update_participatory_process_step.rb +23 -7
 - data/app/controllers/decidim/participatory_processes/admin/participatory_process_attachment_collections_controller.rb +27 -0
 - data/app/controllers/decidim/participatory_processes/admin/participatory_process_publications_controller.rb +2 -2
 - data/app/controllers/decidim/participatory_processes/admin/participatory_process_step_activations_controller.rb +1 -1
 - data/app/controllers/decidim/participatory_processes/admin/participatory_process_steps_controller.rb +1 -1
 - data/app/controllers/decidim/participatory_processes/admin/participatory_process_user_roles_controller.rb +6 -4
 - data/app/controllers/decidim/participatory_processes/application_controller.rb +11 -0
 - data/app/controllers/decidim/participatory_processes/participatory_process_groups_controller.rb +1 -1
 - data/app/controllers/decidim/participatory_processes/participatory_process_steps_controller.rb +1 -1
 - data/app/controllers/decidim/participatory_processes/participatory_processes_controller.rb +4 -3
 - data/app/helpers/decidim/participatory_processes/application_helper.rb +23 -0
 - data/app/models/decidim/participatory_process.rb +8 -0
 - data/app/models/decidim/participatory_process_step.rb +9 -0
 - data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_presenter.rb +56 -0
 - data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_user_role_presenter.rb +53 -0
 - data/app/presenters/decidim/participatory_processes/admin_log/step_presenter.rb +40 -0
 - data/app/presenters/decidim/participatory_processes/admin_log/value_types/role_presenter.rb +22 -0
 - data/app/types/decidim/participatory_processes/participatory_process_step_type.rb +25 -0
 - data/app/types/decidim/participatory_processes/participatory_process_type.rb +15 -0
 - data/app/views/decidim/participatory_processes/participatory_process_groups/show.html.erb +1 -0
 - data/app/views/decidim/participatory_processes/participatory_processes/show.html.erb +2 -0
 - data/app/views/layouts/decidim/admin/participatory_process.html.erb +15 -3
 - data/config/locales/ca.yml +31 -0
 - data/config/locales/en.yml +31 -0
 - data/config/locales/es.yml +32 -1
 - data/config/locales/eu.yml +31 -0
 - data/config/locales/fi.yml +31 -0
 - data/config/locales/fr.yml +47 -16
 - data/config/locales/gl.yml +31 -0
 - data/config/locales/it.yml +31 -0
 - data/config/locales/nl.yml +31 -0
 - data/config/locales/pl.yml +31 -5
 - data/config/locales/pt-BR.yml +31 -0
 - data/config/locales/pt.yml +31 -0
 - data/config/locales/sv.yml +31 -0
 - data/config/locales/uk.yml +9 -5
 - data/db/migrate/20170220110740_remove_steps_short_description.rb +1 -1
 - data/db/migrate/20171215081244_add_weight_to_attachments.rb +7 -0
 - data/db/migrate/20171215141722_add_attachment_collection_to_attachments.rb +9 -0
 - data/db/migrate/20180125102537_add_reference_to_processes.rb +7 -0
 - data/lib/decidim/participatory_processes.rb +4 -0
 - data/lib/decidim/participatory_processes/admin_engine.rb +1 -0
 - data/lib/decidim/participatory_processes/participatory_space.rb +16 -0
 - data/lib/decidim/participatory_processes/test/factories.rb +6 -0
 - data/lib/decidim/participatory_processes/version.rb +1 -1
 - metadata +22 -10
 - data/app/commands/decidim/participatory_processes/admin/deactivate_participatory_process_step.rb +0 -40
 
| 
         @@ -0,0 +1,27 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Decidim
         
     | 
| 
      
 4 
     | 
    
         
            +
              module ParticipatoryProcesses
         
     | 
| 
      
 5 
     | 
    
         
            +
                module Admin
         
     | 
| 
      
 6 
     | 
    
         
            +
                  # Controller that allows managing all the attachment collections for
         
     | 
| 
      
 7 
     | 
    
         
            +
                  # a participatory process.
         
     | 
| 
      
 8 
     | 
    
         
            +
                  #
         
     | 
| 
      
 9 
     | 
    
         
            +
                  class ParticipatoryProcessAttachmentCollectionsController < Decidim::Admin::ApplicationController
         
     | 
| 
      
 10 
     | 
    
         
            +
                    include Decidim::Admin::Concerns::HasAttachmentCollections
         
     | 
| 
      
 11 
     | 
    
         
            +
                    include Concerns::ParticipatoryProcessAdmin
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                    def after_destroy_path
         
     | 
| 
      
 14 
     | 
    
         
            +
                      participatory_process_attachment_collections_path(current_participatory_process)
         
     | 
| 
      
 15 
     | 
    
         
            +
                    end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                    def collection_for
         
     | 
| 
      
 18 
     | 
    
         
            +
                      current_participatory_process
         
     | 
| 
      
 19 
     | 
    
         
            +
                    end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                    def authorization_object
         
     | 
| 
      
 22 
     | 
    
         
            +
                      @attachment_collection || AttachmentCollection
         
     | 
| 
      
 23 
     | 
    
         
            +
                    end
         
     | 
| 
      
 24 
     | 
    
         
            +
                  end
         
     | 
| 
      
 25 
     | 
    
         
            +
                end
         
     | 
| 
      
 26 
     | 
    
         
            +
              end
         
     | 
| 
      
 27 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -11,7 +11,7 @@ module Decidim 
     | 
|
| 
       11 
11 
     | 
    
         
             
                    def create
         
     | 
| 
       12 
12 
     | 
    
         
             
                      authorize! :publish, current_participatory_process
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
     | 
    
         
            -
                      PublishParticipatoryProcess.call(current_participatory_process) do
         
     | 
| 
      
 14 
     | 
    
         
            +
                      PublishParticipatoryProcess.call(current_participatory_process, current_user) do
         
     | 
| 
       15 
15 
     | 
    
         
             
                        on(:ok) do
         
     | 
| 
       16 
16 
     | 
    
         
             
                          flash[:notice] = I18n.t("participatory_process_publications.create.success", scope: "decidim.admin")
         
     | 
| 
       17 
17 
     | 
    
         
             
                        end
         
     | 
| 
         @@ -27,7 +27,7 @@ module Decidim 
     | 
|
| 
       27 
27 
     | 
    
         
             
                    def destroy
         
     | 
| 
       28 
28 
     | 
    
         
             
                      authorize! :publish, current_participatory_process
         
     | 
| 
       29 
29 
     | 
    
         | 
| 
       30 
     | 
    
         
            -
                      UnpublishParticipatoryProcess.call(current_participatory_process) do
         
     | 
| 
      
 30 
     | 
    
         
            +
                      UnpublishParticipatoryProcess.call(current_participatory_process, current_user) do
         
     | 
| 
       31 
31 
     | 
    
         
             
                        on(:ok) do
         
     | 
| 
       32 
32 
     | 
    
         
             
                          flash[:notice] = I18n.t("participatory_process_publications.destroy.success", scope: "decidim.admin")
         
     | 
| 
       33 
33 
     | 
    
         
             
                        end
         
     | 
| 
         @@ -11,7 +11,7 @@ module Decidim 
     | 
|
| 
       11 
11 
     | 
    
         
             
                    def create
         
     | 
| 
       12 
12 
     | 
    
         
             
                      authorize! :activate, process_step
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
     | 
    
         
            -
                      ActivateParticipatoryProcessStep.call(process_step) do
         
     | 
| 
      
 14 
     | 
    
         
            +
                      ActivateParticipatoryProcessStep.call(process_step, current_user) do
         
     | 
| 
       15 
15 
     | 
    
         
             
                        on(:ok) do
         
     | 
| 
       16 
16 
     | 
    
         
             
                          flash[:notice] = I18n.t("participatory_process_step_activations.create.success", scope: "decidim.admin")
         
     | 
| 
       17 
17 
     | 
    
         
             
                        end
         
     | 
    
        data/app/controllers/decidim/participatory_processes/admin/participatory_process_steps_controller.rb
    CHANGED
    
    | 
         @@ -67,7 +67,7 @@ module Decidim 
     | 
|
| 
       67 
67 
     | 
    
         
             
                      @participatory_process_step = collection.find(params[:id])
         
     | 
| 
       68 
68 
     | 
    
         
             
                      authorize! :destroy, @participatory_process_step
         
     | 
| 
       69 
69 
     | 
    
         | 
| 
       70 
     | 
    
         
            -
                      DestroyParticipatoryProcessStep.call(@participatory_process_step) do
         
     | 
| 
      
 70 
     | 
    
         
            +
                      DestroyParticipatoryProcessStep.call(@participatory_process_step, current_user) do
         
     | 
| 
       71 
71 
     | 
    
         
             
                        on(:ok) do
         
     | 
| 
       72 
72 
     | 
    
         
             
                          flash[:notice] = I18n.t("participatory_process_steps.destroy.success", scope: "decidim.admin")
         
     | 
| 
       73 
73 
     | 
    
         
             
                          redirect_to participatory_process_steps_path(current_participatory_process)
         
     | 
| 
         @@ -61,11 +61,13 @@ module Decidim 
     | 
|
| 
       61 
61 
     | 
    
         
             
                    def destroy
         
     | 
| 
       62 
62 
     | 
    
         
             
                      @participatory_process_user_role = collection.find(params[:id])
         
     | 
| 
       63 
63 
     | 
    
         
             
                      authorize! :destroy, @participatory_process_user_role
         
     | 
| 
       64 
     | 
    
         
            -
                      @participatory_process_user_role.destroy!
         
     | 
| 
       65 
64 
     | 
    
         | 
| 
       66 
     | 
    
         
            -
                       
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
      
 65 
     | 
    
         
            +
                      DestroyParticipatoryProcessAdmin.call(@participatory_process_user_role, current_user) do
         
     | 
| 
      
 66 
     | 
    
         
            +
                        on(:ok) do
         
     | 
| 
      
 67 
     | 
    
         
            +
                          flash[:notice] = I18n.t("participatory_process_user_roles.destroy.success", scope: "decidim.admin")
         
     | 
| 
      
 68 
     | 
    
         
            +
                          redirect_to participatory_process_user_roles_path(current_participatory_process)
         
     | 
| 
      
 69 
     | 
    
         
            +
                        end
         
     | 
| 
      
 70 
     | 
    
         
            +
                      end
         
     | 
| 
       69 
71 
     | 
    
         
             
                    end
         
     | 
| 
       70 
72 
     | 
    
         | 
| 
       71 
73 
     | 
    
         
             
                    def resend_invitation
         
     | 
| 
         @@ -0,0 +1,11 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Decidim
         
     | 
| 
      
 4 
     | 
    
         
            +
              module ParticipatoryProcesses
         
     | 
| 
      
 5 
     | 
    
         
            +
                # This controller is the abstract class from which all other controllers of
         
     | 
| 
      
 6 
     | 
    
         
            +
                # this engine inherit.
         
     | 
| 
      
 7 
     | 
    
         
            +
                class ApplicationController < Decidim::ApplicationController
         
     | 
| 
      
 8 
     | 
    
         
            +
                  helper Decidim::ParticipatoryProcesses::ApplicationHelper
         
     | 
| 
      
 9 
     | 
    
         
            +
                end
         
     | 
| 
      
 10 
     | 
    
         
            +
              end
         
     | 
| 
      
 11 
     | 
    
         
            +
            end
         
     | 
    
        data/app/controllers/decidim/participatory_processes/participatory_process_groups_controller.rb
    CHANGED
    
    | 
         @@ -2,7 +2,7 @@ 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            module Decidim
         
     | 
| 
       4 
4 
     | 
    
         
             
              module ParticipatoryProcesses
         
     | 
| 
       5 
     | 
    
         
            -
                class ParticipatoryProcessGroupsController < Decidim::ApplicationController
         
     | 
| 
      
 5 
     | 
    
         
            +
                class ParticipatoryProcessGroupsController < Decidim::ParticipatoryProcesses::ApplicationController
         
     | 
| 
       6 
6 
     | 
    
         
             
                  helper Decidim::SanitizeHelper
         
     | 
| 
       7 
7 
     | 
    
         
             
                  helper_method :participatory_processes, :group, :collection
         
     | 
| 
       8 
8 
     | 
    
         | 
    
        data/app/controllers/decidim/participatory_processes/participatory_process_steps_controller.rb
    CHANGED
    
    | 
         @@ -4,7 +4,7 @@ module Decidim 
     | 
|
| 
       4 
4 
     | 
    
         
             
              module ParticipatoryProcesses
         
     | 
| 
       5 
5 
     | 
    
         
             
                # A controller that holds the logic to show ParticipatoryProcessSteps in a
         
     | 
| 
       6 
6 
     | 
    
         
             
                # public layout.
         
     | 
| 
       7 
     | 
    
         
            -
                class ParticipatoryProcessStepsController < Decidim::ApplicationController
         
     | 
| 
      
 7 
     | 
    
         
            +
                class ParticipatoryProcessStepsController < Decidim::ParticipatoryProcesses::ApplicationController
         
     | 
| 
       8 
8 
     | 
    
         
             
                  include ParticipatorySpaceContext
         
     | 
| 
       9 
9 
     | 
    
         
             
                  participatory_space_layout only: :index
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
         @@ -4,7 +4,7 @@ module Decidim 
     | 
|
| 
       4 
4 
     | 
    
         
             
              module ParticipatoryProcesses
         
     | 
| 
       5 
5 
     | 
    
         
             
                # A controller that holds the logic to show ParticipatoryProcesses in a
         
     | 
| 
       6 
6 
     | 
    
         
             
                # public layout.
         
     | 
| 
       7 
     | 
    
         
            -
                class ParticipatoryProcessesController < Decidim::ApplicationController
         
     | 
| 
      
 7 
     | 
    
         
            +
                class ParticipatoryProcessesController < Decidim::ParticipatoryProcesses::ApplicationController
         
     | 
| 
       8 
8 
     | 
    
         
             
                  include ParticipatorySpaceContext
         
     | 
| 
       9 
9 
     | 
    
         
             
                  participatory_space_layout only: :show
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
         @@ -12,6 +12,7 @@ module Decidim 
     | 
|
| 
       12 
12 
     | 
    
         
             
                  helper Decidim::IconHelper
         
     | 
| 
       13 
13 
     | 
    
         
             
                  helper Decidim::WidgetUrlsHelper
         
     | 
| 
       14 
14 
     | 
    
         
             
                  helper Decidim::SanitizeHelper
         
     | 
| 
      
 15 
     | 
    
         
            +
                  helper Decidim::ResourceReferenceHelper
         
     | 
| 
       15 
16 
     | 
    
         | 
| 
       16 
17 
     | 
    
         
             
                  helper ParticipatoryProcessHelper
         
     | 
| 
       17 
18 
     | 
    
         | 
| 
         @@ -57,11 +58,11 @@ module Decidim 
     | 
|
| 
       57 
58 
     | 
    
         
             
                  end
         
     | 
| 
       58 
59 
     | 
    
         | 
| 
       59 
60 
     | 
    
         
             
                  def promoted_participatory_processes
         
     | 
| 
       60 
     | 
    
         
            -
                    @ 
     | 
| 
      
 61 
     | 
    
         
            +
                    @promoted_participatory_processes ||= filtered_participatory_processes | PromotedParticipatoryProcesses.new
         
     | 
| 
       61 
62 
     | 
    
         
             
                  end
         
     | 
| 
       62 
63 
     | 
    
         | 
| 
       63 
64 
     | 
    
         
             
                  def participatory_process_groups
         
     | 
| 
       64 
     | 
    
         
            -
                    @ 
     | 
| 
      
 65 
     | 
    
         
            +
                    @participatory_process_groups ||= OrganizationPrioritizedParticipatoryProcessGroups.new(current_organization, filter)
         
     | 
| 
       65 
66 
     | 
    
         
             
                  end
         
     | 
| 
       66 
67 
     | 
    
         | 
| 
       67 
68 
     | 
    
         
             
                  def stats
         
     | 
| 
         @@ -0,0 +1,23 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Decidim
         
     | 
| 
      
 4 
     | 
    
         
            +
              module ParticipatoryProcesses
         
     | 
| 
      
 5 
     | 
    
         
            +
                # Custom helpers, scoped to the participatory processes engine.
         
     | 
| 
      
 6 
     | 
    
         
            +
                #
         
     | 
| 
      
 7 
     | 
    
         
            +
                module ApplicationHelper
         
     | 
| 
      
 8 
     | 
    
         
            +
                  include Decidim::ResourceHelper
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                  # Public: Renders all hooks registered as `hook_name`.
         
     | 
| 
      
 11 
     | 
    
         
            +
                  #
         
     | 
| 
      
 12 
     | 
    
         
            +
                  #   Note: We're passing a deep copy of the view context to allow
         
     | 
| 
      
 13 
     | 
    
         
            +
                  #   us to extend it without polluting the original view context
         
     | 
| 
      
 14 
     | 
    
         
            +
                  #
         
     | 
| 
      
 15 
     | 
    
         
            +
                  # @param hook_name [Symbol] representing the name of the hook.
         
     | 
| 
      
 16 
     | 
    
         
            +
                  #
         
     | 
| 
      
 17 
     | 
    
         
            +
                  # @return [String] an HTML safe String
         
     | 
| 
      
 18 
     | 
    
         
            +
                  def render_participatory_processes_hook(hook_name)
         
     | 
| 
      
 19 
     | 
    
         
            +
                    Decidim::ParticipatoryProcesses.view_hooks.render(hook_name, deep_dup)
         
     | 
| 
      
 20 
     | 
    
         
            +
                  end
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -8,10 +8,14 @@ module Decidim 
     | 
|
| 
       8 
8 
     | 
    
         
             
              # active.
         
     | 
| 
       9 
9 
     | 
    
         
             
              class ParticipatoryProcess < ApplicationRecord
         
     | 
| 
       10 
10 
     | 
    
         
             
                include Decidim::HasAttachments
         
     | 
| 
      
 11 
     | 
    
         
            +
                include Decidim::HasAttachmentCollections
         
     | 
| 
       11 
12 
     | 
    
         
             
                include Decidim::Participable
         
     | 
| 
       12 
13 
     | 
    
         
             
                include Decidim::Publicable
         
     | 
| 
       13 
14 
     | 
    
         
             
                include Decidim::Scopable
         
     | 
| 
       14 
15 
     | 
    
         
             
                include Decidim::Followable
         
     | 
| 
      
 16 
     | 
    
         
            +
                include Decidim::HasReference
         
     | 
| 
      
 17 
     | 
    
         
            +
                include Decidim::Traceable
         
     | 
| 
      
 18 
     | 
    
         
            +
                include Decidim::Loggable
         
     | 
| 
       15 
19 
     | 
    
         | 
| 
       16 
20 
     | 
    
         
             
                belongs_to :organization,
         
     | 
| 
       17 
21 
     | 
    
         
             
                           foreign_key: "decidim_organization_id",
         
     | 
| 
         @@ -60,6 +64,10 @@ module Decidim 
     | 
|
| 
       60 
64 
     | 
    
         
             
                  where(promoted: true)
         
     | 
| 
       61 
65 
     | 
    
         
             
                end
         
     | 
| 
       62 
66 
     | 
    
         | 
| 
      
 67 
     | 
    
         
            +
                def self.log_presenter_class_for(_log)
         
     | 
| 
      
 68 
     | 
    
         
            +
                  Decidim::ParticipatoryProcesses::AdminLog::ParticipatoryProcessPresenter
         
     | 
| 
      
 69 
     | 
    
         
            +
                end
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
       63 
71 
     | 
    
         
             
                def hashtag
         
     | 
| 
       64 
72 
     | 
    
         
             
                  attributes["hashtag"].to_s.delete("#")
         
     | 
| 
       65 
73 
     | 
    
         
             
                end
         
     | 
| 
         @@ -5,9 +5,14 @@ module Decidim 
     | 
|
| 
       5 
5 
     | 
    
         
             
              # features that will show up in the depending on what step is currently
         
     | 
| 
       6 
6 
     | 
    
         
             
              # active.
         
     | 
| 
       7 
7 
     | 
    
         
             
              class ParticipatoryProcessStep < ApplicationRecord
         
     | 
| 
      
 8 
     | 
    
         
            +
                include Traceable
         
     | 
| 
      
 9 
     | 
    
         
            +
                include Loggable
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
       8 
11 
     | 
    
         
             
                belongs_to :participatory_process, foreign_key: "decidim_participatory_process_id", class_name: "Decidim::ParticipatoryProcess"
         
     | 
| 
       9 
12 
     | 
    
         
             
                has_one :organization, through: :participatory_process
         
     | 
| 
       10 
13 
     | 
    
         | 
| 
      
 14 
     | 
    
         
            +
                alias participatory_space participatory_process
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
       11 
16 
     | 
    
         
             
                validates :start_date, date: { before: :end_date, allow_blank: true, if: proc { |obj| obj.end_date.present? } }
         
     | 
| 
       12 
17 
     | 
    
         
             
                validates :end_date, date: { after: :start_date, allow_blank: true, if: proc { |obj| obj.start_date.present? } }
         
     | 
| 
       13 
18 
     | 
    
         | 
| 
         @@ -18,6 +23,10 @@ module Decidim 
     | 
|
| 
       18 
23 
     | 
    
         | 
| 
       19 
24 
     | 
    
         
             
                before_create :set_position
         
     | 
| 
       20 
25 
     | 
    
         | 
| 
      
 26 
     | 
    
         
            +
                def self.log_presenter_class_for(_log)
         
     | 
| 
      
 27 
     | 
    
         
            +
                  Decidim::ParticipatoryProcesses::AdminLog::StepPresenter
         
     | 
| 
      
 28 
     | 
    
         
            +
                end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
       21 
30 
     | 
    
         
             
                private
         
     | 
| 
       22 
31 
     | 
    
         | 
| 
       23 
32 
     | 
    
         
             
                # Internal: Sets the position of the step if it is `nil`. That means that
         
     | 
    
        data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_presenter.rb
    ADDED
    
    | 
         @@ -0,0 +1,56 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Decidim
         
     | 
| 
      
 4 
     | 
    
         
            +
              module ParticipatoryProcesses
         
     | 
| 
      
 5 
     | 
    
         
            +
                module AdminLog
         
     | 
| 
      
 6 
     | 
    
         
            +
                  # This class holds the logic to present a `Decidim::ParticipatoryProcess`
         
     | 
| 
      
 7 
     | 
    
         
            +
                  # for the `AdminLog` log.
         
     | 
| 
      
 8 
     | 
    
         
            +
                  #
         
     | 
| 
      
 9 
     | 
    
         
            +
                  # Usage should be automatic and you shouldn't need to call this class
         
     | 
| 
      
 10 
     | 
    
         
            +
                  # directly, but here's an example:
         
     | 
| 
      
 11 
     | 
    
         
            +
                  #
         
     | 
| 
      
 12 
     | 
    
         
            +
                  #    action_log = Decidim::ActionLog.last
         
     | 
| 
      
 13 
     | 
    
         
            +
                  #    view_helpers # => this comes from the views
         
     | 
| 
      
 14 
     | 
    
         
            +
                  #    ParticipatoryProcessPresenter.new(action_log, view_helpers).present
         
     | 
| 
      
 15 
     | 
    
         
            +
                  class ParticipatoryProcessPresenter < Decidim::Log::BasePresenter
         
     | 
| 
      
 16 
     | 
    
         
            +
                    private
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                    def diff_fields_mapping
         
     | 
| 
      
 19 
     | 
    
         
            +
                      {
         
     | 
| 
      
 20 
     | 
    
         
            +
                        description: :i18n,
         
     | 
| 
      
 21 
     | 
    
         
            +
                        developer_group: :i18n,
         
     | 
| 
      
 22 
     | 
    
         
            +
                        hashtag: :string,
         
     | 
| 
      
 23 
     | 
    
         
            +
                        local_area: :i18n,
         
     | 
| 
      
 24 
     | 
    
         
            +
                        meta_scope: :i18n,
         
     | 
| 
      
 25 
     | 
    
         
            +
                        participatory_scope: :i18n,
         
     | 
| 
      
 26 
     | 
    
         
            +
                        participatory_structure: :i18n,
         
     | 
| 
      
 27 
     | 
    
         
            +
                        published_at: :date,
         
     | 
| 
      
 28 
     | 
    
         
            +
                        scopes_enabled: :boolean,
         
     | 
| 
      
 29 
     | 
    
         
            +
                        short_description: :i18n,
         
     | 
| 
      
 30 
     | 
    
         
            +
                        slug: :string,
         
     | 
| 
      
 31 
     | 
    
         
            +
                        subtitle: :i18n,
         
     | 
| 
      
 32 
     | 
    
         
            +
                        target: :i18n,
         
     | 
| 
      
 33 
     | 
    
         
            +
                        title: :i18n
         
     | 
| 
      
 34 
     | 
    
         
            +
                      }
         
     | 
| 
      
 35 
     | 
    
         
            +
                    end
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                    def action_string
         
     | 
| 
      
 38 
     | 
    
         
            +
                      case action
         
     | 
| 
      
 39 
     | 
    
         
            +
                      when "create", "publish", "unpublish", "update"
         
     | 
| 
      
 40 
     | 
    
         
            +
                        "decidim.admin_log.participatory_process.#{action}"
         
     | 
| 
      
 41 
     | 
    
         
            +
                      else
         
     | 
| 
      
 42 
     | 
    
         
            +
                        super
         
     | 
| 
      
 43 
     | 
    
         
            +
                      end
         
     | 
| 
      
 44 
     | 
    
         
            +
                    end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                    def i18n_labels_scope
         
     | 
| 
      
 47 
     | 
    
         
            +
                      "activemodel.attributes.participatory_process"
         
     | 
| 
      
 48 
     | 
    
         
            +
                    end
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                    def has_diff?
         
     | 
| 
      
 51 
     | 
    
         
            +
                      action == "unpublish" || super
         
     | 
| 
      
 52 
     | 
    
         
            +
                    end
         
     | 
| 
      
 53 
     | 
    
         
            +
                  end
         
     | 
| 
      
 54 
     | 
    
         
            +
                end
         
     | 
| 
      
 55 
     | 
    
         
            +
              end
         
     | 
| 
      
 56 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,53 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Decidim
         
     | 
| 
      
 4 
     | 
    
         
            +
              module ParticipatoryProcesses
         
     | 
| 
      
 5 
     | 
    
         
            +
                module AdminLog
         
     | 
| 
      
 6 
     | 
    
         
            +
                  # This class holds the logic to present a `Decidim::ParticipatoryProcessUserRole`
         
     | 
| 
      
 7 
     | 
    
         
            +
                  # for the `AdminLog` log.
         
     | 
| 
      
 8 
     | 
    
         
            +
                  #
         
     | 
| 
      
 9 
     | 
    
         
            +
                  # Usage should be automatic and you shouldn't need to call this class
         
     | 
| 
      
 10 
     | 
    
         
            +
                  # directly, but here's an example:
         
     | 
| 
      
 11 
     | 
    
         
            +
                  #
         
     | 
| 
      
 12 
     | 
    
         
            +
                  #    action_log = Decidim::ActionLog.last
         
     | 
| 
      
 13 
     | 
    
         
            +
                  #    view_helpers # => this comes from the views
         
     | 
| 
      
 14 
     | 
    
         
            +
                  #    ParticipatoryProcessUserRolePresenter.new(action_log, view_helpers).present
         
     | 
| 
      
 15 
     | 
    
         
            +
                  class ParticipatoryProcessUserRolePresenter < Decidim::Log::BasePresenter
         
     | 
| 
      
 16 
     | 
    
         
            +
                    private
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                    def diff_fields_mapping
         
     | 
| 
      
 19 
     | 
    
         
            +
                      {
         
     | 
| 
      
 20 
     | 
    
         
            +
                        role: "Decidim::ParticipatoryProcesses::AdminLog::ValueTypes::RolePresenter"
         
     | 
| 
      
 21 
     | 
    
         
            +
                      }
         
     | 
| 
      
 22 
     | 
    
         
            +
                    end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                    def changeset
         
     | 
| 
      
 25 
     | 
    
         
            +
                      return super unless action.to_s == "delete"
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                      Decidim::Log::DiffChangesetCalculator.new(
         
     | 
| 
      
 28 
     | 
    
         
            +
                        { role: [action_log.version.object["role"], ""] },
         
     | 
| 
      
 29 
     | 
    
         
            +
                        diff_fields_mapping,
         
     | 
| 
      
 30 
     | 
    
         
            +
                        i18n_labels_scope
         
     | 
| 
      
 31 
     | 
    
         
            +
                      ).changeset
         
     | 
| 
      
 32 
     | 
    
         
            +
                    end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                    def has_diff?
         
     | 
| 
      
 35 
     | 
    
         
            +
                      action == "delete" || super
         
     | 
| 
      
 36 
     | 
    
         
            +
                    end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                    def action_string
         
     | 
| 
      
 39 
     | 
    
         
            +
                      case action
         
     | 
| 
      
 40 
     | 
    
         
            +
                      when "create", "update", "delete"
         
     | 
| 
      
 41 
     | 
    
         
            +
                        "decidim.admin_log.participatory_process_user_role.#{action}"
         
     | 
| 
      
 42 
     | 
    
         
            +
                      else
         
     | 
| 
      
 43 
     | 
    
         
            +
                        super
         
     | 
| 
      
 44 
     | 
    
         
            +
                      end
         
     | 
| 
      
 45 
     | 
    
         
            +
                    end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
                    def i18n_labels_scope
         
     | 
| 
      
 48 
     | 
    
         
            +
                      "activemodel.attributes.participatory_process_user_role"
         
     | 
| 
      
 49 
     | 
    
         
            +
                    end
         
     | 
| 
      
 50 
     | 
    
         
            +
                  end
         
     | 
| 
      
 51 
     | 
    
         
            +
                end
         
     | 
| 
      
 52 
     | 
    
         
            +
              end
         
     | 
| 
      
 53 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,40 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Decidim
         
     | 
| 
      
 4 
     | 
    
         
            +
              module ParticipatoryProcesses
         
     | 
| 
      
 5 
     | 
    
         
            +
                module AdminLog
         
     | 
| 
      
 6 
     | 
    
         
            +
                  # This class holds the logic to present a `Decidim::Step`
         
     | 
| 
      
 7 
     | 
    
         
            +
                  # for the `AdminLog` log.
         
     | 
| 
      
 8 
     | 
    
         
            +
                  #
         
     | 
| 
      
 9 
     | 
    
         
            +
                  # Usage should be automatic and you shouldn't need to call this class
         
     | 
| 
      
 10 
     | 
    
         
            +
                  # directly, but here's an example:
         
     | 
| 
      
 11 
     | 
    
         
            +
                  #
         
     | 
| 
      
 12 
     | 
    
         
            +
                  #    action_log = Decidim::ActionLog.last
         
     | 
| 
      
 13 
     | 
    
         
            +
                  #    view_helpers # => this comes from the views
         
     | 
| 
      
 14 
     | 
    
         
            +
                  #    StepPresenter.new(action_log, view_helpers).present
         
     | 
| 
      
 15 
     | 
    
         
            +
                  class StepPresenter < Decidim::Log::BasePresenter
         
     | 
| 
      
 16 
     | 
    
         
            +
                    private
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                    def diff_fields_mapping
         
     | 
| 
      
 19 
     | 
    
         
            +
                      {
         
     | 
| 
      
 20 
     | 
    
         
            +
                        description: :i18n,
         
     | 
| 
      
 21 
     | 
    
         
            +
                        title: :i18n
         
     | 
| 
      
 22 
     | 
    
         
            +
                      }
         
     | 
| 
      
 23 
     | 
    
         
            +
                    end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                    def action_string
         
     | 
| 
      
 26 
     | 
    
         
            +
                      case action
         
     | 
| 
      
 27 
     | 
    
         
            +
                      when "activate", "create", "delete", "update"
         
     | 
| 
      
 28 
     | 
    
         
            +
                        "decidim.admin_log.participatory_process_step.#{action}"
         
     | 
| 
      
 29 
     | 
    
         
            +
                      else
         
     | 
| 
      
 30 
     | 
    
         
            +
                        super
         
     | 
| 
      
 31 
     | 
    
         
            +
                      end
         
     | 
| 
      
 32 
     | 
    
         
            +
                    end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                    def i18n_labels_scope
         
     | 
| 
      
 35 
     | 
    
         
            +
                      "activemodel.attributes.participatory_process_step"
         
     | 
| 
      
 36 
     | 
    
         
            +
                    end
         
     | 
| 
      
 37 
     | 
    
         
            +
                  end
         
     | 
| 
      
 38 
     | 
    
         
            +
                end
         
     | 
| 
      
 39 
     | 
    
         
            +
              end
         
     | 
| 
      
 40 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,22 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Decidim
         
     | 
| 
      
 4 
     | 
    
         
            +
              module ParticipatoryProcesses
         
     | 
| 
      
 5 
     | 
    
         
            +
                module AdminLog
         
     | 
| 
      
 6 
     | 
    
         
            +
                  module ValueTypes
         
     | 
| 
      
 7 
     | 
    
         
            +
                    # This class presents the given value as a user role. Check
         
     | 
| 
      
 8 
     | 
    
         
            +
                    # the `DefaultPresenter` for more info on how value
         
     | 
| 
      
 9 
     | 
    
         
            +
                    # presenters work.
         
     | 
| 
      
 10 
     | 
    
         
            +
                    class RolePresenter < Decidim::Log::ValueTypes::DefaultPresenter
         
     | 
| 
      
 11 
     | 
    
         
            +
                      # Public: Presents the value as a user role.
         
     | 
| 
      
 12 
     | 
    
         
            +
                      #
         
     | 
| 
      
 13 
     | 
    
         
            +
                      # Returns an HTML-safe String.
         
     | 
| 
      
 14 
     | 
    
         
            +
                      def present
         
     | 
| 
      
 15 
     | 
    
         
            +
                        return if value.blank?
         
     | 
| 
      
 16 
     | 
    
         
            +
                        h.t(value, scope: "decidim.admin.models.participatory_process_user_role.roles", default: value)
         
     | 
| 
      
 17 
     | 
    
         
            +
                      end
         
     | 
| 
      
 18 
     | 
    
         
            +
                    end
         
     | 
| 
      
 19 
     | 
    
         
            +
                  end
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
              end
         
     | 
| 
      
 22 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,25 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Decidim
         
     | 
| 
      
 4 
     | 
    
         
            +
              module ParticipatoryProcesses
         
     | 
| 
      
 5 
     | 
    
         
            +
                # This type represents a step on a participatory process.
         
     | 
| 
      
 6 
     | 
    
         
            +
                ParticipatoryProcessStepType = GraphQL::ObjectType.define do
         
     | 
| 
      
 7 
     | 
    
         
            +
                  name "ParticipatoryProcessStep"
         
     | 
| 
      
 8 
     | 
    
         
            +
                  description "A participatory process step"
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                  field :id, !types.ID, "The unique ID of this step."
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                  field :participatoryProcess do
         
     | 
| 
      
 13 
     | 
    
         
            +
                    type !ParticipatoryProcessType
         
     | 
| 
      
 14 
     | 
    
         
            +
                    description "The participatory process in which this step belongs to."
         
     | 
| 
      
 15 
     | 
    
         
            +
                    property :participatory_process
         
     | 
| 
      
 16 
     | 
    
         
            +
                  end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                  field :title, !Decidim::Core::TranslatedFieldType, "The title of this step"
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                  field :startDate, Decidim::Core::DateType, "This step's start date.", property: :start_date
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                  field :endDate, Decidim::Core::DateType, "This step's end date.", property: :end_date
         
     | 
| 
      
 23 
     | 
    
         
            +
                end
         
     | 
| 
      
 24 
     | 
    
         
            +
              end
         
     | 
| 
      
 25 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,15 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Decidim
         
     | 
| 
      
 4 
     | 
    
         
            +
              module ParticipatoryProcesses
         
     | 
| 
      
 5 
     | 
    
         
            +
                # This type represents a ParticipatoryProcess.
         
     | 
| 
      
 6 
     | 
    
         
            +
                ParticipatoryProcessType = GraphQL::ObjectType.define do
         
     | 
| 
      
 7 
     | 
    
         
            +
                  interfaces [Decidim::Core::ParticipatorySpaceInterface]
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                  name "ParticipatoryProcess"
         
     | 
| 
      
 10 
     | 
    
         
            +
                  description "A participatory process"
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                  field :steps, !types[ParticipatoryProcessStepType], "All the steps of this process."
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
              end
         
     | 
| 
      
 15 
     | 
    
         
            +
            end
         
     |