decidim-accountability 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 (116) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/accountability/project/milestones.erb +22 -0
  3. data/app/cells/decidim/accountability/project_cell.rb +9 -9
  4. data/app/commands/decidim/accountability/admin/{create_timeline_entry.rb → create_milestone.rb} +3 -3
  5. data/app/commands/decidim/accountability/admin/{update_timeline_entry.rb → update_milestone.rb} +2 -2
  6. data/app/controllers/decidim/accountability/admin/import_components_controller.rb +1 -1
  7. data/app/controllers/decidim/accountability/admin/import_results_controller.rb +1 -1
  8. data/app/controllers/decidim/accountability/admin/milestones_controller.rb +87 -0
  9. data/app/controllers/decidim/accountability/admin/results_controller.rb +2 -2
  10. data/app/controllers/decidim/accountability/admin/statuses_controller.rb +2 -2
  11. data/app/controllers/decidim/accountability/results_controller.rb +20 -4
  12. data/app/controllers/decidim/accountability/versions_controller.rb +1 -1
  13. data/app/forms/decidim/accountability/admin/{timeline_entry_form.rb → milestone_form.rb} +2 -2
  14. data/app/models/decidim/accountability/{timeline_entry.rb → milestone.rb} +4 -4
  15. data/app/models/decidim/accountability/result.rb +2 -2
  16. data/app/packs/entrypoints/decidim_accountability.js +0 -2
  17. data/app/packs/entrypoints/decidim_accountability_admin_imports.js +1 -1
  18. data/app/packs/src/decidim/accountability/admin/index.js +4 -1
  19. data/app/packs/src/decidim/accountability/admin/result_form.js +1 -1
  20. data/app/packs/src/decidim/accountability/controllers/.gitkeep +0 -0
  21. data/app/packs/stylesheets/accountability.scss +35 -5
  22. data/app/permissions/decidim/accountability/admin/permissions.rb +3 -3
  23. data/app/presenters/decidim/accountability/admin_log/{timeline_entry_presenter.rb → milestone_presenter.rb} +4 -4
  24. data/app/presenters/decidim/accountability/result_presenter.rb +2 -5
  25. data/app/views/decidim/accountability/admin/import_components/_form.html.erb +3 -3
  26. data/app/views/decidim/accountability/admin/import_results/new.html.erb +1 -1
  27. data/app/views/decidim/accountability/admin/{timeline_entries → milestones}/edit.html.erb +1 -1
  28. data/app/views/decidim/accountability/admin/milestones/index.html.erb +66 -0
  29. data/app/views/decidim/accountability/admin/{timeline_entries → milestones}/new.html.erb +1 -1
  30. data/app/views/decidim/accountability/admin/results/_actions.html.erb +102 -29
  31. data/app/views/decidim/accountability/admin/results/_form.html.erb +1 -1
  32. data/app/views/decidim/accountability/admin/results/_result-tr.html.erb +7 -7
  33. data/app/views/decidim/accountability/admin/results/bulk_actions/_dropdown.html.erb +25 -29
  34. data/app/views/decidim/accountability/admin/results/index.html.erb +12 -12
  35. data/app/views/decidim/accountability/admin/results/manage_trash.html.erb +2 -1
  36. data/app/views/decidim/accountability/admin/shared/_subnav.html.erb +1 -1
  37. data/app/views/decidim/accountability/admin/statuses/index.html.erb +40 -12
  38. data/app/views/decidim/accountability/results/_filters.html.erb +4 -0
  39. data/app/views/decidim/accountability/results/_home_aside.html.erb +12 -0
  40. data/app/views/decidim/accountability/results/_home_taxonomies.html.erb +8 -31
  41. data/app/views/decidim/accountability/results/_one_level_taxonomies.html.erb +17 -0
  42. data/app/views/decidim/accountability/results/_projects_aside.html.erb +1 -3
  43. data/app/views/decidim/accountability/results/_root_taxonomies_selector.html.erb +17 -0
  44. data/app/views/decidim/accountability/results/_two_levels_taxonomies.html.erb +30 -0
  45. data/app/views/decidim/accountability/results/home.html.erb +11 -25
  46. data/config/assets.rb +2 -2
  47. data/config/locales/ar.yml +0 -42
  48. data/config/locales/bg.yml +0 -41
  49. data/config/locales/bs-BA.yml +4 -25
  50. data/config/locales/ca-IT.yml +42 -44
  51. data/config/locales/ca.yml +42 -44
  52. data/config/locales/cs.yml +42 -44
  53. data/config/locales/da.yml +0 -21
  54. data/config/locales/de.yml +42 -44
  55. data/config/locales/el.yml +0 -37
  56. data/config/locales/en.yml +42 -44
  57. data/config/locales/es-MX.yml +42 -44
  58. data/config/locales/es-PY.yml +42 -44
  59. data/config/locales/es.yml +42 -44
  60. data/config/locales/eu.yml +43 -45
  61. data/config/locales/fi-plain.yml +42 -44
  62. data/config/locales/fi.yml +42 -44
  63. data/config/locales/fr-CA.yml +42 -44
  64. data/config/locales/fr.yml +42 -44
  65. data/config/locales/ga-IE.yml +0 -11
  66. data/config/locales/gl.yml +0 -25
  67. data/config/locales/gn-PY.yml +0 -2
  68. data/config/locales/he-IL.yml +0 -41
  69. data/config/locales/hu.yml +0 -41
  70. data/config/locales/id-ID.yml +0 -23
  71. data/config/locales/is-IS.yml +0 -24
  72. data/config/locales/it.yml +40 -43
  73. data/config/locales/ja.yml +42 -44
  74. data/config/locales/kaa.yml +0 -5
  75. data/config/locales/ko.yml +0 -15
  76. data/config/locales/lb.yml +0 -25
  77. data/config/locales/lt.yml +0 -37
  78. data/config/locales/lv.yml +0 -23
  79. data/config/locales/nl.yml +0 -29
  80. data/config/locales/no.yml +0 -29
  81. data/config/locales/pl.yml +0 -41
  82. data/config/locales/pt-BR.yml +39 -43
  83. data/config/locales/pt.yml +0 -26
  84. data/config/locales/ro-RO.yml +6 -41
  85. data/config/locales/ru.yml +0 -23
  86. data/config/locales/si-LK.yml +0 -12
  87. data/config/locales/sk.yml +0 -23
  88. data/config/locales/sl.yml +0 -18
  89. data/config/locales/sq-AL.yml +0 -41
  90. data/config/locales/sr-CS.yml +0 -23
  91. data/config/locales/sv.yml +42 -44
  92. data/config/locales/th-TH.yml +0 -27
  93. data/config/locales/tr-TR.yml +0 -43
  94. data/config/locales/uk.yml +0 -21
  95. data/config/locales/zh-CN.yml +0 -23
  96. data/config/locales/zh-TW.yml +0 -37
  97. data/db/migrate/20250606155946_rename_timeline_table_to_milestone.rb +11 -0
  98. data/lib/decidim/accountability/admin_engine.rb +1 -1
  99. data/lib/decidim/accountability/api.rb +1 -1
  100. data/lib/decidim/accountability/component.rb +18 -1
  101. data/lib/decidim/accountability/engine.rb +5 -13
  102. data/lib/decidim/accountability/seeds.rb +9 -9
  103. data/lib/decidim/accountability/test/factories.rb +3 -3
  104. data/lib/decidim/accountability/version.rb +1 -1
  105. data/lib/decidim/accountability.rb +0 -7
  106. data/lib/decidim/api/{timeline_entry_type.rb → milestone_type.rb} +8 -7
  107. data/lib/decidim/api/result_type.rb +17 -3
  108. data/lib/decidim/api/status_type.rb +1 -0
  109. metadata +39 -35
  110. data/app/cells/decidim/accountability/project/timeline.erb +0 -22
  111. data/app/controllers/decidim/accountability/admin/timeline_entries_controller.rb +0 -87
  112. data/app/packs/src/decidim/accountability/index.js +0 -11
  113. data/app/packs/src/decidim/accountability/version_diff.js +0 -33
  114. data/app/queries/decidim/accountability/metrics/results_metric_manage.rb +0 -56
  115. data/app/views/decidim/accountability/admin/timeline_entries/index.html.erb +0 -42
  116. /data/app/views/decidim/accountability/admin/{timeline_entries → milestones}/_form.html.erb +0 -0
