decidim-participatory_processes 0.26.2 → 0.27.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +0 -4
  3. data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/filters.erb +3 -3
  4. data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/show.erb +1 -0
  5. data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes_cell.rb +6 -11
  6. data/app/cells/decidim/participatory_process_groups/process_filters_cell.rb +15 -18
  7. data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes/show.erb +1 -1
  8. data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes/single_process.erb +1 -1
  9. data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes_cell.rb +1 -1
  10. data/app/cells/decidim/participatory_processes/filtered_participatory_processes_cell.rb +11 -7
  11. data/app/cells/decidim/participatory_processes/process_filters/show.erb +13 -9
  12. data/app/cells/decidim/participatory_processes/process_filters/type_filter.erb +17 -0
  13. data/app/cells/decidim/participatory_processes/process_filters_cell.rb +50 -16
  14. data/app/cells/decidim/participatory_processes/process_group_s/image.erb +1 -1
  15. data/app/cells/decidim/participatory_processes/process_s/image.erb +1 -1
  16. data/app/commands/decidim/participatory_processes/admin/activate_participatory_process_step.rb +1 -1
  17. data/app/commands/decidim/participatory_processes/admin/copy_participatory_process.rb +11 -8
  18. data/app/commands/decidim/participatory_processes/admin/create_participatory_process.rb +2 -1
  19. data/app/commands/decidim/participatory_processes/admin/create_participatory_process_group.rb +1 -1
  20. data/app/commands/decidim/participatory_processes/admin/create_participatory_process_step.rb +1 -1
  21. data/app/commands/decidim/participatory_processes/admin/create_participatory_process_type.rb +47 -0
  22. data/app/commands/decidim/participatory_processes/admin/destroy_participatory_process_admin.rb +1 -1
  23. data/app/commands/decidim/participatory_processes/admin/destroy_participatory_process_group.rb +1 -1
  24. data/app/commands/decidim/participatory_processes/admin/destroy_participatory_process_step.rb +1 -1
  25. data/app/commands/decidim/participatory_processes/admin/destroy_participatory_process_type.rb +49 -0
  26. data/app/commands/decidim/participatory_processes/admin/import_participatory_process.rb +9 -6
  27. data/app/commands/decidim/participatory_processes/admin/notify_role_assigned_to_participatory_process.rb +1 -1
  28. data/app/commands/decidim/participatory_processes/admin/publish_participatory_process.rb +1 -1
  29. data/app/commands/decidim/participatory_processes/admin/reorder_participatory_process_steps.rb +1 -1
  30. data/app/commands/decidim/participatory_processes/admin/unpublish_participatory_process.rb +1 -1
  31. data/app/commands/decidim/participatory_processes/admin/update_participatory_process.rb +2 -1
  32. data/app/commands/decidim/participatory_processes/admin/update_participatory_process_group.rb +1 -1
  33. data/app/commands/decidim/participatory_processes/admin/update_participatory_process_step.rb +1 -1
  34. data/app/commands/decidim/participatory_processes/admin/update_participatory_process_type.rb +49 -0
  35. data/app/controllers/decidim/participatory_processes/admin/participatory_process_copies_controller.rb +1 -1
  36. data/app/controllers/decidim/participatory_processes/admin/participatory_process_types_controller.rb +98 -0
  37. data/app/controllers/decidim/participatory_processes/admin/reminders_controller.rb +14 -0
  38. data/app/controllers/decidim/participatory_processes/participatory_processes_controller.rb +8 -7
  39. data/app/events/decidim/participatory_process_role_assigned_event.rb +1 -1
  40. data/app/forms/decidim/participatory_processes/admin/participatory_process_form.rb +16 -0
  41. data/app/forms/decidim/participatory_processes/admin/participatory_process_import_form.rb +5 -7
  42. data/app/forms/decidim/participatory_processes/admin/participatory_process_type_form.rb +20 -0
  43. data/app/models/decidim/participatory_process.rb +35 -6
  44. data/app/models/decidim/participatory_process_type.rb +27 -0
  45. data/app/permissions/decidim/participatory_processes/permissions.rb +14 -0
  46. data/app/presenters/decidim/log/value_types/participatory_process_type_presenter.rb +27 -0
  47. data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_presenter.rb +3 -2
  48. data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_type_presenter.rb +38 -0
  49. data/app/presenters/decidim/participatory_processes/participatory_process_group_stats_presenter.rb +4 -1
  50. data/app/presenters/decidim/participatory_processes/participatory_process_metric_charts_presenter.rb +5 -1
  51. data/app/presenters/decidim/participatory_processes/participatory_process_stats_presenter.rb +4 -1
  52. data/app/queries/decidim/participatory_processes/admin/admin_users.rb +1 -1
  53. data/app/queries/decidim/participatory_processes/admin/moderators.rb +1 -1
  54. data/app/queries/decidim/participatory_processes/filtered_participatory_process_groups.rb +1 -1
  55. data/app/queries/decidim/participatory_processes/filtered_participatory_processes.rb +1 -1
  56. data/app/queries/decidim/participatory_processes/group_participatory_processes.rb +1 -1
  57. data/app/queries/decidim/participatory_processes/group_published_participatory_processes.rb +2 -2
  58. data/app/queries/decidim/participatory_processes/highlighted_participatory_processes.rb +1 -1
  59. data/app/queries/decidim/participatory_processes/organization_participatory_process_groups.rb +1 -1
  60. data/app/queries/decidim/participatory_processes/organization_participatory_processes.rb +1 -1
  61. data/app/queries/decidim/participatory_processes/organization_prioritized_participatory_process_groups.rb +2 -2
  62. data/app/queries/decidim/participatory_processes/organization_prioritized_participatory_processes.rb +2 -2
  63. data/app/queries/decidim/participatory_processes/organization_promoted_participatory_process_groups.rb +1 -1
  64. data/app/queries/decidim/participatory_processes/organization_published_participatory_processes.rb +2 -2
  65. data/app/queries/decidim/participatory_processes/participatory_processes_by_group.rb +1 -1
  66. data/app/queries/decidim/participatory_processes/prioritized_participatory_processes.rb +1 -1
  67. data/app/queries/decidim/participatory_processes/promoted_participatory_process_groups.rb +1 -1
  68. data/app/queries/decidim/participatory_processes/promoted_participatory_processes.rb +1 -1
  69. data/app/queries/decidim/participatory_processes/published_participatory_processes.rb +1 -1
  70. data/app/queries/decidim/participatory_processes/stats_followers_count.rb +2 -2
  71. data/app/queries/decidim/participatory_processes/stats_participants_count.rb +2 -2
  72. data/app/queries/decidim/participatory_processes/visible_participatory_process_groups.rb +1 -1
  73. data/app/queries/decidim/participatory_processes/visible_participatory_processes.rb +1 -1
  74. data/app/serializers/decidim/participatory_processes/participatory_process_importer.rb +4 -3
  75. data/app/views/decidim/participatory_processes/admin/participatory_process_types/_form.html.erb +11 -0
  76. data/app/views/decidim/participatory_processes/admin/participatory_process_types/edit.html.erb +9 -0
  77. data/app/views/decidim/participatory_processes/admin/participatory_process_types/index.html.erb +60 -0
  78. data/app/views/decidim/participatory_processes/admin/participatory_process_types/new.html.erb +9 -0
  79. data/app/views/decidim/participatory_processes/admin/participatory_processes/_form.html.erb +10 -0
  80. data/app/views/decidim/participatory_processes/participatory_process_groups/show.html.erb +3 -1
  81. data/app/views/decidim/participatory_processes/participatory_process_groups/show.js.erb +9 -6
  82. data/app/views/decidim/participatory_processes/participatory_processes/_promoted_process.html.erb +1 -1
  83. data/app/views/decidim/participatory_processes/participatory_processes/_promoted_process_group.html.erb +1 -1
  84. data/app/views/decidim/participatory_processes/participatory_processes/index.html.erb +3 -1
  85. data/app/views/decidim/participatory_processes/participatory_processes/index.js.erb +3 -1
  86. data/app/views/layouts/decidim/_process_header.html.erb +1 -1
  87. data/app/views/layouts/decidim/admin/participatory_process_type.html.erb +15 -0
  88. data/config/locales/ar.yml +1 -0
  89. data/config/locales/bg.yml +1 -0
  90. data/config/locales/ca.yml +43 -1
  91. data/config/locales/cs.yml +49 -7
  92. data/config/locales/de.yml +38 -1
  93. data/config/locales/el.yml +1 -6
  94. data/config/locales/en.yml +42 -1
  95. data/config/locales/es-MX.yml +43 -1
  96. data/config/locales/es-PY.yml +43 -1
  97. data/config/locales/es.yml +43 -1
  98. data/config/locales/eu.yml +1 -6
  99. data/config/locales/fi-plain.yml +43 -1
  100. data/config/locales/fi.yml +43 -1
  101. data/config/locales/fr-CA.yml +43 -1
  102. data/config/locales/fr.yml +44 -2
  103. data/config/locales/ga-IE.yml +1 -0
  104. data/config/locales/gl.yml +1 -6
  105. data/config/locales/hu.yml +116 -1
  106. data/config/locales/id-ID.yml +1 -0
  107. data/config/locales/is-IS.yml +2 -1
  108. data/config/locales/it.yml +1 -6
  109. data/config/locales/ja.yml +43 -1
  110. data/config/locales/lb.yml +1 -6
  111. data/config/locales/lt.yml +546 -0
  112. data/config/locales/lv.yml +1 -6
  113. data/config/locales/nl.yml +1 -6
  114. data/config/locales/no.yml +17 -6
  115. data/config/locales/pl.yml +7 -6
  116. data/config/locales/pt-BR.yml +1 -6
  117. data/config/locales/pt.yml +1 -6
  118. data/config/locales/ro-RO.yml +1 -6
  119. data/config/locales/ru.yml +1 -0
  120. data/config/locales/sk.yml +1 -6
  121. data/config/locales/sl.yml +1 -0
  122. data/config/locales/sr-CS.yml +1 -0
  123. data/config/locales/sv.yml +15 -6
  124. data/config/locales/tr-TR.yml +1 -6
  125. data/config/locales/uk.yml +1 -0
  126. data/config/locales/zh-CN.yml +1 -6
  127. data/db/migrate/20211125202008_create_decidim_participatory_process_types.rb +22 -0
  128. data/lib/decidim/api/participatory_process_type_type.rb +17 -0
  129. data/lib/decidim/participatory_processes/admin_engine.rb +12 -1
  130. data/lib/decidim/participatory_processes/api.rb +1 -0
  131. data/lib/decidim/participatory_processes/participatory_space.rb +17 -8
  132. data/lib/decidim/participatory_processes/query_extensions.rb +22 -0
  133. data/lib/decidim/participatory_processes/test/factories.rb +17 -0
  134. data/lib/decidim/participatory_processes/version.rb +1 -1
  135. metadata +31 -15
  136. data/app/services/decidim/participatory_processes/participatory_process_search.rb +0 -27
