decidim-proposals 0.29.1 → 0.30.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (202) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/proposals/highlighted_proposals_for_component/show.erb +12 -12
  3. data/app/cells/decidim/proposals/highlighted_proposals_for_component_cell.rb +1 -1
  4. data/app/cells/decidim/proposals/participatory_text_proposal_cell.rb +1 -1
  5. data/app/cells/decidim/proposals/proposal_g/show.erb +13 -0
  6. data/app/cells/decidim/proposals/proposal_g_cell.rb +34 -0
  7. data/app/cells/decidim/proposals/proposal_history_cell.rb +107 -0
  8. data/app/cells/decidim/proposals/proposal_l/show.erb +37 -0
  9. data/app/cells/decidim/proposals/proposal_l_cell.rb +26 -18
  10. data/app/cells/decidim/proposals/proposal_metadata_cell.rb +2 -2
  11. data/app/cells/decidim/proposals/proposal_vote/show.erb +75 -0
  12. data/app/cells/decidim/proposals/proposal_vote_cell.rb +43 -0
  13. data/app/commands/decidim/proposals/accept_coauthorship.rb +62 -0
  14. data/app/commands/decidim/proposals/admin/assign_proposals_to_valuator.rb +14 -0
  15. data/app/commands/decidim/proposals/admin/create_proposal.rb +6 -14
  16. data/app/commands/decidim/proposals/admin/create_proposal_note.rb +20 -11
  17. data/app/commands/decidim/proposals/admin/import_proposals.rb +0 -5
  18. data/app/commands/decidim/proposals/admin/merge_proposals.rb +2 -2
  19. data/app/commands/decidim/proposals/admin/proposal_notes_methods.rb +48 -0
  20. data/app/commands/decidim/proposals/admin/reply_proposal_note.rb +92 -0
  21. data/app/commands/decidim/proposals/admin/split_proposals.rb +2 -2
  22. data/app/commands/decidim/proposals/admin/update_proposal.rb +10 -16
  23. data/app/commands/decidim/proposals/admin/update_proposal_taxonomies.rb +34 -0
  24. data/app/commands/decidim/proposals/cancel_coauthorship.rb +32 -0
  25. data/app/commands/decidim/proposals/create_collaborative_draft.rb +1 -2
  26. data/app/commands/decidim/proposals/create_proposal.rb +1 -2
  27. data/app/commands/decidim/proposals/invite_coauthor.rb +45 -0
  28. data/app/commands/decidim/proposals/publish_collaborative_draft.rb +1 -2
  29. data/app/commands/decidim/proposals/reject_coauthorship.rb +54 -0
  30. data/app/commands/decidim/proposals/update_collaborative_draft.rb +1 -2
  31. data/app/commands/decidim/proposals/update_proposal.rb +1 -2
  32. data/app/controllers/concerns/decidim/proposals/admin/filterable.rb +6 -2
  33. data/app/controllers/concerns/decidim/proposals/admin/needs_interpolations.rb +40 -0
  34. data/app/controllers/decidim/proposals/admin/proposal_answers_controller.rb +50 -2
  35. data/app/controllers/decidim/proposals/admin/proposal_notes_controller.rb +18 -0
  36. data/app/controllers/decidim/proposals/admin/proposals_controller.rb +41 -85
  37. data/app/controllers/decidim/proposals/collaborative_drafts_controller.rb +2 -4
  38. data/app/controllers/decidim/proposals/invite_coauthors_controller.rb +87 -0
  39. data/app/controllers/decidim/proposals/proposals_controller.rb +11 -40
  40. data/app/events/decidim/proposals/accepted_coauthorship_event.rb +8 -0
  41. data/app/events/decidim/proposals/admin/proposal_assigned_to_valuator_event.rb +27 -0
  42. data/app/events/decidim/proposals/admin/proposal_note_created_event.rb +5 -0
  43. data/app/events/decidim/proposals/coauthor_accepted_invite_event.rb +49 -0
  44. data/app/events/decidim/proposals/coauthor_invited_event.rb +45 -0
  45. data/app/events/decidim/proposals/coauthor_rejected_invite_event.rb +8 -0
  46. data/app/events/decidim/proposals/rejected_coauthorship_event.rb +8 -0
  47. data/app/events/decidim/proposals/update_proposal_taxonomies_event.rb +9 -0
  48. data/app/forms/decidim/proposals/admin/proposal_answer_form.rb +4 -3
  49. data/app/forms/decidim/proposals/admin/proposal_base_form.rb +3 -31
  50. data/app/forms/decidim/proposals/admin/proposal_form.rb +12 -7
  51. data/app/forms/decidim/proposals/admin/proposals_import_form.rb +6 -14
  52. data/app/forms/decidim/proposals/admin/valuation_assignment_form.rb +4 -1
  53. data/app/forms/decidim/proposals/collaborative_draft_form.rb +0 -8
  54. data/app/forms/decidim/proposals/proposal_form.rb +5 -32
  55. data/app/helpers/decidim/proposals/admin/proposal_bulk_actions_helper.rb +26 -1
  56. data/app/helpers/decidim/proposals/admin/proposals_helper.rb +0 -1
  57. data/app/helpers/decidim/proposals/application_helper.rb +23 -14
  58. data/app/helpers/decidim/proposals/collaborative_draft_helper.rb +7 -7
  59. data/app/helpers/decidim/proposals/map_helper.rb +0 -18
  60. data/app/helpers/decidim/proposals/proposal_votes_helper.rb +15 -2
  61. data/app/jobs/decidim/proposals/admin/proposal_answer_job.rb +20 -0
  62. data/app/models/decidim/proposals/collaborative_draft.rb +10 -1
  63. data/app/models/decidim/proposals/proposal.rb +67 -10
  64. data/app/models/decidim/proposals/proposal_note.rb +11 -0
  65. data/app/models/decidim/proposals/proposal_state.rb +1 -1
  66. data/app/packs/entrypoints/decidim_proposals.js +1 -0
  67. data/app/packs/entrypoints/decidim_proposals_geocoding.js +2 -0
  68. data/app/packs/src/decidim/proposals/admin/proposals.js +16 -1
  69. data/app/packs/src/decidim/proposals/exit_handler.js +73 -0
  70. data/app/packs/stylesheets/decidim/proposals/proposals.scss +246 -5
  71. data/app/permissions/decidim/proposals/admin/permissions.rb +2 -5
  72. data/app/permissions/decidim/proposals/permissions.rb +46 -3
  73. data/app/presenters/decidim/proposals/admin_log/proposal_presenter.rb +1 -1
  74. data/app/presenters/decidim/proposals/proposal_presenter.rb +1 -1
  75. data/app/queries/decidim/proposals/filtered_proposals.rb +2 -2
  76. data/app/queries/decidim/proposals/metrics/accepted_proposals_metric_manage.rb +2 -2
  77. data/app/queries/decidim/proposals/metrics/endorsements_metric_manage.rb +10 -10
  78. data/app/queries/decidim/proposals/metrics/proposal_followers_metric_measure.rb +4 -4
  79. data/app/queries/decidim/proposals/metrics/proposal_participants_metric_measure.rb +6 -6
  80. data/app/queries/decidim/proposals/metrics/proposals_metric_manage.rb +6 -6
  81. data/app/queries/decidim/proposals/metrics/votes_metric_manage.rb +6 -6
  82. data/app/services/decidim/proposals/collaborative_draft_diff_renderer.rb +22 -0
  83. data/app/services/decidim/proposals/diff_renderer.rb +2 -0
  84. data/app/services/decidim/proposals/proposal_builder.rb +2 -2
  85. data/app/views/decidim/proposals/admin/proposal_notes/_form.html.erb +3 -3
  86. data/app/views/decidim/proposals/admin/proposal_notes/_proposal_note.html.erb +28 -0
  87. data/app/views/decidim/proposals/admin/proposal_notes/_proposal_note_reply.html.erb +9 -0
  88. data/app/views/decidim/proposals/admin/proposal_notes/_proposal_notes.html.erb +4 -28
  89. data/app/views/decidim/proposals/admin/proposal_states/_form.html.erb +1 -1
  90. data/app/views/decidim/proposals/admin/proposals/_actions.html.erb +21 -0
  91. data/app/views/decidim/proposals/admin/proposals/_bulk-actions.html.erb +3 -2
  92. data/app/views/decidim/proposals/admin/proposals/_form.html.erb +16 -23
  93. data/app/views/decidim/proposals/admin/proposals/_proposal-tr.html.erb +12 -28
  94. data/app/views/decidim/proposals/admin/proposals/_proposals-thead.html.erb +45 -0
  95. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_apply_answer_template.html.erb +22 -0
  96. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_dropdown.html.erb +15 -11
  97. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_taxonomy_change.html.erb +23 -0
  98. data/app/views/decidim/proposals/admin/proposals/index.html.erb +17 -48
  99. data/app/views/decidim/proposals/admin/proposals/manage_trash.html.erb +18 -0
  100. data/app/views/decidim/proposals/admin/proposals/publish_answers.js.erb +1 -1
  101. data/app/views/decidim/proposals/admin/proposals/show.html.erb +10 -22
  102. data/app/views/decidim/proposals/admin/proposals/update_attribute.js.erb +1 -1
  103. data/app/views/decidim/proposals/admin/proposals_imports/new.html.erb +2 -5
  104. data/app/views/decidim/proposals/collaborative_drafts/_collaborative_actions.html.erb +9 -0
  105. data/app/views/decidim/proposals/collaborative_drafts/_collaborative_draft_aside.html.erb +0 -15
  106. data/app/views/decidim/proposals/collaborative_drafts/_edit_form_fields.html.erb +4 -6
  107. data/app/views/decidim/proposals/collaborative_drafts/index.html.erb +6 -2
  108. data/app/views/decidim/proposals/collaborative_drafts/show.html.erb +27 -11
  109. data/app/views/decidim/proposals/proposal_votes/update_buttons_and_counters.js.erb +29 -9
  110. data/app/views/decidim/proposals/proposals/_actions.html.erb +4 -7
  111. data/app/views/decidim/proposals/proposals/_edit_form_fields.html.erb +17 -22
  112. data/app/views/decidim/proposals/proposals/_exit_modal.html.erb +17 -0
  113. data/app/views/decidim/proposals/proposals/_notification_alert_box.html.erb +1 -0
  114. data/app/views/decidim/proposals/proposals/_proposal_actions.html.erb +19 -0
  115. data/app/views/decidim/proposals/proposals/_proposal_aside.html.erb +9 -32
  116. data/app/views/decidim/proposals/proposals/_proposal_voting_rules.html.erb +33 -0
  117. data/app/views/decidim/proposals/proposals/_remaining_votes_count.html.erb +2 -2
  118. data/app/views/decidim/proposals/proposals/_remaining_votes_notification.html.erb +12 -0
  119. data/app/views/decidim/proposals/proposals/_update_proposal_voting_rules.html.erb +6 -0
  120. data/app/views/decidim/proposals/proposals/_vote_button.html.erb +12 -8
  121. data/app/views/decidim/proposals/proposals/_votes_count.html.erb +2 -1
  122. data/app/views/decidim/proposals/proposals/_voting_rules.html.erb +1 -7
  123. data/app/views/decidim/proposals/proposals/index.html.erb +10 -18
  124. data/app/views/decidim/proposals/proposals/index.js.erb +12 -0
  125. data/app/views/decidim/proposals/proposals/participatory_texts/_proposal_vote_button.html.erb +3 -1
  126. data/app/views/decidim/proposals/proposals/show.html.erb +36 -16
  127. data/config/locales/ar.yml +19 -75
  128. data/config/locales/bg.yml +7 -91
  129. data/config/locales/bn-BD.yml +1 -0
  130. data/config/locales/bs-BA.yml +87 -0
  131. data/config/locales/ca.yml +213 -73
  132. data/config/locales/cs.yml +229 -75
  133. data/config/locales/de.yml +217 -78
  134. data/config/locales/el.yml +9 -85
  135. data/config/locales/en.yml +209 -69
  136. data/config/locales/es-MX.yml +220 -80
  137. data/config/locales/es-PY.yml +215 -75
  138. data/config/locales/es.yml +222 -82
  139. data/config/locales/eu.yml +293 -147
  140. data/config/locales/fi-plain.yml +222 -81
  141. data/config/locales/fi.yml +239 -98
  142. data/config/locales/fr-CA.yml +119 -90
  143. data/config/locales/fr.yml +118 -89
  144. data/config/locales/ga-IE.yml +0 -19
  145. data/config/locales/gl.yml +9 -47
  146. data/config/locales/he-IL.yml +7 -0
  147. data/config/locales/hu.yml +7 -68
  148. data/config/locales/id-ID.yml +9 -36
  149. data/config/locales/is-IS.yml +0 -21
  150. data/config/locales/it.yml +10 -56
  151. data/config/locales/ja.yml +164 -91
  152. data/config/locales/lt.yml +9 -86
  153. data/config/locales/lv.yml +8 -47
  154. data/config/locales/nl.yml +7 -54
  155. data/config/locales/no.yml +9 -46
  156. data/config/locales/pl.yml +7 -91
  157. data/config/locales/pt-BR.yml +7 -77
  158. data/config/locales/pt.yml +9 -57
  159. data/config/locales/ro-RO.yml +17 -63
  160. data/config/locales/ru.yml +0 -25
  161. data/config/locales/sk.yml +9 -48
  162. data/config/locales/sl.yml +0 -4
  163. data/config/locales/sr-CS.yml +0 -14
  164. data/config/locales/sv.yml +132 -88
  165. data/config/locales/tr-TR.yml +9 -54
  166. data/config/locales/uk.yml +0 -25
  167. data/config/locales/zh-CN.yml +9 -54
  168. data/config/locales/zh-TW.yml +9 -87
  169. data/db/migrate/20171220084719_add_published_at_to_proposals.rb +1 -1
  170. data/db/migrate/20181016132225_add_organization_as_author.rb +1 -1
  171. data/db/migrate/20200120215928_move_proposal_endorsements_to_core_endorsements.rb +1 -1
  172. data/db/migrate/20200827154156_add_commentable_counter_cache_to_proposals.rb +3 -3
  173. data/db/migrate/20210310102839_add_followable_counter_cache_to_proposals.rb +1 -1
  174. data/db/migrate/20240110203504_create_default_proposal_states.rb +4 -3
  175. data/db/migrate/20240404202756_add_valuation_assignments_count_to_decidim_proposals_proposals.rb +1 -1
  176. data/db/migrate/20240617091140_add_email_on_assigned_proposals_to_users.rb +7 -0
  177. data/db/migrate/20240617170052_add_parent_relation_to_decidim_proposal_notes.rb +7 -0
  178. data/db/migrate/20240828103755_add_deleted_at_to_decidim_proposals_proposals.rb +8 -0
  179. data/decidim-proposals.gemspec +2 -2
  180. data/lib/decidim/api/functions/proposal_finder_helper.rb +12 -0
  181. data/lib/decidim/api/functions/proposal_list_helper.rb +12 -0
  182. data/lib/decidim/api/proposal_type.rb +30 -25
  183. data/lib/decidim/api/proposals_type.rb +5 -22
  184. data/lib/decidim/proposals/admin_engine.rb +12 -3
  185. data/lib/decidim/proposals/admin_filter.rb +3 -6
  186. data/lib/decidim/proposals/component.rb +4 -5
  187. data/lib/decidim/proposals/download_your_data_proposal_serializer.rb +15 -0
  188. data/lib/decidim/proposals/engine.rb +5 -0
  189. data/lib/decidim/proposals/import/proposal_creator.rb +4 -4
  190. data/lib/decidim/proposals/proposal_serializer.rb +15 -29
  191. data/lib/decidim/proposals/seeds.rb +21 -17
  192. data/lib/decidim/proposals/test/factories.rb +8 -6
  193. data/lib/decidim/proposals/version.rb +1 -1
  194. data/lib/decidim/proposals.rb +4 -0
  195. metadata +69 -30
  196. data/app/commands/decidim/proposals/admin/update_proposal_category.rb +0 -70
  197. data/app/commands/decidim/proposals/admin/update_proposal_scope.rb +0 -75
  198. data/app/events/decidim/proposals/admin/update_proposal_category_event.rb +0 -11
  199. data/app/events/decidim/proposals/admin/update_proposal_scope_event.rb +0 -11
  200. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_recategorize.html.erb +0 -15
  201. data/app/views/decidim/proposals/admin/proposals/bulk_actions/_scope-change.html.erb +0 -21
  202. data/app/views/decidim/proposals/collaborative_drafts/_actions.html.erb +0 -7
