decidim-initiatives 0.30.1 → 0.31.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +46 -9
  3. data/app/cells/decidim/initiatives/content_blocks/highlighted_initiatives_settings_form/show.erb +7 -2
  4. data/app/cells/decidim/initiatives/initiative_g_cell.rb +5 -1
  5. data/app/commands/decidim/initiatives/admin/publish_initiative.rb +1 -5
  6. data/app/commands/decidim/initiatives/admin/update_initiative.rb +1 -2
  7. data/app/commands/decidim/initiatives/create_initiative.rb +0 -1
  8. data/app/commands/decidim/initiatives/update_initiative.rb +1 -3
  9. data/app/commands/decidim/initiatives/vote_initiative.rb +1 -11
  10. data/app/controllers/concerns/decidim/initiatives/has_signature_workflow.rb +36 -0
  11. data/app/controllers/concerns/decidim/initiatives/needs_initiative.rb +1 -12
  12. data/app/controllers/decidim/initiatives/admin/initiatives_controller.rb +2 -2
  13. data/app/controllers/decidim/initiatives/admin/initiatives_settings_controller.rb +1 -1
  14. data/app/controllers/decidim/initiatives/admin/initiatives_type_scopes_controller.rb +2 -2
  15. data/app/controllers/decidim/initiatives/admin/initiatives_types_controller.rb +2 -2
  16. data/app/controllers/decidim/initiatives/committee_requests_controller.rb +10 -2
  17. data/app/controllers/decidim/initiatives/create_initiative_controller.rb +84 -18
  18. data/app/controllers/decidim/initiatives/initiative_signatures_controller.rb +133 -42
  19. data/app/controllers/decidim/initiatives/initiative_votes_controller.rb +3 -2
  20. data/app/controllers/decidim/initiatives/initiatives_controller.rb +21 -2
  21. data/app/forms/decidim/initiatives/admin/initiative_form.rb +0 -1
  22. data/app/forms/decidim/initiatives/initiative_form.rb +0 -3
  23. data/app/helpers/decidim/initiatives/application_helper.rb +2 -0
  24. data/app/helpers/decidim/initiatives/initiatives_helper.rb +0 -1
  25. data/app/models/decidim/initiative.rb +7 -31
  26. data/app/models/decidim/initiatives_committee_member.rb +1 -1
  27. data/app/models/decidim/initiatives_type.rb +5 -2
  28. data/app/models/decidim/initiatives_vote.rb +2 -2
  29. data/app/packs/entrypoints/decidim_initiatives.js +1 -1
  30. data/app/packs/entrypoints/decidim_initiatives_admin.scss +1 -1
  31. data/app/packs/src/decidim/initiatives/admin/initiatives_types.js +2 -11
  32. data/app/packs/src/decidim/initiatives/admin/invite_users.js +1 -1
  33. data/app/packs/src/decidim/initiatives/application.js +1 -1
  34. data/app/packs/src/decidim/initiatives/check_code.js +114 -0
  35. data/app/packs/src/decidim/initiatives/initiative_creation_wizard.js +16 -0
  36. data/app/packs/src/decidim/initiatives/scoped_type.js +1 -1
  37. data/app/packs/stylesheets/initiatives.scss +16 -2
  38. data/app/permissions/decidim/initiatives/admin/permissions.rb +4 -7
  39. data/app/permissions/decidim/initiatives/permissions.rb +26 -16
  40. data/app/presenters/decidim/initiative_presenter.rb +12 -6
  41. data/app/presenters/decidim/initiatives/admin_log/initiative_presenter.rb +1 -2
  42. data/app/queries/decidim/initiatives/initiatives_stats_followers_count.rb +14 -0
  43. data/app/queries/decidim/initiatives/initiatives_stats_participants_count.rb +14 -0
  44. data/app/serializers/decidim/initiatives/open_data_initiative_serializer.rb +0 -1
  45. data/app/services/decidim/initiatives/data_encryptor.rb +1 -1
  46. data/app/services/decidim/initiatives/legacy_signature_handler.rb +25 -0
  47. data/app/services/decidim/initiatives/progress_notifier.rb +1 -7
  48. data/app/services/decidim/initiatives/signature_handler.rb +248 -0
  49. data/app/services/decidim/initiatives/status_change_notifier.rb +1 -7
  50. data/app/views/decidim/initiatives/admin/committee_requests/index.html.erb +29 -11
  51. data/app/views/decidim/initiatives/admin/exports/_dropdown.html.erb +17 -20
  52. data/app/views/decidim/initiatives/admin/initiatives/_form.html.erb +7 -13
  53. data/app/views/decidim/initiatives/admin/initiatives/_initiative_attachments.erb +2 -2
  54. data/app/views/decidim/initiatives/admin/initiatives/index.html.erb +76 -47
  55. data/app/views/decidim/initiatives/admin/initiatives_types/_form.html.erb +13 -21
  56. data/app/views/decidim/initiatives/admin/initiatives_types/_initiative_type_scopes.html.erb +28 -12
  57. data/app/views/decidim/initiatives/admin/initiatives_types/index.html.erb +33 -15
  58. data/app/views/decidim/initiatives/create_initiative/_committee_member.html.erb +27 -0
  59. data/app/views/decidim/initiatives/create_initiative/_return_to_initiatives_button.html.erb +3 -0
  60. data/app/views/decidim/initiatives/create_initiative/_send_to_technical_validation_button.html.erb +10 -0
  61. data/app/views/decidim/initiatives/create_initiative/_share_committee_link.html.erb +5 -1
  62. data/app/views/decidim/initiatives/create_initiative/fill_data.html.erb +7 -11
  63. data/app/views/decidim/initiatives/create_initiative/finish.html.erb +16 -13
  64. data/app/views/decidim/initiatives/create_initiative/promotal_committee.html.erb +33 -6
  65. data/app/views/decidim/initiatives/create_initiative/select_initiative_type.html.erb +40 -26
  66. data/app/views/decidim/initiatives/initiative_signatures/_sms_code_form.html.erb +22 -0
  67. data/app/views/decidim/initiatives/initiative_signatures/_sms_phone_number_form.html.erb +13 -0
  68. data/app/views/decidim/initiatives/initiative_signatures/fill_personal_data.html.erb +23 -22
  69. data/app/views/decidim/initiatives/initiative_signatures/finish.html.erb +17 -5
  70. data/app/views/decidim/initiatives/initiative_signatures/sms_code.html.erb +6 -8
  71. data/app/views/decidim/initiatives/initiative_signatures/sms_phone_number.html.erb +3 -8
  72. data/app/views/decidim/initiatives/initiative_signatures/update_buttons_and_counters.js.erb +3 -14
  73. data/app/views/decidim/initiatives/initiative_votes/update_buttons_and_counters.js.erb +3 -14
  74. data/app/views/decidim/initiatives/initiatives/_committee_members.html.erb +1 -1
  75. data/app/views/decidim/initiatives/initiatives/_form.html.erb +1 -3
  76. data/app/views/decidim/initiatives/initiatives/_new_initiative_button.html.erb +10 -3
  77. data/app/views/decidim/initiatives/initiatives/_pending_initiatives.html.erb +5 -0
  78. data/app/views/decidim/initiatives/initiatives/index.html.erb +8 -0
  79. data/app/views/decidim/initiatives/initiatives/show.html.erb +2 -2
  80. data/app/views/layouts/decidim/_initiative_signature_creation_header.html.erb +20 -2
  81. data/app/views/layouts/decidim/admin/_manage_initiatives.html.erb +1 -1
  82. data/app/views/layouts/decidim/initiative_signature_creation.html.erb +3 -1
  83. data/config/assets.rb +2 -2
  84. data/config/locales/ar.yml +0 -45
  85. data/config/locales/bg.yml +0 -54
  86. data/config/locales/ca-IT.yml +99 -51
  87. data/config/locales/ca.yml +99 -51
  88. data/config/locales/cs.yml +93 -54
  89. data/config/locales/de.yml +100 -52
  90. data/config/locales/el.yml +0 -45
  91. data/config/locales/en.yml +99 -51
  92. data/config/locales/es-MX.yml +99 -51
  93. data/config/locales/es-PY.yml +99 -51
  94. data/config/locales/es.yml +99 -51
  95. data/config/locales/eu.yml +120 -72
  96. data/config/locales/fi-plain.yml +99 -51
  97. data/config/locales/fi.yml +99 -51
  98. data/config/locales/fr-CA.yml +44 -51
  99. data/config/locales/fr.yml +44 -51
  100. data/config/locales/ga-IE.yml +0 -17
  101. data/config/locales/gl.yml +0 -41
  102. data/config/locales/hu.yml +0 -54
  103. data/config/locales/id-ID.yml +0 -40
  104. data/config/locales/is-IS.yml +0 -22
  105. data/config/locales/it.yml +0 -53
  106. data/config/locales/ja.yml +98 -49
  107. data/config/locales/lb.yml +0 -50
  108. data/config/locales/lt.yml +0 -56
  109. data/config/locales/lv.yml +0 -46
  110. data/config/locales/nl.yml +0 -47
  111. data/config/locales/no.yml +0 -53
  112. data/config/locales/pl.yml +0 -56
  113. data/config/locales/pt-BR.yml +0 -53
  114. data/config/locales/pt.yml +0 -53
  115. data/config/locales/ro-RO.yml +92 -50
  116. data/config/locales/ru.yml +0 -25
  117. data/config/locales/sk.yml +0 -43
  118. data/config/locales/sl.yml +0 -1
  119. data/config/locales/sv.yml +10 -53
  120. data/config/locales/tr-TR.yml +0 -53
  121. data/config/locales/uk.yml +0 -25
  122. data/config/locales/zh-CN.yml +0 -45
  123. data/config/locales/zh-TW.yml +0 -53
  124. data/db/migrate/20250605104500_remove_hashtag_column_initiatives.rb +7 -0
  125. data/lib/decidim/api/initiative_api_type.rb +3 -0
  126. data/lib/decidim/api/initiative_type.rb +23 -4
  127. data/lib/decidim/exporters/initiative_votes_pdf.rb +1 -1
  128. data/lib/decidim/initiatives/default_signature_authorizer.rb +17 -0
  129. data/lib/decidim/initiatives/engine.rb +17 -14
  130. data/lib/decidim/initiatives/menu.rb +1 -1
  131. data/lib/decidim/initiatives/participatory_space.rb +15 -1
  132. data/lib/decidim/initiatives/seeds.rb +1 -2
  133. data/lib/decidim/initiatives/signature_workflow_manifest.rb +176 -0
  134. data/lib/decidim/initiatives/signatures.rb +12 -0
  135. data/lib/decidim/initiatives/test/factories.rb +7 -7
  136. data/lib/decidim/initiatives/test/initiatives_signatures_test_helpers.rb +19 -0
  137. data/lib/decidim/initiatives/validatable_authorizations.rb +83 -0
  138. data/lib/decidim/initiatives/version.rb +1 -1
  139. data/lib/decidim/initiatives.rb +23 -12
  140. metadata +33 -21
  141. data/app/events/decidim/initiatives/endorse_initiative_event.rb +0 -13
  142. data/app/forms/decidim/initiatives/vote_form.rb +0 -208
  143. data/app/packs/src/decidim/initiatives/identity_selector_dialog.js +0 -14
  144. data/app/services/decidim/initiatives/pdf_signature_example.rb +0 -110
  145. data/app/views/decidim/initiatives/initiative_signatures/_wizard_steps.html.erb +0 -15
  146. data/app/views/decidim/initiatives/initiatives/_interactions.html.erb +0 -10
  147. data/app/views/layouts/decidim/_initiative_header.html.erb +0 -27