@@ -5,7 +5,7 @@ module Decidim
5
5
  # This query class filters participatory processes groups given a filter name.
6
6
  # The filter is applied checking the start and end dates of the processes in
7
7
  # the group.
8
- class FilteredParticipatoryProcessGroups < Rectify::Query
8
+ class FilteredParticipatoryProcessGroups < Decidim::Query
9
9
  def initialize(filter = "active")
10
10
  @filter = filter
11
11
  end
@@ -4,7 +4,7 @@ module Decidim
4
4
  module ParticipatoryProcesses
5
5
  # This query class filters participatory processes given a filter name.
6
6
  # It uses the start and end dates to select the correct processes.
7
- class FilteredParticipatoryProcesses < Rectify::Query
7
+ class FilteredParticipatoryProcesses < Decidim::Query
8
8
  def initialize(filter = "active")
9
9
  @filter = filter
10
10
  end
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  module ParticipatoryProcesses
5
5
  # This query class filters all processes of a participatory process group
6
- class GroupParticipatoryProcesses < Rectify::Query
6
+ class GroupParticipatoryProcesses < Decidim::Query
7
7
  def initialize(group)
8
8
  @group = group
9
9
  end
@@ -3,14 +3,14 @@
3
3
  module Decidim
4
4
  module ParticipatoryProcesses