@@ -1,4 +1,11 @@
1
- <% add_decidim_page_title(t("name", scope: "decidim.components.proposals")) %>
1
+ <% add_decidim_meta_tags(
2
+ description: translated_attribute(current_participatory_space.short_description),
3
+ title: t("decidim.components.pagination.page_title",
4
+ component_name: component_name,
5
+ current_page: @proposals.current_page,
6
+ total_pages: @proposals.total_pages ),
7
+ url: proposals_url,
8
+ resource: current_component) %>
2
9
 
3
10
  <% append_stylesheet_pack_tag "decidim_proposals", media: "all" %>
4
11
  <% append_javascript_pack_tag "decidim_proposals" %>
@@ -8,7 +15,7 @@
8
15
 
9
16
  <div class="proposal-list__aside__button-container">
10
17
  <% if current_settings.creation_enabled && current_component.participatory_space.can_participate?(current_user) %>
11
- <%= action_authorized_link_to :create, new_proposal_path, class: "button button__xl button__secondary w-full", data: { "redirect_url" => new_proposal_path } do %>
18
+ <%= action_authorized_link_to :create, new_proposal_path, permissions_holder: current_component, class: "button button__xl button__secondary w-full", data: { "redirect_url" => new_proposal_path } do %>
12
19
  <span><%= t("new_proposal", scope: "decidim.proposals.proposals.index") %></span>
13
20
  <%= icon "add-line" %>
14
21
  <% end %>
@@ -31,22 +38,7 @@
31
38
 
32
39
  <% if Decidim::Map.available?(:geocoding, :dynamic) && component_settings.geocoding_enabled? %>
33
40
  <div class="proposal-list__map">
34
- <%= dynamic_map_for proposals_data_for_map(@all_geocoded_proposals) do %>
35
- <template id="marker-popup">
36
- <div class="space-y-6">
37
- <a href="${link}" class="card__list">
38
- <div class="card__list-content">
39
- <h3 class="h4 card__list-title">${title}</h3>
40
- <div class="card__list-metadata">
41
- {{each JSON.parse(items)}}
42
- <span>{{html icon}}{{html text}}</span>
43
- {{/each}}
44
- </div>
45
- </div>
46
- </a>
47
- </div>
48
- </template>
49
- <% end %>
41
+ <%= cell "decidim/map", @proposals, metadata_card: "decidim/proposals/proposal_metadata" %>
50
42
  </div>
51
43
  <% end %>
52
44
 
@@ -3,3 +3,15 @@ var $orderFilterInput = $('.order_filter');
3
3
 
4
4
  $proposals.html('<%= j(render partial: "proposals").strip.html_safe %>');
5
5
  $orderFilterInput.val('<%= order %>');
6
+
7
+ <% if Decidim::Map.available?(:geocoding, :dynamic) && component_settings.geocoding_enabled? %>
8
+ var $map = $("#map");
9
+ var controller = $map.data("map-controller");
10
+ if (controller) {
11
+ var markerData = JSON.parse('<%= escape_javascript cell("decidim/map", @proposals, metadata_card: "decidim/proposals/proposal_metadata").geocoded_data.to_json.html_safe %>');
12
+ controller.clearMarkers();
13
+ if (markerData.length > 0 ) {
14
+ controller.addMarkers(markerData);
15
+ }
16
+ }
17
+ <% end %>
@@ -4,7 +4,9 @@
4
4
  <div id="proposal-<%= proposal.id %>-vote-button">
5
5
  <% if !current_user %>
6
6
  <% if current_settings.votes_blocked? %>
7
- <%= action_authorized_button_to :vote, t("decidim.proposals.proposals.vote_button.votes_blocked"), proposal_proposal_vote_path(proposal_id: proposal, from_proposals_list:), resource: proposal, class: "column button light button--sc disabled", disabled: true %>
7
+ <%= action_authorized_button_to :vote, proposal_proposal_vote_path(proposal_id: proposal, from_proposals_list:), resource: proposal, class: "column button light button--sc disabled", disabled: true do %>
8
+ <%= t("decidim.proposals.proposals.vote_button.votes_blocked") %>
9
+ <% end %>
8
10
  <% else %>
9
11
  <%= action_authorized_button_to :vote, proposal_proposal_vote_path(proposal_id: proposal, from_proposals_list:), resource: proposal, class: "column button light button--sc", data: { disable: true, "redirect-url": proposal_path(proposal) } do %>
10
12
  <%= t("decidim.proposals.proposals.vote_button.vote") %>
@@ -1,8 +1,8 @@
1
- <% add_decidim_meta_tags({
2
- description: present(@proposal).body,
3
- title: present(@proposal).title,
4
- url: proposal_url(@proposal.id)
5
- }) %>
1
+ <% add_decidim_meta_tags(
2
+ description: present(@proposal).body,
3
+ title: present(@proposal).title,
4
+ url: proposal_url(@proposal.id),
5
+ resource: @proposal) %>
6
6
 
7
7
  <%
