decidim-participatory_processes 0.30.2 → 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 (127) 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 +4 -4
  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 +0 -1
  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 -13
  64. data/config/locales/bg.yml +0 -24
  65. data/config/locales/bs-BA.yml +0 -4
  66. data/config/locales/ca-IT.yml +319 -25
  67. data/config/locales/ca.yml +319 -25
  68. data/config/locales/cs.yml +93 -26
  69. data/config/locales/de.yml +123 -25
  70. data/config/locales/el.yml +0 -21
  71. data/config/locales/en.yml +303 -24
  72. data/config/locales/es-MX.yml +319 -25
  73. data/config/locales/es-PY.yml +319 -25
  74. data/config/locales/es.yml +319 -25
  75. data/config/locales/eu.yml +304 -25
  76. data/config/locales/fi-plain.yml +303 -24
  77. data/config/locales/fi.yml +303 -24
  78. data/config/locales/fr-CA.yml +86 -24
  79. data/config/locales/fr.yml +86 -24
  80. data/config/locales/ga-IE.yml +0 -7
  81. data/config/locales/gl.yml +0 -19
  82. data/config/locales/hu.yml +0 -21
  83. data/config/locales/id-ID.yml +0 -13
  84. data/config/locales/is-IS.yml +0 -11
  85. data/config/locales/it.yml +0 -20
  86. data/config/locales/ja.yml +123 -25
  87. data/config/locales/lb.yml +0 -20
  88. data/config/locales/lt.yml +0 -21
  89. data/config/locales/lv.yml +0 -14
  90. data/config/locales/nl.yml +0 -20
  91. data/config/locales/no.yml +0 -21
  92. data/config/locales/pl.yml +16 -24
  93. data/config/locales/pt-BR.yml +0 -23
  94. data/config/locales/pt.yml +0 -20
  95. data/config/locales/ro-RO.yml +2 -21
  96. data/config/locales/ru.yml +0 -11
  97. data/config/locales/sk.yml +0 -14
  98. data/config/locales/sr-CS.yml +0 -4
  99. data/config/locales/sv.yml +86 -24
  100. data/config/locales/tr-TR.yml +0 -20
  101. data/config/locales/uk.yml +0 -11
  102. data/config/locales/zh-CN.yml +0 -17
  103. data/config/locales/zh-TW.yml +0 -21
  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/participatory_space.rb +1 -4
  116. data/lib/decidim/participatory_processes/seeds.rb +3 -5
  117. data/lib/decidim/participatory_processes/test/factories.rb +2 -3
  118. data/lib/decidim/participatory_processes/version.rb +1 -1
  119. metadata +72 -22
  120. data/app/cells/decidim/participatory_processes/content_blocks/metrics_cell.rb +0 -25
  121. data/app/presenters/decidim/participatory_processes/participatory_process_metric_charts_presenter.rb +0 -21
  122. data/app/queries/decidim/participatory_processes/metrics/participatory_process_followers_metric_measure.rb +0 -31
  123. data/app/queries/decidim/participatory_processes/metrics/participatory_processes_metric_manage.rb +0 -27
  124. data/app/queries/decidim/participatory_processes/stats_followers_count.rb +0 -60
  125. data/app/queries/decidim/participatory_processes/stats_participants_count.rb +0 -136
  126. data/app/views/decidim/participatory_processes/admin/participatory_process_copies/new.html.erb +0 -19
  127. 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_token, 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,9 +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
129
  participatory_process_groups:
138
130
  destroy:
139
131
  success: تم حذف مجموعة العملية التشاركية بنجاح.
@@ -260,11 +252,6 @@ ar:
260
252
  title: ما هي العملية التشاركية؟
261
253
  menu:
262
254
  processes: العمليات
263
- metrics:
264
- participatory_processes:
265
- description: عدد العمليات التشاركية في هذه المنظمة
266
- object: العمليات التشاركية
267
- title: العمليات التشاركية
268
255
  participatory_process_groups:
269
256
  content_blocks:
270
257
  stats: