decidim-initiatives 0.30.2 → 0.31.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +46 -9
- data/app/cells/decidim/initiatives/content_blocks/highlighted_initiatives_settings_form/show.erb +7 -2
- data/app/cells/decidim/initiatives/initiative_g_cell.rb +5 -1
- data/app/commands/decidim/initiatives/admin/publish_initiative.rb +1 -5
- data/app/commands/decidim/initiatives/admin/update_initiative.rb +1 -2
- data/app/commands/decidim/initiatives/create_initiative.rb +0 -1
- data/app/commands/decidim/initiatives/update_initiative.rb +1 -3
- data/app/commands/decidim/initiatives/vote_initiative.rb +1 -11
- data/app/controllers/concerns/decidim/initiatives/has_signature_workflow.rb +36 -0
- data/app/controllers/concerns/decidim/initiatives/needs_initiative.rb +1 -12
- data/app/controllers/decidim/initiatives/admin/initiatives_controller.rb +2 -2
- data/app/controllers/decidim/initiatives/admin/initiatives_settings_controller.rb +1 -1
- data/app/controllers/decidim/initiatives/admin/initiatives_type_scopes_controller.rb +2 -2
- data/app/controllers/decidim/initiatives/admin/initiatives_types_controller.rb +2 -2
- data/app/controllers/decidim/initiatives/committee_requests_controller.rb +10 -2
- data/app/controllers/decidim/initiatives/create_initiative_controller.rb +84 -18
- data/app/controllers/decidim/initiatives/initiative_signatures_controller.rb +133 -42
- data/app/controllers/decidim/initiatives/initiative_votes_controller.rb +3 -2
- data/app/controllers/decidim/initiatives/initiatives_controller.rb +21 -2
- data/app/forms/decidim/initiatives/admin/initiative_form.rb +0 -1
- data/app/forms/decidim/initiatives/initiative_form.rb +0 -3
- data/app/helpers/decidim/initiatives/application_helper.rb +2 -0
- data/app/helpers/decidim/initiatives/initiatives_helper.rb +0 -1
- data/app/models/decidim/initiative.rb +7 -31
- data/app/models/decidim/initiatives_committee_member.rb +1 -1
- data/app/models/decidim/initiatives_type.rb +5 -2
- data/app/models/decidim/initiatives_vote.rb +2 -2
- data/app/packs/entrypoints/decidim_initiatives.js +1 -1
- data/app/packs/entrypoints/decidim_initiatives_admin.scss +1 -1
- data/app/packs/src/decidim/initiatives/admin/initiatives_types.js +2 -11
- data/app/packs/src/decidim/initiatives/admin/invite_users.js +1 -1
- data/app/packs/src/decidim/initiatives/application.js +1 -1
- data/app/packs/src/decidim/initiatives/check_code.js +114 -0
- data/app/packs/src/decidim/initiatives/initiative_creation_wizard.js +16 -0
- data/app/packs/src/decidim/initiatives/scoped_type.js +1 -1
- data/app/packs/stylesheets/initiatives.scss +16 -2
- data/app/permissions/decidim/initiatives/admin/permissions.rb +1 -4
- data/app/permissions/decidim/initiatives/permissions.rb +26 -16
- data/app/presenters/decidim/initiative_presenter.rb +12 -6
- data/app/presenters/decidim/initiatives/admin_log/initiative_presenter.rb +1 -2
- data/app/queries/decidim/initiatives/initiatives_stats_followers_count.rb +14 -0
- data/app/queries/decidim/initiatives/initiatives_stats_participants_count.rb +14 -0
- data/app/serializers/decidim/initiatives/open_data_initiative_serializer.rb +0 -1
- data/app/services/decidim/initiatives/data_encryptor.rb +1 -1
- data/app/services/decidim/initiatives/legacy_signature_handler.rb +25 -0
- data/app/services/decidim/initiatives/progress_notifier.rb +1 -7
- data/app/services/decidim/initiatives/signature_handler.rb +248 -0
- data/app/services/decidim/initiatives/status_change_notifier.rb +1 -7
- data/app/views/decidim/initiatives/admin/committee_requests/index.html.erb +29 -11
- data/app/views/decidim/initiatives/admin/exports/_dropdown.html.erb +17 -20
- data/app/views/decidim/initiatives/admin/initiatives/_form.html.erb +7 -13
- data/app/views/decidim/initiatives/admin/initiatives/_initiative_attachments.erb +2 -2
- data/app/views/decidim/initiatives/admin/initiatives/index.html.erb +76 -47
- data/app/views/decidim/initiatives/admin/initiatives_types/_form.html.erb +13 -21
- data/app/views/decidim/initiatives/admin/initiatives_types/_initiative_type_scopes.html.erb +28 -12
- data/app/views/decidim/initiatives/admin/initiatives_types/index.html.erb +33 -15
- data/app/views/decidim/initiatives/create_initiative/_committee_member.html.erb +27 -0
- data/app/views/decidim/initiatives/create_initiative/_return_to_initiatives_button.html.erb +3 -0
- data/app/views/decidim/initiatives/create_initiative/_send_to_technical_validation_button.html.erb +10 -0
- data/app/views/decidim/initiatives/create_initiative/_share_committee_link.html.erb +5 -1
- data/app/views/decidim/initiatives/create_initiative/fill_data.html.erb +7 -11
- data/app/views/decidim/initiatives/create_initiative/finish.html.erb +16 -13
- data/app/views/decidim/initiatives/create_initiative/promotal_committee.html.erb +33 -6
- data/app/views/decidim/initiatives/create_initiative/select_initiative_type.html.erb +40 -26
- data/app/views/decidim/initiatives/initiative_signatures/_sms_code_form.html.erb +22 -0
- data/app/views/decidim/initiatives/initiative_signatures/_sms_phone_number_form.html.erb +13 -0
- data/app/views/decidim/initiatives/initiative_signatures/fill_personal_data.html.erb +23 -22
- data/app/views/decidim/initiatives/initiative_signatures/finish.html.erb +17 -5
- data/app/views/decidim/initiatives/initiative_signatures/sms_code.html.erb +6 -8
- data/app/views/decidim/initiatives/initiative_signatures/sms_phone_number.html.erb +3 -8
- data/app/views/decidim/initiatives/initiative_signatures/update_buttons_and_counters.js.erb +3 -14
- data/app/views/decidim/initiatives/initiative_votes/update_buttons_and_counters.js.erb +3 -14
- data/app/views/decidim/initiatives/initiatives/_committee_members.html.erb +1 -1
- data/app/views/decidim/initiatives/initiatives/_form.html.erb +1 -3
- data/app/views/decidim/initiatives/initiatives/_new_initiative_button.html.erb +10 -3
- data/app/views/decidim/initiatives/initiatives/_pending_initiatives.html.erb +5 -0
- data/app/views/decidim/initiatives/initiatives/index.html.erb +8 -0
- data/app/views/decidim/initiatives/initiatives/show.html.erb +2 -2
- data/app/views/layouts/decidim/_initiative_signature_creation_header.html.erb +20 -2
- data/app/views/layouts/decidim/admin/_manage_initiatives.html.erb +1 -1
- data/app/views/layouts/decidim/initiative_signature_creation.html.erb +3 -1
- data/config/assets.rb +2 -2
- data/config/locales/ar.yml +0 -45
- data/config/locales/bg.yml +0 -54
- data/config/locales/ca-IT.yml +99 -51
- data/config/locales/ca.yml +99 -51
- data/config/locales/cs.yml +93 -54
- data/config/locales/de.yml +99 -51
- data/config/locales/el.yml +0 -45
- data/config/locales/en.yml +99 -51
- data/config/locales/es-MX.yml +99 -51
- data/config/locales/es-PY.yml +99 -51
- data/config/locales/es.yml +99 -51
- data/config/locales/eu.yml +99 -51
- data/config/locales/fi-plain.yml +99 -51
- data/config/locales/fi.yml +99 -51
- data/config/locales/fr-CA.yml +44 -51
- data/config/locales/fr.yml +44 -51
- data/config/locales/ga-IE.yml +0 -17
- data/config/locales/gl.yml +0 -41
- data/config/locales/hu.yml +0 -54
- data/config/locales/id-ID.yml +0 -40
- data/config/locales/is-IS.yml +0 -22
- data/config/locales/it.yml +0 -53
- data/config/locales/ja.yml +98 -49
- data/config/locales/lb.yml +0 -50
- data/config/locales/lt.yml +0 -56
- data/config/locales/lv.yml +0 -46
- data/config/locales/nl.yml +0 -47
- data/config/locales/no.yml +0 -53
- data/config/locales/pl.yml +0 -56
- data/config/locales/pt-BR.yml +0 -53
- data/config/locales/pt.yml +0 -53
- data/config/locales/ro-RO.yml +92 -50
- data/config/locales/ru.yml +0 -25
- data/config/locales/sk.yml +0 -43
- data/config/locales/sl.yml +0 -1
- data/config/locales/sv.yml +10 -53
- data/config/locales/tr-TR.yml +0 -53
- data/config/locales/uk.yml +0 -25
- data/config/locales/zh-CN.yml +0 -45
- data/config/locales/zh-TW.yml +0 -53
- data/db/migrate/20250605104500_remove_hashtag_column_initiatives.rb +7 -0
- data/lib/decidim/api/initiative_api_type.rb +3 -0
- data/lib/decidim/api/initiative_type.rb +23 -4
- data/lib/decidim/exporters/initiative_votes_pdf.rb +1 -1
- data/lib/decidim/initiatives/default_signature_authorizer.rb +17 -0
- data/lib/decidim/initiatives/engine.rb +17 -14
- data/lib/decidim/initiatives/participatory_space.rb +15 -1
- data/lib/decidim/initiatives/seeds.rb +1 -2
- data/lib/decidim/initiatives/signature_workflow_manifest.rb +176 -0
- data/lib/decidim/initiatives/signatures.rb +12 -0
- data/lib/decidim/initiatives/test/factories.rb +7 -7
- data/lib/decidim/initiatives/test/initiatives_signatures_test_helpers.rb +19 -0
- data/lib/decidim/initiatives/validatable_authorizations.rb +83 -0
- data/lib/decidim/initiatives/version.rb +1 -1
- data/lib/decidim/initiatives.rb +23 -12
- metadata +33 -21
- data/app/events/decidim/initiatives/endorse_initiative_event.rb +0 -13
- data/app/forms/decidim/initiatives/vote_form.rb +0 -208
- data/app/packs/src/decidim/initiatives/identity_selector_dialog.js +0 -14
- data/app/services/decidim/initiatives/pdf_signature_example.rb +0 -110
- data/app/views/decidim/initiatives/initiative_signatures/_wizard_steps.html.erb +0 -15
- data/app/views/decidim/initiatives/initiatives/_interactions.html.erb +0 -10
- data/app/views/layouts/decidim/_initiative_header.html.erb +0 -27
data/config/locales/tr-TR.yml
CHANGED
@@ -3,7 +3,6 @@ tr:
|
|
3
3
|
activemodel:
|
4
4
|
attributes:
|
5
5
|
initiative:
|
6
|
-
decidim_user_group_id: Yazar
|
7
6
|
description: Açıklama
|
8
7
|
offline_votes: Şahsen imzalar
|
9
8
|
offline_votes_for_scope: '%{scope_name} için şahsen imzalar'
|
@@ -27,7 +26,6 @@ tr:
|
|
27
26
|
collect_user_extra_fields: İmzada katılımcıya ait kişisel verileri toplayın
|
28
27
|
custom_signature_end_date_enabled: Yazarların imza toplama süresinin sonunu seçmesine izin ver
|
29
28
|
description: Açıklama
|
30
|
-
document_number_authorization_handler: İmzalardaki belge numarasını doğrulama yetkisi
|
31
29
|
extra_fields_legal_information: Kişisel verilerin toplanması ile ilgili yasal bilgiler
|
32
30
|
minimum_committee_members: Minimum komite üyesi
|
33
31
|
online_signature_enabled: Çevrimiçi imza etkin
|
@@ -73,14 +71,11 @@ tr:
|
|
73
71
|
label: Durum
|
74
72
|
values:
|
75
73
|
accepted: Yeterince imza
|
76
|
-
created: Oluşturuldu
|
77
74
|
discarded: Yok sayıldı
|
78
75
|
rejected: Yeterince imza yok
|
79
76
|
validating: Teknik doğrulama
|
80
77
|
type_id_eq:
|
81
78
|
label: Tür
|
82
|
-
search_placeholder:
|
83
|
-
title_or_description_or_id_string_or_author_name_or_author_nickname_cont: '%{collection} ''ı başlık, açıklama, kimlik veya yazar adına göre arayın.'
|
84
79
|
menu:
|
85
80
|
information: Bilgi
|
86
81
|
initiatives: Girişimler
|
@@ -227,7 +222,6 @@ tr:
|
|
227
222
|
edit:
|
228
223
|
update: Güncelle
|
229
224
|
form:
|
230
|
-
authorizations: Yetkilendirme ayarları
|
231
225
|
options: Seçenekler
|
232
226
|
initiative_type_scopes:
|
233
227
|
title: Girişim türü için kapsamlar
|
@@ -242,7 +236,6 @@ tr:
|
|
242
236
|
update: "%{user_name}, %{resource_name} girişimini güncelledi"
|
243
237
|
admin_states:
|
244
238
|
accepted: Yeterince imza
|
245
|
-
created: Oluşturuldu
|
246
239
|
discarded: Yok sayıldı
|
247
240
|
rejected: Yeterince imza yok
|
248
241
|
validating: Teknik doğrulama
|
@@ -266,36 +259,19 @@ tr:
|
|
266
259
|
name: Vurgulanan girişimler
|
267
260
|
create_initiative:
|
268
261
|
fill_data:
|
269
|
-
back: Geri
|
270
262
|
continue: Devam et
|
271
263
|
fill_data_help: "<ul> <li> Girişiminizin içeriğini inceleyin. Başlığınızı anlamak kolay mı? Girişiminizin amacı açık mı? </li> <li> İmza türünü seçmeniz gerekiyor. Yüz yüze, çevrimiçi veya her ikisinin kombinasyonu </li> <li> Girişimin coğrafi kapsamı nedir? </li> </ul>"
|
272
|
-
more_information: "(Daha fazla bilgi)"
|
273
264
|
select_area: Bir alan seçin
|
274
265
|
select_scope: Bir kapsam seçin
|
275
266
|
finish:
|
276
267
|
back: Geri
|
277
|
-
back_to_initiatives: Girişimlere geri dön
|
278
|
-
confirm: Bir yöneticinin gözden geçirmesi ve yayınlaması için inisiyatif göndereceksiniz. Yayınlandıktan sonra onu düzenleyemezsiniz. Emin misiniz?
|
279
|
-
edit_my_initiative: Girişimimi düzenle
|
280
|
-
go_to_my_initiatives: Benim girişimlerime git
|
281
|
-
more_information: "(Daha fazla bilgi)"
|
282
|
-
send_my_initiative: Girişimimi teknik doğrulamaya gönder
|
283
|
-
finish_help:
|
284
|
-
publish_helper_text: Girişiminizin yayınlanması için gerekli bilgileri tamamlamanız ve bir yöneticinin incelemesi için <strong> teknik doğrulamaya göndermeniz </strong> gerektiğini unutmayın.
|
285
268
|
previous_form:
|
286
269
|
back: Geri
|
287
|
-
continue: Devam et
|
288
|
-
promotal_committee:
|
289
|
-
individual_help_text: Bu tür bir girişim, en az %{committee_size} kişiden (onaylayanlardan) oluşan bir Teşvik Komisyonu gerektirir. Aşağıdaki bağlantıyı bu girişimin parçası olan diğer kişilerle paylaşmalısınız. Kişileriniz bu bağlantıyı aldıklarında, belirtilen adımları izlemeleri gerekecektir.
|
290
|
-
more_information: "(Daha fazla bilgi)"
|
291
270
|
select_initiative_type:
|
292
271
|
back: Geri
|
293
272
|
choose_html: <strong>%{title}</strong> oluşturmak istiyorum
|
294
273
|
more_information: (Daha fazla bilgi)
|
295
274
|
select: Bu girişimi tanıtmak istiyorum
|
296
|
-
select_initiative_type_help: Girişimler, kuruluşun genel menfaati savunmak için eylemlerde bulunabilmesi için katılımcıların müdahale edebilecekleri bir araçtır. Hangi girişimi başlatmak istiyorsunuz?
|
297
|
-
share_committee_link:
|
298
|
-
invite_to_committee_help: Tanıtım komitesinin bir parçası olacak kişileri davet etmek için bağlantı
|
299
275
|
edit:
|
300
276
|
accept: Girişimi kabul edin
|
301
277
|
back: Geri
|
@@ -312,26 +288,12 @@ tr:
|
|
312
288
|
email_outro: Bu bildirimi, %{author_nickname}izlediğiniz için aldınız. Önceki bağlantıyı takip ederek bildirimleri almayı durdurabilirsiniz.
|
313
289
|
email_subject: '%{author_nickname} tarafından yeni girişim'
|
314
290
|
notification_title: <a href="%{resource_path}">%{resource_title} </a> girişimi <a href="%{author_path}">%{author_name} %{author_nickname} </a> tarafından oluşturuldu.
|
315
|
-
endorse_initiative_event:
|
316
|
-
email_intro: "Takip ettiğiniz %{author_name} %{author_nickname} aşağıdaki girişimi onayladı, belki sohbete katkıda bulunmak istersiniz:"
|
317
|
-
email_outro: Bu bildirimi, %{author_nickname}izlediğiniz için aldınız. Önceki bağlantıyı takip ederek bildirimleri almayı durdurabilirsiniz.
|
318
|
-
email_subject: Girişim %{author_nickname} tarafından onaylandı
|
319
|
-
notification_title: <a href="%{resource_path}">%{resource_title} </a> girişimi <a href="%{author_path}">%{author_name} %{author_nickname} </a> tarafından onaylandı.
|
320
291
|
initiative_signatures:
|
321
|
-
fill_personal_data:
|
322
|
-
continue: Devam et
|
323
292
|
finish:
|
324
293
|
back_to_initiative: Girişime geri dön
|
325
|
-
sms_code:
|
326
|
-
continue: Kodu kontrol et ve devam et
|
327
|
-
help: Telefonunuza gelen SMS'i kontrol edin
|
328
|
-
sms_phone_number:
|
329
|
-
continue: Bana bir sms gönder
|
330
294
|
initiative_votes:
|
331
295
|
create:
|
332
296
|
error: Girişimi imzalarken bir hata oluştu.
|
333
|
-
personal_data:
|
334
|
-
invalid: Kişisel veriler, yetkilendirme için sağlanan verilerle tutarlı değildir.
|
335
297
|
sms_phone:
|
336
298
|
invalid: Telefon numarası geçersiz veya yetki bekleniyor. Lütfen yetkilerinizi kontrol edin.
|
337
299
|
initiatives:
|
@@ -360,11 +322,6 @@ tr:
|
|
360
322
|
initiatives:
|
361
323
|
closed_initiatives_warning: Şu anda açık girişim yok, ancak burada listelenen tüm kapalı girişimleri bulabilirsiniz.
|
362
324
|
no_initiatives_warning: Arama kriterlerinizle eşleşen hiçbir girişim yok.
|
363
|
-
interactions:
|
364
|
-
comments_count:
|
365
|
-
count:
|
366
|
-
one: Yorum
|
367
|
-
other: Yorumlar
|
368
325
|
orders:
|
369
326
|
label: 'Girişimleri şuna göre sırala:'
|
370
327
|
most_commented: En çok yorum yapılan
|
@@ -429,7 +386,6 @@ tr:
|
|
429
386
|
show:
|
430
387
|
badge_name:
|
431
388
|
accepted: Yeterince imza
|
432
|
-
created: Oluşturuldu
|
433
389
|
discarded: Yok sayıldı
|
434
390
|
rejected: Yeterince imza yok
|
435
391
|
validating: Teknik doğrulama
|
@@ -443,20 +399,11 @@ tr:
|
|
443
399
|
initiatives_type:
|
444
400
|
actions:
|
445
401
|
title: Eylemler
|
446
|
-
vote: İmza
|
447
402
|
layouts:
|
448
403
|
decidim:
|
449
404
|
initiative_creation_header:
|
450
405
|
fill_data: Oluştur
|
451
|
-
finish: Bitiş
|
452
|
-
promotal_committee: Tanıtım komitesi
|
453
406
|
select_initiative_type: Seç
|
454
|
-
initiative_signature_creation_header:
|
455
|
-
fill_personal_data: Verilerinizi tamamlayın
|
456
|
-
finish: Bitiş
|
457
|
-
sms_code: SMS kodu doğrulama
|
458
|
-
sms_phone_number: Cep telefonu numarası
|
459
|
-
title: İşaret %{initiative_title}
|
460
407
|
initiatives:
|
461
408
|
no_initiatives_yet:
|
462
409
|
no_initiatives_yet: Henüz girişim yok!
|
data/config/locales/uk.yml
CHANGED
@@ -3,7 +3,6 @@ uk:
|
|
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: Обсяг
|
@@ -127,7 +126,6 @@ uk:
|
|
127
126
|
unpublish: "%{user_name} відкинув почин %{resource_name}"
|
128
127
|
update: "%{user_name} оновив почин %{resource_name}"
|
129
128
|
admin_states:
|
130
|
-
created: Створені
|
131
129
|
discarded: Відкинуті
|
132
130
|
validating: Технічна перевірка
|
133
131
|
application_helper:
|
@@ -144,39 +142,21 @@ uk:
|
|
144
142
|
name: Висвітлені почини
|
145
143
|
create_initiative:
|
146
144
|
fill_data:
|
147
|
-
back: Повернутись
|
148
145
|
continue: Продовжити
|
149
|
-
more_information: "(Додаткові відомості)"
|
150
146
|
select_scope: Оберіть обсяг
|
151
147
|
finish:
|
152
148
|
back: Повернутись
|
153
|
-
back_to_initiatives: Повернутися до починів
|
154
|
-
go_to_my_initiatives: Перейти до моїх починів
|
155
|
-
more_information: "(Додаткові відомості)"
|
156
149
|
previous_form:
|
157
150
|
back: Повернутись
|
158
|
-
continue: Продовжити
|
159
|
-
promotal_committee:
|
160
|
-
more_information: "(Додаткові відомості)"
|
161
151
|
select_initiative_type:
|
162
152
|
back: Повернутись
|
163
153
|
more_information: (Додаткові відомості)
|
164
|
-
share_committee_link:
|
165
|
-
invite_to_committee_help: Посилання для запрошення людей, які увійдуть в робочий гурт з просування
|
166
154
|
events:
|
167
155
|
create_initiative_event:
|
168
156
|
email_intro: "%{author_name} %{author_nickname}, за яким ви стежите, зробив новий почин. Прочитайте його та зробіть свій внесок:"
|
169
157
|
email_outro: Ви отримали це сповіщення, тому що ви стежите за %{author_nickname}. Ви можете відписатися від цих сповіщень, перейшовши за наведеним вище посиланням.
|
170
158
|
email_subject: Новий почин, започаткований %{author_nickname}
|
171
159
|
notification_title: <a href="%{author_path}">%{author_name} %{author_nickname}</a> створив почин <a href="%{resource_path}">%{resource_title}</a>.
|
172
|
-
endorse_initiative_event:
|
173
|
-
email_intro: "%{author_name} %{author_nickname}, за яким ви стежите, підтримав наступний почин. Чи не бажаєте ви зробити свій внесок у розмову:"
|
174
|
-
email_outro: Ви отримали це сповіщення, тому що ви стежите за %{author_nickname}. Ви можете відписатися від цих сповіщень, перейшовши за наведеним вище посиланням.
|
175
|
-
email_subject: '%{author_nickname} підтримав почин'
|
176
|
-
notification_title: <a href="%{author_path}">%{author_name} %{author_nickname}</a> підтримав почин <a href="%{resource_path}">%{resource_title}</a>.
|
177
|
-
initiative_signatures:
|
178
|
-
fill_personal_data:
|
179
|
-
continue: Продовжити
|
180
160
|
initiative_votes:
|
181
161
|
create:
|
182
162
|
error: При підписанні цього почину сталися помилки.
|
@@ -242,15 +222,10 @@ uk:
|
|
242
222
|
expired: Строк дії яких закінчився
|
243
223
|
menu:
|
244
224
|
initiatives: Почини
|
245
|
-
resources:
|
246
|
-
initiatives_type:
|
247
|
-
actions:
|
248
|
-
vote: Підписати
|
249
225
|
layouts:
|
250
226
|
decidim:
|
251
227
|
initiative_creation_header:
|
252
228
|
fill_data: Внести
|
253
|
-
promotal_committee: Робочий гурт з просування
|
254
229
|
select_initiative_type: Обрати
|
255
230
|
initiatives:
|
256
231
|
no_initiatives_yet:
|
data/config/locales/zh-CN.yml
CHANGED
@@ -3,7 +3,6 @@ zh-CN:
|
|
3
3
|
activemodel:
|
4
4
|
attributes:
|
5
5
|
initiative:
|
6
|
-
decidim_user_group_id: 作者
|
7
6
|
description: 描述
|
8
7
|
offline_votes: 本人签名
|
9
8
|
offline_votes_for_scope: '%{scope_name} 的本人签名'
|
@@ -27,7 +26,6 @@ zh-CN:
|
|
27
26
|
collect_user_extra_fields: 在签名时收集参与者个人数据
|
28
27
|
custom_signature_end_date_enabled: 允许作者选择签名收集期的结束
|
29
28
|
description: 描述
|
30
|
-
document_number_authorization_handler: 验证签名上的文档编号的授权
|
31
29
|
extra_fields_legal_information: 关于收集个人数据的法律信息
|
32
30
|
minimum_committee_members: 委员会成员的最低人数
|
33
31
|
online_signature_enabled: 启用在线签名
|
@@ -70,14 +68,11 @@ zh-CN:
|
|
70
68
|
label: 状态
|
71
69
|
values:
|
72
70
|
accepted: 足够的签名
|
73
|
-
created: 已创建
|
74
71
|
discarded: 丢弃的
|
75
72
|
rejected: 签名不足
|
76
73
|
validating: 技术验证
|
77
74
|
type_id_eq:
|
78
75
|
label: 类型
|
79
|
-
search_placeholder:
|
80
|
-
title_or_description_or_id_string_or_author_name_or_author_nickname_cont: 按标题、描述、ID或作者名称搜索 %{collection}。
|
81
76
|
menu:
|
82
77
|
information: 信息
|
83
78
|
initiatives: 倡议
|
@@ -218,7 +213,6 @@ zh-CN:
|
|
218
213
|
edit:
|
219
214
|
update: 更新
|
220
215
|
form:
|
221
|
-
authorizations: 授权设置
|
222
216
|
options: 备选方案
|
223
217
|
initiative_type_scopes:
|
224
218
|
title: 倡议类型的范围
|
@@ -233,7 +227,6 @@ zh-CN:
|
|
233
227
|
update: "%{user_name} 更新了 %{resource_name} 倡议"
|
234
228
|
admin_states:
|
235
229
|
accepted: 足够的签名
|
236
|
-
created: 已创建
|
237
230
|
discarded: 丢弃的
|
238
231
|
rejected: 签名不足
|
239
232
|
validating: 技术验证
|
@@ -257,54 +250,30 @@ zh-CN:
|
|
257
250
|
name: B. 重点倡议
|
258
251
|
create_initiative:
|
259
252
|
fill_data:
|
260
|
-
back: 后退
|
261
253
|
continue: 继续
|
262
|
-
more_information: "(更多信息)"
|
263
254
|
select_area: 选择区域
|
264
255
|
select_scope: 选择范围
|
265
256
|
finish:
|
266
257
|
back: 后退
|
267
|
-
back_to_initiatives: 回到倡议
|
268
|
-
go_to_my_initiatives: 转到我的倡议
|
269
|
-
more_information: "(更多信息)"
|
270
258
|
previous_form:
|
271
259
|
back: 后退
|
272
|
-
continue: 继续
|
273
|
-
promotal_committee:
|
274
|
-
more_information: "(更多信息)"
|
275
260
|
select_initiative_type:
|
276
261
|
back: 后退
|
277
262
|
choose_html: 我想要创建 <strong>%{title}</strong>
|
278
263
|
more_information: (更多信息)
|
279
264
|
select: 我想促进这项倡议
|
280
|
-
share_committee_link:
|
281
|
-
invite_to_committee_help: 邀请将成为促进委员会成员的人的链接
|
282
265
|
events:
|
283
266
|
create_initiative_event:
|
284
267
|
email_intro: "%{author_name} %{author_nickname},您正在关注这个问题,已经创建了一个新的倡议,查看它并做出贡献:"
|
285
268
|
email_outro: 您收到此通知是因为您正在关注 %{author_nickname}。您可以停止收到跟随上一个链接的通知。
|
286
269
|
email_subject: '%{author_nickname} 的新举措'
|
287
270
|
notification_title: <a href="%{resource_path}">%{resource_title}</a> 倡议是由 <a href="%{author_path}">%{author_name} %{author_nickname}</a> 创建的。
|
288
|
-
endorse_initiative_event:
|
289
|
-
email_intro: "%{author_name} %{author_nickname},您正在关注这个问题,已经批准了以下倡议,也许您想要为对话做出贡献:"
|
290
|
-
email_outro: 您收到此通知是因为您正在关注 %{author_nickname}。您可以停止收到跟随上一个链接的通知。
|
291
|
-
email_subject: '%{author_nickname} 认可的倡议'
|
292
|
-
notification_title: <a href="%{resource_path}">%{resource_title}</a> 倡议已被 <a href="%{author_path}">%{author_name} %{author_nickname}</a> 认可。
|
293
271
|
initiative_signatures:
|
294
|
-
fill_personal_data:
|
295
|
-
continue: 继续
|
296
272
|
finish:
|
297
273
|
back_to_initiative: 回到倡议
|
298
|
-
sms_code:
|
299
|
-
continue: 检查代码并继续
|
300
|
-
help: 检查手机收到的短信
|
301
|
-
sms_phone_number:
|
302
|
-
continue: 给我发送短信
|
303
274
|
initiative_votes:
|
304
275
|
create:
|
305
276
|
error: 在签署该倡议时遇到了问题。
|
306
|
-
personal_data:
|
307
|
-
invalid: 个人资料与批准数据不一致。
|
308
277
|
sms_phone:
|
309
278
|
invalid: 电话号码无效或正在等待授权。请检查您的授权。
|
310
279
|
initiatives:
|
@@ -327,10 +296,6 @@ zh-CN:
|
|
327
296
|
initiatives:
|
328
297
|
closed_initiatives_warning: 目前没有开放的倡议,但在这里你可以找到列出的所有已关闭的倡议。
|
329
298
|
no_initiatives_warning: 没有符合您搜索条件的倡议。
|
330
|
-
interactions:
|
331
|
-
comments_count:
|
332
|
-
count:
|
333
|
-
other: 评论
|
334
299
|
orders:
|
335
300
|
label: '对倡议进行排序:'
|
336
301
|
most_commented: 最多评论
|
@@ -370,7 +335,6 @@ zh-CN:
|
|
370
335
|
show:
|
371
336
|
badge_name:
|
372
337
|
accepted: 足够的签名
|
373
|
-
created: 已创建
|
374
338
|
discarded: 丢弃的
|
375
339
|
rejected: 签名不足
|
376
340
|
validating: 技术验证
|
@@ -384,20 +348,11 @@ zh-CN:
|
|
384
348
|
initiatives_type:
|
385
349
|
actions:
|
386
350
|
title: 行动
|
387
|
-
vote: 签名
|
388
351
|
layouts:
|
389
352
|
decidim:
|
390
353
|
initiative_creation_header:
|
391
354
|
fill_data: 创建
|
392
|
-
finish: 完成
|
393
|
-
promotal_committee: 宣传委员会
|
394
355
|
select_initiative_type: 选择
|
395
|
-
initiative_signature_creation_header:
|
396
|
-
fill_personal_data: 完成您的数据
|
397
|
-
finish: 完成
|
398
|
-
sms_code: 短信代码验证
|
399
|
-
sms_phone_number: 手机号码
|
400
|
-
title: 签名 %{initiative_title}
|
401
356
|
initiatives:
|
402
357
|
no_initiatives_yet:
|
403
358
|
no_initiatives_yet: 还没有倡议!
|
data/config/locales/zh-TW.yml
CHANGED
@@ -7,9 +7,7 @@ zh-TW:
|
|
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 @@ zh-TW:
|
|
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: 啟用線上簽名
|
@@ -86,14 +83,11 @@ zh-TW:
|
|
86
83
|
label: 狀態
|
87
84
|
values:
|
88
85
|
accepted: 足夠的簽署數
|
89
|
-
created: 已建立
|
90
86
|
discarded: 已捨棄
|
91
87
|
rejected: 不足夠的簽署數
|
92
88
|
validating: 技術驗證
|
93
89
|
type_id_eq:
|
94
90
|
label: 類別
|
95
|
-
search_placeholder:
|
96
|
-
title_or_description_or_id_string_or_author_name_or_author_nickname_cont: 透過標題、描述、ID 或作者姓名搜尋 %{collection}
|
97
91
|
initiatives_settings:
|
98
92
|
update:
|
99
93
|
success: 倡議設定已成功更新.
|
@@ -279,7 +273,6 @@ zh-TW:
|
|
279
273
|
edit:
|
280
274
|
update: 更新
|
281
275
|
form:
|
282
|
-
authorizations: 權限設置
|
283
276
|
options: 選項
|
284
277
|
initiative_type_scopes:
|
285
278
|
title: 倡議類型範圍
|
@@ -302,7 +295,6 @@ zh-TW:
|
|
302
295
|
update: "%{user_name} 更新了 %{resource_name} 倡議類型"
|
303
296
|
admin_states:
|
304
297
|
accepted: 足夠的簽署數
|
305
|
-
created: 已建立
|
306
298
|
discarded: 已捨棄
|
307
299
|
rejected: 不足夠的簽署數
|
308
300
|
validating: 技術驗證
|
@@ -331,37 +323,20 @@ zh-TW:
|
|
331
323
|
name: 重點倡議
|
332
324
|
create_initiative:
|
333
325
|
fill_data:
|
334
|
-
back: 返回
|
335
326
|
continue: 繼續
|
336
327
|
fill_data_help: "<ul> <li>檢閱您倡議的內容。標題是否易於理解?倡議的目標是否清晰明確?</li> <li>您需要選擇簽名的類型。是現場簽名、線上簽名還是兩者的組合?</li> <li>倡議的地理範圍是什麼?</li> </ul>"
|
337
|
-
more_information: "(更多資訊)"
|
338
328
|
select_area: 選擇一個地區
|
339
329
|
select_scope: 選擇一個類型
|
340
330
|
finish:
|
341
331
|
back: 返回
|
342
|
-
back_to_initiatives: 回到倡議
|
343
|
-
confirm: 您即將發送倡議給管理員進行審核和發佈。一旦發佈,您將無法編輯它。您確定要繼續嗎?"
|
344
|
-
edit_my_initiative: 編輯我的倡議
|
345
|
-
go_to_my_initiatives: 前往我的倡議
|
346
|
-
more_information: "(更多資訊)"
|
347
|
-
send_my_initiative: 將我的倡議送交技術審核
|
348
|
-
finish_help:
|
349
|
-
publish_helper_text: 請記住,要使您的倡議能夠被發佈,您必須填寫必要的資訊並將其<strong>送交技術審核</strong>以供管理員審查。
|
350
332
|
previous_form:
|
351
333
|
back: 返回
|
352
|
-
continue: 繼續
|
353
|
-
promotal_committee:
|
354
|
-
individual_help_text: 這種倡議需要至少 %{committee_size} 人(證明者)組成推廣委員會。您必須與參與該倡議的其他人分享以下鏈接。當您的聯繫人收到此鏈接後,他們將需要按照指示進行相應步驟。
|
355
|
-
more_information: "(更多資訊)"
|
356
334
|
select_initiative_type:
|
357
335
|
back: 返回
|
358
336
|
choose_html: 我想要創建一個<strong>%{title}</strong>
|
359
337
|
more_information: (更多資訊)
|
360
338
|
select: 我想推動這個倡議
|
361
|
-
select_initiative_type_help: 倡議是參與者可以通過其來干預,以便組織可以為捍衛公共利益而采取行動的手段。您希望發起哪個倡議?
|
362
339
|
verification_required: 驗證您的帳戶以推動這個倡議
|
363
|
-
share_committee_link:
|
364
|
-
invite_to_committee_help: 邀請成為推動委員會成員的人的連結
|
365
340
|
edit:
|
366
341
|
accept: 接受倡議
|
367
342
|
back: 返回
|
@@ -383,11 +358,6 @@ zh-TW:
|
|
383
358
|
email_outro: 您收到此通知,是因為您正在關注 %{author_nickname}。您可以使用上面的連結停止接收通知。
|
384
359
|
email_subject: 由 %{author_nickname} 提出的新倡議
|
385
360
|
notification_title: 倡議 <a href="%{resource_path}">%{resource_title}</a> 由 <a href="%{author_path}">%{author_name} %{author_nickname}</a> 提出。
|
386
|
-
endorse_initiative_event:
|
387
|
-
email_intro: "\"%{author_name} %{author_nickname} 正在追蹤,並已連署以下倡議,或許你想參與對話:"
|
388
|
-
email_outro: 您收到此通知,是因為您正在關注 %{author_nickname}。您可以使用上面的連結停止接收通知。
|
389
|
-
email_subject: 倡議得到 %{author_nickname} 的連署
|
390
|
-
notification_title: <a href="%{resource_path}">%{resource_title}</a> 倡議已獲 %{author_name} %{author_nickname} 連署。
|
391
361
|
revoke_membership_request:
|
392
362
|
email_intro: "%{author_nickname} 拒絕了您加入 %{resource_title} 倡議發起委員會的申請。"
|
393
363
|
email_outro: '這是您收到的通知,因為您申請參與這個倡議:%{resource_title}。'
|
@@ -402,23 +372,14 @@ zh-TW:
|
|
402
372
|
uninitialized: 尚未由管理員設置倡議。
|
403
373
|
initiative_signatures:
|
404
374
|
fill_personal_data:
|
405
|
-
continue: 繼續
|
406
375
|
help: 以下請填寫您的個人資料以簽署此倡議。
|
407
376
|
finish:
|
408
377
|
back_to_initiative: 回到倡議
|
409
|
-
sms_code:
|
410
|
-
continue: 檢查代碼並繼續
|
411
|
-
help: 請檢查您手機收到的SMS簡訊
|
412
|
-
sms_phone_number:
|
413
|
-
continue: 發送簡訊給我
|
414
|
-
help: 請填寫您驗證過的手機號碼以申請驗證碼.
|
415
378
|
initiative_votes:
|
416
379
|
create:
|
417
380
|
error: 發起倡議的簽署遇到問題。
|
418
381
|
invalid: 提供的資料以簽署此倡議為無效.
|
419
382
|
success_html: 恭喜!<strong> %{title} </strong> 倡議已成功簽署。
|
420
|
-
personal_data:
|
421
|
-
invalid: 個人資料與授權提供的資料不一致。
|
422
383
|
sms_code:
|
423
384
|
invalid: 您的驗證碼與我們的不符。請仔細檢查我們發送給您的SMS簡訊。
|
424
385
|
sms_phone:
|
@@ -449,10 +410,6 @@ zh-TW:
|
|
449
410
|
initiatives:
|
450
411
|
closed_initiatives_warning: 目前沒有開放中的倡議,但您可以在這裡找到所有已結束的倡議清單。
|
451
412
|
no_initiatives_warning: 沒有符合您的搜尋條件的倡議。
|
452
|
-
interactions:
|
453
|
-
comments_count:
|
454
|
-
count:
|
455
|
-
other: 評論
|
456
413
|
orders:
|
457
414
|
label: '按照以下方式對倡議進行排序:'
|
458
415
|
most_commented: 最多評論
|
@@ -517,7 +474,6 @@ zh-TW:
|
|
517
474
|
show:
|
518
475
|
badge_name:
|
519
476
|
accepted: 足夠的簽署數
|
520
|
-
created: 已建立
|
521
477
|
discarded: 已捨棄
|
522
478
|
rejected: 簽署數不足
|
523
479
|
validating: 技術驗證
|
@@ -536,20 +492,11 @@ zh-TW:
|
|
536
492
|
initiatives_type:
|
537
493
|
actions:
|
538
494
|
title: 操作
|
539
|
-
vote: 簽署
|
540
495
|
layouts:
|
541
496
|
decidim:
|
542
497
|
initiative_creation_header:
|
543
498
|
fill_data: 建立
|
544
|
-
finish: 完成
|
545
|
-
promotal_committee: 推動委員會
|
546
499
|
select_initiative_type: 選擇
|
547
|
-
initiative_signature_creation_header:
|
548
|
-
fill_personal_data: 填寫您的資料
|
549
|
-
finish: 完成
|
550
|
-
sms_code: SMS短訊代碼驗證碼
|
551
|
-
sms_phone_number: 行動電話號碼
|
552
|
-
title: 簽名 %{initiative_title}
|
553
500
|
initiatives:
|
554
501
|
no_initiatives_yet:
|
555
502
|
no_initiatives_yet: 尚無倡議!
|
@@ -8,8 +8,11 @@ module Decidim
|
|
8
8
|
graphql_name "InitiativeType"
|
9
9
|
description "An initiative type"
|
10
10
|
|
11
|
+
field :attachments_enabled, GraphQL::Types::Boolean, "Enable attachments on initiative types", null: true
|
11
12
|
field :banner_image, GraphQL::Types::String, "Banner image", null: true
|
12
13
|
field :collect_user_extra_fields, GraphQL::Types::Boolean, "Collect participant personal data on signature", null: true
|
14
|
+
field :comments_enabled, GraphQL::Types::Boolean, "Enable comments on initiative types", null: true
|
15
|
+
field :custom_signature_end_date_enabled, GraphQL::Types::Boolean, "Enable participants to set custom signature end date", null: true
|
13
16
|
field :description, Decidim::Core::TranslatedFieldType, "This is the initiative type description", null: true
|
14
17
|
field :extra_fields_legal_information, GraphQL::Types::String, "Legal information about the collection of personal data", null: true
|
15
18
|
field :id, GraphQL::Types::ID, "The internal ID for this initiative type", null: false
|
@@ -9,13 +9,19 @@ module Decidim
|
|
9
9
|
implements Decidim::Core::AttachableInterface
|
10
10
|
implements Decidim::Initiatives::InitiativeTypeInterface
|
11
11
|
implements Decidim::Core::TimestampsInterface
|
12
|
+
implements Decidim::Core::FollowableInterface
|
13
|
+
implements Decidim::Core::ReferableInterface
|
14
|
+
implements Decidim::Comments::CommentableInterface
|
12
15
|
|
13
16
|
description "A initiative"
|
14
17
|
|
18
|
+
field :answer, Decidim::Core::TranslatedFieldType, "The answer of the initiative", null: true
|
19
|
+
field :answer_url, GraphQL::Types::String, "The answer url of the initiative", null: true
|
20
|
+
field :answered_at, Decidim::Core::DateTimeType, "The date this initiative was answered", null: true
|
15
21
|
field :author, Decidim::Core::AuthorInterface, "The initiative author", null: false
|
16
22
|
field :committee_members, [Decidim::Initiatives::InitiativeCommitteeMemberType, { null: true }], "The committee members list", null: true
|
17
23
|
field :description, Decidim::Core::TranslatedFieldType, "The description of this initiative.", null: true
|
18
|
-
field :
|
24
|
+
field :first_progress_notification_at, Decidim::Core::DateTimeType, "The date when the first progress notification was sent ", null: true
|
19
25
|
field :initiative_supports_count, GraphQL::Types::Int,
|
20
26
|
description: "The number of supports in this initiative",
|
21
27
|
method: :online_votes_count,
|
@@ -28,15 +34,28 @@ module Decidim
|
|
28
34
|
field :offline_votes, GraphQL::Types::Int, "The number of offline votes in this initiative", method: :offline_votes_count, null: true
|
29
35
|
field :online_votes, GraphQL::Types::Int, "The number of online votes in this initiative", method: :online_votes_count, null: true
|
30
36
|
field :published_at, Decidim::Core::DateTimeType, "The time this initiative was published", null: false
|
31
|
-
field :
|
37
|
+
field :second_progress_notification_at, Decidim::Core::DateTimeType, "The date when the second progress notification was sent", null: true
|
32
38
|
field :signature_end_date, Decidim::Core::DateType, "The signature end date", null: false
|
33
39
|
field :signature_start_date, Decidim::Core::DateType, "The signature start date", null: false
|
34
40
|
field :signature_type, GraphQL::Types::String, "Signature type of the initiative", null: true
|
35
41
|
field :slug, GraphQL::Types::String, "The slug of the initiative", null: false
|
36
42
|
field :state, GraphQL::Types::String, "Current status of the initiative", null: true
|
43
|
+
field :url, GraphQL::Types::String, "The URL of this initiative", null: true
|
37
44
|
|
38
|
-
def
|
39
|
-
object.
|
45
|
+
def url
|
46
|
+
Decidim::EngineRouter.main_proxy(object).initiative_url(object)
|
47
|
+
end
|
48
|
+
|
49
|
+
def answer
|
50
|
+
return unless object.answered?
|
51
|
+
|
52
|
+
object.answer
|
53
|
+
end
|
54
|
+
|
55
|
+
def answer_url
|
56
|
+
return unless object.answered?
|
57
|
+
|
58
|
+
object.answer_url
|
40
59
|
end
|
41
60
|
end
|
42
61
|
end
|
@@ -148,7 +148,7 @@ module Decidim
|
|
148
148
|
end
|
149
149
|
|
150
150
|
def encryptor
|
151
|
-
@encryptor ||= Decidim::Initiatives::DataEncryptor.new(secret:
|
151
|
+
@encryptor ||= Decidim::Initiatives::DataEncryptor.new(secret: Decidim::Initiatives.signature_handler_encryption_secret)
|
152
152
|
end
|
153
153
|
|
154
154
|
def truncate(text, length = 50)
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Initiatives
|
5
|
+
class DefaultSignatureAuthorizer < Decidim::Verifications::DefaultActionAuthorizer
|
6
|
+
#
|
7
|
+
# Initializes the DefaultActionAuthorizer class.
|
8
|
+
#
|
9
|
+
# authorization - The existing authorization record to be evaluated. Can be nil.
|
10
|
+
# options - A hash with options related only to the current authorization process.
|
11
|
+
#
|
12
|
+
def initialize(authorization, options = {})
|
13
|
+
super(authorization, options, nil, nil)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|