@@ -1,11 +1,9 @@
1
- <%= cell("decidim/announcement", t("decidim.initiatives.initiative_signatures.sms_code.help"), callout_class: "secondary") %>
1
+ <%= cell("decidim/announcement", t("decidim.initiatives.initiative_signatures.sms_phone_number.confirmed_data"), callout_class: "secondary") %>
2
2
 
3
- <%= decidim_form_for(@form, url: sms_code_initiative_signatures_path, method: :put) do |f| %>
4
- <div class="form__wrapper">
5
- <%= f.text_field :verification_code %>
6
- </div>
3
+ <%= decidim_form_for(@phone_number_form, url: sms_phone_number_initiative_signatures_path, method: :put) do |f| %>
4
+ <%= render partial: "sms_phone_number_form", object: f, locals: { disabled: true } %>
5
+ <% end %>
7
6
 
8
- <div class="form__wrapper-block">
9
- <%= f.submit t(".continue"), class: "button button__sm md:button__lg button__secondary" %>
10
- </div>
7
+ <%= decidim_form_for(@sms_code_form, url: sms_code_initiative_signatures_path, method: :put) do |form| %>
8
+ <%= render partial: "sms_code_form", locals: { handler: @sms_code_form, form: } %>
11
9
  <% end %>
@@ -1,10 +1,5 @@
1
- <%= cell("decidim/announcement", t("decidim.initiatives.initiative_signatures.sms_phone_number.help"), callout_class: "secondary") %>
2
- <%= decidim_form_for(@form, url: sms_phone_number_initiative_signatures_path, method: :put) do |f| %>
3
- <div class="form__wrapper">
4
- <%= f.text_field :mobile_phone_number %>
5
- </div>
1
+ <%= cell("decidim/announcement", t("decidim.initiatives.initiative_signatures.sms_phone_number.confirmed_data"), callout_class: "secondary") %>
6
2
 