@@ -1,29 +1,102 @@
1
- <% if view == :deleted %>
2
- <% if allowed_to? :restore, :result, trashable_deleted_resource: result %>
3
- <%= icon_link_to "refresh-line", url_for(action: :restore, id: result, controller: "results"), t("decidim.admin.actions.restore"), method: :patch, class: "action-icon--restore" %>
4
- <% end %>
5
- <% else %>
6
- <% if allowed_to? :update, :result, result: result %>
7
- <%= icon_link_to "pencil-line", edit_result_path(result), t("actions.edit", scope: "decidim.accountability"), class: "action-icon--edit" %>
8
- <% end %>
9
-
10
- <% if allowed_to? :create_children, :result, result: result %>
11
- <%= icon_link_to "add-line", results_path(parent_id: result.id), t("actions.new_result", scope: "decidim.accountability"), class: "action-icon--plus" %>
12
- <% end %>
13
-
14
- <% if allowed_to? :update, :result, result: result %>
15
- <%= icon_link_to "time-line", result_timeline_entries_path(result), t("actions.timeline_entries", scope: "decidim.accountability"), class: "action-icon--clock" %>
16
- <%= icon_link_to "folder-line", result_attachment_collections_path(result), t("actions.attachment_collections", scope: "decidim.accountability"), class: "action-icon--attachment_collections" %>
17
- <%= icon_link_to "attachment-line", result_attachments_path(result), t("actions.attachments", scope: "decidim.accountability"), class: "action-icon--attachments" %>
18
- <% end %>
19
-
20
- <%= icon_link_to "eye-line", resource_locator(result).path, t("actions.preview", scope: "decidim.accountability"), class: "action-icon--preview", target: :blank, data: { "external-link": false } %>
21
-
22
- <%= resource_permissions_link(result) %>
23
-
24
- <% if allowed_to? :soft_delete, :result, trashable_deleted_resource: result %>
25
- <%= icon_link_to "delete-bin-line", soft_delete_result_path(result), t("actions.soft_delete", scope: "decidim.admin"), method: :patch, class: "action-icon--delete", data: { confirm: t("actions.confirm_delete_result", scope: "decidim.accountability") } %>
26
- <% else %>
27
- <%= icon "delete-bin-line", class: "action-icon action-icon--disabled", role: "img", aria_label: t("actions.soft_delete", scope: "decidim.admin") %>
28
- <% end %>
29
- <% end %>
1
+ <button type="button" data-controller="dropdown" data-target="actions-result-<%= result.id %>" aria-label="<%= t("decidim.admin.actions.actions_label", resource: "Result") %>">
2
+ <%= icon "more-fill", class: "text-secondary" %>
3
+ </button>
4
+
5
+ <div class="inline-block relative">
6
+ <ul id="actions-result-<%= result.id %>" class="dropdown dropdown__action" aria-hidden="true">
7
+ <% if view == :deleted %>
8
+ <% if allowed_to? :restore, :result, trashable_deleted_resource: result %>
9
+ <li class="dropdown__item">
10
+ <%= link_to url_for(action: :restore, id: result, controller: "results"), method: :patch, class: "dropdown__button" do %>
11
+ <%= icon "refresh-line" %>
12
+ <%= t("decidim.admin.actions.restore") %>
13
+ <% end %>
14
+ </li>
15
+ <% end %>
16
+ <% else %>
17
+ <% if allowed_to? :update, :result, result: result %>
18
+ <li class="dropdown__item">
19
+ <%= link_to edit_result_path(result), class: "dropdown__button" do %>
20
+ <%= icon "pencil-line" %>
21
+ <%= t("actions.edit", scope: "decidim.accountability") %>
22
+ <% end %>
23
+ </li>
24
+
25
+ <hr>
26
+ <% end %>
27
+
28
+ <% if allowed_to? :create_children, :result, result: result %>
29
+ <li class="dropdown__item">
30
+ <%= link_to results_path(parent_id: result.id), class: "dropdown__button" do %>
31
+ <%= icon "add-line" %>
32
+ <%= t("actions.add_result", scope: "decidim.accountability") %>
33
+ <% end %>
34
+ </li>
35
+ <% end %>
36
+
37
+ <% if allowed_to? :update, :result, result: result %>
38
+ <li class="dropdown__item">
39
+ <%= link_to result_milestones_path(result), class: "dropdown__button" do %>
40
+ <%= icon "time-line" %>
41
+ <%= t("actions.add_milestone", scope: "decidim.accountability") %>
42
+ <% end %>
43
+ </li>
44
+
45
+ <hr>
46
+
47
+ <li class="dropdown__item">
48
+ <%= link_to result_attachment_collections_path(result), class: "dropdown__button" do %>
49
+ <%= icon "folder-line" %>
50
+ <%= t("actions.attachment_collections", scope: "decidim.admin") %>
51
+ <% end %>
52
+ </li>
53
+
54
+ <li class="dropdown__item">
55
+ <%= link_to result_attachments_path(result), class: "dropdown__button" do %>
56
+ <%= icon "attachment-line" %>
57
+ <%= t("actions.attachments", scope: "decidim.admin") %>
58
+ <% end %>
59
+ </li>
60
+
61
+ <hr>
62
+ <% end %>
63
+
64
+ <li class="dropdown__item">
65
+ <%= link_to resource_locator(result).path, target: :blank, data: { "external-link": false }, class: "dropdown__button" do %>
66
+ <%= icon "eye-line" %>
67
+ <%= t("actions.preview", scope: "decidim.accountability") %>
68
+ <% end %>
69
+ </li>
70
+
71
+ <hr>
72
+
73
+ <% if dropdown_resource_permissions_link(result) %>
74
+ <li class="dropdown__item">
75
+ <%= dropdown_resource_permissions_link(result) %>
76
+ </li>
77
+
78
+ <hr>
79
+ <% end %>
80
+
81
+ <% if allowed_to? :soft_delete, :result, trashable_deleted_resource: result %>
82
+ <li class="dropdown__item">
83
+ <%= link_to soft_delete_result_path(result), method: :patch, data: { confirm: t("actions.confirm_delete_result", scope: "decidim.accountability") }, class: "dropdown__button dropdown__button--danger" do %>
84
+ <%= icon "delete-bin-line" %>
85
+ <%= t("actions.soft_delete", scope: "decidim.admin") %>
86
+ <% end %>
87
+ </li>
88
+ <% else %>
89
+ <li class="dropdown__item">
90
+ <div class="dropdown__button-disabled">
91
+ <%= with_tooltip t("tooltips.deleted_results_info", scope: "decidim.admin") do %>
92
+ <%= icon "delete-bin-line", class: "text-gray" %>
93
+ <span>
94
+ <%= t("actions.soft_delete", scope: "decidim.admin") %>
95
+ </span>
96
+ <% end %>
97
+ </div>
98
+ </li>
99
+ <% end %>
100
+ <% end %>
101
+ </ul>
102
+ </div>
@@ -57,7 +57,7 @@
57
57
  </div>