5
5
  # This query class filters published processes of a participatory process group
6
- class GroupPublishedParticipatoryProcesses < Rectify::Query
6
+ class GroupPublishedParticipatoryProcesses < Decidim::Query
7
7
  def initialize(group, user = nil)
8
8
  @group = group
9
9
  @user = user
10
10
  end
11
11
 
12
12
  def query
13
- Rectify::Query.merge(
13
+ Decidim::Query.merge(
14
14
  GroupParticipatoryProcesses.new(@group),
15
15
  VisibleParticipatoryProcesses.new(@user),
16
16
  PublishedParticipatoryProcesses.new
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  module ParticipatoryProcesses
5
5
  # This query selects some prioritized processes.
6
- class HighlightedParticipatoryProcesses < Rectify::Query
6
+ class HighlightedParticipatoryProcesses < Decidim::Query
7
7
  def query
8
8
  PrioritizedParticipatoryProcesses.new.query.limit(8)
9
9
  end
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  module ParticipatoryProcesses
5
5
  # This query class filters participatory process groups given an organization.
6
- class OrganizationParticipatoryProcessGroups < Rectify::Query
6
+ class OrganizationParticipatoryProcessGroups < Decidim::Query
7
7
  def initialize(organization)
8
8
  @organization = organization
9
9
  end
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  module ParticipatoryProcesses
5
5
  # This query class filters all processes given an organization.
6
- class OrganizationParticipatoryProcesses < Rectify::Query
6
+ class OrganizationParticipatoryProcesses < Decidim::Query
7
7
  def initialize(organization)
8
8
  @organization = organization
9
9
  end
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  module ParticipatoryProcesses
5
5
  # This query class filters participatory process groups given an organization and a filter.
6
- class OrganizationPrioritizedParticipatoryProcessGroups < Rectify::Query
6
+ class OrganizationPrioritizedParticipatoryProcessGroups < Decidim::Query
7
7
  def initialize(organization, filter = "active", user = nil)
8
8
  @organization = organization
9
9
  @filter = filter
@@ -11,7 +11,7 @@ module Decidim
11
11
  end
12
12
 
13
13
  def query
14
- Rectify::Query.merge(
14
+ Decidim::Query.merge(
15
15
  OrganizationParticipatoryProcessGroups.new(@organization),
16
16
  FilteredParticipatoryProcessGroups.new(@filter),
17
17
  VisibleParticipatoryProcessGroups.new(@user)
@@ -4,7 +4,7 @@ module Decidim
4
4
  module ParticipatoryProcesses
5
5
  # This query class filters public processes given an organization and a
6
6
  # filter in a meaningful prioritized order.
7
- class OrganizationPrioritizedParticipatoryProcesses < Rectify::Query
7
+ class OrganizationPrioritizedParticipatoryProcesses < Decidim::Query
8
8
  def initialize(organization, filter = "active", user = nil)
9
9
  @organization = organization
10
10
  @filter = filter
@@ -12,7 +12,7 @@ module Decidim
12
12
  end
13
13
 
14
14
  def query
15
- Rectify::Query.merge(
15
+ Decidim::Query.merge(
16
16
  OrganizationPublishedParticipatoryProcesses.new(@organization, @user),
17
17
  PrioritizedParticipatoryProcesses.new,
18
18
  FilteredParticipatoryProcesses.new(@filter)
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  module ParticipatoryProcesses
5
5
  # This query class filters participatory process groups given an organization.
6
- class OrganizationPromotedParticipatoryProcessGroups < Rectify::Query
6
+ class OrganizationPromotedParticipatoryProcessGroups < Decidim::Query
7
7
  def initialize(organization)
8
8
  @organization = organization
9
9
  end
@@ -3,14 +3,14 @@
3
3
  module Decidim
4
4
  module ParticipatoryProcesses
5
5
  # This query class filters published processes given an organization.
6
- class OrganizationPublishedParticipatoryProcesses < Rectify::Query
6
+ class OrganizationPublishedParticipatoryProcesses < Decidim::Query
7
7
  def initialize(organization, user = nil)
8
8
  @organization = organization
9
9
  @user = user
10
10
  end
11
11
 
12
12
  def query
13
- Rectify::Query.merge(
13
+ Decidim::Query.merge(
14
14
  OrganizationParticipatoryProcesses.new(@organization),
15
15
  VisibleParticipatoryProcesses.new(@user),
16
16
  PublishedParticipatoryProcesses.new
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  module ParticipatoryProcesses
5
5
  # A class used to find the ParticipatoryProcesses from a ProcessGroup.
6
- class ParticipatoryProcessesByGroup < Rectify::Query
6
+ class ParticipatoryProcessesByGroup < Decidim::Query
7
7
  # Syntactic sugar to initialize the class and return the queried objects.
8
8
  def self.for(process_group)
9
9
  new(process_group).query
@@ -4,7 +4,7 @@ module Decidim
4
4
  module ParticipatoryProcesses
5
5
  # This query orders processes by importance, prioritizing promoted processes
6
6
  # first, and closest to finalization date second.
7
- class PrioritizedParticipatoryProcesses < Rectify::Query
7
+ class PrioritizedParticipatoryProcesses < Decidim::Query
8
8
  def query
9
9
  Decidim::ParticipatoryProcess.order(promoted: :desc).includes(:active_step).order("decidim_participatory_process_steps.end_date ASC")
10
10
  end
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  module ParticipatoryProcesses
5
5
  # This query filters participatory process groups so only promoted ones are returned.
6
- class PromotedParticipatoryProcessGroups < Rectify::Query
6
+ class PromotedParticipatoryProcessGroups < Decidim::Query
7
7
  def query
8
8
  Decidim::ParticipatoryProcessGroup.promoted
9
9
  end
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  module ParticipatoryProcesses
5
5
  # This query filters processes so only promoted ones are returned.
6
- class PromotedParticipatoryProcesses < Rectify::Query
6
+ class PromotedParticipatoryProcesses < Decidim::Query
7
7
  def query
8
8
  Decidim::ParticipatoryProcess.promoted
9
9
  end
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  module ParticipatoryProcesses
5
5
  # This query filters published processes only.
6
- class PublishedParticipatoryProcesses < Rectify::Query
6
+ class PublishedParticipatoryProcesses < Decidim::Query
7
7
  def query
8
8
  Decidim::ParticipatoryProcess.published
9
9
  end
@@ -4,10 +4,10 @@ module Decidim
4
4
  module ParticipatoryProcesses
5
5
  # This class counts all Followers of a participatory process or
6
6
  # participatory processes belonging to a participatory process group
7
- class StatsFollowersCount < Rectify::Query
7
+ class StatsFollowersCount < Decidim::Query
8
8
  def self.for(participatory_space)
9
9
  return 0 unless participatory_space.is_a?(Decidim::ParticipatoryProcess) ||
10
- participatory_space.is_a?(Decidim::ParticipatoryProcessGroup) && participatory_space.participatory_processes.exists?
10
+ (participatory_space.is_a?(Decidim::ParticipatoryProcessGroup) && participatory_space.participatory_processes.exists?)
11
11
 
12
12
  new(participatory_space).query
13
13
  end
@@ -4,10 +4,10 @@ module Decidim
4
4
  module ParticipatoryProcesses
5
5
  # This class counts unique Participants on a participatory process or
6
6
  # participatory processes belonging to a participatory process group
7
- class StatsParticipantsCount < Rectify::Query
7
+ class StatsParticipantsCount < Decidim::Query
8
8
  def self.for(participatory_space)
9
9
  return 0 unless participatory_space.is_a?(Decidim::ParticipatoryProcess) ||
10
- participatory_space.is_a?(Decidim::ParticipatoryProcessGroup) && participatory_space.participatory_processes.exists?
10
+ (participatory_space.is_a?(Decidim::ParticipatoryProcessGroup) && participatory_space.participatory_processes.exists?)
11
11
 
12
12
  new(participatory_space).query
13
13
  end
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  module ParticipatoryProcesses
5
5
  # This query class filters participatory processes given a current_user.
6
- class VisibleParticipatoryProcessGroups < Rectify::Query
6
+ class VisibleParticipatoryProcessGroups < Decidim::Query
7
7
  def initialize(current_user)
8
8
  @current_user = current_user
9
9
  end
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  module ParticipatoryProcesses
5
5
  # This query class filters participatory processes given a current_user.
6
- class VisibleParticipatoryProcesses < Rectify::Query
6
+ class VisibleParticipatoryProcesses < Decidim::Query
7
7
  def initialize(current_user)
8
8
  @current_user = current_user
9
9
  end
@@ -44,8 +44,9 @@ module Decidim
44
44
  scopes_enabled: attributes["scopes_enabled"],
45
45
  participatory_process_group: import_process_group(attributes["participatory_process_group"])
46
46
  )
47
- @imported_process.remote_hero_image_url = attributes["remote_hero_image_url"] if remote_file_exists?(attributes["remote_hero_image_url"])
48
- @imported_process.remote_banner_image_url = attributes["remote_banner_image_url"] if remote_file_exists?(attributes["remote_banner_image_url"])
47
+ @imported_process.attached_uploader(:hero_image).remote_url = attributes["remote_hero_image_url"] if attributes["remote_hero_image_url"].present?
48
+ @imported_process.attached_uploader(:banner_image).remote_url = attributes["remote_banner_image_url"] if attributes["remote_banner_image_url"].present?
49
+
49
50
  @imported_process.save!
50
51
  @imported_process
51
52
  end
@@ -116,7 +117,7 @@ module Decidim
116
117
  attachments["files"].map do |file|
117
118
  next unless remote_file_exists?(file["remote_file_url"])
118
119
 
119
- file_tmp = URI.open(file["remote_file_url"])
120
+ file_tmp = URI.parse(file["remote_file_url"]).open
120
121
 
121
122
  Decidim.traceability.perform_action!("create", Attachment, @user) do
122
123
  attachment = Attachment.new(
@@ -0,0 +1,11 @@
1
+ <div class="card">
2
+ <div class="card-divider">
3
+ <h2 class="card-title"><%= t("participatory_process_types.form.title", scope: "decidim.admin") %></h2>
4
+ </div>
5
+
6
+ <div class="card-section">
7
+ <div class="row column">
8
+ <%= form.translated :text_field, :title, autofocus: true %>
9
+ </div>
10
+ </div>
11
+ </div>
@@ -0,0 +1,9 @@
1
+ <%= decidim_form_for(@form, html: { class: "form edit_participatory_process_type" }) do |f| %>
2
+ <h2 class="process-title-summary">
3
+ <%= t("participatory_process_types.edit.title", scope: "decidim.admin") %>
4
+ </h2>
5
+ <%= render partial: "form", object: f %>
6
+ <div class="button--double form-general-submit">
7
+ <%= f.submit t("participatory_process_types.edit.update", scope: "decidim.admin"), class: "button" %>
8
+ </div>
9
+ <% end %>
@@ -0,0 +1,60 @@
1
+ <div class="card" id="participatory-process-types">
2
+ <div class="card-divider">
3
+ <h2 class="card-title">
4
+ <%= t("titles.participatory_process_types", scope: "decidim.admin") %>
5
+ <%= link_to(
6
+ t("actions.new_process_type", scope: "decidim.admin"),
7
+ [:new, :participatory_process_type],
8
+ class: "button tiny button--title"
9
+ ) if allowed_to? :create, :participatory_process_type %>
10
+ </h2>
11
+ </div>
12
+ <div class="card-section">
13
+ <div class="table-scroll">
14
+ <table class="table-list">
15
+ <thead>
16
+ <tr>
17
+ <th><%= t("models.participatory_process_type.fields.title", scope: "decidim.admin") %></th>
18
+ <th><%= t("models.participatory_process_type.fields.created_at", scope: "decidim.admin") %></th>
19
+ <th></th>
20
+ </tr>
21
+ </thead>
22
+ <tbody>
23
+ <% collection.each do |participatory_process_type| %>
24
+ <tr>
25
+ <td>
26
+ <% if allowed_to?(:update, :participatory_process_type, participatory_process_type: participatory_process_type) %>
27
+ <%= link_to(
28
+ translated_attribute(participatory_process_type.title),
29
+ edit_participatory_process_type_path(participatory_process_type)
30
+ ) %>
31
+ <% else %>
32
+ <%= translated_attribute(participatory_process_type.title) %></td>
33
+ <% end %>
34
+ <td><%= l(participatory_process_type.created_at, format: :short) %></td>
35
+ <td class="table-list__actions">
36
+ <% if allowed_to?(:update, :participatory_process_type, participatory_process_type: participatory_process_type) %>
37
+ <%= icon_link_to(
38
+ "pencil",
39
+ edit_participatory_process_type_path(participatory_process_type),
40
+ t("actions.edit", scope: "decidim.admin"),
41
+ class: "action-icon--new"
42
+ ) %>
43
+ <% end %>
44
+ <% if allowed_to?(:destroy, :participatory_process_type, participatory_process_type: participatory_process_type) %>
45
+ <%= icon_link_to(
46
+ "circle-x",
47
+ participatory_process_type_path(participatory_process_type),
48
+ t("actions.destroy", scope: "decidim.admin"),
49
+ class: "action-icon--remove",
50
+ method: :delete,
51
+ data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") }
52
+ ) %>
53
+ <% end %>
54
+ </td>
55
+ <% end %>
56
+ </tbody>
57
+ </table>
58
+ </div>
59
+ </div>
60
+ </div>
@@ -0,0 +1,9 @@
1
+ <%= decidim_form_for(@form, html: { class: "form new_participatory_process_type" }) do |f| %>
2
+ <h2 class="process-title-summary">
3
+ <%= t("participatory_process_types.new.title", scope: "decidim.admin") %>
4
+ </h2>
5
+ <%= render partial: "form", object: f %>
6
+ <div class="button--double form-general-submit">
7
+ <%= f.submit t("participatory_process_types.new.create", scope: "decidim.admin"), class: "button" %>
8
+ </div>
9
+ <% end %>
@@ -188,6 +188,16 @@
188
188
  <div class="row column">
189
189
  <%= form.check_box :show_metrics %>
190
190
  </div>
191
+
192
+ <% if @form.participatory_process_types_for_select.present? %>
193
+ <div class="row column">
194
+ <%= form.select(
195
+ :participatory_process_type_id,
196
+ @form.participatory_process_types_for_select,
197
+ include_blank: t(".select_participatory_process_type")
198
+ ) %>
199
+ </div>
200
+ <% end %>
191
201
  </div>
192
202
  </div>
193
203
 
@@ -19,4 +19,6 @@
19
19
  </div>
20
20
  </div>
21
21
 
22
- <%= javascript_pack_tag "decidim_participatory_processes" %>
22
+ <% content_for :js_content do %>
23
+ <%= javascript_pack_tag "decidim_participatory_processes" %>
24
+ <% end %>
@@ -1,12 +1,15 @@
1
1
  var $grid = $('#processes-grid');
2
- var $assembliesFilter = $('#processes-filter');
2
+ var $order_by_filters = $grid.find('.processes-grid-order-by');
3
+ var $loading = $grid.find('.loading');
3
4
 
4
5
  $grid.find('.card-grid').html('<%= j(cell(
5
6
  "decidim/participatory_processes/filtered_participatory_processes",
6
7
  participatory_processes
7
8
  ).show).strip.html_safe %>');
8
- $grid.find('.processes-grid-order-by').html('<%= j(cell(
9
- "decidim/participatory_process_groups/process_filters",
10
- group,
11
- base_relation: participatory_processes
12
- ).show).strip.html_safe %>');
9
+ $order_by_filters.html('<%= j(cell(
10
+ "decidim/participatory_process_groups/process_filters",
11
+ group,
12
+ base_relation: participatory_processes
13
+ ).show).strip.html_safe %>');
14
+ $order_by_filters.foundation();
15
+ $loading.hide();
@@ -14,7 +14,7 @@
14
14
  </div>
15
15
  <div class="columns mediumlarge-8 large-6 card--process__column">
16
16
  <div class="card--full__image"
17
- style="background-image:url(<%= promoted_process.attached_uploader(:hero_image).path %>)">
17
+ style="background-image:url('<%= promoted_process.attached_uploader(:hero_image).path %>')">
18
18
  <div class="card__content row collapse">
19
19
  <div class="large-6 large-offset-6 columns">
20
20
  <%= link_to participatory_process_cta_path(promoted_process), class: "button expanded button--sc" do %>
@@ -14,7 +14,7 @@
14
14
  </div>
15
15
  </div>
16
16
  <div class="columns mediumlarge-8 large-6 card--process__column">
17
- <div class="card--full__image" style="background-image:url(<%= cta_settings&.image_url || promoted_process_group.attached_uploader(:hero_image).path %>)">
17
+ <div class="card--full__image" style="background-image:url('<%= cta_settings&.image_url || promoted_process_group.attached_uploader(:hero_image).path %>')">
18
18
  <% if cta_settings.present? %>
19
19
  <div class="card__content row collapse">
20
20
  <div class="large-6 large-offset-6 columns">
@@ -30,4 +30,6 @@ edit_link(
30
30
  </section>
31
31
  <% end %>
32
32
 
33
- <%= javascript_pack_tag "decidim_participatory_processes" %>
33
+ <% content_for :js_content do %>
34
+ <%= javascript_pack_tag "decidim_participatory_processes" %>
35
+ <% end %>
@@ -1,6 +1,8 @@
1
1
  var $grid = $('#processes-grid');
2
+ var $order_by_filters = $grid.find('.processes-grid-order-by');
2
3
  var $loading = $grid.find('.loading');
3
4
 
4
5
  $grid.find('.card-grid').html('<%= j(render(collection)).strip.html_safe %>');
5
- $grid.find('.processes-grid-order-by').html('<%= j(render(partial: "decidim/participatory_processes/participatory_processes/order_by_processes", locals: { include_filter: true })).strip.html_safe %>');
6
+ $order_by_filters.html('<%= j(render(partial: "decidim/participatory_processes/participatory_processes/order_by_processes", locals: { include_filter: true })).strip.html_safe %>');
7
+ $order_by_filters.foundation();
6
8
  $loading.hide();
@@ -1,7 +1,7 @@
1
1
  <div class="process-header">
2
2
  <div class="process-header__inner">
3
3
  <div class="row column process-header__main"
4
- style="background-image:url(<%= current_participatory_space.attached_uploader(:banner_image).path %>);">
4
+ style="background-image:url('<%= current_participatory_space.attached_uploader(:banner_image).path %>');">
5
5
  </div>
6
6
  <div class="process-header__container row collapse column">
7
7
  <div class="columns mediumlarge-8 process-header__info">
@@ -0,0 +1,15 @@
1
+ <% content_for :sidebar_menu_nav do %>
2
+ <%= sidebar_menu(:admin_participatory_processes_menu).render %>
3
+ <% end %>
4
+
5
+ <%= render "layouts/decidim/admin/application" do %>
6
+ <div class="process-title">
7
+ <div class="process-title-content">
8
+ <%= link_to t("decidim.admin.titles.participatory_processes"), decidim_participatory_processes.participatory_processes_path, target: "_blank" %>
9
+ </div>
10
+ </div>
11
+
12
+ <div class="process-content">
13
+ <%= yield %>
14
+ </div>
15
+ <% end %>
@@ -1,3 +1,4 @@
1
+ ---
1
2
  ar:
2
3
  activemodel:
3
4
  attributes:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  bg:
2
3
  activemodel:
3
4
  attributes:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  ca:
2
3
  activemodel:
3
4
  attributes:
@@ -56,6 +57,8 @@ ca:
56
57
  short_description: Breu descripció
57
58
  start_date: Data d'inici
58
59
  title: Títol
60
+ participatory_process_type:
61
+ title: Títol
59
62
  participatory_process_user_role:
60
63
  email: Correu electrònic
61
64
  name: Nom
@@ -65,7 +68,7 @@ ca:
65
68
  participatory_process:
66
69
  attributes:
67
70
  document:
68
- invalid_document_type: 'Tipus de document no vàlid. Els formats acceptats són: %{valid_mime_types}'
71
+ allowed_file_content_types: 'Tipus de document invàlid. Els formats que s''accepten són: %{types}'
69
72
  models:
70
73
  decidim/participatory_process_step_activated_event: Fase activada
71
74
  decidim/participatory_process_step_changed_event: Fase modificada
@@ -96,6 +99,7 @@ ca:
96
99
  new_process: Nou procés
97
100
  new_process_group: Nou grup de processos
98
101
  new_process_step: Nova fase
102
+ new_process_type: Nou tipus de procés
99
103
  new_process_user_role: Nova administradora del procés
100
104
  preview: Previsualitzar
101
105
  publish: Publicar
@@ -106,6 +110,7 @@ ca:
106
110
  participatory_process_groups_submenu:
107
111
  info: Informació
108
112
  landing_page: Pàgina d'inici
113
+ participatory_process_types: Tipus de procés
109
114
  participatory_processes: Processos
110
115
  participatory_processes_submenu:
111
116
  attachment_collections: Carpetes
@@ -137,6 +142,11 @@ ca:
137
142
  start_date: Data d'inici
138
143
  title: Títol
139
144
  name: Fase del procés participatiu
145
+ participatory_process_type:
146
+ fields:
147
+ created_at: Creat el
148
+ title: Títol
149
+ name: Tipus de procés
140
150
  participatory_process_user_role:
141
151
  fields:
142
152
  email: Correu electrònic
@@ -219,6 +229,23 @@ ca:
219
229
  update:
220
230
  error: S'ha produït un error en l'actualització d'aquesta fase de procés participatiu.
221
231
  success: La fase de procés participatiu s'ha actualitzat correctament.
232
+ participatory_process_types:
233
+ create:
234
+ error: S'ha produït un error en crear un nou tipus de procés.
235
+ success: Tipus de procés creat correctament.
236
+ destroy:
237
+ success: Tipus de procés eliminat correctament.
238
+ edit:
239
+ title: Editar el tipus de procés
240
+ update: Actualitzar
241
+ form:
242
+ title: Títol
243
+ new:
244
+ create: Crear
245
+ title: Nou tipus de procés
246
+ update:
247
+ error: S'ha produït un error en actualitzar aquest tipus de procés.
248
+ success: Tipus de procés actualitzat correctament.
222
249
  participatory_process_user_roles:
223
250
  create:
224
251
  error: S'ha produït un error en afegir una participant en aquest procés participatiu.
@@ -263,6 +290,7 @@ ca:
263
290
  success: Grup de processos participatius creat correctament.
264
291
  titles:
265
292
  participatory_process_groups: Grups de processos participatius
293
+ participatory_process_types: Tipus de processos participatius
266
294
  participatory_processes: Processos participatius
267
295
  users:
268
296
  resend_invitation:
@@ -271,6 +299,9 @@ ca:
271
299
  admin_log:
272
300
  participatory_process:
273
301
  create: "%{user_name} ha creat el procés participatiu %{resource_name}"
302
+ duplicate: "%{user_name} ha duplicat el procés participatiu %{resource_name}"
303
+ export: "%{user_name} ha exportat el procés participatiu %{resource_name}"
304
+ import: "%{user_name} ha importat el procés participatiu %{resource_name}"
274
305
  publish: "%{user_name} ha publicat el procés participatiu %{resource_name}"
275
306
  unpublish: "%{user_name} ha despublicat el procés participatiu %{resource_name}"
276
307
  update: "%{user_name} ha actualitzat el procés participatiu %{resource_name}"
@@ -282,6 +313,10 @@ ca:
282
313
  create: "%{user_name} ha creat la fase %{resource_name} en el procés participatiu %{space_name}"
283
314
  delete: "%{user_name} ha eliminat la fase %{resource_name} en el procés participatiu %{space_name}"
284
315
  update: "%{user_name} ha actualitzat la fase %{resource_name} en el procés participatiu %{space_name}"
316
+ participatory_process_type:
317
+ create: "%{user_name} ha creat el tipus de procés participatiu %{resource_name}"
318
+ delete: "%{user_name} ha esborrat el tipus de procés participatiu %{resource_name}"
319
+ update: "%{user_name} ha actualitzat el tipus de procés participatiu %{resource_name}"
285
320
  participatory_process_user_role:
286
321
  create: "%{user_name} ha convidat la participant %{resource_name} al procés participatiu %{space_name}"
287
322
  delete: "%{user_name} ha eliminat la participant %{resource_name} del procés participatiu %{space_name}"
@@ -309,6 +344,10 @@ ca:
309
344
  contextual: "<p>Un <strong>procés participatiu</strong> és una seqüència d'activitats participatives (p.e. primer omplir una enquesta, després realitzar propostes, debatre-les en trobades presencials o virtuals, i finalment prioritzar-les) amb l'objectiu de definir y prendre una decisió sobre un tema específic.</p> <p>Exemples de processos participatius són: un procés d'elecció de les membres d'un comitè (on primer es presenten unes candidatures, després es debat i finalment s'escull una candidatura), pressupostos participatius (on es realitzen propostes, es valoren econòmicament i es voten amb el pressupost disponible), un procés de planificació estratègica, la redacció col·laborativa d'un reglament o norma, el disseny d'un espai urbà o la producció d'un pla de polítiques públiques.</p>\n"
310
345
  page: "<p>Un <strong>procés participatiu</strong> és una seqüència d'activitats participatives (p.e. primer omplir una enquesta, després realitzar propostes, debatre-les en trobades presencials o virtuals, i finalment prioritzar-les) amb l'objectiu de definir y prendre una decisió sobre un tema específic.</p> <p>Exemples de processos participatius són: un procés d'elecció de les membres d'un comitè (on primer es presenten unes candidatures, després es debat i finalment s'escull una candidatura), pressupostos participatius (on es realitzen propostes, es valoren econòmicament i es voten amb el pressupost disponible), un procés de planificació estratègica, la redacció col·laborativa d'un reglament o norma, el disseny d'un espai urbà o la producció d'un pla de polítiques públiques.</p>\n"
311
346
  title: Què és un procés participatiu?
347
+ log:
348
+ value_types:
349
+ participatory_process_type_presenter:
350
+ not_found: 'Aquest tipus de procés no s''ha trobat a la base de dades (ID: %{id})'
312
351
  menu:
313
352
  processes: Processos
314
353
  metrics:
@@ -384,6 +423,7 @@ ca:
384
423
  related_processes: Processos relacionats
385
424
  scope_type_max_depth_help: Restringeix la profunditat del filtre d'àmbit. Es mostrarà des del filtre general fins al filtre seleccionat.
386
425
  select_an_area: Selecciona una àrea
426
+ select_participatory_process_type: Selecciona un tipus de procés
387
427
  select_process_group: Selecciona un grup de processos
388
428
  slug_help: 'Els noms curts d''URL s''utilitzen per generar els URL que apunten a aquest procés. Només accepta lletres, números i guions, i ha de començar amb una lletra. Exemple: %{url}'
389
429
  title: Informació general
@@ -410,6 +450,7 @@ ca:
410
450
  back_to_process: Torna a la pàgina de procés
411
451
  participatory_processes:
412
452
  filters:
453
+ all_types: Tots els tipus
413
454
  counters:
414
455
  active:
415
456
  one: Un procés actiu
@@ -427,6 +468,7 @@ ca:
427
468
  no_active: Sense processos actius
428
469
  no_active_nor_upcoming: No hi ha processos actius ni futurs
429
470
  no_active_nor_upcoming_callout: No hi ha processos actius ni futurs. Aquí hi ha una llista dels anteriors.
471
+ filter_by: Mostrar
430
472
  names:
431
473
  active: Actius
432
474
  all: Tots