decidim-accountability 0.29.2 → 0.30.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (141) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/accountability/project/show.erb +6 -0
  3. data/app/cells/decidim/accountability/project_cell.rb +23 -42
  4. data/app/cells/decidim/accountability/result_history_cell.rb +57 -0
  5. data/app/cells/decidim/accountability/result_metadata_cell.rb +17 -17
  6. data/app/cells/decidim/accountability/status_cell.rb +9 -13
  7. data/app/commands/decidim/accountability/admin/create_imported_result.rb +1 -1
  8. data/app/commands/decidim/accountability/admin/create_result.rb +3 -2
  9. data/app/commands/decidim/accountability/admin/import_component_to_accountability.rb +47 -0
  10. data/app/commands/decidim/accountability/admin/update_imported_result.rb +1 -1
  11. data/app/commands/decidim/accountability/admin/update_result.rb +3 -2
  12. data/app/commands/decidim/accountability/admin/update_result_dates.rb +56 -0
  13. data/app/commands/decidim/accountability/admin/update_result_status.rb +61 -0
  14. data/app/commands/decidim/accountability/admin/update_result_taxonomies.rb +18 -0
  15. data/app/controllers/concerns/decidim/accountability/admin/filterable.rb +8 -6
  16. data/app/controllers/decidim/accountability/admin/import_components_controller.rb +36 -0
  17. data/app/controllers/decidim/accountability/admin/results_bulk_actions_controller.rb +102 -0
  18. data/app/controllers/decidim/accountability/admin/results_controller.rb +21 -11
  19. data/app/controllers/decidim/accountability/results_controller.rb +10 -7
  20. data/app/forms/decidim/accountability/admin/import_component_form.rb +98 -0
  21. data/app/forms/decidim/accountability/admin/result_bulk_actions_form.rb +18 -0
  22. data/app/forms/decidim/accountability/admin/result_form.rb +17 -23
  23. data/app/helpers/decidim/accountability/admin/application_helper.rb +0 -1
  24. data/app/helpers/decidim/accountability/application_helper.rb +1 -32
  25. data/app/helpers/decidim/accountability/breadcrumb_helper.rb +10 -14
  26. data/app/jobs/decidim/accountability/admin/import_projects_job.rb +5 -3
  27. data/app/jobs/decidim/accountability/admin/import_proposals_job.rb +70 -0
  28. data/app/mailers/decidim/accountability/import_proposals_mailer.rb +28 -0
  29. data/app/models/decidim/accountability/result.rb +23 -1
  30. data/app/models/decidim/accountability/status.rb +4 -0
  31. data/app/packs/entrypoints/decidim_accountability_admin_form.js +1 -0
  32. data/app/packs/src/decidim/accountability/admin/imports.js +37 -14
  33. data/app/packs/src/decidim/accountability/admin/index/action_button.js +42 -0
  34. data/app/packs/src/decidim/accountability/admin/index/action_form.js +46 -0
  35. data/app/packs/src/decidim/accountability/admin/index/action_selector.js +37 -0
  36. data/app/packs/src/decidim/accountability/admin/index/counter.js +40 -0
  37. data/app/packs/src/decidim/accountability/admin/index/select_all.js +29 -0
  38. data/app/packs/src/decidim/accountability/admin/index.js +17 -7
  39. data/app/packs/src/decidim/accountability/admin/result_form.js +21 -0
  40. data/app/packs/stylesheets/accountability.scss +5 -0
  41. data/app/permissions/decidim/accountability/admin/permissions.rb +3 -2
  42. data/app/presenters/decidim/accountability/admin_log/result_presenter.rb +1 -1
  43. data/app/presenters/decidim/accountability/result_presenter.rb +30 -0
  44. data/app/queries/decidim/accountability/metrics/results_metric_manage.rb +6 -6
  45. data/app/services/decidim/accountability/results_calculator.rb +4 -6
  46. data/app/services/decidim/accountability/results_csv_importer.rb +1 -1
  47. data/app/views/decidim/accountability/admin/import_components/_filters.html.erb +26 -0
  48. data/app/views/decidim/accountability/admin/import_components/_form.html.erb +26 -0
  49. data/app/views/decidim/accountability/admin/import_components/new.html.erb +14 -0
  50. data/app/views/decidim/accountability/admin/results/_actions.html.erb +29 -0
  51. data/app/views/decidim/accountability/admin/results/_form.html.erb +15 -8
  52. data/app/views/decidim/accountability/admin/results/_result-tr.html.erb +32 -0
  53. data/app/views/decidim/accountability/admin/results/_results-thead.html.erb +26 -0
  54. data/app/views/decidim/accountability/admin/results/bulk_actions/_dates_form.html.erb +19 -0
  55. data/app/views/decidim/accountability/admin/results/bulk_actions/_dropdown.html.erb +40 -0
  56. data/app/views/decidim/accountability/admin/results/bulk_actions/_status_form.html.erb +16 -0
  57. data/app/views/decidim/accountability/admin/results/bulk_actions/_submit_buttons.html.erb +4 -0
  58. data/app/views/decidim/accountability/admin/results/bulk_actions/_taxonomies_form.html.erb +18 -0
  59. data/app/views/decidim/accountability/admin/results/edit.html.erb +2 -2
  60. data/app/views/decidim/accountability/admin/results/index.html.erb +50 -111
  61. data/app/views/decidim/accountability/admin/results/manage_trash.html.erb +26 -0
  62. data/app/views/decidim/accountability/admin/results/new.html.erb +2 -2
  63. data/app/views/decidim/accountability/import_proposals_mailer/import.html.erb +2 -0
  64. data/app/views/decidim/accountability/results/{_home_categories.html.erb → _home_taxonomies.html.erb} +6 -8
  65. data/app/views/decidim/accountability/results/_project.html.erb +1 -3
  66. data/app/views/decidim/accountability/results/_projects_aside.html.erb +9 -7
  67. data/app/views/decidim/accountability/results/home.html.erb +18 -6
  68. data/app/views/decidim/accountability/results/index.html.erb +8 -2
  69. data/app/views/decidim/accountability/results/show.html.erb +5 -5
  70. data/config/assets.rb +3 -2
  71. data/config/locales/ar.yml +97 -55
  72. data/config/locales/bg.yml +0 -50
  73. data/config/locales/bs-BA.yml +0 -16
  74. data/config/locales/ca.yml +128 -40
  75. data/config/locales/cs.yml +147 -56
  76. data/config/locales/da.yml +0 -20
  77. data/config/locales/de.yml +126 -39
  78. data/config/locales/el.yml +0 -48
  79. data/config/locales/en.yml +128 -40
  80. data/config/locales/es-MX.yml +129 -41
  81. data/config/locales/es-PY.yml +129 -41
  82. data/config/locales/es.yml +129 -41
  83. data/config/locales/eu.yml +140 -53
  84. data/config/locales/fi-plain.yml +136 -49
  85. data/config/locales/fi.yml +136 -49
  86. data/config/locales/fr-CA.yml +111 -54
  87. data/config/locales/fr.yml +111 -54
  88. data/config/locales/ga-IE.yml +0 -13
  89. data/config/locales/gl.yml +0 -17
  90. data/config/locales/gn-PY.yml +0 -11
  91. data/config/locales/he-IL.yml +45 -54
  92. data/config/locales/hu.yml +0 -50
  93. data/config/locales/id-ID.yml +0 -16
  94. data/config/locales/is-IS.yml +0 -17
  95. data/config/locales/it.yml +0 -18
  96. data/config/locales/ja.yml +132 -47
  97. data/config/locales/kaa.yml +0 -8
  98. data/config/locales/ko.yml +0 -47
  99. data/config/locales/lb.yml +0 -17
  100. data/config/locales/lt.yml +0 -50
  101. data/config/locales/lv.yml +0 -19
  102. data/config/locales/nl.yml +0 -17
  103. data/config/locales/no.yml +0 -17
  104. data/config/locales/pl.yml +0 -47
  105. data/config/locales/pt-BR.yml +6 -50
  106. data/config/locales/pt.yml +35 -23
  107. data/config/locales/ro-RO.yml +0 -29
  108. data/config/locales/ru.yml +0 -16
  109. data/config/locales/si-LK.yml +0 -11
  110. data/config/locales/sk.yml +0 -19
  111. data/config/locales/sl.yml +0 -17
  112. data/config/locales/sq-AL.yml +0 -50
  113. data/config/locales/sr-CS.yml +0 -16
  114. data/config/locales/sv.yml +124 -36
  115. data/config/locales/th-TH.yml +0 -50
  116. data/config/locales/tr-TR.yml +0 -47
  117. data/config/locales/uk.yml +0 -16
  118. data/config/locales/zh-CN.yml +0 -20
  119. data/config/locales/zh-TW.yml +0 -47
  120. data/db/migrate/20200827154103_add_commentable_counter_cache_to_results.rb +1 -1
  121. data/db/migrate/20240828103202_add_deleted_at_to_decidim_accountability_results.rb +8 -0
  122. data/db/migrate/20240916112128_add_geolocation_fields_to_results.rb +9 -0
  123. data/decidim-accountability.gemspec +1 -1
  124. data/lib/decidim/accountability/admin_engine.rb +16 -2
  125. data/lib/decidim/accountability/component.rb +3 -3
  126. data/lib/decidim/accountability/result_serializer.rb +9 -13
  127. data/lib/decidim/accountability/seeds.rb +28 -21
  128. data/lib/decidim/accountability/test/factories.rb +6 -4
  129. data/lib/decidim/accountability/version.rb +1 -1
  130. data/lib/decidim/api/accountability_type.rb +4 -5
  131. data/lib/decidim/api/result_type.rb +10 -13
  132. data/lib/decidim/api/status_type.rb +3 -4
  133. data/lib/decidim/api/timeline_entry_type.rb +5 -6
  134. metadata +58 -30
  135. data/app/commands/decidim/accountability/admin/import_projects_to_accountability.rb +0 -37
  136. data/app/controllers/decidim/accountability/admin/projects_import_controller.rb +0 -31
  137. data/app/forms/decidim/accountability/admin/result_import_projects_form.rb +0 -51
  138. data/app/views/decidim/accountability/admin/projects_import/new.html.erb +0 -45
  139. data/app/views/decidim/accountability/results/_nav_breadcrumb.html.erb +0 -37
  140. data/app/views/decidim/accountability/results/_scope_filters.html.erb +0 -31
  141. /data/app/packs/entrypoints/{decidim_accountability_admin.js → decidim_accountability_admin_index.js} +0 -0