58
58
  </div>
59
59
 
60
- <% if Decidim::Accountability.enable_proposal_linking %>
60
+ <% if Decidim.module_installed?(:proposals) %>
61
61
  <div class="row column">
62
62
  <%= render partial: "decidim/proposals/proposals/proposals_picker", locals: { form:, field: :proposals } %>
63
63
  </div>
@@ -2,31 +2,31 @@
2
2
  <td>
3
3
  <%= check_box_tag "result_ids_s[]", result.id, false, data: { result_id: result.id, result_checkbox: true } %><br>
4
4
  </td>
5
- <td>
5
+ <td data-label="<%= t("models.result.fields.id", scope: "decidim.accountability") %>">
6
6
  <%= result.id %><br>
7
7
  </td>
8
- <td class="!text-left">
8
+ <td class="!text-left" data-label="<%= t("models.result.fields.title", scope: "decidim.accountability") %>">
9
9
  <% if result.parent_id.nil? %>
10
10
  <%= link_to translated_attribute(result.title), results_path(parent_id: result.id) %><br>
11
11
  <% else %>
12
12
  <%= translated_attribute(result.title) %>
13
13
  <% end %>
14
14
  </td>
15
- <td>
15
+ <td data-label="<%= t("models.result.fields.taxonomies", scope: "decidim.accountability") %>">
16
16
  <%= result.taxonomies.map { |taxonomy| decidim_sanitize_translated(taxonomy.name) }.join(", ") %>