8
8
  edit_link(
@@ -26,6 +26,14 @@ extra_admin_link(
26
26
  <% append_stylesheet_pack_tag "decidim_proposals", media: "all" %>
27
27
  <% append_javascript_pack_tag "decidim_proposals" %>
28
28
 
29
+ <% content_for :item_header do %>
30
+ <% if show_voting_rules? %>
31
+ <div class="layout-item-complementary">
32
+ <%= render partial: "update_proposal_voting_rules" %>
33
+ </div>
34
+ <% end %>
35
+ <% end %>
36
+
29
37
  <% content_for :aside do %>
30
38
  <%= render partial: "proposal_aside" %>
31
39
  <% end %>
@@ -33,7 +41,9 @@ extra_admin_link(
33
41
  <%= render layout: "layouts/decidim/shared/layout_item", locals: { back_path: component_settings.participatory_texts_enabled? ? main_component_path(current_component) : proposals_path } do %>
34
42
 
35
43
  <section class="layout-main__section layout-main__heading">
36
- <%= render partial: "voting_rules" %>
44
+ <% if show_voting_rules? && remaining_minimum_votes_count_for(current_user).positive? && current_component.participatory_space.can_participate?(current_user) %>
45
+ <%= render partial: "exit_modal" %>
46
+ <% end %>
37
47
 
38
48
  <%= cell("decidim/announcement", proposal_reason_callout_announcement, callout_styles: @proposal.proposal_state&.css_style) if @proposal.answered? && @proposal.published_state? %>
39
49
 
@@ -46,12 +56,20 @@ extra_admin_link(
46
56
  <% end %>
47
57
 
48
58
  <% unless component_settings.participatory_texts_enabled? %>
49
- <div class="layout-author">
50
- <%= cell "decidim/coauthorships", @proposal, context_actions: [:date] %>
51
-
52
- <% if not ["section","subsection"].include? @proposal.participatory_text_level %>
59
+ <% unless ["section","subsection"].include?(@proposal.participatory_text_level) %>
60
+ <div class="layout-author has_status">
53
61
  <%= cell("decidim/proposals/proposal_metadata", @proposal).state_item&.dig(:text) %>
54
- <% end %>
62
+ </div>
63
+ <% end %>
64
+ <div class="layout-author <%= "has_status" unless %w(section subsection).include?(@proposal.participatory_text_level) %>">
65
+ <div class="relative flex items-center justify-center w-full">
66
+ <div class="w-10/12 flex items-center gap-4">
67
+ <%= cell "decidim/coauthorships", @proposal, context_actions: [:date] %>
68
+ </div>
69
+ <%= render "decidim/shared/resource_actions", resource: @proposal do %>
70
+ <%= render "decidim/proposals/proposals/proposal_actions" %>
71
+ <% end %>
72
+ </div>
55
73
  </div>
56
74
  <% end %>
57
75
  </section>
@@ -77,7 +95,7 @@ extra_admin_link(
77
95
  <% end %>
78
96
 
79
97
  <% if component_settings.geocoding_enabled? && @proposal.geocoded? %>
80
- <div class="static-map__container">
98
+ <div class="static-map__container py-6">
81
99
  <%= render partial: "decidim/shared/static_map", locals: { icon_name: "proposals", geolocalizable: @proposal } %>
82
100
  </div>
83
101
  <% end %>
@@ -88,6 +106,8 @@ extra_admin_link(
88
106
  <%= cell "decidim/amendable/amendments", @proposal %>
89
107
  </section>
90
108
 
109
+ <%= cell "decidim/tags", @proposal %>
110
+
91
111
  <%= render partial: "actions" %>
92
112
 
93
113
  <% content_for :item_footer do %>
@@ -97,10 +117,10 @@ extra_admin_link(
97
117
  <%= content_tag :li, resource_reference(@proposal), class: "metadata__item" %>
98
118
  <%= content_tag :li, resource_version(proposal_presenter, versions_path: proposal_version_path(@proposal, proposal_presenter.versions.count)), class: "metadata__item" %>
99
119
 
100
- <% fingerprint_id = dom_id(@proposal, :fingerprint_dialog) %>
101
- <%= content_tag :li, class: "metadata__item" do %>
102
- <%= content_tag :button, t("decidim.fingerprint.check"), data: { dialog_open: fingerprint_id } %>
103
- <% end %>
120
+ <% fingerprint_id = dom_id(@proposal, :fingerprint_dialog) %>
121
+ <%= content_tag :li, class: "metadata__item" do %>
122
+ <%= content_tag :button, t("decidim.fingerprint.check"), data: { dialog_open: fingerprint_id } %>
123
+ <% end %>
104
124
  </ul>
105
125
  <%= decidim_modal id: fingerprint_id, class: "fingerprint-modal" do %>
106
126
  <div data-dialog-container>
@@ -5,22 +5,24 @@ ar:
5
5
  collaborative_draft:
6
6
  address: عنوان
7
7
  body: الجسم
8
- category_id: الفئة
9
8
  decidim_scope_id: نطاق
10
9
  has_address: لديه عنوان
11
10
  scope_id: نطاق
12
11
  state: حالة
13
12
  title: عنوان
14
13
  user_group_id: إنشاء مسودة تعاونية كـ
14
+ import_participatory_text:
15
+ document: مستند
15
16
  proposal:
16
17
  address: عنوان
17
18
  answer: إجابة
18
19
  answered_at: أجاب في
19
20
  automatic_hashtags: علامات التصنيف المضافة تلقائيًا
20
21
  body: الجسم
21
- category_id: الفئة
22
22
  decidim_scope_id: النطاق
23
23
  has_address: لديه عنوان
24
+ latitude: خط العرض
25
+ longitude: خط الطول
24
26
  scope_id: نطاق
25
27
  state: حالة
26
28
  suggested_hashtags: الهاشتاج المقترحة
@@ -33,6 +35,8 @@ ar:
33
35
  execution_period: فترة التنفيذ
34
36
  proposals_copy:
35
37
  origin_component_id: مكون لنسخ المقترحات من
38
+ proposals_file_import:
39
+ file: ملف
36
40
  proposals_import:
37
41
  import_proposals: مقترحات الاستيراد
38
42
  keep_answers: الاحتفاظ بالحالة والإجابات
@@ -66,8 +70,6 @@ ar:
66
70
  base:
67
71
  not_official: غير رسمية
68
72
  models:
69
- decidim/proposals/admin/update_proposal_category_event: تم تغيير فئة الاقتراح
70
- decidim/proposals/admin/update_proposal_scope_event: تم تغيير نطاق الاقتراح
71
73
  decidim/proposals/creation_enabled_event: تمكين إنشاء الاقتراح
72
74
  decidim/proposals/endorsing_enabled_event: تمكين اقتراح الاقتراح
73
75
  decidim/proposals/proposal_mentioned_event: الاقتراح المذكور
@@ -100,15 +102,11 @@ ar:
100
102
  admin:
101
103
  filters:
102
104
  proposals:
103
- category_id_eq:
104
- label: الفئة
105
105
  is_emendation_true:
106
106
  label: النوع
107
107
  values:
108
108
  'false': اقتراحات
109
109
  'true': تعديلات
110
- scope_id_eq:
111
- label: نطاق
112
110
  state_eq:
113
111
  label: الحالة
114
112
  values:
@@ -127,7 +125,6 @@ ar:
127
125
  actions:
128
126
  amend: تعديل
129
127
  comment: تعليق
130
- create: إنشاء
131
128
  endorse: تأييد
132
129
  vote: تصويت
133
130
  vote_comment: التصويت على التعليق
@@ -151,7 +148,6 @@ ar:
151
148
  random: عشوائي
152
149
  recent: الأخيرة
153
150
  with_more_authors: مع المزيد من المؤلفين
154
- geocoding_enabled: تم تمكين الترميز الجغرافي
155
151
  new_proposal_body_template: نموذج جديد لمحتوى المُقتَرَح
156
152
  new_proposal_body_template_help: يمكنكم تعريف النص المعبأ مسبقاً الذي سيدرج في المقترحات الجديدة
157
153
  new_proposal_help_text: نص مساعدة اقتراح جديد
@@ -159,7 +155,6 @@ ar:
159
155
  participatory_texts_enabled: تم تمكين النصوص التشاركية
160
156
  participatory_texts_enabled_readonly: لا يمكن التفاعل مع هذا الإعداد إذا كانت هناك اقتراحات موجودة. الرجاء إنشاء "مكون مقترحات" جديد إذا كنت ترغب في تمكين هذه الميزة أو تجاهل كافة المقترحات المستوردة في قائمة "النصوص التشاركية" إذا كنت ترغب في تعطيلها.
161
157
  proposal_answering_enabled: تم تمكين الرد على الاقتراح
162
- proposal_edit_before_minutes: يمكن تحرير المقترحات من قبل المؤلفين قبل مرور عدة دقائق
163
158
  proposal_edit_time: تحرير المقترح
164
159
  proposal_edit_time_choices:
165
160
  infinite: السماح بتعديل المقترحات لفترة زمنية غير محدودة
@@ -168,8 +163,6 @@ ar:
168
163
  proposal_limit: حد الاقتراح لكل مشارك
169
164
  proposal_wizard_step_1_help_text: اقتراح الاقتراح "إنشاء" نص مساعدة الخطوة
170
165
  resources_permissions_enabled: يمكن تعيين أذونات الإجراءات لكل اقتراح
171
- scope_id: نطاق
172
- scopes_enabled: النطاقات مفعلة
173
166
  threshold_per_proposal: عتبة لكل اقتراح
174
167
  step:
175
168
  amendment_creation_enabled: إنشاء التعديلات مُفعّلة
@@ -260,24 +253,14 @@ ar:
260
253
  email_intro: تمت إضافة الاقتراح "%{resource_title}" إلى "%{participatory_space_title}" الذي تتابعه.
261
254
  email_outro: لقد تلقيت هذا الإشعار لأنك تتابع "%{participatory_space_title}". يمكنك إيقاف تلقي الإخطارات باتباع الرابط السابق.
262
255
  email_subject: تمت إضافة اقتراح جديد "%{resource_title}" إلى %{participatory_space_title}
263
- proposal_update_category:
264
- email_intro: 'قام المشرف بتحديث فئة اقتراحك "%{resource_title}" ، تحقق من ذلك في هذه الصفحة:'
265
- email_outro: لقد تلقيت هذا الإشعار لأنك مؤلف الاقتراح.
266
- email_subject: تم تحديث فئة %{resource_title} اقتراح
267
- notification_title: تم تحديث فئة اقتراح <a href="%{resource_path}">%{resource_title}</a> بواسطة مسؤول.
268
- proposal_update_scope:
269
- email_intro: 'قام مدير بتحديث نطاق اقتراحك "%{resource_title}" ، يرجى التحقق منه على هذه الصفحة:'
270
- email_outro: لقد تلقيت هذا الإشعار لأنك مؤلف الاقتراح.
271
- email_subject: تم تحديث نطاق الاقتراح %{resource_title}
272
- notification_title: نطاق الاقتراح <a href="%{resource_path}">%{resource_title}</a> تم تحديثه من قبل مدير.
273
256
  voting_enabled:
274
257
  email_outro: لقد تلقيت هذا الإشعار لأنك تتابع %{participatory_space_title}. يمكنك إيقاف تلقي الإخطارات باتباع الرابط السابق.
275
258
  gamification:
276
259
  badges:
277
260
  accepted_proposals:
278
261
  conditions:
279
- - اختر مساحة المشاركة التي تهمك مع تمكين تقديم المقترحات
280
- - حاول تقديم مقترحات يمكن تنفيذها. بهذه الطريقة هم أكثر عرضة للقبول.
262
+ - اختر مساحة المشاركة التي تهمك مع تمكين تقديم المقترحات
263
+ - حاول تقديم مقترحات يمكن تنفيذها. بهذه الطريقة هم أكثر عرضة للقبول.
281
264
  description: تُمنح هذه الشارة عندما تشارك بفعالية في المقترحات الجديدة ويتم قبولها.
282
265
  description_another: هذا المشارك لديه %{score} مقترحات مقبولة.
283
266
  description_own: حصلت على %{score} مقترحات مقبولة.
@@ -287,12 +270,12 @@ ar:
287
270
  unearned_own: لم تحصل على اقتراحات مقبولة حتى الآن.
288
271
  proposal_votes:
289
272
  conditions:
290
- - تصفح وقضاء بعض الوقت في قراءة اقتراحات الآخرين
291
- -
273
+ - تصفح وقضاء بعض الوقت في قراءة اقتراحات الآخرين
274
+ -
292
275
  proposals:
293
276
  conditions:
294
- - اختر مساحة المشاركة التي تهمك مع تمكين تقديم المقترحات
295
- - إنشاء اقتراح جديد
277
+ - اختر مساحة المشاركة التي تهمك مع تمكين تقديم المقترحات
278
+ - إنشاء اقتراح جديد
296
279
  description: تُمنح هذه الشارة عندما تشارك بنشاط في مقترحات جديدة.
297
280
  description_another: قام هذا المشارك بإنشاء %{score} مقترحات.
298
281
  description_own: لقد قمت بإنشاء %{score} مقترحات.
@@ -316,7 +299,7 @@ ar:
316
299
  object: أصوات
317
300
  participatory_spaces:
318
301
  highlighted_proposals:
319
- see_all: شاهد الكل (%{count})
302
+ see_all: شاهد الكل
320
303
  proposals:
321
304
  actions:
322
305
  answer_proposal: الرد على المُقتَرَح
@@ -333,22 +316,6 @@ ar:
333
316
  proposal_comments: التعليقات
334
317
  proposals: اقتراحات
335
318
  imports:
336
- help:
337
- answers: |
338
- ينبغي أن تحتوي وثيقة الاستيراد على أسماء الأعمدة التالية لدى وجود ملفات CSV أو Excel، أو الأسماء الرئيسية في حالة ملفات JSON:
339
- <ul>
340
- <li><b>معرف:</b> معرف الاقتراح من أجل الإجابة</li>
341
- <li><b>حالة:</b> اما "مقبول"، أو "قيد التقييم"، أو "مرفوض"</li>
342
- <li><b>إجابة/en:</b> الإجابة على اللغة الإنجليزية. سيعتمد هذا على إعداد لغة المنصة الخاصة بك.</li>
343
- </ul>
344
- proposals: |
345
- يجب أن يحتوي الملف على أسماء الأعمدة التالية في حالة ملفات CSV أو Excel، أو الأسماء الرئيسية في حالة ملفات JSON:
346
- <ul>
347
- <li><b>عنوان/en:</b> عنوان اللغة الإنجليزية. سيعتمد هذا على إعداد لغة المنصة الخاصة بك.</li>
348
- <li><b>نص/en:</b> نص اللغة الإنجليزية. سيعتمد هذا على إعداد لغة المنصة الخاصة بك.</li>
349
- <li><b>النطاق/المعرف:</b> معرف النطاق</li>
350
- <li><b>الفئة/المعرفة:</b> معرف الفئة</li>
351
- </ul>
352
319
  label:
353
320
  answers: استيراد إجابات من ملف
354
321
  proposals: استيراد اقتراحات من ملف
@@ -407,25 +374,19 @@ ar:
407
374
  form:
408
375
  note: ملحوظة
409
376
  submit: خضع
410
- leave_your_note: اترك ملاحظتك
411
377
  title: ملاحظات خاصة
412
378
  proposals:
413
379
  edit:
414
380
  title: تحديث الاقتراح
415
381
  update: تحديث
416
382
  form:
417
- attachment_legend: "(اختياري) إضافة مرفق"
418
383
  created_in_meeting: هذا الاقتراح يأتي من اجتماع
419
- delete_attachment: حذف المرفق
420
- select_a_category: اختر تصنيف
421
384
  select_a_meeting: اختيار اجتماع
422
385
  index:
423
386
  actions: أفعال
424
387
  assign_to_valuator: أسنِده إلى مُقيِّم
425
388
  assign_to_valuator_button: تعيين
426
389
  cancel: إلغاء
427
- change_category: تغيير الفئة
428
- change_scope: تغيير النطاق
429
390
  merge: دمج في واحدة جديدة
430
391
  merge_button: دمج
431
392
  publish: نشر
@@ -438,7 +399,6 @@ ar:
438
399
  unassign_from_valuator: إلغاء الإسناد مِن المُقيِّم
439
400
  unassign_from_valuator_button: إلغاء الإسناد
440
401
  update: تحديث
441
- update_scope_button: تحديث النطاق
442
402
  new:
443
403
  create: إنشاء
444
404
  title: إنشاء اقتراح
@@ -463,12 +423,6 @@ ar:
463
423
  remove_assignment: إزالة التعيين
464
424
  remove_assignment_confirmation: هل أنت متأكد من أنك تريد إزالة المُقيِّم من هذا الاقتراح؟
465
425
  valuators: المُقيِّمون
466
- update_category:
467
- invalid: 'هذه الاقتراحات تحتوي بالفعل على فئة %{subject_name}: %{proposals}.'
468
- success: 'تم تحديث الاقتراحات بنجاح إلى فئة %{subject_name}: %{proposals}.'
469
- update_scope:
470
- invalid: 'تحتوي الاقتراحات مسبقاً على نطاق %{subject_name}: %{proposals}.'
471
- success: 'تم تحديث الاقتراحات بنجاح إلى نطاق %{subject_name}: %{proposals}.'
472
426
  proposals_imports:
473
427
  new:
474
428
  create: مقترحات الاستيراد
@@ -477,11 +431,9 @@ ar:
477
431
  select_states: تحقق من حالة مقترحات الاستيراد
478
432
  proposals_merges:
479
433
  create:
480
- invalid: 'طرأت مشكلة في دمج الاقتراحات المحددة لأن بعضها:'
481
434
  success: دمج المقترحات بنجاح في واحدة جديدة.
482
435
  proposals_splits:
483
436
  create:
484
- invalid: 'طرأت مشكلة في فصل الاقتراحات المحددة لأن بعضها:'
485
437
  success: تم تقسيم المقترحات بنجاح إلى مقترحات جديدة.
486
438
  admin_log:
487
439
  proposal:
@@ -534,19 +486,16 @@ ar:
534
486
  error: طرأت مشكلة خلال إنشاء هذه المسودة التعاونية.
535
487
  success: تم إنشاء مشروع تعاوني بنجاح.
536
488
  edit:
537
- attachment_legend: "(اختياري) إضافة مرفق"
489
+ attachment_legend: إضافة مستند أو صورة
538
490
  back: الى الخلف
539
- select_a_category: الرجاء تحديد الفئة
540
491
  send: إرسال
541
492
  title: تحرير المسودة التعاونية
542
493
  filters:
543
494
  all: الكل
544
495
  amendment: تعديلات
545
- category: الفئة
546
496
  open: افتح
547
497
  published: نشرت
548
498
  related_to: متعلق ب
549
- scope: نطاق
550
499
  search: بحث
551
500
  state: الحالة
552
501
  withdrawn: سحب
@@ -586,7 +535,6 @@ ar:
586
535
  rejected_request:
587
536
  error: لا يمكن الرفض كمتعاون ، يرجى المحاولة مرة أخرى لاحقًا.
588
537
  show:
589
- edit: تحرير المسودة التعاونية
590
538
  final_proposal: الاقتراح النهائي
591
539
  final_proposal_help_text: انتهى هذا المشروع. تحقق من الاقتراح النهائي
592
540
  hidden_authors_count:
@@ -625,14 +573,12 @@ ar:
625
573
  models:
626
574
  proposal:
627
575
  fields:
628
- category: الفئة
629
576
  comments: تعليقات
630
577
  id: هوية شخصية
631
578
  notes: ملاحظات
632
579
  official_proposal: الاقتراح الرسمي
633
580
  published_answer: الإجابة المنشورة
634
581
  published_at: نشرت في
635
- scope: نطاق
636
582
  state: الحالة
637
583
  title: عنوان
638
584
  valuator: مُقيِّم
@@ -648,11 +594,10 @@ ar:
648
594
  description: سيتم تحديث الإحداثيات لدى النقر على زر "السابق". غير أن العنوان لن يتغير.
649
595
  instructions: يمكنك تحريك النقطة على الخريطة.
650
596
  edit:
651
- add_documents: إضافة وثائق
652
- attachment_legend: "(اختياري) إضافة مرفق"
597
+ add_attachments: إضافة مرفقات
598
+ attachment_legend: إضافة مستند أو صورة
653
599
  back: الى الخلف
654
- edit_documents: تحرير الوثائق
655
- select_a_category: الرجاء تحديد الفئة
600
+ edit_attachments: تعديل المرفقات
656
601
  send: إرسال
657
602
  title: تعديل الاقتراح
658
603
  edit_draft:
@@ -663,7 +608,6 @@ ar:
663
608
  activity: نشاطي
664
609
  all: الكل
665
610
  amendment_type: نوع
666
- category: الفئة
667
611
  my_proposals: اقتراحاتي
668
612
  origin: الأصل
669
613
  related_to: متعلق ب
@@ -714,7 +658,6 @@ ar:
714
658
  show:
715
659
  answer: إجابة
716
660
  changes_at_title: تعديل على "%{title}"
717
- edit_proposal: تعديل الاقتراح
718
661
  estimated_cost: التكلفة التقديرية
719
662
  hidden_endorsers_count:
720
663
  zero: و %{count} المزيد من الناس
@@ -733,7 +676,6 @@ ar:
733
676
  proposal_in_evaluation_reason: هذا الاقتراح قيد التقييم
734
677
  proposal_rejected_reason: 'تم رفض هذا الاقتراح بسبب:'
735
678
  withdraw_confirmation_html: هل أنت متأكد من أنك تريد سحب هذا الاقتراح؟<br><br><strong>لا يمكن إلغاء هذا الإجراء!</strong>
736
- withdraw_proposal: سحب الاقتراح
737
679
  update:
738
680
  title: تحديث الإقتراح
739
681
  vote_button:
@@ -741,6 +683,8 @@ ar:
741
683
  voting_rules:
742
684
  proposal_limit:
743
685
  description: يمكنك إنشاء ما يصل إلى %{limit} مقترحات.
686
+ vote_limit:
687
+ description: يمكنك دعم ما يصل إلى %{limit} مقترحات.
744
688
  wizard_aside:
745
689
  back: الى الخلف
746
690
  back_from_step_1: العودة إلى الاقتراحات