decidim-initiatives 0.27.5 → 0.27.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/initiatives/content_blocks/highlighted_initiatives/show.erb +2 -2
  3. data/app/controllers/decidim/initiatives/widgets_controller.rb +15 -1
  4. data/app/events/decidim/initiatives/admin/initiative_sent_to_technical_validation_event.rb +1 -1
  5. data/app/events/decidim/initiatives/approve_membership_request_event.rb +1 -4
  6. data/app/events/decidim/initiatives/create_initiative_event.rb +1 -4
  7. data/app/events/decidim/initiatives/initiative_sent_to_technical_validation_event.rb +1 -1
  8. data/app/events/decidim/initiatives/revoke_membership_request_event.rb +1 -4
  9. data/app/events/decidim/initiatives/spawn_committee_request_event.rb +1 -4
  10. data/app/helpers/decidim/initiatives/application_helper.rb +2 -2
  11. data/app/permissions/decidim/initiatives/permissions.rb +10 -0
  12. data/app/views/decidim/initiatives/create_initiative/select_initiative_type.html.erb +1 -1
  13. data/app/views/decidim/initiatives/initiatives/_result.html.erb +2 -2
  14. data/app/views/decidim/initiatives/initiatives/_tags.html.erb +3 -3
  15. data/app/views/decidim/initiatives/initiatives/show.html.erb +3 -1
  16. data/config/locales/ar.yml +3 -0
  17. data/config/locales/bg.yml +143 -0
  18. data/config/locales/ca.yml +11 -11
  19. data/config/locales/de.yml +6 -6
  20. data/config/locales/es.yml +8 -8
  21. data/config/locales/he-IL.yml +1 -0
  22. data/config/locales/hu.yml +12 -3
  23. data/config/locales/ja.yml +2 -0
  24. data/config/locales/lb.yml +2 -0
  25. data/config/locales/pl.yml +15 -0
  26. data/config/locales/pt-BR.yml +27 -2
  27. data/decidim-initiatives.gemspec +38 -0
  28. data/lib/decidim/initiatives/admin_engine.rb +1 -1
  29. data/lib/decidim/initiatives/test/factories.rb +51 -28
  30. data/lib/decidim/initiatives/version.rb +1 -1
  31. metadata +22 -21
  32. data/config/environment.rb +0 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7aead87efb120d8ef80156965c269c62b3497479e5b872af448823ad78ecf654
4
- data.tar.gz: 9830200c6f70628f5826739ad54322d50a000f6f075adfecd03c74509fab689d
3
+ metadata.gz: aa06894bfd1ff08e4b4eb336e99135564ced07159b8b4c5920c8280d927b9790
4
+ data.tar.gz: df3b5a7b35d9df334699af64ac7b52d63cc24541ce58620ec2920f1027bb4caf
5
5
  SHA512:
6
- metadata.gz: 9fe92f04e60bedd2acc898f62858284a0a7af3c36d361b52ea570a02a86d3c94d3bab1efd316280bcd3b0cbc4db88c0eb50496bc21e787c21dae0949492ba2b0
7
- data.tar.gz: 0b4c63c7cd38d10a8aa0bd3d3b318ef43cdf79c37b787dd7282170e6baf1783190593a4906a775a99a432777677b9a64b5759028a4f6587b8933c112a3e98831
6
+ metadata.gz: 3df718f8e43189b0a6177d3a1f9a59253a91cbb99a0fa963eacfa66fa92d9b7702415b08a44e5d4a05d422c726655ac66532795a0a1563fa3e98ffaad60dca9e
7
+ data.tar.gz: 0e5fc0b018760ca882ab462ebb1bc80ecc1454af36b93f99feac96d57e48722c63e1152e7f86afacde02b0e6dffebb730b983a6ceb816e09e3d94ec91432ff83
@@ -8,9 +8,9 @@
8
8
  <%= link_to decidim_initiatives.initiative_path(initiative), class: "card card--initiative card--mini" do %>
9
9
  <div aria-hidden="true" class="card__image-top"
10
10
  style="background-image:url('<%= initiative.banner_image.path %>')"></div>
11
- <span class="show-for-sr"><%= translated_attribute initiative.title %></span>
11
+ <span class="show-for-sr"><%= decidim_escape_translated initiative.title %></span>
12
12
  <div class="card__content">
13
- <span class="card__title card__link"><%= decidim_html_escape(translated_attribute(initiative.title)) %></span>
13
+ <span class="card__title card__link"><%= decidim_escape_translated(initiative.title) %></span>
14
14
  </div>
15
15
  <% end %>
16
16
  </div>
@@ -12,10 +12,20 @@ module Decidim
12
12
 
13
13
  include NeedsInitiative
14
14
 
15
+ def show
16
+ enforce_permission_to :embed, :participatory_space, current_participatory_space: model if model
17
+
18
+ super
19
+ end
20
+
15
21
  private
16
22
 
17
23
  def model
18
- @model ||= current_initiative
24
+ @model ||= if current_initiative.created? || current_initiative.validating? || current_initiative.discarded?
25
+ nil
26
+ else
27
+ current_initiative
28
+ end
19
29
  end
20
30
 
21
31
  def current_participatory_space
@@ -25,6 +35,10 @@ module Decidim
25
35
  def iframe_url
26
36
  @iframe_url ||= initiative_widget_url(model)
27
37
  end
38
+
39
+ def permission_class_chain
40
+ ::Decidim.permissions_registry.chain_for(::Decidim::Initiatives::ApplicationController)
41
+ end
28
42
  end
29
43
  end
30
44
  end
@@ -13,7 +13,7 @@ module Decidim
13
13
  end
14
14
 
15
15
  def admin_initiative_url
16
- decidim_admin_initiatives.edit_initiative_url(resource, resource.mounted_params)
16
+ EngineRouter.admin_proxy(resource).edit_initiative_url(resource)
17
17
  end
18
18
  end
19
19
  end
@@ -2,10 +2,7 @@
2
2
 
3
3
  module Decidim
4
4
  module Initiatives
5
- class ApproveMembershipRequestEvent < Decidim::Events::BaseEvent
6
- include Decidim::Events::EmailEvent
7
- include Decidim::Events::NotificationEvent
8
-
5
+ class ApproveMembershipRequestEvent < Decidim::Events::SimpleEvent
9
6
  def email_subject