17
17
  </td>
18
- <td>
18
+ <td data-label="<%= t("models.result.fields.status", scope: "decidim.accountability") %>">
19
19
  <% if result.status %>
20
20
  <%= translated_attribute result.status.name %>
21
21
  <% end %>
22
22
  </td>
23
- <td>
23
+ <td data-label="<%= t("models.result.fields.progress", scope: "decidim.accountability") %>">
24
24
  <%= result.progress&.to_i %>
25
25
  </td>
26
- <td>
26
+ <td data-label="<%= t("models.result.fields.created_at", scope: "decidim.accountability") %>">
27
27
  <%= l result.created_at, format: :decidim_short %>
28
28
  </td>
29
- <td class="table-list__actions">
29
+ <td class="table-list__actions" data-label="<%= t("actions.title", scope: "decidim.accountability") %>">
30
30
  <%= render partial: "decidim/accountability/admin/results/actions", locals: { result:, view: } %>
31
31
  </td>
32
32
  </tr>
@@ -1,40 +1,36 @@
1
- <div id="js-bulk-actions-wrapper">
1
+ <div id="js-bulk-actions-wrapper" class="relative">
2
2
  <button
3
3
  id="js-bulk-actions-button"
4
- class="button button__sm button__secondary hide"
4
+ class="button button__sm button__transparent-secondary hide"
5
5
  type="button"