@@ -0,0 +1,26 @@
1
+ <thead>
2
+ <tr>
3
+ <th>
4
+ <%= check_box_tag "results_bulk", "all", false, data: { "select-all" => true } %>
5
+ </th>
6
+ <th>
7
+ <%= sort_link(query, :id, t("models.result.fields.id", scope: "decidim.accountability"), default_order: :desc ) %>
8
+ </th>
9
+ <th class="!text-left">
10
+ <%= sort_link(query, :title, t("models.result.fields.title", scope: "decidim.accountability")) %>
11
+ </th>
12
+ <th>
13
+ <%= sort_link(query, :taxonomies_name, t("models.result.fields.taxonomies", scope: "decidim.accountability") ) %>
14
+ </th>
15
+ <th>
16
+ <%= sort_link(query, :status_name, t("models.result.fields.status", scope: "decidim.accountability") ) %>
17
+ </th>
18
+ <th>
19
+ <%= sort_link(query, :progress, t("models.result.fields.progress", scope: "decidim.accountability") ) %>
20
+ </th>
21
+ <th>
22
+ <%= sort_link(query, :created_at, t("models.result.fields.created_at", scope: "decidim.accountability") ) %>
23
+ </th>
24
+ <th><%= t("actions.title", scope: "decidim.accountability") %></th>
25
+ </tr>
26
+ </thead>
@@ -0,0 +1,19 @@
1
+ <div class="item_show__header__action-options hide" data-action-form="change-dates">
2
+ <%= decidim_form_for(bulk_actions_form, url: update_dates_results_path, method: :post, html: { class: "form form-defaults w-full" }) do |f| %>
3
+ <div class="form__wrapper gap-6">
4
+ <%= f.hidden_field :result_ids, multiple: true, data: { result_ids_field: true } %>
5
+
6
+ <div class="row">
7
+ <div class="columns">
8
+ <%= f.date_field :start_date, label: t(".start_date") %>
9
+ </div>
10
+
11
+ <div class="columns">
12
+ <%= f.date_field :end_date, label: t(".end_date") %>
13
+ </div>
14
+ </div>
15
+
16
+ <%= render partial: "decidim/accountability/admin/results/bulk_actions/submit_buttons", locals: { submit_text: t(".change_dates") } %>
17
+ </div>
18
+ <% end %>
19
+ </div>
@@ -0,0 +1,40 @@
1
+ <div id="js-bulk-actions-wrapper">
2
+ <button
3
+ id="js-bulk-actions-button"
4
+ class="button button__sm button__secondary hide"
5
+ type="button"
6
+ data-toggle="js-bulk-actions-dropdown"
7
+ data-action-button>
8
+ <%= t(".actions") %>
9
+ <%= icon "arrow-down-s-line", class: "dropdown-filter-icon" %>
10
+ </button>
11
+
12
+ <div
13
+ 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") %>
31
+ </button>
32
+ </li>
33
+ <li>
34
+ <button type="button" data-action="change-status">
35
+ <%= t(".change_status") %>
36
+ </button>
37
+ </li>
38
+ </ul>
39
+ </div>
40
+ </div>
@@ -0,0 +1,16 @@
1
+ <div class="item_show__header__action-options hide" data-action-form="change-status">
2
+ <%= decidim_form_for(bulk_actions_form, url: update_status_results_path, method: :post, html: { class: "form form-defaults w-full" }) do |f| %>
3
+ <div class="form__wrapper gap-6">
4
+ <%= f.hidden_field :result_ids, multiple: true, data: { result_ids_field: true } %>
5
+
6
+ <div class="row column">
7
+ <%= f.select :decidim_accountability_status_id,
8
+ options_for_select(statuses.map { |status| [translated_attribute(status.name), status.id] }),
9
+ { include_blank: true, label: t(".status") },
10
+ { class: "w-full mt-2" } %>
11
+ </div>
12
+
13
+ <%= render partial: "decidim/accountability/admin/results/bulk_actions/submit_buttons", locals: { submit_text: t(".change_status") } %>
14
+ <% end %>
15
+ </div>
16
+ </div>
@@ -0,0 +1,4 @@
1
+ <div class="flex justify-end gap-x-4">
2
+ <%= submit_tag(submit_text, class: "button button__sm button__secondary small button--simple float-left") %>
3
+ <button class="button button__sm button__secondary" type="button" data-cancel-button><%= t(".cancel") %></button>
4
+ </div>
@@ -0,0 +1,18 @@
1
+ <div class="item_show__header__action-options hide" data-action-form="change-taxonomies">
2
+ <%= decidim_form_for(bulk_actions_form, url: update_taxonomies_results_path, method: :post, html: { class: "form form-defaults w-full" }) do |f| %>
3
+ <div class="form__wrapper gap-6">
4
+ <%= f.hidden_field :result_ids, multiple: true, data: { result_ids_field: true } %>
5
+
6
+ <% current_component_taxonomy_filters.each do |filter| %>
7
+ <div class="row column mb-6">
8
+ <%= f.select :taxonomies,
9
+ options_for_select(taxonomy_items_options_for_filter(filter)),
10
+ { include_blank: I18n.t("decidim.taxonomies.prompt"), label: decidim_sanitize_translated(filter.name) },
11
+ { class: "w-full mt-2", id: "taxonomies_for_filter_#{filter.id}", name: "result_bulk_actions[taxonomies][]" } %>
12
+ </div>
13
+ <% end %>
14
+
15
+ <%= render partial: "decidim/accountability/admin/results/bulk_actions/submit_buttons", locals: { submit_text: t(".change_taxonomies") } %>
16
+ <% end %>
17
+ </div>
18
+ </div>
@@ -7,7 +7,7 @@
7
7
 
