decidim-participatory_processes 0.30.1 → 0.31.0.rc1

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.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/participatory_process_groups/content_blocks/main_data/content.erb +1 -1
  3. data/app/cells/decidim/participatory_process_groups/content_blocks/main_data_cell.rb +1 -15
  4. data/app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats/show.erb +74 -0
  5. data/app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats_cell.rb +29 -0
  6. data/app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats_settings_form/citizen_influence.erb +32 -0
  7. data/app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats_settings_form/inclusiveness.erb +69 -0
  8. data/app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats_settings_form/informativeness.erb +29 -0
  9. data/app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats_settings_form/show.erb +10 -0
  10. data/app/cells/decidim/participatory_processes/content_blocks/democratic_quality_stats_settings_form_cell.rb +81 -0
  11. data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes_settings_form/show.erb +3 -1
  12. data/app/cells/decidim/participatory_processes/content_blocks/main_data_cell.rb +10 -2
  13. data/app/cells/decidim/participatory_processes/indicator/show.erb +11 -0
  14. data/app/cells/decidim/participatory_processes/indicator_cell.rb +25 -0
  15. data/app/cells/decidim/participatory_processes/process_dropdown_metadata/metadata.erb +0 -7
  16. data/app/cells/decidim/participatory_processes/process_filters_cell.rb +2 -0
  17. data/app/cells/decidim/participatory_processes/process_step/show.erb +1 -1
  18. data/app/commands/decidim/participatory_processes/admin/create_participatory_process.rb +1 -1
  19. data/app/commands/decidim/participatory_processes/admin/create_participatory_process_group.rb +1 -1
  20. data/app/commands/decidim/participatory_processes/admin/{copy_participatory_process.rb → duplicate_participatory_process.rb} +25 -26
  21. data/app/commands/decidim/participatory_processes/admin/import_participatory_process.rb +1 -1
  22. data/app/commands/decidim/participatory_processes/admin/update_participatory_process.rb +16 -4
  23. data/app/commands/decidim/participatory_processes/admin/update_participatory_process_group.rb +1 -1
  24. data/app/controllers/decidim/participatory_processes/admin/{participatory_process_copies_controller.rb → participatory_process_duplicates_controller.rb} +7 -7
  25. data/app/controllers/decidim/participatory_processes/admin/participatory_process_group_landing_page_controller.rb +4 -0
  26. data/app/controllers/decidim/participatory_processes/admin/participatory_process_groups_controller.rb +3 -3
  27. data/app/controllers/decidim/participatory_processes/admin/participatory_process_imports_controller.rb +1 -1
  28. data/app/controllers/decidim/participatory_processes/admin/participatory_process_landing_page_controller.rb +4 -0
  29. data/app/controllers/decidim/participatory_processes/admin/participatory_process_steps_controller.rb +2 -2
  30. data/app/controllers/decidim/participatory_processes/admin/participatory_processes_controller.rb +3 -3
  31. data/app/controllers/decidim/participatory_processes/participatory_processes_controller.rb +0 -9
  32. data/app/forms/decidim/participatory_processes/admin/{participatory_process_copy_form.rb → participatory_process_duplicate_form.rb} +5 -5
  33. data/app/forms/decidim/participatory_processes/admin/participatory_process_form.rb +2 -1
  34. data/app/forms/decidim/participatory_processes/admin/participatory_process_group_form.rb +0 -1
  35. data/app/helpers/decidim/participatory_processes/application_helper.rb +14 -0
  36. data/app/models/decidim/participatory_process.rb +4 -4
  37. data/app/models/decidim/participatory_process_group.rb +9 -0
  38. data/app/permissions/decidim/participatory_processes/permissions.rb +6 -6
  39. data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_group_presenter.rb +0 -1
  40. data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_presenter.rb +0 -1
  41. data/app/presenters/decidim/participatory_processes/participatory_process_democratic_quality_stats_presenter.rb +312 -0
  42. data/app/presenters/decidim/participatory_processes/participatory_process_group_stats_presenter.rb +1 -11
  43. data/app/presenters/decidim/participatory_processes/participatory_process_presenter.rb +35 -1
  44. data/app/presenters/decidim/participatory_processes/participatory_process_stats_presenter.rb +1 -3
  45. data/app/queries/decidim/participatory_processes/participatory_processes_stats_followers_count.rb +31 -0
  46. data/app/queries/decidim/participatory_processes/participatory_processes_stats_participants_count.rb +27 -0
  47. data/app/serializers/decidim/participatory_processes/participatory_process_importer.rb +7 -5
  48. data/app/views/decidim/participatory_processes/admin/{participatory_process_copies → participatory_process_duplicates}/_form.html.erb +5 -5
  49. data/app/views/decidim/participatory_processes/admin/participatory_process_duplicates/new.html.erb +19 -0
  50. data/app/views/decidim/participatory_processes/admin/participatory_process_groups/_form.html.erb +3 -7
  51. data/app/views/decidim/participatory_processes/admin/participatory_process_groups/index.html.erb +31 -15
  52. data/app/views/decidim/participatory_processes/admin/participatory_process_steps/_form.html.erb +1 -1
  53. data/app/views/decidim/participatory_processes/admin/participatory_process_steps/index.html.erb +39 -21
  54. data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/index.html.erb +42 -24
  55. data/app/views/decidim/participatory_processes/admin/participatory_processes/_form.html.erb +10 -14
  56. data/app/views/decidim/participatory_processes/admin/participatory_processes/_process_row.html.erb +125 -53
  57. data/app/views/decidim/participatory_processes/admin/participatory_processes/edit.html.erb +0 -8
  58. data/app/views/decidim/participatory_processes/admin/participatory_processes/index.html.erb +2 -2
  59. data/app/views/decidim/participatory_processes/admin/participatory_processes/manage_trash.html.erb +2 -1
  60. data/app/views/layouts/decidim/admin/_manage_processes.html.erb +1 -1
  61. data/app/views/layouts/decidim/admin/participatory_process_group.html.erb +1 -1
  62. data/config/assets.rb +2 -2
  63. data/config/locales/ar.yml +0 -19
  64. data/config/locales/bg.yml +0 -30
  65. data/config/locales/bs-BA.yml +0 -4
  66. data/config/locales/ca-IT.yml +321 -27
  67. data/config/locales/ca.yml +321 -27
  68. data/config/locales/cs.yml +96 -29
  69. data/config/locales/de.yml +135 -37
  70. data/config/locales/el.yml +0 -26
  71. data/config/locales/en.yml +303 -24
  72. data/config/locales/es-MX.yml +323 -29
  73. data/config/locales/es-PY.yml +323 -29
  74. data/config/locales/es.yml +321 -27
  75. data/config/locales/eu.yml +306 -27
  76. data/config/locales/fi-plain.yml +308 -27
  77. data/config/locales/fi.yml +305 -24
  78. data/config/locales/fr-CA.yml +89 -27
  79. data/config/locales/fr.yml +89 -27
  80. data/config/locales/ga-IE.yml +0 -7
  81. data/config/locales/gl.yml +0 -24
  82. data/config/locales/hu.yml +0 -26
  83. data/config/locales/id-ID.yml +0 -19
  84. data/config/locales/is-IS.yml +0 -13
  85. data/config/locales/it.yml +0 -25
  86. data/config/locales/ja.yml +125 -27
  87. data/config/locales/lb.yml +0 -21
  88. data/config/locales/lt.yml +0 -27
  89. data/config/locales/lv.yml +0 -20
  90. data/config/locales/nl.yml +0 -25
  91. data/config/locales/no.yml +0 -27
  92. data/config/locales/pl.yml +16 -30
  93. data/config/locales/pt-BR.yml +0 -28
  94. data/config/locales/pt.yml +0 -25
  95. data/config/locales/ro-RO.yml +2 -26
  96. data/config/locales/ru.yml +0 -17
  97. data/config/locales/sk.yml +0 -20
  98. data/config/locales/sr-CS.yml +0 -4
  99. data/config/locales/sv.yml +90 -28
  100. data/config/locales/tr-TR.yml +0 -25
  101. data/config/locales/uk.yml +0 -17
  102. data/config/locales/zh-CN.yml +0 -23
  103. data/config/locales/zh-TW.yml +0 -26
  104. data/db/migrate/20250403110052_add_democratic_quality_static_page.rb +34 -0
  105. data/db/migrate/20250605114136_remove_hashtag_from_participatory_processes.rb +7 -0
  106. data/db/migrate/20250605114415_remove_hashtag_from_participatory_processes_groups.rb +7 -0
  107. data/decidim-participatory_processes.gemspec +3 -0
  108. data/lib/decidim/api/participatory_process_group_type.rb +9 -0
  109. data/lib/decidim/api/participatory_process_input_filter.rb +0 -1
  110. data/lib/decidim/api/participatory_process_step_type.rb +2 -0
  111. data/lib/decidim/api/participatory_process_type.rb +17 -11
  112. data/lib/decidim/participatory_processes/admin_engine.rb +1 -1
  113. data/lib/decidim/participatory_processes/content_blocks/registry_manager.rb +25 -5
  114. data/lib/decidim/participatory_processes/engine.rb +22 -25
  115. data/lib/decidim/participatory_processes/menu.rb +1 -1
  116. data/lib/decidim/participatory_processes/participatory_space.rb +1 -4
  117. data/lib/decidim/participatory_processes/seeds.rb +3 -5
  118. data/lib/decidim/participatory_processes/test/factories.rb +2 -3
  119. data/lib/decidim/participatory_processes/version.rb +1 -1
  120. metadata +72 -22
  121. data/app/cells/decidim/participatory_processes/content_blocks/metrics_cell.rb +0 -25
  122. data/app/presenters/decidim/participatory_processes/participatory_process_metric_charts_presenter.rb +0 -21
  123. data/app/queries/decidim/participatory_processes/metrics/participatory_process_followers_metric_measure.rb +0 -31
  124. data/app/queries/decidim/participatory_processes/metrics/participatory_processes_metric_manage.rb +0 -27
  125. data/app/queries/decidim/participatory_processes/stats_followers_count.rb +0 -60
  126. data/app/queries/decidim/participatory_processes/stats_participants_count.rb +0 -136
  127. data/app/views/decidim/participatory_processes/admin/participatory_process_copies/new.html.erb +0 -19
  128. data/app/views/decidim/participatory_processes/participatory_processes/all_metrics.html.erb +0 -25