7
- <div class="form__wrapper-block">
8
- <%= f.submit t(".continue"), class: "button button__sm md:button__lg button__secondary" %>
9
- </div>
3
+ <%= decidim_form_for(@form, url: sms_phone_number_initiative_signatures_path, method: :put) do |f| %>
4
+ <%= render partial: "sms_phone_number_form", object: f %>
10
5
  <% end %>
@@ -1,21 +1,10 @@
1
1
  (function () {
2
2
  'use strict';
3
3
 
4
- var $initiativeVotesCount = $('#initiative-<%= current_initiative.id %>-progress-bar'),
5
- userIdentitiesDialog = $('#user-identities'),
6
- refreshUrl;
4
+ var $initiativeVotesCount = $('#initiative-<%= current_initiative.id %>-progress-bar');
7
5
 
8
6
  $initiativeVotesCount.html('<%= j(render partial: "decidim/initiatives/initiatives/progress_bar", locals: { initiative: current_initiative }) %>');
9
7
 
10
- // Update the identities dialog, if exists.
11
- if (userIdentitiesDialog.length) {
12
- refreshUrl = userIdentitiesDialog.data('refresh-url');
13
-
14
- $.ajax(refreshUrl).done(function(response){
15
- userIdentitiesDialog.html(response);
16
- });
17
- } else {
18
- var $initiativeVoteButton = $('#initiative-<%= current_initiative.id %>-vote-cabin');
19
- $initiativeVoteButton.html('<%= j(render partial: "decidim/initiatives/initiatives/vote_cabin", locals: { initiative: current_initiative }) %>');
20
- }
8
+ var $initiativeVoteButton = $('#initiative-<%= current_initiative.id %>-vote-cabin');
9
+ $initiativeVoteButton.html('<%= j(render partial: "decidim/initiatives/initiatives/vote_cabin", locals: { initiative: current_initiative }) %>');
21
10
  }());