8
8
  <div class="item__edit item__edit-1col">
9
9
  <div class="item__edit-form">
10
- <%= decidim_form_for(@form, html: { class: "form form-defaults edit_result" }) do |f| %>
10
+ <%= decidim_form_for(@form, html: { class: "form form-defaults edit_result result_form_admin" }) do |f| %>
11
11
  <%= render partial: "form", object: f %>
12
12
  <div class="item__edit-sticky">
13
13
  <div class="item__edit-sticky-container">
@@ -18,4 +18,4 @@
18
18
  </div>
19
19
  </div>
20
20
 
21
- <%= append_javascript_pack_tag "decidim_accountability_admin" %>
21
+ <%= append_javascript_pack_tag "decidim_accountability_admin_form" %>
@@ -1,130 +1,69 @@
1
1
  <% add_decidim_page_title(t(".title")) %>
2
2
  <div class="card">
3
- <div class="item_show__header">
3
+ <div class="item_show__header item_show__header--with-action-options">
4
4
  <h1 class="item_show__header-title">
5
- <% if parent_result %>
6
- <%= "#{translated_attribute(parent_result.title)} > " %>
7
- <% end %>
8
- <%= t(".title") %>
5
+ <div>
6
+ <% if parent_result %>
7
+ <%= "#{translated_attribute(parent_result.title)} > " %>
8
+ <% end %>
9
+ <%= t(".title") %>
10
+ <span data-selected-count class="component-counter" title="<%= t(".selected") %>"></span>
11
+ </div>
9
12
 