@@ -9,20 +9,20 @@
9
9
  </h1>
10
10
  </div>
11
11
  <% if current_participatory_process.steps.any? %>
12
- <div class="table-scroll">
12
+ <div class="table-stacked">
13
13
  <table class="table-list">
14
14
  <thead>
15
15
  <tr>
16
16
  <th><%= t("models.participatory_process_step.fields.title", scope: "decidim.admin") %></th>
17
17
  <th><%= t("models.participatory_process_step.fields.start_date", scope: "decidim.admin") %></th>
18
18
  <th><%= t("models.participatory_process_step.fields.end_date", scope: "decidim.admin") %></th>
19
- <th></th>
19
+ <th><%= t("models.participatory_process_step.fields.actions", scope: "decidim.admin") %></th>
20
20
  </tr>
21
21
  </thead>
22
22
  <tbody class="sortable" data-sort-url="<%= ordering_participatory_process_steps_path(current_participatory_process) %>">
23
23
  <% current_participatory_process.steps.each do |step| %>
24
24
  <tr data-id="<%= step.id %>">
25
- <td>
25
+ <td data-label="<%= t("models.participatory_process_step.fields.title", scope: "decidim.admin") %>">
26
26
  <div class="flex items-center gap-x-2">
27
27
  <%= icon "drag-move-2-line" %>