6
- data-toggle="js-bulk-actions-dropdown"
6
+ data-controller="dropdown"
7
+ data-target="js-bulk-actions-dropdown"
7
8
  data-action-button>
8
9
  <%= t(".actions") %>
9
- <%= icon "arrow-down-s-line", class: "dropdown-filter-icon" %>
10
+ <%= icon "arrow-down-s-line" %>
11
+ <%= icon "arrow-down-s-line" %>
10
12
  </button>
11
13
 
12
- <div
14
+ <ul
13
15
  id="js-bulk-actions-dropdown"
14
- class="dropdown-pane dropdown-pane--buttons"
15
- data-position="bottom"
16
- data-alignment="right"
17
- data-dropdown="dropdown"
18
- data-auto-focus="false"
19
- data-events="resize">
20
- <ul>
21
- <% if current_component_taxonomy_filters&.any? %>
22
- <li>
23
- <button type="button" data-action="change-taxonomies">
24
- <%= t(".change_taxonomies") %>
25
- </button>
26
- </li>
27
- <% end %>
28
- <li>
29
- <button type="button" data-action="change-dates">
30
- <%= t(".change_dates") %>
16
+ class="dropdown dropdown__bottom"
17
+ aria-hidden="true">
18
+ <% if current_component_taxonomy_filters&.any? %>
19
+ <li class="dropdown__item">
20
+ <button type="button" class="dropdown__button" data-action="change-taxonomies">
21
+ <%= t(".change_taxonomies") %>
31
22
  </button>
32
23
  </li>
33
- <li>
34
- <button type="button" data-action="change-status">
35
- <%= t(".change_status") %>
36
- </button>
37
- </li>
38
- </ul>
39
- </div>
24
+ <% end %>
25
+ <li class="dropdown__item">
26
+ <button type="button" class="dropdown__button" data-action="change-dates">
27
+ <%= t(".change_dates") %>
28
+ </button>
29
+ </li>
30
+ <li class="dropdown__item">
31
+ <button type="button" class="dropdown__button" data-action="change-status">
32
+ <%= t(".change_status") %>
33
+ </button>
34
+ </li>
35
+ </ul>
40
36
  </div>
@@ -15,18 +15,18 @@
15
15
  <%= export_dropdowns(query) %>
16
16
  <%= import_dropdown do %>
17
17
  <% if allowed_to?(:create, :result) && parent_result.nil? %>
18
- <%= link_to new_import_component_path do %>
19
- <li class="imports--component imports--results">
18
+ <li class="dropdown__item">
19
+ <%= link_to new_import_component_path, class: "dropdown__button" do %>
20
20
  <%= t("actions.import", scope: "decidim.accountability", name: t("models.result.name", scope: "decidim.accountability.admin")) %>
21
- </li>
22
- <% end %>
21
+ <% end %>
22
+ </li>
23
23
  <% end %>
24
24
  <% if allowed_to? :create, :result %>
25
- <%= link_to import_results_path do %>
26
- <li class="imports--component imports--results">
25
+ <li class="dropdown__item">
26
+ <%= link_to import_results_path, class: "dropdown__button" do %>
27
27
  <%= t("actions.import_csv", scope: "decidim.accountability") %>
28
- </li>
29
- <% end %>
28
+ <% end %>
29
+ </li>
30
30
  <% end %>
31
31
  <% end %>
32
32
  <%= render partial: "decidim/accountability/admin/shared/subnav" unless parent_result %>
@@ -41,7 +41,7 @@
41
41
  </div>
42
42
 
43
43
  <%= admin_filter_selector(:results) %>
44
- <div class="table-scroll">
44
+ <div class="table-stacked">
45
45
  <table class="table-list">
46
46
  <%= render partial: "decidim/accountability/admin/results/results-thead", locals: { query: } %>
47
47
  <tbody>
@@ -54,12 +54,12 @@
54
54
  </div>
55
55
  <% if allowed_to? :manage_trash, :result, participatory_space: current_participatory_space %>
56
56
  <div class="card mt-4">