10
- <%= export_dropdowns(query) %>
11
- <%= import_dropdown do %>
12
- <% if allowed_to?(:create, :result) && parent_result.nil? %>
13
- <%= link_to new_projects_import_path do %>
14
- <li class="imports--component imports--results">
15
- <%= t("actions.import", scope: "decidim.accountability", name: t("models.result.name", scope: "decidim.accountability.admin")) %>
16
- </li>
13
+ <div class="flex items-center gap-x-4">
14
+ <%= render partial: "decidim/accountability/admin/results/bulk_actions/dropdown" %>
15
+ <%= export_dropdowns(query) %>
16
+ <%= import_dropdown do %>
17
+ <% if allowed_to?(:create, :result) && parent_result.nil? %>
18
+ <%= link_to new_import_component_path do %>
19
+ <li class="imports--component imports--results">
20
+ <%= t("actions.import", scope: "decidim.accountability", name: t("models.result.name", scope: "decidim.accountability.admin")) %>
21
+ </li>
22
+ <% end %>
17
23
  <% end %>
18
- <% end %>
19
- <% if allowed_to? :create, :result %>
20
- <%= link_to import_results_path do %>
21
- <li class="imports--component imports--results">
22
- <%= t("actions.import_csv", scope: "decidim.accountability") %>
23
- </li>
24
+ <% if allowed_to? :create, :result %>
25
+ <%= link_to import_results_path do %>
26
+ <li class="imports--component imports--results">
27
+ <%= t("actions.import_csv", scope: "decidim.accountability") %>
28
+ </li>
29
+ <% end %>
24
30
  <% end %>