28
28
  <% if step.active? %>
@@ -31,34 +31,52 @@
31
31
  <%= link_to translated_attribute(step.title), edit_participatory_process_step_path(current_participatory_process, step) %><br>
32
32
  </div>
33
33
  </td>
34
- <td>
34
+ <td data-label="<%= t("models.participatory_process_step.fields.start_date", scope: "decidim.admin") %>">
35
35
  <% if step.start_date %>
36
36
  <%= l step.start_date, format: :long %>
37
37
  <% end %>
38
38
  </td>
39
- <td>
39
+ <td data-label="<%= t("models.participatory_process_step.fields.end_date", scope: "decidim.admin") %>">
40
40
  <% if step.end_date %>
41
41
  <%= l step.end_date, format: :long %>
42
42
  <% end %>
43
43
  </td>
44
- <td class="table-list__actions">
45
- <% if allowed_to? :update, :process_step, process_step: step %>
46
- <%= icon_link_to "pencil-line", edit_participatory_process_step_path(current_participatory_process, step), t("actions.edit", scope: "decidim.admin"), class: "action-icon--edit" %>
47
- <% else %>
48
- <span class="action-space icon"></span>
49
- <% end %>
44
+ <td class="table-list__actions" data-label="<%= t("models.participatory_process_step.fields.actions", scope: "decidim.admin") %>">
45
+ <button type="button" data-controller="dropdown" data-target="actions-process-step-<%= step.id %>" aria-label="<%= t("decidim.admin.actions.actions_label", resource: translated_attribute(step.title)) %>">
46
+ <%= icon "more-fill", class: "text-secondary" %>
47
+ </button>
50
48
 
51
- <% if allowed_to?(:activate, :process_step, process_step: step) && !step.active? %>
52
- <%= icon_link_to "check-line", participatory_process_step_activate_path(current_participatory_process, step), t("actions.activate", scope: "decidim.admin"), class: "action-icon--activate", method: :post %>
53
- <% else %>
54
- <span class="action-space icon"></span>
55
- <% end %>
49
+ <div class="inline-block relative">
50
+ <ul id="actions-process-step-<%= step.id %>" class="dropdown dropdown__action" aria-hidden="true">
51
+ <% if allowed_to? :update, :process_step, process_step: step %>
52
+ <li class="dropdown__item">
53
+ <%= link_to edit_participatory_process_step_path(current_participatory_process, step), class: "dropdown__button" do %>
54
+ <%= icon "pencil-line" %> <%= t("actions.edit", scope: "decidim.admin") %>
55
+ <% end %>
56
+ </li>
56
57
 
57
- <% if allowed_to? :destroy, :process_step, process_step: step %>
58
- <%= icon_link_to "delete-bin-line", participatory_process_step_path(current_participatory_process, step), t("actions.destroy", scope: "decidim.admin"), class: "action-icon--remove", method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") } %>
59
- <% else %>
60
- <span class="action-space icon"></span>
61
- <% end %>
58
+ <hr>
59
+ <% end %>
60
+
61
+ <% if allowed_to?(:activate, :process_step, process_step: step) && !step.active? %>
62
+ <li class="dropdown__item">
63
+ <%= link_to participatory_process_step_activate_path(current_participatory_process, step), method: :post, class: "dropdown__button" do %>
64
+ <%= icon "check-line" %> <%= t("actions.activate", scope: "decidim.admin") %>
65
+ <% end %>
66
+ </li>
67
+
68
+ <hr>
69
+ <% end %>
70
+
71
+ <% if allowed_to? :destroy, :process_step, process_step: step %>
72
+ <li class="dropdown__item">
73
+ <%= link_to participatory_process_step_path(current_participatory_process, step), method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") }, class: "dropdown__button dropdown__button--danger" do %>
74
+ <%= icon "delete-bin-line" %> <%= t("actions.destroy", scope: "decidim.admin") %>
75
+ <% end %>
76
+ </li>
77
+ <% end %>
78
+ </ul>
79
+ </div>
62
80
  </td>
63
81
  </tr>
64
82
  <% end %>
@@ -10,58 +10,76 @@
10
10
  </h1>
11
11
  </div>
12
12
  <%= admin_filter_selector %>
13
- <div class="table-scroll">
13
+ <div class="table-stacked">
14
14
  <table class="stack table-list">
15
15
  <thead>
16
16
  <tr>
17
- <th><%= sort_link(query, :name,t("models.participatory_process_user_role.fields.name", scope: "decidim.admin"), default_order: :desc) %></th>
17
+ <th><%= sort_link(query, :name, t("models.participatory_process_user_role.fields.name", scope: "decidim.admin"), default_order: :desc) %></th>
18
18
  <th><%= sort_link(query, :email, t("models.participatory_process_user_role.fields.email", scope: "decidim.admin"), default_order: :desc) %></th>
19
19
  <th><%= sort_link(query, :last_sign_in_at, t("models.user.fields.last_sign_in_at", scope: "decidim.admin"), default_order: :desc) %></th>
20
20
  <th><%= sort_link(query, :invitation_accepted_at, t("models.user.fields.invitation_accepted_at", scope: "decidim.admin"), default_order: :desc) %></th>
21
21
  <th><%= sort_link(query, :role, t("models.participatory_process_user_role.fields.role", scope: "decidim.admin"), default_order: :desc) %></th>
22
- <th></th>
22
+ <th><%= t("models.participatory_process_user_role.fields.actions", scope: "decidim.admin") %></th>
23
23
  </tr>
24
24
  </thead>
25
25
  <tbody>
26
26
  <% filtered_collection.each do |role| %>
27
27
  <tr>
28
- <td>
28
+ <td data-label="<%= t("models.participatory_process_user_role.fields.name", scope: "decidim.admin") %>">
29
29
  <%= role.user.name %><br>
30
30
  </td>
31
- <td>
31
+ <td data-label="<%= t("models.participatory_process_user_role.fields.email", scope: "decidim.admin") %>">
32
32
  <%= role.user.email %><br>
33
33
  </td>
34
- <td>
34
+ <td data-label="<%= t("models.user.fields.last_sign_in_at", scope: "decidim.admin") %>">
35
35
  <% if role.user.invitation_sent_at %>
36
36
  <%= l role.user.invitation_sent_at, format: :short %>
37
37
  <% end %>
38
38
  </td>
39
- <td>
39
+ <td data-label="<%= t("models.user.fields.invitation_accepted_at", scope: "decidim.admin") %>">
40
40
  <% if role.user.invitation_accepted_at %>
41
41
  <%= l role.user.invitation_accepted_at, format: :short %>
42
42
  <% end %>
43
43
  </td>
44
- <td>
44
+ <td data-label="<%= t("models.participatory_process_user_role.fields.role", scope: "decidim.admin") %>">
45
45
  <%= t("#{role.role}", scope: "decidim.admin.models.participatory_process_user_role.roles") %><br>
46
46
  </td>
47
- <td class="table-list__actions">
48
- <% if allowed_to? :update, :process_user_role, user_role: role %>
49
- <%= icon_link_to "pencil-line", edit_participatory_process_user_role_path(current_participatory_process, role), t("actions.edit", scope: "decidim.admin"), class: "action-icon--edit" %>
50
- <% else %>
51
- <span class="action-space icon"></span>
52
- <% end %>
47
+ <td class="table-list__actions" data-label="<%= t("models.participatory_process_user_role.fields.actions", scope: "decidim.admin") %>">
48
+ <button type="button" data-controller="dropdown" data-target="actions-user-role-<%= role.id %>" aria-label="<%= t("decidim.admin.actions.actions_label", resource: role.user.name) %>">
49
+ <%= icon "more-fill", class: "text-secondary" %>
50
+ </button>
53
51
 
54
- <% if allowed_to?(:invite, :process_user_role, user_role: role) && role.user.invited_to_sign_up? %>
55
- <%= icon_link_to "refresh-line", resend_invitation_participatory_process_user_role_path(current_participatory_process, role), t("actions.resend_invitation", scope: "decidim.admin"), class: "resend-invitation", method: :post %>
56
- <% else %>
57
- <span class="action-space icon"></span>
58
- <% end %>
52
+ <div class="inline-block relative">
53
+ <ul id="actions-user-role-<%= role.id %>" class="dropdown dropdown__action" aria-hidden="true">
54
+ <% if allowed_to? :update, :process_user_role, user_role: role %>
55
+ <li class="dropdown__item">
56
+ <%= link_to edit_participatory_process_user_role_path(current_participatory_process, role), class: "dropdown__button" do %>
57
+ <%= icon "pencil-line" %> <%= t("actions.edit", scope: "decidim.admin") %>
58
+ <% end %>
59
+ </li>
59
60
 
60
- <% if allowed_to? :destroy, :process_user_role, user_role: role %>
61
- <%= icon_link_to "delete-bin-line", participatory_process_user_role_path(current_participatory_process, role), t("actions.destroy", scope: "decidim.admin"), class: "action-icon--remove", method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") } %>
62
- <% else %>
63
- <span class="action-space icon"></span>
64
- <% end %>
61
+ <hr>
62
+ <% end %>
63
+
64
+ <% if allowed_to?(:invite, :process_user_role, user_role: role) && role.user.invited_to_sign_up? %>
65
+ <li class="dropdown__item">
66
+ <%= link_to resend_invitation_participatory_process_user_role_path(current_participatory_process, role), method: :post, class: "dropdown__button resend-invitation" do %>
67
+ <%= icon "refresh-line" %> <%= t("actions.resend_invitation", scope: "decidim.admin") %>
68
+ <% end %>
69
+ </li>
70
+
71
+ <hr>
72
+ <% end %>
73
+
74
+ <% if allowed_to? :destroy, :process_user_role, user_role: role %>
75
+ <li class="dropdown__item">
76
+ <%= link_to participatory_process_user_role_path(current_participatory_process, role), method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") }, class: "dropdown__button dropdown__button--danger" do %>
77
+ <%= icon "delete-bin-line" %> <%= t("actions.destroy", scope: "decidim.admin") %>
78
+ <% end %>
79
+ </li>
80
+ <% end %>
81
+ </ul>
82
+ </div>
65
83
  </td>