10
7
  I18n.t(
11
8
  "decidim.initiatives.events.approve_membership_request.email_subject",
@@ -2,10 +2,7 @@
2
2
 
3
3
  module Decidim
4
4
  module Initiatives
5
- class CreateInitiativeEvent < Decidim::Events::BaseEvent
6
- include Decidim::Events::EmailEvent
7
- include Decidim::Events::NotificationEvent
8
-
5
+ class CreateInitiativeEvent < Decidim::Events::SimpleEvent
9
6
  def email_subject
10
7
  I18n.t(
11
8
  "decidim.initiatives.events.create_initiative_event.email_subject",
@@ -12,7 +12,7 @@ module Decidim
12
12
  end
13
13
 
14
14
  def admin_initiative_url
15
- decidim_admin_initiatives.edit_initiative_url(resource, resource.mounted_params)
15
+ EngineRouter.admin_proxy(resource).edit_initiative_url(resource)
16
16
  end
17
17
  end
18
18
  end
@@ -2,10 +2,7 @@
2
2
 
3
3
  module Decidim
4
4
  module Initiatives
5
- class RevokeMembershipRequestEvent < Decidim::Events::BaseEvent
6
- include Decidim::Events::EmailEvent
7
- include Decidim::Events::NotificationEvent
8
-
5
+ class RevokeMembershipRequestEvent < Decidim::Events::SimpleEvent
9
6
  def email_subject
10
7
  I18n.t(
11
8
  "decidim.initiatives.events.revoke_membership_request.email_subject",
@@ -2,10 +2,7 @@
2
2
 
3
3
  module Decidim
4
4
  module Initiatives
5
- class SpawnCommitteeRequestEvent < Decidim::Events::BaseEvent
6
- include Decidim::Events::EmailEvent
7
- include Decidim::Events::NotificationEvent
8
-
5
+ class SpawnCommitteeRequestEvent < Decidim::Events::SimpleEvent
9
6
  def email_subject
10
7
  I18n.t(
11
8
  "decidim.initiatives.events.spawn_committee_request_event.email_subject",
@@ -56,7 +56,7 @@ module Decidim
56
56
  def filter_types_values
57
57
  types_values = Decidim::InitiativesType.where(organization: current_organization).map do |type|
58
58
  TreeNode.new(
59
- TreePoint.new(type.id.to_s, type.title[I18n.locale.to_s])
59
+ TreePoint.new(type.id.to_s, decidim_escape_translated(type.title))
60
60
  )
61
61
  end
62
62
 
@@ -92,7 +92,7 @@ module Decidim
92
92
  def filter_areas_and_types(area_types)
93
93
  area_types.map do |area_type|
94
94
  TreeNode.new(
95
- TreePoint.new(area_type.area_ids.join("_"), area_type.name[I18n.locale.to_s]),
95
+ TreePoint.new(area_type.area_ids.join("_"), decidim_escape_translated(area_type.name)),
96
96
  area_type.areas.map do |area|
97
97
  TreePoint.new(area.id.to_s, area.name[I18n.locale.to_s])
98
98
  end
@@ -11,6 +11,7 @@ module Decidim
11
11
  # Non-logged users permissions
12
12
  list_public_initiatives?
13
13
  read_public_initiative?
14
+ embed_public_initiative?
14
15
  search_initiative_types_and_scopes?
15
16
  request_membership?
16
17
 
@@ -57,6 +58,15 @@ module Decidim
57
58
  disallow!
58
59
  end
59
60
 
61
+ def embed_public_initiative?
62
+ return unless [:initiative, :participatory_space].include?(permission_action.subject) &&
63
+ permission_action.action == :embed
64
+
65
+ return disallow! if initiative.created? || initiative.validating? || initiative.discarded?
66
+
67
+ allow!
68
+ end
69
+
60
70
  def search_initiative_types_and_scopes?
61
71
  return unless permission_action.action == :search
62
72
  return unless [:initiative_type, :initiative_type_scope, :initiative_type_signature_types].include?(permission_action.subject)
@@ -36,7 +36,7 @@
36
36
  <div class="tabs-panel <%= "is-active" if type == default_type %>" id="<%= "initiativeType#{type.id}" %>">
37
37
  <h2 class="section-heading"><%= translated_attribute(type.title) %></h2>
38
38
  <div>
39
- <%= raw translated_attribute type.description %>
39
+ <%= decidim_escape_translated(type.description) %>
40
40
  </div>
41
41
  <br>
42
42
  <%= decidim_form_for(@form, url: next_wizard_path, method: :put, html: { id: "new_initiative_#{type.id}", class: "form select-initiative_type-form" }) do |f| %>
@@ -5,9 +5,9 @@
5
5
  <h5><%= t("decidim.initiatives.initiatives.result.answer_title") %>:</h5>
6
6
  <p>
7
7
  <% if initiative.answer_url.present? %>
8
- <a href="<%= initiative.answer_url %>" target="_blank">
8
+ <%= link_to initiative.answer_url, target: "_blank", rel: "noopener noreferrer" do %>
9
9
  <%= decidim_sanitize_editor translated_attribute initiative.answer %>
10
- </a>
10
+ <% end %>
11
11
  <% else %>
12
12
  <%= decidim_sanitize_editor translated_attribute initiative.answer %>
13
13
  <% end %>
@@ -1,7 +1,7 @@
1
1
  <ul class="tags tags--initiative">
2
- <li><%= link_to translated_attribute(resource.type.title), initiatives_path(filter: { with_any_type: [resource.type.id] }) %></li>
3
- <li><%= link_to translated_attribute(resource.scope_name), initiatives_path(filter: { with_any_scope: [resource.scope&.id] }) %></li>
2
+ <li><%= link_to decidim_escape_translated(resource.type.title).html_safe, initiatives_path(filter: { with_any_type: [resource.type.id] }) %></li>
3
+ <li><%= link_to decidim_escape_translated(resource.scope_name), initiatives_path(filter: { with_any_scope: [resource.scope&.id] }) %></li>
4
4
  <% if resource.area %>
5
- <li><%= link_to translated_attribute(resource.area_name), initiatives_path(filter: { with_any_area: [resource.area.id] }) %></li>
5
+ <li><%= link_to decidim_escape_translated(resource.area_name), initiatives_path(filter: { with_any_area: [resource.area.id] }) %></li>
6
6
  <% end %>
7
7
  </ul>
@@ -65,7 +65,9 @@ edit_link(
65
65
  </div>
66
66
  <% end %>
67
67
  <%= render partial: "decidim/shared/share_modal" %>
68
- <%= embed_modal_for initiative_widget_url(current_initiative, format: :js) %>
68
+ <% if allowed_to? :embed, :initiative, initiative: current_initiative %>
69
+ <%= embed_modal_for initiative_widget_url(current_initiative, format: :js) %>
70
+ <% end %>
69
71
  <%= resource_reference(current_initiative) %>
70
72
  <%= resource_version(current_initiative, versions_path: initiative_versions_path(current_initiative)) %>
71
73
  </div>
@@ -63,7 +63,9 @@ ar:
63
63
  components: المكونات
64
64
  information: معلومات
65
65
  initiatives: المبادرات
66
+ initiatives_settings: الإعدادات
66
67
  initiatives_types: أنواع المبادرة
68
+ moderations: الإشراف
67
69
  models:
68
70
  initiatives:
69
71
  fields:
@@ -173,6 +175,7 @@ ar:
173
175
  success: تم إرسال المبادرة إلى التحقق الفني
174
176
  update: تحديث
175
177
  form:
178
+ settings: الإعدادات
176
179
  title: معلومات عامة
177
180
  index:
178
181
  actions_title: عمل
@@ -6,9 +6,152 @@ bg:
6
6
  decidim_user_group_id: Автор
7
7
  description: Описание
8
8
  offline_votes: Лични подписи
9
+ errors:
10
+ models:
11
+ initiative:
12
+ attributes:
13
+ attachment:
14
+ title: Заглавието не трябва да бъде празно
15
+ activerecord:
16
+ models:
17
+ decidim/initiative:
18
+ one: Инициатива
19
+ other: Инициативи
9
20
  decidim:
21
+ admin:
22
+ initiatives_settings:
23
+ update:
24
+ error: Възникна грешка
25
+ success: Настройките на инициативите са актуализирани успешно
26
+ gamification:
27
+ badges:
28
+ initiatives:
29
+ description_own: Публикували сте %{score} инициативи.
30
+ unearned_another: Този участник все още няма публикувани инициативи.
10
31
  initiatives:
32
+ admin:
33
+ committee_requests:
34
+ index:
35
+ invite_to_committee_help: Споделете този линк, за да поканите други участници в промоторския комитет
36
+ no_members_yet: Няма участници в промоторския комитет
37
+ initiatives:
38
+ edit:
39
+ success: Инициативата е изпратена за техническа валидация
40
+ update:
41
+ error: Възникна грешка
42
+ success: Инициативата беше актуализирана успешно
43
+ initiatives_type_scopes:
44
+ create:
45
+ error: Възникна грешка
46
+ success: Създаден е нов обхват за дадения тип инициатива
47
+ destroy:
48
+ success: Обхватът беше премахнат успешно
49
+ edit:
50
+ destroy: Изтрий
51
+ update:
52
+ error: Възникна грешка
53
+ success: Обхватът беше актуализиран успешно
54
+ initiatives_types:
55
+ create:
56
+ error: Възникна грешка
57
+ success: Успешно е създаден нов тип инициатива
58
+ destroy:
59
+ success: Типът инициатива беше премахнат успешно
60
+ edit:
61
+ destroy: Изтрий
62
+ update:
63
+ error: Възникна грешка
64
+ success: Типът инициатива беше актуализиран успешно
11
65
  application_helper:
12
66
  filter_state_values:
13
67
  closed: Затворен
14
68
  open: Отворен
69
+ committee_requests:
70
+ new:
71
+ help_text: На път сте да заявите членство в промоторския комитет на тази инициатива
72
+ create_initiative:
73
+ fill_data:
74
+ decidim_user_group_id_help: Не е възможно да се промени авторството на инициативата след създаването и.
75
+ finish_help:
76
+ access_reminder: Можете да достъпите инициативите си чрез филтъра %{link} на страницата Инициативи.
77
+ previous_form:
78
+ help: В какво се състои инициативата? Напишете заглавието и описанието. Препоръчваме кратко заглавие и описание, което да включва предложеното решение.
79
+ show_similar_initiatives:
80
+ compare_help: Ако някоя от следните инициативи е подобна на Вашата, препоръчваме да се подпишете в нея. Така ще има повече възможности за осъществяването на предложението Ви.
81
+ continue: Моята инициатива е различна
82
+ form:
83
+ delete_attachment: Изтрий
84
+ index:
85
+ uninitialized: Инициативите все още не са конфигурирани от администратор
86
+ initiative_signatures:
87
+ fill_personal_data:
88
+ date_select:
89
+ day: Ден
90
+ month: Месец
91
+ year: Година
92
+ help: Моля, попълнете личните си данни в следните полета, за да подпишете инициативата
93
+ sms_phone_number:
94
+ help: Попълнете потвърдения си телефонен номер във формуляра, за да заявите вашия код за потвърждение
95
+ initiative_votes:
96
+ create:
97
+ invalid: Предоставената информация за подписване на инициативата не е валидна
98
+ success_html: Поздравления! Подписахте успешно инициативата <strong> %{title}</strong>
99
+ sms_code:
100
+ invalid: Кодът Ви за потвърждение не съвпада с нашия. Моля, проверете отново съобщението, което Ви изпратихме със SMS.
101
+ initiatives:
102
+ author:
103
+ deleted: Изтрито
104
+ committee_members:
105
+ invite_to_committee_help: Споделете този линк, за да поканите други участници в промоторския комитет
106
+ no_members_yet: Няма участници в промоторския комитет
107
+ filters:
108
+ search: Търсене
109
+ filters_small_view:
110
+ close_modal: Затвори прозореца
111
+ filter: Филтър
112
+ filter_by: Филтрирай по
113
+ unfold: Разгъване
114
+ index_header:
115
+ not_authorized:
116
+ authorizations_page: Преглед на оторизациите
117
+ close: Затвори
118
+ explanation: Трябва да преминете проверка, за да създадете нова инициатива.
119
+ title: Изисква се оторизация
120
+ result:
121
+ answer_title: На тази инициатива е отговорено
122
+ show:
123
+ any_vote_method: За тази гражданска инициатива се събират подписи както онлайн, така и лично.
124
+ follow_description: Получавайте известия, когато има новини за тази инициатива
125
+ offline_method: За тази гражданска инициатива се събират подписи само лично.
126
+ print: Отпечатай инициативата
127
+ vote_cabin:
128
+ supports_required: "Необходими са %{total_supports} подписа"
129
+ votes_count:
130
+ most_popular_initiative: Най-популярна инициатива
131
+ need_more_votes: Има нужда от повече подписи
132
+ signature_interval:
133
+ title: Период за събиране на подписи
134
+ update:
135
+ error: Възникна грешка
136
+ success: Инициативата беше актуализирана успешно
137
+ versions:
138
+ shared:
139
+ back_to_resource: Връщане назад към инициативата
140
+ layouts:
141
+ decidim:
142
+ initiative_creation_header:
143
+ previous_form: Начало
144
+ show_similar_initiatives: Сравнете
145
+ step: Стъпка %{current} от общо %{total}
146
+ title: Създаване на нова инициатива
147
+ initiative_header:
148
+ initiative_menu_item: Инициатива
149
+ initiative_signature_creation_header:
150
+ finished: Подписът на инициативата е създаден
151
+ see_steps: вижте стъпките
152
+ select_identity: Изберете идентичност
153
+ step: Стъпка %{current} от общо %{total}
154
+ initiatives:
155
+ initiative:
156
+ check: Прегледайте
157
+ check_and_support: Прегледайте и се подпишете
@@ -153,33 +153,33 @@ ca:
153
153
  admin:
154
154
  initiative_sent_to_technical_validation:
155
155
  email_intro: La iniciativa "%{resource_title}" s'ha enviat a validació tècnica. Comprova-ho a través del <a href="%{admin_initiative_url}">taullel d'administració</a>
156
- email_outro: Has rebut aquesta notificació perquè ets una de les administradores de la plataforma.
156
+ email_outro: Has rebut aquesta notificació perquè admnistres la plataforma.
157
157
  email_subject: La iniciativa %{resource_title} ha sol·licitat validació tècnica.
158
158
  notification_title: La iniciativa "%{resource_title}" s'ha enviat a validació tècnica. Comprova-ho a través del <a href="%{admin_initiative_path}">taullel d'administració</a>
159
159
  initiative_extended:
160
160
  email_intro: La data de finalització de recollida de signatures per a la iniciativa %{resource_title} s'ha ampliat!
161
- email_outro: Has rebut aquesta notificació perquè estàs seguint %{resource_title}. Pots deixar de rebre notificacions seguint l'enllaç anterior.
161
+ email_outro: Has rebut aquesta notificació perquè estàs seguint la iniciativa "%{resource_title}". Pots deixar de rebre notificacions seguint l'enllaç anterior.
162
162
  email_subject: S'ha ampliat la data de finalització de la recollida de signatura de la iniciativa!
163
163
  notification_title: El termini de recollida de signatures per a la iniciativa <a href="%{resource_path}">%{resource_title}</a> s'ha ampliat.
164
164
  initiative_sent_to_technical_validation:
165
165
  email_intro: La iniciativa "%{resource_title}" s'ha enviat a validació tècnica. Comprova-ho a través del <a href="%{admin_initiative_url}">taulell d'administració</a>
166
- email_outro: Has rebut aquesta notificació perquè ets una de les administradores de la plataforma.
166
+ email_outro: Has rebut aquesta notificació perquè admnistres la plataforma.
167
167
  email_subject: La iniciativa %{resource_title} ha sol·licitat validació tècnica.
168
168
  notification_title: La iniciativa "%{resource_title}" s'ha enviat a validació tècnica. Comprova-ho a través del <a href="%{admin_initiative_path}">taullel d'administració</a>
169
169
  milestone_completed:
170
170
  affected_user:
171
171
  email_intro: La teva iniciativa %{resource_title} ha aconseguit un %{percentage}% de les signatures necessàries!
172
- email_outro: Has rebut aquesta notificació perquè ets l'autora de la iniciativa %{resource_title}.
172
+ email_outro: Has rebut aquesta notificació perquè promous la iniciativa "%{resource_title}".
173
173
  email_subject: S'ha completat una nova fita!
174
174
  notification_title: La teva iniciativa <a href="%{resource_path}">%{resource_title}</a> ha aconseguit el %{percentage}% de les signatures.
175
175
  follower:
176
176
  email_intro: La iniciativa %{resource_title} ha aconseguit el %{percentage}% de les signatures!
177
- email_outro: Has rebut aquesta notificació perquè estàs seguint %{resource_title}. Pots deixar de rebre notificacions seguint l'enllaç anterior.
177
+ email_outro: Has rebut aquesta notificació perquè estàs seguint la inciativa "%{resource_title}". Pots deixar de rebre notificacions seguint l'enllaç anterior.
178
178
  email_subject: S'ha completat una nova fita!
179
179
  notification_title: La iniciativa <a href="%{resource_path}">%{resource_title}</a> ha aconseguit el %{percentage}% de les signatures.
180
180
  support_threshold_reached:
181
181
  email_intro: La iniciativa %{resource_title} ha arribat al llindar de signatures
182
- email_outro: Has rebut aquesta notificació perquè ets una de les administradores de la plataforma.
182
+ email_outro: Has rebut aquesta notificació perquè admnistres la plataforma.
183
183
  email_subject: Llindar de signatures aconseguit
184
184
  notification_title: La iniciativa <a href="%{resource_path}">%{resource_title}</a> ha arribat al llindar de signatures
185
185
  gamification:
@@ -416,27 +416,27 @@ ca:
416
416
  events:
417
417
  approve_membership_request:
418
418
  email_intro: "%{author_nickname} ha acceptat la teva sol·licitud per formar part de la comissió promotora de la iniciativa %{resource_title}."
419
- email_outro: 'Has rebut aquesta notificació perquè has sol·licitat formar part de la iniciativa %{resource_title}'
419
+ email_outro: 'Has rebut aquesta notificació perquè has sol·licitat formar part de la iniciativa: "%{resource_title}"'
420
420
  email_subject: "%{author_nickname} ha acceptat la teva sol·licitud per formar part de la comissió promotora"
421
421
  notification_title: <a href="%{author_profile_url}">%{author_nickname}</a> ha acceptat la teva sol·licitud per formar part de la comissió promotora per la següent iniciativa <a href="%{resource_url}">%{resource_title}</a>.
422
422
  create_initiative_event:
423
423
  email_intro: "%{author_name} %{author_nickname}, a qui segueixes, ha creat una nova iniciativa. Comprova-la i contribueix:"
424
- email_outro: Has rebut aquesta notificació perquè estàs seguint %{author_nickname}. Pots deixar de rebre notificacions seguint l'enllaç anterior.
424
+ email_outro: Has rebut aquesta notificació perquè estàs seguint a "%{author_nickname}". Pots deixar de rebre notificacions seguint l'enllaç anterior.
425
425
  email_subject: Nova iniciativa de %{author_nickname}
426
426
  notification_title: La iniciativa <a href="%{resource_path}">%{resource_title}</a> va ser creada per <a href="%{author_path}">%{author_name} %{author_nickname}</a>.
427
427
  endorse_initiative_event:
428
428
  email_intro: "%{author_name} %{author_nickname}, a qui segueixes, ha donat suport a la següent iniciativa. Potser vols contribuir a la conversa:"
429
- email_outro: Has rebut aquesta notificació perquè estàs seguint %{author_nickname}. Pots deixar de rebre notificacions seguint l'enllaç anterior.
429
+ email_outro: Has rebut aquesta notificació perquè estàs seguint a "%{author_nickname}". Pots deixar de rebre notificacions seguint l'enllaç anterior.
430
430
  email_subject: Iniciativa adherida per %{author_nickname}
431
431
  notification_title: La iniciativa <a href="%{resource_path}">%{resource_title}</a> va ser adherida per <a href="%{author_path}">%{author_name} %{author_nickname}</a>.
432
432
  revoke_membership_request:
433
433
  email_intro: "%{author_nickname} ha rebutjat la teva sol·licitud per formar part de la comissió promotora per la iniciativa %{resource_title}."
434
- email_outro: 'Has rebut aquesta notificació perquè has sol·licitat formar part de la iniciativa %{resource_title}.'
434
+ email_outro: 'Has rebut aquesta notificació perquè has sol·licitat formar part de la iniciativa: "%{resource_title}".'
435
435
  email_subject: "%{author_nickname} ha rebutjat la teva sol·licitud per formar part de la comissió promotora"
436
436
  notification_title: <a href="%{author_profile_url}">%{author_nickname}</a> ha rebutjat la teva sol·licitud per formar part de la comissió promotora per la següent iniciativa <a href="%{resource_url}">%{resource_title}</a>.
437
437
  spawn_committee_request_event:
438
438
  email_intro: "%{applicant_nickname} ha sol·licitat formar part de la comissió promotora de la teva iniciativa %{resource_title}. Per a acceptar o rebutjar la sol·licitud, vés al formulari d'edició de la teva iniciativa."
439
- email_outro: 'Has rebut aquesta notificació perquè ets l''autora de la iniciativa %{resource_title}'
439
+ email_outro: 'Has rebut aquesta notificació perquè promous la iniciativa: "%{resource_title}"'
440
440
  email_subject: "%{applicant_nickname} vol unir-se a la teva iniciativa"
441
441
  notification_title: <a href="%{applicant_profile_url}">%{applicant_nickname}</a> ha sol·licitat formar part de la comissió promotora de la teva iniciativa <a href="%{resource_url}">%{resource_title}</a>. Per acceptar-ho o rebutjar-ho fes clic <a href="%{resource_url}/edit">aquí</a>.
442
442
  form:
@@ -20,7 +20,7 @@ de:
20
20
  any: Gemischt
21
21
  offline: Angesicht zu Angesicht
22
22
  online: Online
23
- state: Zustand
23
+ state: Status
24
24
  title: Titel
25
25
  type_id: Typ
26
26
  initiatives_committee_member:
@@ -86,7 +86,7 @@ de:
86
86
  decidim_area_id_eq:
87
87
  label: Bereich
88
88
  state_eq:
89
- label: Zustand
89
+ label: Status
90
90
  values:
91
91
  accepted: Ausreichend Unterschriften
92
92
  created: Erstellt
@@ -117,7 +117,7 @@ de:
117
117
  created_at: Erstellt am
118
118
  id: ID
119
119
  published_at: Veröffentlicht am
120
- state: Zustand
120
+ state: Status
121
121
  supports_count: Unterschriften
122
122
  title: Initiativen
123
123
  initiatives_type_scope:
@@ -212,9 +212,9 @@ de:
212
212
  info_initiative:
213
213
  created_at: Erstellt am
214
214
  description: Beschreibung
215
- initiative_votes_count: Stimmen zählen
215
+ initiative_votes_count: Anzahl Stimmen
216
216
  initiatives: Initiativen
217
- state: Zustand
217
+ state: Status
218
218
  committee_requests:
219
219
  index:
220
220
  approve: Genehmigen
@@ -498,7 +498,7 @@ de:
498
498
  myself: Meine Initiativen
499
499
  scope: Umfang
500
500
  search: Suche
501
- state: Zustand
501
+ state: Status
502
502
  type: Art
503
503
  filters_small_view:
504
504
  close_modal: Fenster schließen
@@ -153,33 +153,33 @@ es:
153
153
  admin:
154
154
  initiative_sent_to_technical_validation:
155
155
  email_intro: La iniciativa "%{resource_title}" ha sido enviada a validación técnica. Compruébalo a través del <a href="%{admin_initiative_url}"> panel de administración</a>
156
- email_outro: Has recibido esta notificación porque eres una de las administradoras de la plataforma.
156
+ email_outro: Has recibido esta notificación porque administras la plataforma.
157
157
  email_subject: La iniciativa %{resource_title} ha solicitado validación técnica.
158
158
  notification_title: La iniciativa "%{resource_title}" ha sido enviada a validación técnica. Compruébalo a través del <a href="%{admin_initiative_path}"> panel de administración</a>
159
159
  initiative_extended:
160
160
  email_intro: '¡El plazo de finalización de la iniciativa %{resource_title} se ha ampliado!'
161
- email_outro: Has recibido esta notificación porque está siguiendo %{resource_title}. Puedes dejar de recibir notificaciones siguiendo el enlace anterior.
161
+ email_outro: Has recibido esta notificación porque está siguiendo la iniciactiva "%{resource_title}". Puedes dejar de recibir notificaciones siguiendo el enlace anterior.
162
162
  email_subject: '¡Ampliado el términio de recogida de firmas para esta iniciativa!'
163
163
  notification_title: El plazo de recogida de firmas para la iniciativa <a href="%{resource_path}">%{resource_title}</a> se ha ampliado.
164
164
  initiative_sent_to_technical_validation:
165
165
  email_intro: La iniciativa "%{resource_title}" ha sido enviada a la validación técnica. Compruébala en <a href="%{admin_initiative_url}">el panel de administración</a>
166
- email_outro: Has recibido esta notificación porque eres una administradora de la plataforma.
166
+ email_outro: Has recibido esta notificación porque administras la plataforma.
167
167
  email_subject: La iniciativa "%{resource_title}" fue enviada a validación técnica.
168
168
  notification_title: La iniciativa "%{resource_title}" ha sido enviada a validación técnica. Compruébalo en <a href="%{admin_initiative_path}">el panel de administración</a>
169
169
  milestone_completed:
170
170
  affected_user:
171
171
  email_intro: '¡Tu iniciativa %{resource_title} ha conseguido el %{percentage}% de las firmas necesarias!'
172
- email_outro: Has recibido esta notificación porque eres la autora de la iniciativa %{resource_title}.
172
+ email_outro: Has recibido esta notificación porque promueves la iniciativa "%{resource_title}".
173
173
  email_subject: '¡Nuevo hito completado!'
174
174
  notification_title: Tu iniciativa <a href="%{resource_path}">%{resource_title}</a> ha conseguido el %{percentage}% de firmas.
175
175
  follower:
176
176
  email_intro: '¡La iniciativa %{resource_title} ha logrado el %{percentage}% de firmas!'
177
- email_outro: Has recibido esta notificación porque estás siguiendo a %{resource_title}. Puedes dejar de recibir notificaciones siguiendo el enlace anterior.
177
+ email_outro: Has recibido esta notificación porque estás siguiendo la iniciativa "%{resource_title}". Puedes dejar de recibir notificaciones siguiendo el enlace anterior.
178
178
  email_subject: '¡Nuevo hito completado!'
179
179
  notification_title: La iniciativa <a href="%{resource_path}">%{resource_title}</a> ha logrado el %{percentage}% de las firmas.
180
180
  support_threshold_reached:
181
181
  email_intro: La iniciativa %{resource_title} ha alcanzado el umbral de firmas
182
- email_outro: Has recibido esta notificación porque eres una de las administradoras de la plataforma.
182
+ email_outro: Has recibido esta notificación porque administras la plataforma.
183
183
  email_subject: Umbral de firmas alcanzado
184
184
  notification_title: La iniciativa <a href="%{resource_path}">%{resource_title}</a> ha alcanzado el umbral de firmas
185
185
  gamification:
@@ -431,12 +431,12 @@ es:
431
431
  notification_title: La iniciativa <a href="%{resource_path}">%{resource_title}</a> fue adherida por <a href="%{author_path}">%{author_name} %{author_nickname}</a>.
432
432
  revoke_membership_request:
433
433
  email_intro: "%{author_nickname} rechazó tu solicitud para formar parte del comité promotor de la siguiente iniciativa %{resource_title}."
434
- email_outro: 'Has recibido esta notificación porque has solicitado unirte a esta iniciativa: %{resource_title}.'
434
+ email_outro: 'Has recibido esta notificación porque has solicitado unirte a esta iniciativa: "%{resource_title}".'
435
435
  email_subject: "%{author_nickname} rechazó tu solicitud para unirte al comité promotor"
436
436
  notification_title: <a href="%{author_profile_url}">%{author_nickname}</a> rechazó tu solicitud para formar parte del comité promotor de la siguiente iniciativa <a href="%{resource_url}">%{resource_title}</a>.
437
437
  spawn_committee_request_event:
438
438
  email_intro: "%{applicant_nickname} ha solicitado unirse al comité promotor de tu iniciativa %{resource_title}. Para aceptar o rechazar la solicitud, ve al formulario de edición de tu iniciativa."
439
- email_outro: 'Has recibido esta notificación porque eres la autora de la iniciativa %{resource_title}'
439
+ email_outro: 'Has recibido esta notificación porque promueves esta iniciativa: "%{resource_title}"'
440
440
  email_subject: "%{applicant_nickname} quiere unirse a tu iniciativa"
441
441
  notification_title: <a href="%{applicant_profile_url}">%{applicant_nickname}</a> ha solicitado unirse al comité promotor de tu iniciativa <a href="%{resource_url}">%{resource_title}</a>. Para aceptar o rechazar la solicitud haz clic <a href="%{resource_url}/edit">aquí</a>.
442
442
  form:
@@ -0,0 +1 @@
1
+ he:
@@ -98,7 +98,7 @@ hu:
98
98
  initiatives_settings:
99
99
  update:
100
100
  error: Hiba történt
101
- success: A kezdeményezés frissítése sikeres volt
101
+ success: A kezdeményezés beállításai sikeresen frissültek
102
102
  menu:
103
103
  attachments: Csatolmányok
104
104
  committee_members: Bizottsági tagok
@@ -216,7 +216,7 @@ hu:
216
216
  index:
217
217
  approve: Jóváhagy
218
218
  confirm_revoke: Biztos vagy benne?
219
- invite_to_committee_help: Oszd meg a linket felhasználók meghívásához a promóciós bizottságba
219
+ invite_to_committee_help: Oszd meg a linket felhasználók meghívásához a kezdeményező bizottságba
220
220
  no_members_yet: A kezdeményező bizottságban nincsenek tagok
221
221
  revoke: Visszavonás
222
222
  title: Bizottsági tagok
@@ -256,7 +256,7 @@ hu:
256
256
  photos: Fotók
257
257
  update:
258
258
  error: Hiba történt
259
- success: Az állampolgári kezdeményezés frissítése sikeres
259
+ success: A kezdeményezés frissítése sikeres
260
260
  initiatives_settings:
261
261
  edit:
262
262
  update: Frissítés
@@ -298,6 +298,8 @@ hu:
298
298
  update: Frissítés
299
299
  form:
300
300
  authorizations: Hitelesítési beállítások
301
+ child_scope_threshold_enabled_help: 'Ez a konfigurációs jelző nem támogatja az offline szavazást. Engedélyezi az altartományokat, és egy olyan engedélyezési kezelővel működik, amely egy tartományt társít a felhasználóhoz. Győződjön meg róla, hogy ezt a jogosultságot választja ki, alább az engedélyezési beállításoknál. A működéséhez a hatóköröket hierarchikusan kell konfigurálni: 1 Szülő - N gyermek. A konfiguráció működéséről bővebb információért lásd a következő oldalon <a href="https://docs.decidim.org/en/admin/spaces/initiatives/" target="_blank">kezdeményezések admin dokumentációs oldalán</a>.'
302
+ only_global_scope_enabled_help: Jelölje be ezt a jelölőnégyzetet, ha engedélyezte a "Gyermek hatókör aláírás" opciót, és a globális hatókörét szülő hatókörként konfigurálta. Ennek engedélyezésével a kezdeményezés típusának kiválasztása kihagyásra kerül a kezdeményezés létrehozására szolgáló varázslóban. A konfiguráció működésével kapcsolatos további információkért lásd ezt a cikket<a href="https://docs.decidim.org/en/admin/spaces/initiatives/" target="_blank">link</a>.
301
303
  options: Opciók
302
304
  title: Általános információ
303
305
  initiative_type_scopes:
@@ -358,6 +360,7 @@ hu:
358
360
  fill_data:
359
361
  back: Vissza
360
362
  continue: Tovább
363
+ decidim_user_group_id_help: A kezdeményezés létrehozása után nem változtatható meg a tulajdonosa
361
364
  fill_data_help: "<ul><li>Nézd meg a kezdeményezésed tartalmát. Könnyű megérteni? Tiszta a kezdeményezésed célja?</li><li>Az aláírás típusát válaszd ki. Személyes, online vagy a kombinációja mindkettőnek</li><li>Mi a földrajzi hatóköre a kezdeményezésednek?</li></ul>"
362
365
  more_information: "(További információk)"
363
366
  select_area: Válasszon ki egy területet
@@ -439,6 +442,7 @@ hu:
439
442
  delete_attachment: Törlés
440
443
  index:
441
444
  title: Kezdeményezések
445
+ uninitialized: A kezdeményezések nincsenek még beállítva az adminisztrátor által
442
446
  initiative_signatures:
443
447
  fill_personal_data:
444
448
  continue: Tovább
@@ -581,6 +585,11 @@ hu:
581
585
  status_change_for: A(z) %{title} kezdeményezés állapota változott
582
586
  last_activity:
583
587
  new_initiative: Új kezdeményezés
588
+ pages:
589
+ home:
590
+ highlighted_initiatives:
591
+ active_initiatives: Aktív kezdeményezések
592
+ see_all_initiatives: Az összes kezdeményezés megtekintése
584
593
  show:
585
594
  badge_name:
586
595
  accepted: Elegendő aláírás
@@ -298,6 +298,8 @@ ja:
298
298
  update: 更新
299
299
  form:
300
300
  authorizations: 認証設定
301
+ child_scope_threshold_enabled_help: 'この設定フラグはオフライン投票に対応していません。サブスコープを有効にし、ユーザーにスコープを関連付ける権限ハンドラと連携します。認証設定の下部で、その認証を選択することを確認してください。これを動作させるためには、スコープを階層的に設定する必要があります:1つの親 - N個の子。この設定がどのように機能するかの詳細は、 <a href="https://docs.decidim.org/en/admin/spaces/initiatives/" target="_blank">イニシアチブの管理者向けドキュメントページ</a> を参照してください。'
302
+ only_global_scope_enabled_help: '「子スコープ署名」を有効にし、グローバルスコープを親スコープとして設定した場合、このフラグをチェックします。これを有効にすると、イニシアチブ作成ウィザードでのイニシアチブタイプの選択がスキップされます。この仕組みについての詳細は、こちらの <a href="https://docs.decidim.org/en/admin/spaces/initiatives/" target="_blank">リンク</a> を参照してください。'
301
303
  options: オプション
302
304
  title: 一般情報
303
305
  initiative_type_scopes:
@@ -341,6 +341,8 @@ lb:
341
341
  email_outro: 'Sie haben diese Benachrichtigung erhalten, weil Sie der Autor der Initiative %{resource_title} sind'
342
342
  email_subject: "%{applicant_nickname} möchte Ihrer Initiative beitreten"
343
343
  notification_title: <a href="%{applicant_profile_url}">%{applicant_nickname}</a> hat sich für das Promoter-Komittee Ihrer Initiative <a href="%{resource_url}">%{resource_title}</a> beworben. Um anzunehmen oder abzulehnen, klicken Sie <a href="%{resource_url}/edit">hier</a>.
344
+ form:
345
+ delete_attachment: Löschen
344
346
  index:
345
347
  title: Initiativen
346
348
  initiative_signatures:
@@ -283,6 +283,8 @@ pl:
283
283
  update: Aktualizuj
284
284
  form:
285
285
  authorizations: Ustawienia autoryzacji
286
+ child_scope_threshold_enabled_help: 'Ta flaga konfiguracja nie wspiera głosowania offline. Zezwala ona na pod-zakresy i działa z uchwytem autoryzacji, który łączy zakres z użytkownikiem. Upewnij się, że wybrałeś(aś) taką autoryzację w sekcji autoryzacji poniżej. Zakresy muszą być konfigurowane w hierarchii: 1 Rodzic - N element podrzędny. Więcej informacji o działaniu tej konfiguracji znajdziesz pod tą <a href="https://docs.decidim.org/en/admin/spaces/initiatives/" target="_blank">stroną dokumentacji administracji inicjatywami</a>.'
287
+ only_global_scope_enabled_help: Zaznacz tę flagę, jeśli włączyłeś(aś) opcję "Podpisy zakresu podrzędnego" i skonfigurowałeś(aś) globalny zakres jako zakres nadrzędny. Umożliwiając to działanie, wybór typu inicjatywy zostanie pominięty w kreatorze tworzenia inicjatyw. Aby uzyskać więcej informacji na temat funkcjonowania tej konfiguracji, zobacz ten <a href="https://docs.decidim.org/en/admin/spaces/initiatives/" target="_blank">link</a>.
286
288
  options: Ustawienia
287
289
  title: Informacje ogólne
288
290
  initiative_type_scopes:
@@ -299,6 +301,12 @@ pl:
299
301
  send_to_technical_validation: "%{user_name} wysłał(a) inicjatywę %{resource_name} do weryfikacji technicznej"
300
302
  unpublish: "%{user_name} odrzucił(a) inicjatywę %{resource_name}"
301
303
  update: "%{user_name} zaktualizował(a) inicjatywę %{resource_name}"
304
+ initiatives_settings:
305
+ update: "%{user_name} zaktualizował(a) ustawienia inicjatyw"
306
+ initiatives_type:
307
+ create: "%{user_name} utworzył(a) typ inicjatywy %{resource_name}"
308
+ delete: "Użytkownik %{user_name} usunął typ inicjatywy %{resource_name}"
309
+ update: "%{user_name} zaktualizował(a) typ inicjatyw %{resource_name}"
302
310
  admin_states:
303
311
  accepted: Wystarczająca liczba podpisów
304
312
  created: Utworzono
@@ -415,6 +423,7 @@ pl:
415
423
  notification_title: <a href="%{applicant_profile_url}">%{applicant_nickname}</a> złożył wniosek na członka komitetu organizacyjnego Twojej inicjatywy <a href="%{resource_url}">%{resource_title}</a>. Aby zaakceptować lub odrzucić kliknij <a href="%{resource_url}/edit">tutaj</a>.
416
424
  form:
417
425
  add_attachments: Dokumenty
426
+ attachment_legend: "(Opcjonalnie) Dodaj załącznik"
418
427
  delete_attachment: Usuń
419
428
  index:
420
429
  title: Inicjatywy
@@ -520,6 +529,7 @@ pl:
520
529
  title: 'Tytuł:'
521
530
  type: Typ inicjatywy
522
531
  legal_text: Zgromadzone dane osobowe zostaną dołączone do zasobów i traktowane w sposób poufny przez organizację zgodnie z obowiązującymi przepisami.
532
+ members_header: Członkowie komitetu promocyjnego inicjatywy
523
533
  phone_number: Numer telefonu
524
534
  place_date: Miejsce, data
525
535
  postal_code: Kod pocztowy
@@ -570,6 +580,11 @@ pl:
570
580
  status_change_for: Inicjatywa %{title} zmieniła swój status
571
581
  last_activity:
572
582
  new_initiative: Nowa inicjatywa
583
+ pages:
584
+ home:
585
+ highlighted_initiatives:
586
+ active_initiatives: Aktualne inicjatywy
587
+ see_all_initiatives: Zobacz wszystkie inicjatywy
573
588
  show:
574
589
  badge_name:
575
590
  accepted: Wystarczająca liczba podpisów
@@ -58,6 +58,9 @@ pt-BR:
58
58
  title: O título não pode ficar vazio
59
59
  activerecord:
60
60
  models:
61
+ decidim/initiative:
62
+ one: Iniciativa
63
+ other: Iniciativas
61
64
  decidim/initiative_comittee:
62
65
  one: Comissão
63
66
  other: Comissões
@@ -184,8 +187,8 @@ pt-BR:
184
187
  help:
185
188
  participatory_spaces:
186
189
  initiatives:
187
- contextual: "<p>Uma iniciativa é uma proposta que pode ser promovida por qualquer pessoa por sua própria iniciativa (independentemente de outros canais ou espaços de participação) através da coleta de assinaturas (digitais) para a organização realizar uma ação específica (modificar um regulamento, iniciar um projeto , mude o nome de um departamento ou de uma rua, etc.).</p> <p>Os promotores de uma iniciativa podem definir seus objetivos, reunir apoio, debater, divulgá-la e definir pontos de encontro onde as assinaturas podem ser coletadas dos participantes ou debates abertos a outros participantes.</p> <p>Exemplos: Uma iniciativa pode coletar assinaturas para convocar uma consulta entre todas as pessoas de uma organização, ou para criar ou convocar uma assembléia, ou para iniciar um processo de aumento de orçamento para um território ou área da organização. Durante o processo de coleta de assinaturas, mais pessoas podem aumentar essa demanda e levá-la adiante na organização.</p>\n"
188
- page: "<p>Uma iniciativa é uma proposta que pode ser promovida por qualquer pessoa por sua própria iniciativa (independentemente de outros canais ou espaços de participação) através da coleta de assinaturas (digitais) para a organização realizar uma ação específica (modificar um regulamento, iniciar um projeto , mude o nome de um departamento ou de uma rua, etc.).</p> <p>Os promotores de uma iniciativa podem definir seus objetivos, reunir apoio, debater, divulgá-la e definir pontos de encontro onde as assinaturas podem ser coletadas dos participantes ou debates abertos a outros participantes.</p> <p>Exemplos: Uma iniciativa pode coletar assinaturas para convocar uma consulta entre todas as pessoas de uma organização, ou para criar ou convocar uma assembléia, ou para iniciar um processo de aumento de orçamento para um território ou área da organização. Durante o processo de coleta de assinaturas, mais pessoas podem aumentar essa demanda e levá-la adiante na organização.</p>\n"
190
+ contextual: "<p>Uma <strong>iniciativa</strong> é uma proposta que pode ser promovida por qualquer pessoa por sua própria iniciativa (independentemente de outros canais ou espaços de participação) através da coleta de assinaturas (digitais) para a organização realizar uma ação específica (modificar um regulamento, iniciar um projeto, mudar o nome de um departamento ou de uma rua, etc.).</p> <p>Os promotores de uma iniciativa podem definir seus objetivos, reunir apoio, debater, divulgá-la e definir pontos de encontro onde as assinaturas podem ser coletadas dos participantes ou debates abertos a outros participantes.</p> <p>Exemplos: Uma iniciativa pode coletar assinaturas para convocar uma consulta entre todas as pessoas de uma organização, ou para criar ou convocar uma assembleia, ou para iniciar um processo de aumento de orçamento para um território ou área da organização. Durante o processo de coleta de assinaturas, mais pessoas podem aumentar essa demanda e levá-la adiante na organização.</p>\n"
191
+ page: "<p>Uma <strong>iniciativa</strong> é uma proposta que pode ser promovida por qualquer pessoa por sua própria iniciativa (independentemente de outros canais ou espaços de participação) através da coleta de assinaturas (digitais) para a organização realizar uma ação específica (modificar um regulamento, iniciar um projeto, mudar o nome de um departamento ou de uma rua, etc.).</p> <p>Os promotores de uma iniciativa podem definir seus objetivos, reunir apoio, debater, divulgá-la e definir pontos de encontro onde as assinaturas podem ser coletadas dos participantes ou debates abertos a outros participantes.</p> <p>Exemplos: Uma iniciativa pode coletar assinaturas para convocar uma consulta entre todas as pessoas de uma organização, ou para criar ou convocar uma assembleia, ou para iniciar um processo de aumento de orçamento para um território ou área da organização. Durante o processo de coleta de assinaturas, mais pessoas podem aumentar essa demanda e levá-la adiante na organização.</p>\n"
189
192
  title: O que são iniciativas?
190
193
  initiatives:
191
194
  actions:
@@ -246,6 +249,14 @@ pt-BR:
246
249
  update:
247
250
  error: ocorreu um erro
248
251
  success: A iniciativa do cidadão foi atualizada com sucesso
252
+ initiatives_settings:
253
+ form:
254
+ comments: Mais comentado
255
+ date: Mais recente
256
+ publication_date: Mais recentemente publicado
257
+ random: Aleatório
258
+ signatures: Mais assinadas
259
+ title: Configurações de iniciativas
249
260
  initiatives_type_scopes:
250
261
  create:
251
262
  error: ocorreu um erro
@@ -277,6 +288,8 @@ pt-BR:
277
288
  update: Atualizar
278
289
  form:
279
290
  authorizations: Opções de autorização
291
+ child_scope_threshold_enabled_help: 'Esse parâmetro de configuração não suporta votos off-line, permite subescopos e funciona com um manipulador de autorização que associa o escopo ao usuário, certifique-se de selecionar a autorização, nas configurações de autorização. Para que funcione, os escopos precisam ser configurados de forma hierárquica: 1 Pai - N Filhos. Para mais informações sobre como essa configuração funciona, consulte este <a href="https://docs.decidim.org/en/admin/spaces/initiatives" target="_blank">link</a>.'
292
+ only_global_scope_enabled_help: Marque este sinalizador se você habilitou "Assinatura de escopo Filho" e configurou o escopo global como seu escopo pai. Habilitando esta possibilidade, a selecção do tipo de iniciativa será ignorada no assistente de criação de iniciativa. Para mais informações sobre como essa configuração funciona, consulte este <a href="https://docs.decidim.org/en/admin/spaces/initiatives/" target="_blank">link</a>.
280
293
  options: Opções
281
294
  title: Informação geral
282
295
  initiative_type_scopes:
@@ -293,6 +306,12 @@ pt-BR:
293
306
  send_to_technical_validation: "%{user_name} enviou a iniciativa %{resource_name} para validação técnica"
294
307
  unpublish: "%{user_name} descartou a iniciativa %{resource_name}"
295
308
  update: "%{user_name} atualizou a iniciativa %{resource_name}"
309
+ initiatives_settings:
310
+ update: "%{user_name} atualizou as configurações das iniciativas"
311
+ initiatives_type:
312
+ create: "%{user_name} criou o tipo de iniciativas %{resource_name}"
313
+ delete: "%{user_name} excluiu o tipo de iniciativas %{resource_name}"
314
+ update: "%{user_name} atualizou o tipo de iniciativas %{resource_name}"
296
315
  admin_states:
297
316
  accepted: Assinaturas suficientes
298
317
  created: Criada
@@ -331,6 +350,7 @@ pt-BR:
331
350
  fill_data:
332
351
  back: Costas
333
352
  continue: Continuar
353
+ decidim_user_group_id_help: Não é possível alterar a autoria da iniciativa após a criação
334
354
  fill_data_help: "<ul> <li>Revise o conteúdo de sua iniciativa. Seu título é fácil de entender? O objetivo da sua iniciativa é claro?</li> <li>Você tem que escolher o tipo de assinatura. Pessoalmente, online ou uma combinação de ambos</li> <li>Qual é o âmbito geográfico da iniciativa?</li> </ul>"
335
355
  more_information: "(Mais Informações)"
336
356
  select_area: Selecione uma área
@@ -408,9 +428,11 @@ pt-BR:
408
428
  notification_title: <a href="%{applicant_profile_url}">%{applicant_nickname}</a> se candidatou ao comitê de promotores da sua iniciativa <a href="%{resource_url}">%{resource_title}</a>. Para aceitar ou rejeitar, clique <a href="%{resource_url}/edit">aqui</a>.
409
429
  form:
410
430
  add_attachments: Documentos
431
+ attachment_legend: "(Opcional) Adicionar um anexo"
411
432
  delete_attachment: Excluir
412
433
  index:
413
434
  title: Iniciativas
435
+ uninitialized: Iniciativas ainda não estão configuradas por um administrador
414
436
  initiative_signatures:
415
437
  fill_personal_data:
416
438
  continue: Continuar
@@ -506,6 +528,7 @@ pt-BR:
506
528
  title: 'Título:'
507
529
  type: Tipo de iniciativa
508
530
  legal_text: Os dados pessoais recolhidos serão incorporados e tratados confidencialmente pela organização, de acordo com a legislação em vigor.
531
+ members_header: Membros do comitê de promotor da iniciativa
509
532
  phone_number: Número de telefone
510
533
  place_date: Local, data
511
534
  postal_code: CEP/CEP
@@ -565,6 +588,8 @@ pt-BR:
565
588
  published: Publicados
566
589
  rejected: Não há assinaturas suficientes
567
590
  validating: Validação técnica
591
+ signature_interval:
592
+ title: Período de coleta de assinatura
568
593
  states:
569
594
  accepted: Aceitaram
570
595
  expired: Expirado
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.push File.expand_path("lib", __dir__)
4
+
5
+ require "decidim/initiatives/version"
6
+
7
+ Gem::Specification.new do |s|
8
+ s.version = Decidim::Initiatives.version
9
+ s.authors = ["Juan Salvador Perez Garcia"]
10
+ s.email = ["jsperezg@gmail.com"]
11
+ s.license = "AGPL-3.0"
12
+ s.homepage = "https://github.com/decidim/decidim"
13
+ s.required_ruby_version = "~> 3.0.0"
14
+
15
+ s.name = "decidim-initiatives"
16
+ s.summary = "Decidim initiatives module"
17
+ s.description = "Participants initiatives plugin for decidim."
18
+
19
+ s.files = Dir.chdir(__dir__) do
20
+ `git ls-files -z`.split("\x0").select do |f|
21
+ (File.expand_path(f) == __FILE__) ||
22
+ f.start_with?(*%w(app/ config/ db/ lib/ Rakefile README.md))
23
+ end
24
+ end
25
+
26
+ s.add_dependency "decidim-admin", Decidim::Initiatives.version
27
+ s.add_dependency "decidim-comments", Decidim::Initiatives.version
28
+ s.add_dependency "decidim-core", Decidim::Initiatives.version
29
+ s.add_dependency "decidim-verifications", Decidim::Initiatives.version
30
+ s.add_dependency "origami", "~> 2.1"
31
+ s.add_dependency "rexml", "~> 3.2.5" # Required for Origami gem to work with Ruby 3.0.0+
32
+ s.add_dependency "wicked", "~> 1.3"
33
+ s.add_dependency "wicked_pdf", "~> 2.1"
34
+ s.add_dependency "wkhtmltopdf-binary", "~> 0.12"
35
+
36
+ s.add_development_dependency "decidim-dev", Decidim::Initiatives.version
37
+ s.add_development_dependency "decidim-meetings", Decidim::Initiatives.version
38
+ end
@@ -104,7 +104,7 @@ module Decidim
104
104
  initializer "admin_decidim_initiatives.admin_components_menu" do
105
105
  Decidim.menu :admin_initiatives_components_menu do |menu|
106
106
  current_participatory_space.components.each do |component|
107
- caption = translated_attribute(component.name)
107
+ caption = decidim_escape_translated(component.name)
108
108
  if component.primary_stat.present?
109
109
  caption += content_tag(:span, component.primary_stat, class: component.primary_stat.zero? ? "component-counter component-counter--off" : "component-counter")
110
110
  end
@@ -5,8 +5,11 @@ require "decidim/dev"
5
5
 
6
6
  FactoryBot.define do
7
7
  factory :initiatives_type, class: "Decidim::InitiativesType" do
8
- title { generate_localized_title }
9
- description { Decidim::Faker::Localized.wrapped("<p>", "</p>") { generate_localized_title } }
8
+ transient do
9
+ skip_injection { false }
10
+ end
11
+ title { generate_localized_title(:initiatives_type_title, skip_injection: skip_injection) }
12
+ description { generate_localized_description(:initiatives_type_description, skip_injection: skip_injection) }
10
13
  organization
11
14
  # Keep banner_image after organization
12
15
  banner_image do
@@ -82,7 +85,7 @@ FactoryBot.define do
82
85
 
83
86
  trait :with_user_extra_fields_collection do
84
87
  collect_user_extra_fields { true }
85
- extra_fields_legal_information { Decidim::Faker::Localized.wrapped("<p>", "</p>") { generate_localized_title } }
88
+ extra_fields_legal_information { generate_localized_description(:initiatives_type_extra_fields_legal_information, skip_injection: skip_injection) }
86
89
  document_number_authorization_handler { "dummy_authorization_handler" }
87
90
  end
88
91
 
@@ -100,20 +103,26 @@ FactoryBot.define do
100
103
  end
101
104
 
102
105
  factory :initiatives_type_scope, class: "Decidim::InitiativesTypeScope" do
103
- type { create(:initiatives_type) }
104
- scope { create(:scope, organization: type.organization) }
106
+ transient do
107
+ skip_injection { false }
108
+ end
109
+ type { create(:initiatives_type, skip_injection: skip_injection) }
110
+ scope { create(:scope, organization: type.organization, skip_injection: skip_injection) }
105
111
  supports_required { 1000 }
106
112
 
107
113
  trait :with_user_extra_fields_collection do
108
- type { create(:initiatives_type, :with_user_extra_fields_collection) }
114
+ type { create(:initiatives_type, :with_user_extra_fields_collection, skip_injection: skip_injection) }
109
115
  end
110
116
  end
111
117
 
112
118
  factory :initiative, class: "Decidim::Initiative" do
113
- title { generate_localized_title }
114
- description { Decidim::Faker::Localized.wrapped("<p>", "</p>") { generate_localized_title } }
119
+ transient do
120
+ skip_injection { false }
121
+ end
122
+ title { generate_localized_title(:initiative_title, skip_injection: skip_injection) }
123
+ description { generate_localized_description(:initiative_description, skip_injection: skip_injection) }
115
124
  organization
116
- author { create(:user, :confirmed, organization: organization) }
125
+ author { create(:user, :confirmed, organization: organization, skip_injection: skip_injection) }
117
126
  published_at { Time.current }
118
127
  state { "published" }
119
128
  signature_type { "online" }
@@ -121,15 +130,15 @@ FactoryBot.define do
121
130
  signature_end_date { Date.current + 120.days }
122
131
 
123
132
  scoped_type do
124
- create(:initiatives_type_scope,
125
- type: create(:initiatives_type, organization: organization, signature_type: signature_type))
133
+ create(:initiatives_type_scope, skip_injection: skip_injection,
134
+ type: create(:initiatives_type, organization: organization, signature_type: signature_type, skip_injection: skip_injection))
126
135
  end
127
136
 
128
- after(:create) do |initiative|
137
+ after(:create) do |initiative, evaluator|
129
138
  if initiative.author.is_a?(Decidim::User) && Decidim::Authorization.where(user: initiative.author).where.not(granted_at: nil).none?
130
- create(:authorization, user: initiative.author, granted_at: Time.now.utc)
139
+ create(:authorization, user: initiative.author, granted_at: Time.now.utc, skip_injection: evaluator.skip_injection)
131
140
  end
132
- create_list(:initiatives_committee_member, 3, initiative: initiative)
141
+ create_list(:initiatives_committee_member, 3, initiative: initiative, skip_injection: evaluator.skip_injection)
133
142
  end
134
143
 
135
144
  trait :created do
@@ -198,13 +207,13 @@ FactoryBot.define do
198
207
 
199
208
  trait :with_user_extra_fields_collection do
200
209
  scoped_type do
201
- create(:initiatives_type_scope,
202
- type: create(:initiatives_type, :with_user_extra_fields_collection, organization: organization))
210
+ create(:initiatives_type_scope, skip_injection: skip_injection,
211
+ type: create(:initiatives_type, :with_user_extra_fields_collection, organization: organization, skip_injection: skip_injection))
203
212
  end
204
213
  end
205
214
 
206
215
  trait :with_area do
207
- area { create(:area, organization: organization) }
216
+ area { create(:area, organization: organization, skip_injection: skip_injection) }
208
217
  end
209
218
 
210
219
  trait :with_documents do
@@ -217,7 +226,8 @@ FactoryBot.define do
217
226
  initiative.attachments << create(
218
227
  :attachment,
219
228
  :with_pdf,
220
- attached_to: initiative
229
+ attached_to: initiative,
230
+ skip_injection: evaluator.skip_injection
221
231
  )
222
232
  end
223
233
  end
@@ -233,7 +243,8 @@ FactoryBot.define do
233
243
  initiative.attachments << create(
234
244
  :attachment,
235
245
  :with_image,
236
- attached_to: initiative
246
+ attached_to: initiative,
247
+ skip_injection: evaluator.skip_injection
237
248
  )
238
249
  end
239
250
  end
@@ -241,8 +252,11 @@ FactoryBot.define do
241
252
  end
242
253
 
243
254
  factory :initiative_user_vote, class: "Decidim::InitiativesVote" do
244
- initiative { create(:initiative) }
245
- author { create(:user, :confirmed, organization: initiative.organization) }
255
+ transient do
256
+ skip_injection { false }
257
+ end
258
+ initiative { create(:initiative, skip_injection: skip_injection) }
259
+ author { create(:user, :confirmed, organization: initiative.organization, skip_injection: skip_injection) }
246
260
  hash_id { SecureRandom.uuid }
247
261
  scope { initiative.scope }
248
262
  after(:create) do |vote|
@@ -251,17 +265,23 @@ FactoryBot.define do
251
265
  end
252
266
 
253
267
  factory :organization_user_vote, class: "Decidim::InitiativesVote" do
254
- initiative { create(:initiative) }
255
- author { create(:user, :confirmed, organization: initiative.organization) }
256
- decidim_user_group_id { create(:user_group).id }
257
- after(:create) do |support|
258
- create(:user_group_membership, user: support.author, user_group: Decidim::UserGroup.find(support.decidim_user_group_id))
268
+ transient do
269
+ skip_injection { false }
270
+ end
271
+ initiative { create(:initiative, skip_injection: skip_injection) }
272
+ author { create(:user, :confirmed, organization: initiative.organization, skip_injection: skip_injection) }
273
+ decidim_user_group_id { create(:user_group, skip_injection: skip_injection).id }
274
+ after(:create) do |support, evaluator|
275
+ create(:user_group_membership, user: support.author, user_group: Decidim::UserGroup.find(support.decidim_user_group_id), skip_injection: evaluator.skip_injection)
259
276
  end
260
277
  end
261
278
 
262
279
  factory :initiatives_committee_member, class: "Decidim::InitiativesCommitteeMember" do
263
- initiative { create(:initiative) }
264
- user { create(:user, :confirmed, organization: initiative.organization) }
280
+ transient do
281
+ skip_injection { false }
282
+ end
283
+ initiative { create(:initiative, skip_injection: skip_injection) }
284
+ user { create(:user, :confirmed, organization: initiative.organization, skip_injection: skip_injection) }
265
285
  state { "accepted" }
266
286
 
267
287
  trait :accepted do
@@ -278,6 +298,9 @@ FactoryBot.define do
278
298
  end
279
299
 
280
300
  factory :initiatives_settings, class: "Decidim::InitiativesSettings" do
301
+ transient do
302
+ skip_injection { false }
303
+ end
281
304
  initiatives_order { "random" }
282
305
  organization
283
306
 
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds the decidim-initiatives version.
5
5
  module Initiatives
6
6
  def self.version
7
- "0.27.5"
7
+ "0.27.6"
8
8
  end
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-initiatives
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.27.5
4
+ version: 0.27.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Salvador Perez Garcia
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-20 00:00:00.000000000 Z
11
+ date: 2024-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: decidim-admin
@@ -16,56 +16,56 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.27.5
19
+ version: 0.27.6
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.27.5
26
+ version: 0.27.6
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: decidim-comments
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 0.27.5
33
+ version: 0.27.6
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 0.27.5
40
+ version: 0.27.6
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: decidim-core
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 0.27.5
47
+ version: 0.27.6
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: 0.27.5
54
+ version: 0.27.6
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: decidim-verifications
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - '='
60
60
  - !ruby/object:Gem::Version
61
- version: 0.27.5
61
+ version: 0.27.6
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - '='
67
67
  - !ruby/object:Gem::Version
68
- version: 0.27.5
68
+ version: 0.27.6
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: origami
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -142,28 +142,28 @@ dependencies:
142
142
  requirements:
143
143
  - - '='
144
144
  - !ruby/object:Gem::Version
145
- version: 0.27.5
145
+ version: 0.27.6
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - '='
151
151
  - !ruby/object:Gem::Version
152
- version: 0.27.5
152
+ version: 0.27.6
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: decidim-meetings
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - '='
158
158
  - !ruby/object:Gem::Version
159
- version: 0.27.5
159
+ version: 0.27.6
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - '='
165
165
  - !ruby/object:Gem::Version
166
- version: 0.27.5
166
+ version: 0.27.6
167
167
  description: Participants initiatives plugin for decidim.
168
168
  email:
169
169
  - jsperezg@gmail.com
@@ -399,7 +399,6 @@ files:
399
399
  - app/views/layouts/decidim/initiative_creation.html.erb
400
400
  - app/views/layouts/decidim/initiative_signature_creation.html.erb
401
401
  - config/assets.rb
402
- - config/environment.rb
403
402
  - config/initializers/wicked_pdf.rb
404
403
  - config/locales/am-ET.yml
405
404
  - config/locales/ar-SA.yml
@@ -433,6 +432,7 @@ files:
433
432
  - config/locales/ga-IE.yml
434
433
  - config/locales/gl.yml
435
434
  - config/locales/gn-PY.yml
435
+ - config/locales/he-IL.yml
436
436
  - config/locales/hr-HR.yml
437
437
  - config/locales/hr.yml
438
438
  - config/locales/hu.yml
@@ -541,6 +541,7 @@ files:
541
541
  - db/migrate/20220527130640_create_decidim_initiatives_settings.rb
542
542
  - db/seeds/city.jpeg
543
543
  - db/seeds/city2.jpeg
544
+ - decidim-initiatives.gemspec
544
545
  - lib/decidim/api/initiative_api_type.rb
545
546
  - lib/decidim/api/initiative_committee_member_type.rb
546
547
  - lib/decidim/api/initiative_type.rb
@@ -564,23 +565,23 @@ homepage: https://github.com/decidim/decidim
564
565
  licenses:
565
566
  - AGPL-3.0
566
567
  metadata: {}
567
- post_install_message:
568
+ post_install_message:
568
569
  rdoc_options: []
569
570
  require_paths:
570
571
  - lib
571
572
  required_ruby_version: !ruby/object:Gem::Requirement
572
573
  requirements:
573
- - - ">="
574
+ - - "~>"
574
575
  - !ruby/object:Gem::Version
575
- version: '3.0'
576
+ version: 3.0.0
576
577
  required_rubygems_version: !ruby/object:Gem::Requirement
577
578
  requirements:
578
579
  - - ">="
579
580
  - !ruby/object:Gem::Version
580
581
  version: '0'
581
582
  requirements: []
582
- rubygems_version: 3.4.22
583
- signing_key:
583
+ rubygems_version: 3.2.22
584
+ signing_key:
584
585
  specification_version: 4
585
586
  summary: Decidim initiatives module
586
587
  test_files: []
@@ -1,3 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Empty line for playing nice with tpope/vim-rails