25
31
  <% end %>
26
- <% end %>
27
- <%= render partial: "decidim/accountability/admin/shared/subnav" unless parent_result %>
28
- <%= link_to t("actions.new_result", scope: "decidim.accountability"), new_result_path(parent_id: parent_result), class: "button button__sm button__secondary" if allowed_to? :create, :result %>
29
- <%= render partial: "decidim/admin/components/resource_action" %>
32
+ <%= render partial: "decidim/accountability/admin/shared/subnav" unless parent_result %>
33
+ <%= link_to t("actions.new_result", scope: "decidim.accountability"), new_result_path(parent_id: parent_result), class: "button button__sm button__secondary" if allowed_to? :create, :result %>
34
+ <%= render partial: "decidim/admin/components/resource_action" %>
35
+ </div>
30
36
  </h1>
37
+
38
+ <%= render partial: "decidim/accountability/admin/results/bulk_actions/taxonomies_form" %>
39
+ <%= render partial: "decidim/accountability/admin/results/bulk_actions/status_form" %>
40
+ <%= render partial: "decidim/accountability/admin/results/bulk_actions/dates_form" %>
31
41
  </div>
32
42
 
33
43
  <%= admin_filter_selector(:results) %>
34
44
  <div class="table-scroll">
35
45
  <table class="table-list">
36
- <thead>
37
- <tr>
38
- <th>
39
- <%= sort_link(query, :id, t("models.result.fields.id", scope: "decidim.accountability"), default_order: :desc ) %>
40
- </th>
41
- <th class="!text-left">
42
- <%= sort_link(query, :title, t("models.result.fields.title", scope: "decidim.accountability")) %>
43
- </th>
44
- <th>
45
- <%= sort_link(query, :category_name, t("models.result.fields.category", scope: "decidim.accountability") ) %>
46
- </th>
47
- <% if resource_with_scopes_enabled? %>
48
- <th>
49
- <%= sort_link(query, :scope_name, t("models.result.fields.scope", scope: "decidim.accountability") ) %>
50
- </th>
51
- <% end %>
52
- <th>
53
- <%= sort_link(query, :status_name, t("models.result.fields.status", scope: "decidim.accountability") ) %>
54
- </th>
55
- <th>
56
- <%= sort_link(query, :progress, t("models.result.fields.progress", scope: "decidim.accountability") ) %>
57
- </th>
58
- <th>
59
- <%= sort_link(query, :created_at, t("models.result.fields.created_at", scope: "decidim.accountability") ) %>
60
- </th>
61
- <th><%= t("actions.title", scope: "decidim.accountability") %></th>
62
- </tr>
63
- </thead>
46
+ <%= render partial: "decidim/accountability/admin/results/results-thead", locals: { query: } %>
64
47
  <tbody>