66
84
  </tr>
67
85
  <% end %>
@@ -1,5 +1,5 @@
1
1
  <div class="form__wrapper">
2
- <div class="card" data-component="accordion" id="accordion-title">
2
+ <div class="card" data-controller="accordion" id="accordion-title">
3
3
  <div class="card-divider">
4
4
  <button class="card-divider-button" data-open="true" data-controls="panel-title" type="button">
5
5
  <%= icon "arrow-right-s-line" %>
@@ -22,21 +22,17 @@
22
22
  </div>
23
23
 
24
24
  <div class="row">
25
- <div class="columns slug">
25
+ <div class="columns" data-controller="slug">
26
26
  <%= form.text_field :slug, help_text: t(".slug_help_html", url: decidim_form_slug_url(:processes, form.object.slug)) %>
27
27
  </div>
28
-
29
- <div class="columns">
30
- <%= form.text_field :hashtag %>
31
- </div>
32
28
  </div>
33
29
 
34
30
  <div class="row column">
35
- <%= form.translated :editor, :short_description, aria: { label: :short_description } %>
31
+ <%= form.translated :editor, :short_description, resource_mentionable: true, aria: { label: :short_description } %>
36
32
  </div>
37
33
 
38
34
  <div class="row column">
39
- <%= form.translated :editor, :description, aria: { label: :description } %>
35
+ <%= form.translated :editor, :description, resource_mentionable: true, aria: { label: :description } %>
40
36
  </div>
41
37
 
42
38
  <div class="row column">
@@ -45,7 +41,7 @@
45
41
  </div>
46
42
  </div>
47
43
 
48
- <div class="card" data-component="accordion" id="accordion-duration">
44
+ <div class="card" data-controller="accordion" id="accordion-duration">
49
45
  <div class="card-divider">
50
46
  <button class="card-divider-button" data-open="true" data-controls="panel-duration" type="button">
51
47
  <svg viewBox="0 0 24 24" id="ri-arrow-right-s-line">
@@ -71,7 +67,7 @@
71
67
  </div>
72
68
  </div>
73
69
 
74
- <div class="card" data-component="accordion" id="accordion-images">
70
+ <div class="card" data-controller="accordion" id="accordion-images">
75
71
  <div class="card-divider">
76
72
  <button class="card-divider-button" data-open="true" data-controls="panel-images" type="button">
77
73
  <%= icon "arrow-right-s-line" %>
@@ -90,7 +86,7 @@
90
86
  </div>
91
87
  </div>
92
88
 
93
- <div class="card" data-component="accordion" id="accordion-metadata">
89
+ <div class="card" data-controller="accordion" id="accordion-metadata">
94
90
  <div class="card-divider">
95
91
  <button class="card-divider-button" data-open="true" data-controls="panel-metadata" type="button">
96
92
  <%= icon "arrow-right-s-line" %>
@@ -126,7 +122,7 @@
126
122
  </div>
127
123
  </div>
128
124
 
129
- <div class="card" data-component="accordion" id="accordion-taxonomies">
125
+ <div class="card" data-controller="accordion" id="accordion-taxonomies">
130
126
  <div class="card-divider">
131
127
  <button class="card-divider-button" data-open="true" data-controls="panel-taxonomies" type="button">
132
128
  <%= icon "arrow-right-s-line" %>
@@ -153,7 +149,7 @@
153
149
  </div>
154
150
  </div>
155
151
 
156
- <div class="card" data-component="accordion" id="accordion-visibility">
152
+ <div class="card" data-controller="accordion" id="accordion-visibility">
157
153
  <div class="card-divider">
158
154
  <button class="card-divider-button" data-open="true" data-controls="panel-visibility" type="button">
159
155
  <%= icon "arrow-right-s-line" %>
@@ -181,7 +177,7 @@
181
177
  </div>
182
178
  </div>
183
179
 
184
- <div class="card" data-component="accordion" id="accordion-related_processes">
180
+ <div class="card" data-controller="accordion" id="accordion-related_processes">
185
181
  <div class="card-divider">
186
182
  <button class="card-divider-button" data-open="true" data-controls="panel-related_processes" type="button">
187
183
  <%= icon "arrow-right-s-line" %>
@@ -1,5 +1,5 @@
1
1
  <tr>
2
- <td>
2
+ <td data-label="<%= t("models.participatory_process.fields.title", scope: "decidim.admin") %>">
3
3
  <% if process.promoted? %>
4
4
  <%= icon_with_tooltip "star-s-fill", t("models.assembly.fields.promoted", scope: "decidim.admin") %>
5
5
  <% end %>
@@ -11,73 +11,145 @@
11
11
  <%= translated_attribute(process.title) %>
12
12
  <% end %>
13
13
  </td>
14
- <td class="table-list__date">
14
+ <td class="table-list__date" data-label="<%= t("models.participatory_process.fields.created_at", scope: "decidim.admin") %>">
15
15
  <%= l process.created_at, format: :short %>
16
16
  </td>
17
- <td class="table-list__state">
17
+ <td class="table-list__state" data-label="<%= t("models.participatory_process.fields.private", scope: "decidim.admin") %>">
18
18
  <% if process.private_space? %>
19
19
  <span><%= t("participatory_processes.index.private", scope: "decidim.admin") %></span>