57
- <%= link_to manage_trash_results_path(parent_id: params[:parent_id].presence), class: "flex items-center underline text-secondary" do %>
57
+ <%= link_to manage_trash_results_path(parent_id: params[:parent_id].presence), class: "flex items-center text-secondary" do %>
58
58
  <%= icon "delete-bin-2-line", class: "mr-2 fill-current text-secondary", role: "img" %>
59
59
  <%= t("actions.view_deleted_results", scope: "decidim.accountability") %>
60
60
  <span class="ml-2">
61
- <%= icon_with_tooltip("information-line", t("actions.deleted_results_info", scope: "decidim.accountability")) %>
62
- </span>
61
+ <%= icon_with_tooltip("information-line", t("actions.deleted_results_info", scope: "decidim.accountability")) %>
62
+ </span>
63
63
  <% end %>
64
64
  </div>
65
65
  <% end %>
@@ -1,4 +1,5 @@
1
1
  <% add_decidim_page_title(t(".title")) %>
2
+
2
3
  <div class="card">
3
4
  <div class="item_show__header">
4
5
  <h1 class="item_show__header-title">
@@ -10,7 +11,7 @@
10
11
  </div>
11
12
 
12
13
  <%= admin_filter_selector(:results) %>
13
- <div class="table-scroll">
14
+ <div class="table-stacked">
14
15
  <table class="table-list">
15
16
  <%= render partial: "decidim/accountability/admin/results/results-thead", locals: { query: } %>
16
17
  <tbody>
@@ -1 +1 @@
1
- <%= link_to t(".statuses"), statuses_path, class: "button button__sm button__secondary" %>
1
+ <%= link_to t(".statuses"), statuses_path, class: "button button__sm button__transparent-secondary" %>
@@ -6,7 +6,7 @@
6
6
  <%= link_to t("actions.new_status", scope: "decidim.accountability"), new_status_path, class: "button button__sm button__secondary" if allowed_to? :create, :status %>
7
7
  </h1>
8
8
  </div>
9
- <div class="table-scroll">
9
+ <div class="table-stacked">
10
10
  <table class="table-list">
11
11
  <thead>
12
12
  <tr>
@@ -20,18 +20,46 @@
20
20
  <tbody>
21
21
  <% statuses.each do |status| %>
22
22
  <tr data-id="<%= status.id %>">
23
- <td><%= status.key %><br></td>
24
- <td><%= translated_attribute(status.name) %></td>
25
- <td><%= truncate translated_attribute(status.description), length: 50 %></td>
26
- <td><%= status.progress %></td>
27
- <td class="table-list__actions">
28
- <% if allowed_to? :update, :status, status: status %>
29
- <%= icon_link_to "pencil-line", edit_status_path(status), t("actions.edit", scope: "decidim.accountability"), class: "action-icon--edit" %>
30
- <% end %>
23
+ <td data-label="<%= t("models.status.fields.key", scope: "decidim.accountability") %>">
24
+ <%= status.key %>
25
+ <br></td>
26
+ <td data-label="<%= t("models.status.fields.name", scope: "decidim.accountability") %>">
27
+ <%= translated_attribute(status.name) %>
28
+ </td>
29
+ <td data-label="<%= t("models.status.fields.description", scope: "decidim.accountability") %>">
30
+ <%= truncate translated_attribute(status.description), length: 50 %>
31
+ </td>
32
+ <td data-label="<%= t("models.status.fields.progress", scope: "decidim.accountability") %>">
33
+ <%= status.progress %>
34
+ </td>
35
+ <td class="table-list__actions" data-label="<%= t("actions.title", scope: "decidim.accountability") %>">
36
+ <button type="button" data-controller="dropdown" data-target="actions-status-<%= status.id %>" aria-label="<%= t("decidim.admin.actions.actions_label", resource: t("models.status.name", scope: "decidim.accountability.admin")) %>">
37
+ <%= icon "more-fill", class: "text-secondary" %>
38
+ </button>
39
+
40
+ <div class="inline-block relative">
41
+ <ul id="actions-status-<%= status.id %>" class="dropdown dropdown__action" aria-hidden="true">
42
+ <% if allowed_to? :update, :status, status: status %>
43
+ <li class="dropdown__item">
44
+ <%= link_to edit_status_path(status), class: "dropdown__button" do %>
45
+ <%= icon "pencil-line" %>
46
+ <%= t("actions.edit", scope: "decidim.accountability") %>
47
+ <% end %>
48
+ </li>
49
+
50
+ <hr>
51
+ <% end %>
31
52
 