65
- <% results.each do |result| %>
66
- <tr data-id="<%= result.id %>">
67
- <td>
68
- <%= result.id %><br>
69
- </td>
70
- <td class="!text-left">
71
- <% if result.parent_id.nil? %>
72
- <%= link_to translated_attribute(result.title), results_path(parent_id: result.id) %><br>
73
- <% else %>
74
- <%= translated_attribute(result.title) %>
75
- <% end %>
76
- </td>
77
- <td>
78
- <% if result.category %>
79
- <%= translated_attribute result.category.name %>
80
- <% end %>
81
- </td>
82
- <%= td_resource_scope_for(result.scope) %>
83
- <td>
84
- <% if result.status %>
85
- <%= translated_attribute result.status.name %>
86
- <% end %>
87
- </td>
88
- <td>
89
- <%= result.progress&.to_i %>
90
- </td>
91
- <td>
92
- <%= l result.created_at, format: :decidim_short %>
93
- </td>
94
-
95
- <td class="table-list__actions">
96
- <% if allowed_to? :update, :result, result: result %>
97
- <%= icon_link_to "pencil-line", edit_result_path(result), t("actions.edit", scope: "decidim.accountability"), class: "action-icon--edit" %>
98
- <% end %>
99
-
100
- <% if allowed_to? :create_children, :result, result: result %>
101
- <%= icon_link_to "add-line", results_path(parent_id: result.id), t("actions.new_result", scope: "decidim.accountability"), class: "action-icon--plus" %>
102
- <% end %>
103
-
104
- <% if allowed_to? :update, :result, result: result %>
105
- <%= icon_link_to "time-line", result_timeline_entries_path(result), t("actions.timeline_entries", scope: "decidim.accountability"), class: "action-icon--clock" %>
106
- <% end %>
107
-
108
- <% if allowed_to? :update, :result, result: result %>
109
- <%= icon_link_to "folder-line", result_attachment_collections_path(result), t("actions.attachment_collections", scope: "decidim.accountability"), class: "action-icon--attachment_collections" %>
110
- <% end %>
111
-
112
- <% if allowed_to? :update, :result, result: result %>
113
- <%= icon_link_to "attachment-line", result_attachments_path(result), t("actions.attachments", scope: "decidim.accountability"), class: "action-icon--attachments" %>
114
- <% end %>
115
-
116
- <%= 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 } %>
117
-
118
- <%= resource_permissions_link(result) %>
119
-
120
- <% if allowed_to? :destroy, :result, result: result %>
121
- <%= icon_link_to "delete-bin-line", result_path(result), t("actions.destroy", scope: "decidim.accountability"), class: "action-icon--remove", method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.accountability", name: t("models.result.name", scope: "decidim.accountability.admin")) } %>
122
- <% end %>
123
- </td>
124
- </tr>
125
- <% end %>
48
+ <%= render partial: "decidim/accountability/admin/results/result-tr",
49
+ collection: results,
50
+ as: :result,
51
+ locals: { view: :index } %>
126
52
  </tbody>
127
53
  </table>
128
54
  </div>
55
+ <% if allowed_to? :manage_trash, :result, participatory_space: current_participatory_space %>
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 %>
58
+ <%= icon "delete-bin-2-line", class: "mr-2 fill-current text-secondary", role: "img" %>
59
+ <%= t("actions.view_deleted_results", scope: "decidim.accountability") %>
60
+ <span class="ml-2">
61
+ <%= icon_with_tooltip("information-line", t("actions.deleted_results_info", scope: "decidim.accountability")) %>
62
+ </span>
63
+ <% end %>
64
+ </div>
65
+ <% end %>
129
66
  </div>
130
67
  <%= decidim_paginate results %>
68
+
69
+ <%= append_javascript_pack_tag "decidim_accountability_admin_index" %>
@@ -0,0 +1,26 @@
1
+ <% add_decidim_page_title(t(".title")) %>
2
+ <div class="card">
3
+ <div class="item_show__header">
4
+ <h1 class="item_show__header-title">
5
+ <% if parent_result %>
6
+ <%= "#{translated_attribute(parent_result.title)} > " %>
7
+ <% end %>
8
+ <%= t(".title") %>
9
+ </h1>
10
+ </div>
11
+
12
+ <%= admin_filter_selector(:results) %>
13
+ <div class="table-scroll">
14
+ <table class="table-list">
15
+ <%= render partial: "decidim/accountability/admin/results/results-thead", locals: { query: } %>
16
+ <tbody>
17
+ <%= render partial: "decidim/accountability/admin/results/result-tr",
18
+ collection: trashable_deleted_collection,
19
+ as: :result,
20
+ locals: { view: :deleted } %>
21
+ </tbody>
22
+ </table>
23
+ </div>
24
+ </div>
25
+
26
+ <%= decidim_paginate trashable_deleted_collection %>
@@ -7,7 +7,7 @@
7
7
 
8
8
  <div class="item__edit item__edit-1col">
9
9
  <div class="item__edit-form">
10
- <%= decidim_form_for(@form, html: { class: "form form-defaults new_result" }) do |f| %>
10
+ <%= decidim_form_for(@form, html: { class: "form form-defaults new_result result_form_admin" }) do |f| %>
11
11
  <%= render partial: "form", object: f %>
12
12
  <div class="item__edit-sticky">
13
13
  <div class="item__edit-sticky-container">
@@ -17,4 +17,4 @@
17
17
  <% end %>
18
18
  </div>
19
19
  </div>