20
20
  <% else %>
21
21
  <span><%= t("participatory_processes.index.public", scope: "decidim.admin") %></span>
22
22
  <% end %>
23
23
  </td>
24
- <td class="table-list__state">
24
+ <td class="table-list__state" data-label="<%= t("models.participatory_process.fields.published", scope: "decidim.admin") %>">
25
25
  <% if process.published? %>
26
26
  <span class="label success !text-sm"><%= t("participatory_processes.index.published", scope: "decidim.admin") %></span>
27
27
  <% else %>
28
28
  <span class="label alert !text-sm"><%= t("participatory_processes.index.unpublished", scope: "decidim.admin") %></span>
29
29
  <% end %>
30
30
  </td>
31
- <td class="table-list__actions">
32
- <% if view == :deleted %>
33
- <% if allowed_to? :restore, :process, trashable_deleted_resource: process %>
34
- <%= icon_link_to "refresh-line", restore_participatory_process_path(process), t("actions.restore", scope: "decidim.admin"), method: :patch, class: "action-icon--restore" %>
35
- <% else %>
36
- <span class="action-space icon"></span>
37
- <% end %>
38
- <% else %>
39
- <% if allowed_to? :read, :share_tokens, current_participatory_space: process %>
40
- <%= icon_link_to "share-line", decidim_admin_participatory_processes.participatory_process_share_tokens_path(process), t("actions.share_tokens", scope: "decidim.admin"), class: "action-icon--new" %>
41
- <% else %>
42
- <span class="action-space icon"></span>
43
- <% end %>
44
- <% if allowed_to? :update, :process, process: process %>
45
- <%= icon_link_to "pencil-line", edit_participatory_process_path(process), t("actions.configure", scope: "decidim.admin"), class: "action-icon--new" %>
46
- <% else %>
47
- <span class="action-space icon"></span>
48
- <% end %>
49
-
50
- <% if allowed_to? :create, :process, process: process %>
51
- <%= icon_link_to "download-line", participatory_process_export_path(process), t("actions.export", scope: "decidim.admin"), method: :post, class: "action-icon--export" %>
52
- <% else %>
53
- <span class="action-space icon"></span>
54
- <% end %>
55
-
56
- <% if allowed_to? :create, :process, process: process %>
57
- <%= icon_link_to "file-copy-line", new_participatory_process_copy_path(process), t("actions.duplicate", scope: "decidim.admin"), class: "action-icon--copy" %>
58
- <% else %>
59
- <span class="action-space icon"></span>
60
- <% end %>
61
-
62
- <% if allowed_to? :preview, :process, process: process %>
63
- <%= icon_link_to "eye-line", decidim_participatory_processes.participatory_process_path(process), t("actions.preview", scope: "decidim.admin"), class: "action-icon--preview", target: "_blank", data: { "external-link": false } %>
64
- <% else %>
65
- <span class="action-space icon"></span>
66
- <% end %>
67
-
68
- <% if allowed_to? :read, :moderation, process: process %>
69
- <%= icon_link_to "flag-line", moderations_path(process), t("actions.moderate", scope: "decidim.admin"), class: "action-icon--moderate" %>
70
- <% else %>
71
- <span class="action-space icon"></span>
72
- <% end %>
73
-
74
- <% if allowed_to? :soft_delete, :process, trashable_deleted_resource: process %>
75
- <% if process.published? %>
76
- <%= icon "delete-bin-line", class: "action-icon action-icon--disabled", role: "img", aria_label: t("actions.soft_delete", scope: "decidim.admin") %>
31
+ <td class="table-list__actions" data-label="<%= t("models.participatory_process.fields.actions", scope: "decidim.admin") %>">
32
+ <button type="button" data-controller="dropdown" data-target="actions-process-<%= process.id %>" aria-label="<%= t("decidim.admin.actions.actions_label", resource: translated_attribute(process.title)) %>">
33
+ <%= icon "more-fill", class: "text-secondary" %>
34
+ </button>
35
+
36
+ <div class="inline-block relative">
37
+ <ul id="actions-process-<%= process.id %>" class="dropdown dropdown__action" aria-hidden="true">
38
+ <% if view == :deleted %>
39
+
40
+ <% if allowed_to? :restore, :process, trashable_deleted_resource: process %>
41
+ <li class="dropdown__item">
42
+ <%= link_to restore_participatory_process_path(process), class: "dropdown__button", method: :patch do %>
43
+ <%= icon "refresh-line" %>
44
+ <%= t("actions.restore", scope: "decidim.admin") %>
45
+ <% end %>
46
+ </li>
47
+ <% end %>
48
+
77
49
  <% else %>