32
- <% if allowed_to? :destroy, :status, status: status %>
33
- <%= icon_link_to "delete-bin-line", status_path(status), t("actions.destroy", scope: "decidim.accountability"), class: "action-icon--remove", method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.accountability", name: t("models.status.name", scope: "decidim.accountability.admin")) } %>
34
- <% end %>
53
+ <% if allowed_to? :destroy, :status, status: status %>
54
+ <li class="dropdown__item">
55
+ <%= link_to status_path(status), method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.accountability", name: t("models.status.name", scope: "decidim.accountability.admin")) }, class: "dropdown__button dropdown__button--danger" do %>
56
+ <%= icon "delete-bin-line" %>
57
+ <%= t("actions.destroy", scope: "decidim.accountability") %>
58
+ <% end %>
59
+ </li>
60
+ <% end %>
61
+ </ul>
62
+ </div>
35
63
  </td>
36
64
  </tr>
37
65
  <% end %>
@@ -0,0 +1,4 @@
1
+ <div class="accountability__filters">
2
+ <%= render partial: "search" %>
3
+ <%= render partial: "root_taxonomies_selector" %>
4
+ </div>
@@ -0,0 +1,12 @@
1
+ <h1 class="title-decorator"><%= component_name %></h1>
2
+
3
+ <% if component_settings.display_progress_enabled? %>
4
+ <%= cell(
5
+ "decidim/accountability/status",
6
+ nil,
7
+ title: t("decidim.accountability.results.home_header.global_status"),
8
+ progress: progress_calculator(nil).presence,
9
+ extra_classes: "accountability__status__home"
10
+ ) %>
11
+ <% end %>
12
+ <%= render partial: "filters" %>
@@ -1,32 +1,9 @@
1
- <div class="accountability__grid">
2
- <% first_class_taxonomies.each do |taxonomy| %>
3
- <% subelements = cell(
4
- "decidim/accountability/status",
5
- taxonomy,
6
- extra_classes: "accountability__status__background",
7
- url: results_path(filter: { taxonomies_part_of_contains: taxonomy }),
8
- render_blank: true
9
- ) %>
1
+ <h3 class="mb-8 font-semibold text-xl">
2
+ <%= translated_attribute(selected_root_taxonomy.name) %>
3
+ </h3>
10
4
 
11
- <div>
12
- <%= subelements.call %>
13
- </div>
14
-
15
- <div>
16
- <% if subelements.has_results? %>
17
- <div class="accountability__subgrid">
18
- <% taxonomy.children.where(id: current_component.available_taxonomy_ids).each do |sub_taxonomy| %>
19
- <%= cell(
20
- "decidim/accountability/status",
21
- sub_taxonomy,
22
- extra_classes: "accountability__status__border",
23
- url: results_path(filter: { taxonomies_part_of_contains: sub_taxonomy })
24
- ) %>
25
- <% end %>
26
- </div>
27
- <% else %>
28
- <%= cell("decidim/announcement", t("no_results", scope: "decidim.accountability.results")) %>
29
- <% end %>
30
- </div>
31
- <% end %>
32
- </div>
5
+ <% if selected_taxonomy_grandchildren? %>
6
+ <%= render "two_levels_taxonomies" %>
7
+ <% else %>
8
+ <%= render "one_level_taxonomies" %>
9
+ <% end %>
@@ -0,0 +1,17 @@
1
+ <div class="accountability__grid accountability__grid--one-level">
2
+ <% selected_taxonomy_children.each do |taxonomy| %>
3
+ <% subelements = cell(
4
+ "decidim/accountability/status",
5
+ taxonomy,
6
+ extra_classes: "accountability__status__background",
7
+ url: results_path(filter: { taxonomies_part_of_contains: taxonomy }),
8
+ render_blank: true
9
+ ) %>
10
+
11
+ <% if subelements.has_results? %>
12
+ <div>
13
+ <%= subelements.call %>
14
+ </div>
15
+ <% end %>
16
+ <% end %>
17
+ </div>
@@ -37,6 +37,4 @@
37
37
  <% end %>
38
38
  </div>
39
39
 