20
- <%= append_javascript_pack_tag "decidim_accountability_admin" %>
20
+ <%= append_javascript_pack_tag "decidim_accountability_admin_form" %>
@@ -0,0 +1,2 @@
1
+ <p><%= t(".success", component_name: translated_attribute(@component.name)) %></p>
2
+ <p> <%= t(".added_proposals", count: @proposals) %></p>
@@ -1,28 +1,26 @@
1
1
  <div class="accountability__grid">
2
- <% first_class_categories.each do |category| %>
2
+ <% first_class_taxonomies.each do |taxonomy| %>
3
3
  <% subelements = cell(
4
4
  "decidim/accountability/status",
5
- category,
5
+ taxonomy,
6
6
  extra_classes: "accountability__status__background",
7
- url: results_path(filter: { with_category: category, with_scope: current_scope }),
7
+ url: results_path(filter: { taxonomies_part_of_contains: taxonomy }),
8
8
  render_blank: true
9
9
  ) %>
10
10
 
11
11
  <div>
12
- <span class="accountability__grid-title"><%= t("results.home.categories_label", scope: "decidim.accountability") %></span>
13
12
  <%= subelements.call %>
14
13
  </div>
15
14
 
16
15
  <div>
17
- <span class="accountability__grid-title"><%= t("results.home.subcategories_label", scope: "decidim.accountability") %></span>
18
16
  <% if subelements.has_results? %>
19
17
  <div class="accountability__subgrid">
20
- <% category.subcategories.each do |subcategory| %>
18
+ <% taxonomy.children.where(id: current_component.available_taxonomy_ids).each do |sub_taxonomy| %>
21
19
  <%= cell(
22
20
  "decidim/accountability/status",
23
- subcategory,
21
+ sub_taxonomy,
24
22
  extra_classes: "accountability__status__border",
25
- url: results_path(filter: { with_category: subcategory, with_scope: current_scope })
23
+ url: results_path(filter: { taxonomies_part_of_contains: sub_taxonomy })
26
24
  ) %>
27
25
  <% end %>
28
26
  </div>
@@ -1,11 +1,9 @@
1
1
  <%= render layout: "layouts/decidim/shared/layout_item" do %>
2
2
  <%= cell("decidim/accountability/project", result) %>
3
+ <%= cell("decidim/tags", result) %>
3
4
 
4
5
  <section class="layout-main__section layout-main__buttons" data-buttons>
5
6
  <%= cell "decidim/comments_button", nil %>
6
- <div class="ml-auto">
7
- <%= cell "decidim/tags", result %>
8
- </div>
9
7
  </section>
10
8
 
11
9
  <% content_for :aside do %>
@@ -13,28 +13,30 @@
13
13
  extra_classes: "accountability__status__parent",
14
14
  render_blank: true
15
15
  ) %>
16
- <% categories_hierarchy.each do |category| %>
16
+ <% taxonomies_hierarchy.each do |taxonomy| %>
17
17
  <%= cell(
18
18
  "decidim/accountability/status",
19
- category,
20
- url: results_path(filter: { with_category: category, with_scope: current_scope }),
19
+ taxonomy,
20
+ url: results_path(filter: { taxonomies_part_of_contains: taxonomy }),
21
21
  extra_classes: "accountability__status__parent",
22
22
  render_count: false,
23
23
  render_blank: true
24
24
  ) %>
25
25
  <% end %>
26
- <% if category.present? %>
26
+ <% if taxonomy.present? %>
27
27
  <div>
28
28
  <%= external_icon "media/images/breadcrumb_arrow.svg" %>
29
29
  <%= cell(
30
30
  "decidim/accountability/status",
31
- category,
31
+ taxonomy,
32
32
  extra_classes: "accountability__status__child",
33
- url: results_path(filter: { with_category: category, with_scope: current_scope }),
33
+ url: results_path(filter: { taxonomies_part_of_contains: taxonomy }),
34
34
  render_blank: true
35
35
  ) %>
36
36
  </div>
37
37
  <% end %>
38
38
  </div>
39
39
 
40
- <%= render partial: "scope_filters" if current_component.has_subscopes? %>
40
+ <div class="accountability__filters">
41
+ <%= render partial: "search" %>
42
+ </div>
@@ -1,4 +1,9 @@
1
- <% add_decidim_page_title component_name %>
1
+ <% add_decidim_meta_tags(
2
+ description: translated_attribute(current_component.participatory_space.try(:description)),
3
+ title: component_name,
4
+ url: results_url,
5
+ resource: current_component) %>
6
+
2
7
  <%= append_javascript_pack_tag "decidim_accountability" %>
3
8
  <%= append_stylesheet_pack_tag "decidim_accountability" %>
4
9
 
@@ -10,28 +15,35 @@
10
15
  "decidim/accountability/status",
11
16
  nil,