@@ -1,21 +1,10 @@
1
1
  (function () {
2
2
  'use strict';
3
3
 
4
- var $initiativeVotesCount = $('#initiative-<%= current_initiative.id %>-progress-bar'),
5
- userIdentitiesDialog = $('#user-identities'),
6
- refreshUrl;
4
+ var $initiativeVotesCount = $('#initiative-<%= current_initiative.id %>-progress-bar');
7
5
 
8
6
  $initiativeVotesCount.html('<%= j(render partial: "decidim/initiatives/initiatives/progress_bar", locals: { initiative: current_initiative }) %>');
9
7
 
10
- // Update the identities dialog, if exists.
11
- if (userIdentitiesDialog.length) {
12
- refreshUrl = userIdentitiesDialog.data('refresh-url');
13
-
14
- $.ajax(refreshUrl).done(function(response){
15
- userIdentitiesDialog.html(response);
16
- });
17
- } else {
18
- var $initiativeVoteButton = $('#initiative-<%= current_initiative.id %>-vote-cabin');
19
- $initiativeVoteButton.html('<%= j(render partial: "decidim/initiatives/initiatives/vote_cabin", locals: { initiative: current_initiative }) %>');
20
- }
8
+ var $initiativeVoteButton = $('#initiative-<%= current_initiative.id %>-vote-cabin');
9
+ $initiativeVoteButton.html('<%= j(render partial: "decidim/initiatives/initiatives/vote_cabin", locals: { initiative: current_initiative }) %>');
21
10
  }());
@@ -9,7 +9,7 @@
9
9
  <%= decidim_initiatives.new_initiative_committee_request_url(current_initiative) %>
10
10
  </span>
11
11
  <div class="ml-auto fill-secondary inline-block">
12
- <button type="button" class="button button__sm button__text-secondary" data-clipboard-copy="#urlShareLink-committee">
12
+ <button type="button" class="button button__sm button__text-secondary" data-controller="clipboard-copy" data-clipboard-copy="#urlShareLink-committee">
13
13
  <%= render_committee_tooltip %>
14
14
  <span class="sr-only"><%= t("decidim.shared.share_modal.copy_share_link") %></span>
15
15
  </button>
@@ -15,12 +15,10 @@
15
15
  } %>
16
16
  <% end %>
17
17
 
18
- <%= form.text_field :title, autofocus: true, disabled: !allowed_to?(:update, :initiative, initiative: current_initiative), value: translated_attribute(@form.title) %>
18
+ <%= form.text_field :title, autofocus: true, disabled: !allowed_to?(:update, :initiative, initiative: current_initiative), value: translated_attribute(@form.title), data: { controller: "character-counter" } %>
19
19
 
20
20
  <%= text_editor_for(form, :description, toolbar: :content, lines: 8, disabled: !allowed_to?(:update, :initiative, initiative: current_initiative), value: translated_attribute(@form.description)) %>
21
21
 
22
- <%= form.text_field :hashtag, disabled: !allowed_to?(:update, :initiative, initiative: current_initiative) %>
23
-
24
22
  <% if @form.state_updatable? %>
25
23
  <%= form.select :state, Decidim::Initiative.states.keys.map { |state| [I18n.t(state, scope: "decidim.initiatives.admin_states"), state] }, {} %>
26
24
  <% end %>
@@ -1,9 +1,16 @@
1
1
  <% if Decidim::Initiatives.creation_enabled %>
2
2
  <% if available_initiative_types.size > 1 %>
3
3
  <% if current_user %>
4
- <%= link_to create_initiative_path(:select_initiative_type), class: "!px-4 title-action__action button button__xl button__secondary w-full" do %>
5
- <%= t("new_initiative", scope: "decidim.initiatives.initiatives.index_header") %>
6
- <%= icon "add-fill" %>
4
+ <% if current_user.ephemeral? %>
5
+ <button class="!px-4 button button__xl button__secondary w-full" disabled>
6
+ <%= t("new_initiative", scope: "decidim.initiatives.initiatives.index_header") %>
7
+ <%= icon "add-fill" %>
8
+ </button>
9
+ <% else %>
10
+ <%= link_to create_initiative_path(:select_initiative_type), class: "!px-4 title-action__action button button__xl button__secondary w-full" do %>
11
+ <%= t("new_initiative", scope: "decidim.initiatives.initiatives.index_header") %>
12
+ <%= icon "add-fill" %>
13
+ <% end %>
7
14
  <% end %>
8
15
  <% else %>
9
16
  <% content_for(:redirect_after_login) { create_initiative_url(:select_initiative_type) } %>
@@ -0,0 +1,5 @@
1
+ <h2 class="h5 md:h3 decorator"><%= t("title", scope: "decidim.initiatives.initiatives.pending_initiatives") %></h2>
2
+
3
+ <div class="card__grid-grid">
4
+ <%= render pending_initiatives %>
5
+ </div>
@@ -22,6 +22,14 @@ edit_link(
22
22
  <%= render layout: "layouts/decidim/shared/layout_two_col" do %>
23
23
  <%= participatory_space_floating_help %>
24
24
 
25
+ <% if pending_initiatives.any? %>
26
+ <div class="pending-initiatives">
27
+ <section id="pending_initiatives" class="layout-main__section layout-main__heading">
28
+ <%= render partial: "pending_initiatives" %>
29
+ </section>
30
+ </div>
31
+ <% end %>
32
+
25
33
  <section id="initiatives" class="layout-main__section layout-main__heading">
26
34
  <%= render partial: "initiatives" %>
27
35
  </section>
@@ -58,7 +58,7 @@ edit_link(
58
58
  </span>
59
59
  <div class="ml-auto fill-secondary inline-block">
60
60
  <input id="urlShareLink-committee" type="text" class="!hidden" value="<%= decidim_initiatives.new_initiative_committee_request_url(current_initiative) %>" readonly>
61
- <button type="button" class="button button__sm button__text-secondary" data-clipboard-copy="#urlShareLink-committee">
61
+ <button type="button" class="button button__sm button__text-secondary" data-controller="clipboard-copy" data-clipboard-copy="#urlShareLink-committee">
62
62
  <%= render_committee_tooltip %>
63
63
  <span class="sr-only"><%= t("decidim.shared.share_modal.copy_share_link") %></span>
64
64
  </button>
@@ -181,7 +181,7 @@ edit_link(
181
181
 
182
182
  <section class="layout-main__section">
183
183
  <% if tabs.any? %>
184
- <div class="mt-8" data-component="accordion" data-multiselectable="false" data-collapsible="false">
184
+ <div class="mt-8" data-controller="accordion" data-multiselectable="false" data-collapsible="false">
185
185
  <ul class="tab-x-container">
186
186
  <% tabs.each_with_index do |tab, i| %>
187
187
  <li>
@@ -1,6 +1,24 @@
1
1
  <div class="flex justify-center">
2
2
  <h1 class="title-decorator my-12">
3
- <%= t(".title", initiative_title: translated_attribute(current_initiative.title)) %>
3
+ <% if content_for :title %>
4
+ <%= yield :title %>
5
+ <% else %>
6
+ <%= t("verify_your_identity", scope: "layouts.decidim.initiative_signature_creation_header") %>
7
+ <% end %>
4
8
  </h1>
5
9
  </div>
6
- <%= render partial: "wizard_steps" %>
10
+
11
+ <% if content_for :help %>
12
+ <%= yield :help %>
13
+ <% else %>
14
+ <div class="form__wrapper">
15
+ <p>
16
+ <%= t(
17
+ "help_information_html",
18
+ initiative_title: translated_attribute(current_initiative.title),
19
+ initiative_author: decidim_sanitize(present(current_initiative.author).name),
20
+ scope: "layouts.decidim.initiative_signature_creation_header"
21
+ ) %>
22
+ </p>
23
+ </div>
24
+ <% end %>
@@ -1,5 +1,5 @@
1
1
  <div class="inline-block relative">
2
- <%= button_tag data: { component: "dropdown", target: "initiatives-dropdown-menu-settings" }, class: "dropdown__trigger button button__transparent" do %>
2
+ <%= button_tag data: { controller: "dropdown", target: "initiatives-dropdown-menu-settings" }, class: "dropdown__trigger button button__transparent" do %>
3
3
  <span>
4
4
  <%= t("menu.manage", scope: "decidim.admin") %>
5
5
  </span>
@@ -1,6 +1,8 @@
1
1
  <%= render "layouts/decidim/application" do %>
2
2
  <%= render layout:"layouts/decidim/shared/layout_center", locals: { main_enabled: false } do %>
3
- <%= render partial: "layouts/decidim/initiative_signature_creation_header" %>
3
+ <% if action_name == "fill_personal_data" %>
4
+ <%= render partial: "layouts/decidim/initiative_signature_creation_header" %>
5
+ <% end %>
4
6
  <%= yield %>
5
7
  <%= append_javascript_pack_tag "decidim_initiatives" %>
6
8
  <% 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_initiatives: "#{base_path}/app/packs/entrypoints/decidim_initiatives.js",
8
8
  decidim_initiatives_admin: "#{base_path}/app/packs/entrypoints/decidim_initiatives_admin.js"
9
9
  )
@@ -3,7 +3,6 @@ ar:
3
3
  activemodel:
4
4
  attributes:
5
5
  initiative:
6
- decidim_user_group_id: مؤلف
7
6
  description: وصف
8
7
  offline_votes: التوقيعات الشخصية
9
8
  scope_id: نطاق
@@ -22,7 +21,6 @@ ar:
22
21
  banner_image: صورة بانر
23
22
  collect_user_extra_fields: جمع البيانات الشخصية للمشاركين عند التوقيع
24
23
  description: وصف
25
- document_number_authorization_handler: إذن للتحقق من رقم الوثيقة على التوقيعات
26
24
  extra_fields_legal_information: معلومات قانونية حول جمع البيانات الشخصية
27
25
  minimum_committee_members: الحد الأدنى من أعضاء اللجنة
28
26
  online_signature_enabled: تم تمكين التوقيع عبر الإنترنت
@@ -199,7 +197,6 @@ ar:
199
197
  unpublish: "تجاهل %{user_name} المبادرة %{resource_name}"
200
198
  update: "%{user_name} تحديث المبادرة %{resource_name}"
201
199
  admin_states:
202
- created: تمّ إنشاؤه
203
200
  discarded: التخلص منها
204
201
  validating: المصادقة الفنية
205
202
  application_helper:
@@ -219,57 +216,33 @@ ar:
219
216
  name: المبادرات البارزة
220
217
  create_initiative:
221
218
  fill_data:
222
- back: الى الخلف
223
219
  continue: استمر
224
- more_information: "(معلومات اكثر)"
225
220
  select_scope: حدد النطاق
226
221
  finish:
227
222
  back: الى الخلف
228
- back_to_initiatives: العودة إلى المبادرات
229
- go_to_my_initiatives: انتقل إلى مبادراتي
230
- more_information: "(معلومات اكثر)"
231
223
  previous_form:
232
224
  back: الى الخلف
233
- continue: استمر
234
- promotal_committee:
235
- more_information: "(معلومات اكثر)"
236
225
  select_initiative_type:
237
226
  back: الى الخلف
238
227
  choose_html: أريد إنشاء <strong>%{title}</strong>
239
228
  more_information: (معلومات اكثر)
240
229
  select: أريد أن أشجع هذه المبادرة
241
- share_committee_link:
242
- invite_to_committee_help: رابط لدعوة الأشخاص الذين سيكونون جزءًا من لجنة المروجين
243
230
  events:
244
231
  create_initiative_event:
245
232
  email_intro: "%{author_name} %{author_nickname}، الذي تتابعه ، بإنشاء مبادرة جديدة والتحقق منها والمساهمة فيها:"
246
233
  email_outro: لقد تلقيت هذا الإشعار لأنك تتابع %{author_nickname}. يمكنك إيقاف تلقي الإخطارات باتباع الرابط السابق.
247
234
  email_subject: مبادرة جديدة بنسبة %{author_nickname}
248
235
  notification_title: تم إنشاء مبادرة <a href="%{resource_path}">%{resource_title}</a> بواسطة <a href="%{author_path}">%{author_name} %{author_nickname}</a>.
249
- endorse_initiative_event:
250
- email_intro: "أيد %{author_name} %{author_nickname}، الذي تتابعه ، المبادرة التالية ، ربما تريد المساهمة في المحادثة:"
251
- email_outro: لقد تلقيت هذا الإشعار لأنك تتابع %{author_nickname}. يمكنك إيقاف تلقي الإخطارات باتباع الرابط السابق.
252
- email_subject: المبادرة التي أقرتها %{author_nickname}
253
- notification_title: تمت الموافقة على مبادرة <a href="%{resource_path}">%{resource_title}</a> من قبل <a href="%{author_path}">%{author_name} %{author_nickname}</a>.
254
236
  form:
255
237
  add_attachments: إضافة مرفقات
256
238
  attachment_legend: إضافة مستند أو صورة
257
239
  edit_attachments: تعديل المرفقات
258
240
  initiative_signatures:
259
- fill_personal_data:
260
- continue: استمر
261
241
  finish:
262
242
  back_to_initiative: العودة إلى المبادرة
263
- sms_code:
264
- continue: التحقق من الرمز والمتابعة
265
- help: تحقق من الرسائل القصيرة المستلمة على هاتفك
266
- sms_phone_number:
267
- continue: ارسل لي رسالة
268
243
  initiative_votes:
269
244
  create:
270
245
  error: كانت هناك مشكلة في توقيع المبادرة.
271
- personal_data:
272
- invalid: البيانات الشخصية لا تتفق مع البيانات المقدمة للترخيص.
273
246
  sms_phone:
274
247
  invalid: رقم الهاتف غير صالح أو قيد التفويض. من فضلك ، تحقق من التراخيص الخاصة بك.
275
248
  initiatives:
@@ -297,15 +270,6 @@ ar:
297
270
  type: نوع
298
271
  index_header:
299
272
  new_initiative: مبادرة جديدة
300
- interactions:
301
- comments_count:
302
- count:
303
- zero: تعليق
304
- one: تعليق
305
- two: تعليق
306
- few: تعليق
307
- many: تعليق
308
- other: تعليق
309
273
  orders:
310
274
  label: 'فرز المبادرات حسب:'
311
275
  most_commented: الأكثر تعليقا
@@ -366,20 +330,11 @@ ar:
366
330
  initiatives_type:
367
331
  actions:
368
332
  title: أفعال
369
- vote: إشارة
370
333
  layouts:
371
334
  decidim:
372
335
  initiative_creation_header:
373
336
  fill_data: إنشاء
374
- finish: إنهاء
375
- promotal_committee: لجنة المروجين
376
337
  select_initiative_type: أختر
377
- initiative_signature_creation_header:
378
- fill_personal_data: أكمل بياناتك
379
- finish: إنهاء
380
- sms_code: التحقق من رمز SMS
381
- sms_phone_number: رقم الهاتف الجوال
382
- title: تسجيل %{initiative_title}
383
338
  initiatives:
384
339
  no_initiatives_yet:
385
340
  no_initiatives_yet: لا توجد مبادرات حتى الآن!
@@ -7,9 +7,7 @@ bg:
7
7
  answer_url: URL на отговора
8
8
  area_id: Област
9
9
  decidim_scope_id: Обхват
10
- decidim_user_group_id: Автор
11
10
  description: Описание
12
- hashtag: Хаштаг
13
11
  offline_votes: Лични подписи
14
12
  offline_votes_for_scope: Лични подписи за %{scope_name}
15
13
  scope_id: Обхват
@@ -36,7 +34,6 @@ bg:
36
34
  comments_enabled: Включване на коментиране
37
35
  custom_signature_end_date_enabled: Разрешаване на авторите да избират края на периода на събиране на подписи
38
36
  description: Описание
39
- document_number_authorization_handler: Разрешение за потвърждаване на номера на документа при подписване
40
37
  extra_fields_legal_information: Правна информация относно събирането на лични данни
41
38
  minimum_committee_members: Минимален брой членове на комисията
42
39
  online_signature_enabled: Разрешено подписване онлайн
@@ -90,14 +87,11 @@ bg:
90
87
  label: Състояние
91
88
  values:
92
89
  accepted: Достатъчно подписи
93
- created: Създаден
94
90
  discarded: Отхвърлено
95
91
  rejected: Няма достатъчно подписи
96
92
  validating: Техническа проверка
97
93
  type_id_eq:
98
94
  label: Тип
99
- search_placeholder:
100
- title_or_description_or_id_string_or_author_name_or_author_nickname_cont: Търсете в %{collection} по заглавие, описание, идент. № или име на автора.
101
95
  initiatives_settings:
102
96
  update:
103
97
  success: Настройките на инициативите са актуализирани успешно.
@@ -288,7 +282,6 @@ bg:
288
282
  edit:
289
283
  update: Актуализация
290
284
  form:
291
- authorizations: Настройки за оторизация
292
285
  child_scope_threshold_enabled_help_html: 'Този конфигурационен флаг не поддържа офлайн гласуване. Той позволява подобхвати и работи с манипулатор на оторизация, който свързва обхват с потребителя. Уверете се, че сте избрали тази оторизация по-долу в настройките за разрешение. За да работи, обхватите трябва да бъдат конфигурирани по йерархичен начин: 1 родител - N дете. За повече информация как работи тази конфигурация вижте <a href="https://docs.decidim.org/en/admin/spaces/initiatives/" target="_blank">страницата с документация за администратор на инициативи</a>.'
293
286
  only_global_scope_enabled_help_html: Поставете отметка върху този флаг, ако сте активирали „Подпис на обхват на дете“ и сте конфигурирали глобалния обхват като родителски обхват. Като активирате това, изборът на тип инициатива ще бъде пропуснат в съветника за създаване на инициатива. За повече информация как работи тази конфигурация вижте тази <a href="https://docs.decidim.org/en/admin/spaces/initiatives/" target="_blank">връзка</a>.
294
287
  options: Опции
@@ -313,7 +306,6 @@ bg:
313
306
  update: "%{user_name} актуализира типа инициативи %{resource_name}"
314
307
  admin_states:
315
308
  accepted: Достатъчно подписи
316
- created: Създаден
317
309
  discarded: Отхвърлено
318
310
  rejected: Няма достатъчно подписи
319
311
  validating: Техническа проверка
@@ -342,38 +334,21 @@ bg:
342
334
  name: Акцентирани инициативи
343
335
  create_initiative:
344
336
  fill_data:
345
- back: Назад
346
337
  continue: Продължи
347
338
  fill_data_help: "<ul> <li>Прегледайте съдържанието на инициативата си. Заглавието Ви лесно ли е за разбиране? Ясна ли е целта на инициативата Ви?</li> <li>Трябва да изберете типа на подписа. Лично, онлайн или комбинация от двете</li> <li>Какъв е географският обхват на инициативата? Град, област?</li> </ul>"
348
- more_information: "(Още информация)"
349
339
  select_area: Изберете област
350
340
  select_scope: Избор на обхват
351
341
  finish:
352
342
  back: Назад
353
- back_to_initiatives: Назад към инициативите
354
- confirm: Ще изпратите инициативата на администратор да я прегледа и публикува. След публикуване няма да можете да го редактирате. Сигурен ли си?
355
- edit_my_initiative: Редактиране на моята инициатива
356
- go_to_my_initiatives: Към моите инициативи
357
- more_information: "(Още информация)"
358
- send_my_initiative: Изпратете моята инициатива за техническо валидиране
359
- finish_help:
360
- publish_helper_text: Не забравяйте, че за да бъде публикувана вашата инициатива, трябва да попълните необходимата информация и <strong>да я изпратите на техническо валидиране</strong>, за да може администратор да я прегледа.
361
343
  previous_form:
362
344
  back: Назад
363
- continue: Продължи
364
- promotal_committee:
365
- individual_help_text: Този вид инициатива изисква комисия за насърчаване, състояща се от поне %{committee_size} души (атестатори). Трябва да споделите следната връзка с другите хора, които са част от тази инициатива. Когато вашите контакти получат тази връзка, те ще трябва да следват посочените стъпки.
366
- more_information: "(Още информация)"
367
345
  select_initiative_type:
368
346
  back: Назад
369
347
  choose_html: Искам да създам <strong>%{title}</strong>
370
348
  more_information: Още информация
371
349
  new: Създаване на нова инициатива
372
350
  select: Искам да популяризирам тази инициатива
373
- select_initiative_type_help: Гражданските инициативи са средствa, чрез които гражданите могат да се намесят, така че градската управа да предприеме действия в защита на общия интерес, които попадат в юрисдикцията ѝ. Коя инициатива искате да стартирате?
374
351
  verification_required: Потвърдете акаунта си, за да промотирате тази инициатива
375
- share_committee_link:
376
- invite_to_committee_help: Връзка, с която да поканите хора да участват в комисията за популяризиране
377
352
  edit:
378
353
  accept: Приемане на инициативата
379
354
  back: Назад
@@ -395,11 +370,6 @@ bg:
395
370
  email_outro: Получихте това известие, защото следвате %{author_nickname}. Можете да спрете да получавате известия, като последвате предходния линк.
396
371
  email_subject: Нова инициатива на %{author_nickname}
397
372
  notification_title: Инициативата <a href="%{resource_path}">%{resource_title}</a> беше създадена от <a href="%{author_path}">%{author_name} %{author_nickname}</a>.
398
- endorse_initiative_event:
399
- email_intro: "%{author_name} %{author_nickname}, когото следвате, подкрепи следната инициатива; може би бихте искали да допринесете към дискусията:"
400
- email_outro: Получихте това известие, защото следвате %{author_nickname}. Можете да спрете да получавате известия, като последвате предходния линк.
401
- email_subject: Инициативата е подкрепена от %{author_nickname}
402
- notification_title: Инициативата <a href="%{resource_path}">%{resource_title}</a> беше подкрепена от <a href="%{author_path}">%{author_name} %{author_nickname}</a>.
403
373
  revoke_membership_request:
404
374
  email_intro: "%{author_nickname} отхвърли кандидатурата ви да станете част от комитета на промоторите за следната инициатива %{resource_title}."
405
375
  email_outro: 'Получихте това известие, защото кандидатствахте за тази инициатива: %{resource_title}.'
@@ -418,23 +388,14 @@ bg:
418
388
  uninitialized: Инициативите все още не са конфигурирани от администратор.
419
389
  initiative_signatures:
420
390
  fill_personal_data:
421
- continue: Продължи
422
391
  help: Моля, попълнете личните си данни в следните полета, за да подпишете инициативата.
423
392
  finish:
424
393
  back_to_initiative: Назад към инициативата
425
- sms_code:
426
- continue: Проверете кода и продължете
427
- help: Проверете съобщението, което получихте на телефона си чрез SMS
428
- sms_phone_number:
429
- continue: Изпратете ми SMS
430
- help: Попълнете потвърдения си телефонен номер във формуляра, за да заявите вашия код за потвърждение.
431
394
  initiative_votes:
432
395
  create:
433
396
  error: Имаше проблем с подписването на инициативата.
434
397
  invalid: Предоставената информация за подписване на инициативата не е валидна.
435
398
  success_html: Поздравления! Подписахте успешно инициативата <strong> %{title}</strong>.
436
- personal_data:
437
- invalid: Личната информация не отговаря на предоставените данни за удостоверяване.
438
399
  sms_code:
439
400
  invalid: Кодът Ви за потвърждение не съвпада с нашия. Моля, проверете отново съобщението, което Ви изпратихме със SMS.
440
401
  sms_phone:
@@ -470,11 +431,6 @@ bg:
470
431
  initiatives:
471
432
  closed_initiatives_warning: В момента няма отворени инициативи, но тук можете да намерите всички изброени затворени инициативи.
472
433
  no_initiatives_warning: Няма инициативи, които да съответстват на критериите Ви за търсене.
473
- interactions:
474
- comments_count:
475
- count:
476
- one: Коментар
477
- other: Коментари
478
434
  orders:
479
435
  label: 'Сортиране на инициативите по:'
480
436
  most_commented: Най-коментирани
@@ -554,7 +510,6 @@ bg:
554
510
  show:
555
511
  badge_name:
556
512
  accepted: Достатъчно подписи
557
- created: Създаден
558
513
  discarded: Отхвърлено
559
514
  rejected: Няма достатъчно подписи
560
515
  validating: Техническа проверка
@@ -573,20 +528,11 @@ bg:
573
528
  initiatives_type:
574
529
  actions:
575
530
  title: Активности
576
- vote: Подписване
577
531
  layouts:
578
532
  decidim:
579
533
  initiative_creation_header:
580
534
  fill_data: Създаване
581
- finish: Край
582
- promotal_committee: Комитет за популяризиране
583
535
  select_initiative_type: Изберете
584
- initiative_signature_creation_header:
585
- fill_personal_data: Попълнете данните си
586
- finish: Край
587
- sms_code: Проверка с SMS код
588
- sms_phone_number: Номер на мобилен телефон
589
- title: Подписване на %{initiative_title}
590
536
  initiatives:
591
537
  no_initiatives_yet:
592
538
  no_initiatives_yet: Все още няма инициативи!