78
- <%= icon_link_to "delete-bin-line", soft_delete_participatory_process_path(process), t("actions.soft_delete", scope: "decidim.admin"), method: :patch, class: "action-icon--delete", data: { confirm: t("actions.confirm_delete_process", scope: "decidim.admin") } %>
50
+
51
+ <% if allowed_to? :update, :process, process: process %>
52
+ <li class="dropdown__item">
53
+ <%= link_to edit_participatory_process_path(process), class: "dropdown__button" do %>
54
+ <%= icon "pencil-line" %>
55
+ <%= t("actions.edit", scope: "decidim.admin") %>
56
+ <% end %>
57
+ </li>
58
+
59
+ <hr>
60
+ <% end %>
61
+
62
+ <% if allowed_to? :create, :process, process: process %>
63
+ <li class="dropdown__item">
64
+ <%= link_to new_participatory_process_duplicate_path(process), class: "dropdown__button" do %>
65
+ <%= icon "file-copy-line" %>
66
+ <%= t("actions.duplicate", scope: "decidim.admin") %>
67
+ <% end %>
68
+ </li>
69
+ <% end %>
70
+
71
+ <% if allowed_to? :create, :process, process: process %>
72
+ <li class="dropdown__item">
73
+ <%= link_to participatory_process_export_path(process), class: "dropdown__button", method: :post do %>
74
+ <%= icon "download-line" %>
75
+ <%= t("actions.export", scope: "decidim.admin") %>
76
+ <% end %>
77
+ </li>
78
+ <% end %>
79
+
80
+ <hr>
81
+
82
+ <% if allowed_to? :preview, :process, process: process %>
83
+ <li class="dropdown__item">
84
+ <%= link_to decidim_participatory_processes.participatory_process_path(process), class: "dropdown__button", target: "_blank", data: { "external-link": false } do %>
85
+ <%= icon "eye-line" %>
86
+ <%= t("actions.preview", scope: "decidim.admin") %>
87
+ <% end %>
88
+ </li>
89
+ <% end %>
90
+
91
+ <% if allowed_to? :read, :share_token, current_participatory_space: process %>
92
+ <li class="dropdown__item">
93
+ <%= link_to decidim_admin_participatory_processes.participatory_process_share_tokens_path(process), class: "dropdown__button" do %>
94
+ <%= icon "share-line" %>
95
+ <%= t("actions.share_tokens", scope: "decidim.admin") %>
96
+ <% end %>
97
+ </li>
98
+ <% end %>
99
+
100
+ <% if allowed_to? :publish, :process, process: process %>
101
+ <li class="dropdown__item">
102
+ <% if process.published? %>
103
+ <%= link_to participatory_process_publish_path(process), method: :delete, class: "dropdown__button" do %>
104
+ <%= icon "close-circle-line" %>
105
+ <%= t("actions.unpublish", scope: "decidim.admin") %>
106
+ <% end %>
107
+ <% else %>
108
+ <%= link_to participatory_process_publish_path(process), method: :post, class: "dropdown__button" do %>
109
+ <%= icon "check-line" %>
110
+ <%= t("actions.publish", scope: "decidim.admin") %>
111
+ <% end %>
112
+ <% end %>
113
+ </li>
114
+ <% end %>
115
+
116
+ <hr>
117
+
118
+ <% if allowed_to? :read, :moderation, process: process %>
119
+ <li class="dropdown__item">
120
+ <%= link_to moderations_path(process), class: "dropdown__button" do %>
121
+ <%= icon "flag-line" %>
122
+ <%= t("actions.moderate", scope: "decidim.admin") %>
123
+ <% end %>
124
+ </li>
125
+
126
+ <hr>
127
+ <% end %>
128
+
129
+ <% if allowed_to? :soft_delete, :process, trashable_deleted_resource: process %>
130
+ <% if process.published? %>
131
+ <li class="dropdown__item">
132
+ <div class="dropdown__button-disabled">
133
+ <%= with_tooltip t("tooltips.deleted_processes_info", scope: "decidim.admin") do %>
134
+ <%= icon "delete-bin-line", class: "text-gray" %>
135
+ <span>
136
+ <%= t("actions.soft_delete", scope: "decidim.admin") %>
137
+ </span>
138
+ <% end %>
139
+ </div>
140
+ </li>
141
+ <% else %>
142
+ <li class="dropdown__item">
143
+ <%= link_to soft_delete_participatory_process_path(process), class: "dropdown__button", method: :patch, data: { confirm: t("actions.confirm_delete_process", scope: "decidim.admin") } do %>
144
+ <%= icon "delete-bin-line" %>
145
+ <%= t("actions.soft_delete", scope: "decidim.admin") %>
146
+ <% end %>
147
+ </li>
148
+ <% end %>
149
+ <% end %>
150
+
79
151
  <% end %>
80
- <% end %>
81
- <% end %>
152
+ </ul>
153
+ </div>
82
154
  </td>
83
155
  </tr>
@@ -13,14 +13,6 @@
13
13
  <div class="item__edit-sticky">
14
14
  <div class="item__edit-sticky-container">
15
15
  <%= f.submit t("participatory_processes.edit.update", scope: "decidim.admin"), class: "button button__sm button__secondary" %>
16
-
17
- <% if allowed_to? :publish, :process, process: current_participatory_process %>
18
- <% if current_participatory_process.published? %>
19
- <%= link_to t("actions.unpublish", scope: "decidim.admin"), participatory_process_publish_path(current_participatory_process), method: :delete, class: "button button__sm button__secondary" %>
20
- <% else %>
21
- <%= link_to t("actions.publish", scope: "decidim.admin"), participatory_process_publish_path(current_participatory_process), method: :post, class: "button button__sm button__secondary" %>
22
- <% end %>
23
- <% end %>
24
16
  </div>
25
17
  </div>
26
18
  <% end %>
@@ -5,7 +5,7 @@
5
5
  <%= admin_filter_selector %>
6
6
  </div>
7
7
 
8
- <div class="table-scroll">
8
+ <div class="table-stacked">
9
9
  <table class="table-list">
10
10
  <%= render partial: "processes_thead" %>
11
11
  <tbody>
@@ -18,7 +18,7 @@
18
18
  </div>
19
19
  <% if allowed_to? :read, :process, trashable_deleted_resource: @participatory_processes %>