40
- <div class="accountability__filters">
41
- <%= render partial: "search" %>
42
- </div>
40
+ <%= render partial: "filters" %>
@@ -0,0 +1,17 @@
1
+ <div class="accountability__taxonomies">
2
+ <h2 class="accountability__taxonomies__title">
3
+ <%= t("decidim.accountability.results.root_taxonomies.title") %>
4
+ </h2>
5
+ <ul>
6
+ <% current_component.available_root_taxonomies.each do |taxonomy| %>
7
+ <% is_selected = selected_root_taxonomy&.id == taxonomy.id %>
8
+ <li class="<%= "active" if is_selected && action_name == "home" %>">
9
+ <% if is_selected %>
10
+ <%= link_to translated_attribute(taxonomy.name), home_results_path(root_taxonomy_id: "list") %>
11
+ <% else %>
12
+ <%= link_to translated_attribute(taxonomy.name), home_results_path(root_taxonomy_id: taxonomy.id) %>
13
+ <% end %>
14
+ </li>
15
+ <% end %>
16
+ </ul>
17
+ </div>
@@ -0,0 +1,30 @@
1
+ <div class="accountability__grid accountability__grid--two-levels">
2
+ <% selected_taxonomy_children.each do |taxonomy| %>
3
+ <% subelements = cell(
4
+ "decidim/accountability/status",
5
+ taxonomy,
6
+ extra_classes: "accountability__status__background",
7
+ url: results_path(filter: { taxonomies_part_of_contains: taxonomy }),
8
+ render_blank: true
9
+ ) %>
10
+
11
+ <% if subelements.has_results? %>
12
+ <div>
13
+ <%= subelements.call %>
14
+ </div>
15
+
16
+ <div>
17
+ <div class="accountability__subgrid">
18
+ <% taxonomy.children.where(id: current_component.available_taxonomy_ids).each do |sub_taxonomy| %>
19
+ <%= cell(
20
+ "decidim/accountability/status",
21
+ sub_taxonomy,
22
+ extra_classes: "accountability__status__border",
23
+ url: results_path(filter: { taxonomies_part_of_contains: sub_taxonomy })
24
+ ) %>
25
+ <% end %>
26
+ </div>
27
+ </div>
28
+ <% end %>
29
+ <% end %>
30
+ </div>
@@ -8,24 +8,10 @@
8
8
  <%= append_stylesheet_pack_tag "decidim_accountability" %>
9
9
 
10
10
  <% content_for :aside do %>
11
- <h1 class="title-decorator"><%= component_name %></h1>
12
-
13
- <% if component_settings.display_progress_enabled? %>
14
- <%= cell(
15
- "decidim/accountability/status",
16
- nil,
17
- title: t("decidim.accountability.results.home_header.global_status"),
18
- progress: progress_calculator(nil).presence,
19
- extra_classes: "accountability__status__home"
20
- ) %>
21
- <% end %>
22
- <div class="accountability__filters">
23
- <%= render partial: "search" %>
24
- </div>
11
+ <%= render partial: "home_aside" %>
25
12
  <% end %>
26
13
 
27
14
  <%= render layout: "layouts/decidim/shared/layout_two_col" do %>
28
-
29
15
  <% if Decidim::Map.available?(:geocoding, :dynamic) && component_settings.geocoding_enabled? %>
30
16
  <div class="accountability__map">
31
17
  <%= cell "decidim/map", @all_geocoded_results, metadata_card: "decidim/accountability/result_metadata" %>
@@ -36,14 +22,14 @@
36
22
  <div class="editor-content"><%= decidim_sanitize_admin translated_attribute(component_settings.intro) %></div>
37
23
  </section>
38
24
 
39
- <section class="layout-main__section">
40
- <% if first_class_taxonomies.empty? %>
41
- <%= cell("decidim/announcement",
42
- params[:filter].present? ?
43
- t("empty_filters", scope: "decidim.accountability.results.home") :
44
- t("empty", scope: "decidim.accountability.results.home")) %>
45
- <% end %>
46
- <%= render partial: "home_taxonomies" %>
47
- </section>
48
-
25
+ <% if selected_root_taxonomy.present? %>
26
+ <section class="layout-main__section">
27
+ <%= render partial: "home_taxonomies" %>
28
+ </section>
29
+ <% else %>
30
+ <section id="results" class="layout-main__section">
31
+ <%= cell "decidim/accountability/results", results %>
32
+ <%= decidim_paginate results, order_start_time: params[:order_start_time] %>
33
+ </section>
34
+ <% end %>
49
35
  <% end %>
data/config/assets.rb CHANGED
@@ -2,8 +2,8 @@
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_accountability: "#{base_path}/app/packs/entrypoints/decidim_accountability.js",
8
8
  decidim_accountability_admin_form: "#{base_path}/app/packs/entrypoints/decidim_accountability_admin_form.js",
9
9
  decidim_accountability_admin_imports: "#{base_path}/app/packs/entrypoints/decidim_accountability_admin_imports.js",