12
17
  title: t("decidim.accountability.results.home_header.global_status"),
13
- progress: progress_calculator(current_scope, nil).presence,
18
+ progress: progress_calculator(nil).presence,
14
19
  extra_classes: "accountability__status__home"
15
20
  ) %>
16
21
  <% end %>
17
-
18
- <%= render partial: "scope_filters" %>
22
+ <div class="accountability__filters">
23
+ <%= render partial: "search" %>
24
+ </div>
19
25
  <% end %>
20
26
 
21
27
  <%= render layout: "layouts/decidim/shared/layout_two_col" do %>
22
28
 
29
+ <% if Decidim::Map.available?(:geocoding, :dynamic) && component_settings.geocoding_enabled? %>
30
+ <div class="accountability__map">
31
+ <%= cell "decidim/map", @all_geocoded_results, metadata_card: "decidim/accountability/result_metadata" %>
32
+ </div>
33
+ <% end %>
34
+
23
35
  <section class="layout-main__section">
24
36
  <div class="editor-content"><%= decidim_sanitize_admin translated_attribute(component_settings.intro) %></div>
25
37
  </section>
26
38
 
27
39
  <section class="layout-main__section">
28
- <% if first_class_categories.empty? %>
40
+ <% if first_class_taxonomies.empty? %>
29
41
  <%= cell("decidim/announcement",
30
42
  params[:filter].present? ?
31
43
  t("empty_filters", scope: "decidim.accountability.results.home") :
32
44
  t("empty", scope: "decidim.accountability.results.home")) %>
33
45
  <% end %>
34
- <%= render partial: "home_categories" %>
46
+ <%= render partial: "home_taxonomies" %>
35
47
  </section>
36
48
 
37
49
  <% end %>
@@ -1,3 +1,9 @@
1
+ <% add_decidim_meta_tags(
2
+ description: translated_attribute(current_component.participatory_space.try(:description)),
3
+ title: component_name,
4
+ url: results_url,
5
+ resource: current_component) %>
6
+
1
7
  <%= append_javascript_pack_tag "decidim_accountability" %>
2
8
  <%= append_stylesheet_pack_tag "decidim_accountability" %>
3
9
 
@@ -7,11 +13,11 @@
7
13
 
8
14
  <%= render layout: "layouts/decidim/shared/layout_two_col" do %>
9
15
  <section class="layout-main__section">
10
- <h2 class="h4"><%= category.present? ? decidim_escape_translated(category.name) : t("decidim.accountability.results.home_header.global_status") %></h2>
16
+ <h2 class="h4"><%= taxonomy.present? ? decidim_escape_translated(taxonomy.name) : t("decidim.accountability.results.home_header.global_status") %></h2>
11
17
  </section>
12
18
 
13
19
  <section id="results" class="layout-main__section">
14
20
  <%= cell "decidim/accountability/results", results %>
15
- <%= decidim_paginate results, order_start_time: params[:order_start_time], with_scope: params.dig(:filter, :with_scope) %>
21
+ <%= decidim_paginate results, order_start_time: params[:order_start_time] %>
16
22
  </section>
17
23
  <% end %>
@@ -1,8 +1,8 @@
1
- <% add_decidim_meta_tags({
2
- description: translated_attribute(result.description),
3
- title: translated_attribute(result.title),
4
- url: result_url(result.id)
5
- }) %>
1
+ <% add_decidim_meta_tags(
2
+ description: translated_attribute(result.description),
3
+ title: translated_attribute(result.title),
4
+ url: result_url(result.id),
5
+ resource: result) %>
6
6
 
7
7
  <%
8
8
  edit_link(
data/config/assets.rb CHANGED
@@ -5,6 +5,7 @@ base_path = File.expand_path("..", __dir__)
5
5
  Decidim::Webpacker.register_path("#{base_path}/app/packs")
6
6
  Decidim::Webpacker.register_entrypoints(
7
7
  decidim_accountability: "#{base_path}/app/packs/entrypoints/decidim_accountability.js",
8
- decidim_accountability_admin: "#{base_path}/app/packs/entrypoints/decidim_accountability_admin.js",
9
- decidim_accountability_admin_imports: "#{base_path}/app/packs/entrypoints/decidim_accountability_admin_imports.js"
8
+ decidim_accountability_admin_form: "#{base_path}/app/packs/entrypoints/decidim_accountability_admin_form.js",
9
+ decidim_accountability_admin_imports: "#{base_path}/app/packs/entrypoints/decidim_accountability_admin_imports.js",
10
+ decidim_accountability_admin_index: "#{base_path}/app/packs/entrypoints/decidim_accountability_admin_index.js"
10
11
  )