20
20
  <div class="card mt-4">
21
- <%= link_to manage_trash_participatory_processes_path, class: "flex items-center underline text-secondary" do %>
21
+ <%= link_to manage_trash_participatory_processes_path, class: "flex items-center text-secondary" do %>
22
22
  <%= icon "delete-bin-2-line", class: "mr-2 fill-current text-secondary", role: "img" %>
23
23
  <%= t("actions.view_deleted_processes", scope: "decidim.admin") %>
24
24
  <span class="ml-2">
@@ -1,4 +1,5 @@
1
1
  <% add_decidim_page_title(t("participatory_processes_deleted", scope: "decidim.admin.titles")) %>
2
+
2
3
  <div class="item_show__header">
3
4
  <h1 class="item_show__header-title">
4
5
  <%= t "participatory_processes.manage_trash.title", scope: "decidim.admin" %>
@@ -7,7 +8,7 @@
7
8
  <div class="card" id="processes">
8
9
  <%= admin_filter_selector %>
9
10
  </div>
10
- <div class="table-scroll">
11
+ <div class="table-stacked">
11
12
  <table class="table-list">
12
13
  <%= render partial: "processes_thead" %>
13
14
  <tbody>
@@ -1,5 +1,5 @@
1
1
  <div class="inline-block relative">
2
- <%= button_tag data: { component: "dropdown", target: "processes-dropdown-menu-settings" }, class: "dropdown__trigger button button__transparent" do %>
2
+ <%= button_tag data: { controller: "dropdown", target: "processes-dropdown-menu-settings" }, class: "dropdown__trigger button button__transparent" do %>
3
3
  <span>
4
4
  <%= t("menu.manage", scope: "decidim.admin") %>
5
5
  </span>
@@ -9,7 +9,7 @@
9
9
  <% end %>
10
10
  <% end %>
11
11
  <div class="inline-block relative">
12
- <%= button_tag id: "processes-menu-trigger", data: { component: "dropdown", target: "processes-dropdown-menu-settings" }, class: "dropdown__trigger button button__transparent" do %>
12
+ <%= button_tag id: "processes-menu-trigger", data: { controller: "dropdown", target: "processes-dropdown-menu-settings" }, class: "dropdown__trigger button button__transparent" do %>
13
13
  <span>
14
14
  <%= t("menu.manage", scope: "decidim.admin") %>
15
15
  </span>
data/config/assets.rb CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  base_path = File.expand_path("..", __dir__)
4
4
 
5
- Decidim::Webpacker.register_path("#{base_path}/app/packs")
6
- Decidim::Webpacker.register_entrypoints(
5
+ Decidim::Shakapacker.register_path("#{base_path}/app/packs")
6
+ Decidim::Shakapacker.register_entrypoints(
7
7
  decidim_participatory_processes: "#{base_path}/app/packs/entrypoints/decidim_participatory_processes.js"
8
8
  )
@@ -5,15 +5,11 @@ ar:
5
5
  participatory_process:
6
6
  announcement: إعلان
7
7
  area_id: منطقة
8
- copy_categories: نسخ الفئات
9
- copy_components: نسخ المكونات
10
- copy_steps: نسخ الخطوات
11
8
  decidim_area_id: منطقة
12
9
  description: وصف
13
10
  developer_group: مجموعة المروجين
14
11
  domain: نطاق
15
12
  end_date: تاريخ الانتهاء
16
- hashtag: رابطة هاشتاق
17
13
  hero_image: الصورة الرئيسية
18
14
  local_area: منطقة التنظيم
19
15
  meta_scope: نطاق البيانات الوصفية
@@ -75,7 +71,6 @@ ar:
75
71
  admin:
76
72
  actions:
77
73
  activate: تفعيل
78
- configure: تهيئة
79
74
  confirm_destroy: تأكيد الحذف
80
75
  destroy: حذف
81
76
  duplicate: مكرر
@@ -131,11 +126,6 @@ ar:
131
126
  fields:
132
127
  invitation_accepted_at: تم قبول الدعوة في
133
128
  invitation_sent_at: تم إرسال الدعوة في
134
- participatory_process_copies:
135
- new:
136
- copy: نسخ
137
- select: حدد البيانات التي ترغب في تكرارها
138
- title: عملية تشاركية مكررة
139
129
  participatory_process_groups:
140
130
  destroy:
141
131
  success: تم حذف مجموعة العملية التشاركية بنجاح.
@@ -214,10 +204,6 @@ ar:
214
204
  update:
215
205
  error: حدثت مشكلة أثناء تحديث هذه العملية التشاركية.
216
206
  success: عملية المشاركة تم تحديثها بنجاح.
217
- participatory_processes_copies:
218
- create:
219
- error: كانت هناك مشكلة في تكرار هذه العملية التشاركية.
220
- success: عملية المشاركة تتكرر بنجاح.
221
207
  participatory_processes_group:
222
208
  create:
223
209
  error: كانت هناك مشكلة في إنشاء مجموعة عملية تشاركية جديدة.
@@ -266,11 +252,6 @@ ar:
266
252
  title: ما هي العملية التشاركية؟
267
253
  menu:
268
254
  processes: العمليات
269
- metrics:
270
- participatory_processes:
271
- description: عدد العمليات التشاركية في هذه المنظمة
272
- object: العمليات التشاركية
273
- title: العمليات التشاركية
274
255
  participatory_process_groups:
275
256
  content_blocks:
276
257
  stats: