decidim-proposals 0.16.0 → 0.16.1
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/app/cells/decidim/proposals/participatory_text_proposal_cell.rb +3 -1
- data/app/cells/decidim/proposals/proposal_activity_cell.rb +9 -1
- data/app/commands/decidim/proposals/admin/discard_participatory_text.rb +40 -0
- data/app/commands/decidim/proposals/admin/import_participatory_text.rb +5 -1
- data/app/commands/decidim/proposals/admin/publish_participatory_text.rb +6 -18
- data/app/commands/decidim/proposals/admin/update_participatory_text.rb +56 -0
- data/app/commands/decidim/proposals/create_proposal.rb +21 -22
- data/app/commands/decidim/proposals/publish_collaborative_draft.rb +1 -0
- data/app/commands/decidim/proposals/publish_proposal.rb +25 -3
- data/app/commands/decidim/proposals/update_proposal.rb +19 -23
- data/app/controllers/concerns/decidim/proposals/orderable.rb +1 -1
- data/app/controllers/decidim/proposals/admin/participatory_texts_controller.rb +46 -14
- data/app/forms/decidim/proposals/admin/import_participatory_text_form.rb +1 -2
- data/app/forms/decidim/proposals/admin/proposal_form.rb +1 -1
- data/app/helpers/decidim/proposals/application_helper.rb +0 -4
- data/app/permissions/decidim/proposals/admin/permissions.rb +2 -4
- data/app/views/decidim/proposals/admin/participatory_texts/_article-preview.html.erb +1 -1
- data/app/views/decidim/proposals/admin/participatory_texts/_bulk-actions.html.erb +1 -0
- data/app/views/decidim/proposals/admin/participatory_texts/index.html.erb +8 -5
- data/app/views/decidim/proposals/proposals/show.html.erb +9 -0
- data/config/locales/ar-SA.yml +667 -0
- data/config/locales/ca.yml +28 -21
- data/config/locales/cs-CZ.yml +775 -0
- data/config/locales/de.yml +7 -0
- data/config/locales/en.yml +7 -0
- data/config/locales/es-MX.yml +751 -0
- data/config/locales/es-PY.yml +7 -0
- data/config/locales/es.yml +21 -14
- data/config/locales/eu.yml +10 -3
- data/config/locales/fi-pl.yml +8 -1
- data/config/locales/fi.yml +11 -4
- data/config/locales/fr.yml +7 -0
- data/config/locales/gl.yml +7 -0
- data/config/locales/hu.yml +21 -14
- data/config/locales/id-ID.yml +7 -0
- data/config/locales/it.yml +8 -1
- data/config/locales/nl.yml +10 -3
- data/config/locales/pl.yml +8 -1
- data/config/locales/pt-BR.yml +7 -0
- data/config/locales/pt.yml +7 -0
- data/config/locales/ru.yml +6 -0
- data/config/locales/sv.yml +7 -0
- data/config/locales/tr-TR.yml +8 -0
- data/config/locales/uk.yml +6 -0
- data/db/migrate/20190215113158_use_md5_indexes.rb +17 -0
- data/lib/decidim/content_parsers/proposal_parser.rb +2 -2
- data/lib/decidim/proposals/admin_engine.rb +4 -2
- data/lib/decidim/proposals/markdown_to_proposals.rb +49 -4
- data/lib/decidim/proposals/proposal_serializer.rb +3 -2
- data/lib/decidim/proposals/version.rb +1 -1
- metadata +26 -20
data/config/locales/id-ID.yml
CHANGED
@@ -284,13 +284,16 @@ id:
|
|
284
284
|
name: Usul
|
285
285
|
participatory_texts:
|
286
286
|
bulk-actions:
|
287
|
+
are_you_sure: Apakah Anda yakin akan membuang seluruh konsep teks partisipatif?
|
287
288
|
import_doc: Impor dokumen
|
289
|
+
discard_all: Buang semua
|
288
290
|
import:
|
289
291
|
invalid: Formulirnya tidak valid!
|
290
292
|
success: Selamat, bagian berikut telah diuraikan dari dokumen yang diimpor, mereka telah dikonversi menjadi proposal. Sekarang Anda dapat meninjau dan menyesuaikan apa pun yang Anda perlukan sebelum memublikasikan.
|
291
293
|
index:
|
292
294
|
info_1: Bagian berikut telah diurai dari dokumen yang diimpor, mereka telah dikonversi menjadi proposal. Sekarang Anda dapat meninjau dan menyesuaikan apa pun yang Anda perlukan sebelum memublikasikan.
|
293
295
|
publish_document: Publikasikan dokumen
|
296
|
+
save_draft: Menyimpan konsep
|
294
297
|
title: TEKNIK PREVIEW TEKNIKAL
|
295
298
|
new_import:
|
296
299
|
bottom_hint: "(Anda akan dapat melihat dan menyortir bagian dokumen)"
|
@@ -300,10 +303,14 @@ id:
|
|
300
303
|
publish:
|
301
304
|
invalid: Tidak dapat memublikasikan proposal
|
302
305
|
success: Semua proposal telah dipublikasikan
|
306
|
+
discard:
|
307
|
+
success: Semua konsep teks Partisipatif telah dibuang.
|
303
308
|
sections:
|
304
309
|
article: "<em>Pasal</em>"
|
305
310
|
section: "<em>Bagian:</em> <strong>%{title}</strong>"
|
306
311
|
sub-section: "<em>Sub-bagian:</em> %{title}"
|
312
|
+
update:
|
313
|
+
success: Teks partisipatif berhasil diperbarui.
|
307
314
|
proposal_answers:
|
308
315
|
edit:
|
309
316
|
accepted: Diterima
|
data/config/locales/it.yml
CHANGED
@@ -261,7 +261,7 @@ it:
|
|
261
261
|
votes:
|
262
262
|
description: Numero di voti generati nelle proposte degli utenti
|
263
263
|
object: voti
|
264
|
-
title:
|
264
|
+
title: Voti
|
265
265
|
participatory_processes:
|
266
266
|
participatory_process_groups:
|
267
267
|
highlighted_proposals:
|
@@ -289,13 +289,16 @@ it:
|
|
289
289
|
name: Proposta
|
290
290
|
participatory_texts:
|
291
291
|
bulk-actions:
|
292
|
+
are_you_sure: Sei sicuro di scartare l'intera bozza del testo partecipativo?
|
292
293
|
import_doc: Importa il documento
|
294
|
+
discard_all: Scarta tutto
|
293
295
|
import:
|
294
296
|
invalid: Il modulo non è valido!
|
295
297
|
success: Complimenti, le seguenti sezioni sono state analizzate dal documento importato, sono state convertite in proposte. Ora puoi rivedere e regolare qualsiasi cosa tu abbia bisogno prima di pubblicare.
|
296
298
|
index:
|
297
299
|
info_1: Le seguenti sezioni sono state analizzate dal documento importato, sono state convertite in proposte. Ora puoi rivedere e regolare qualsiasi cosa tu abbia bisogno prima di pubblicare.
|
298
300
|
publish_document: Pubblica un documento
|
301
|
+
save_draft: Salva la bozza
|
299
302
|
title: ANTEPRIMA DEL TESTO PARTECIPATIVO
|
300
303
|
new_import:
|
301
304
|
bottom_hint: "(Sarai in grado di visualizzare in anteprima e ordinare le sezioni del documento)"
|
@@ -305,10 +308,14 @@ it:
|
|
305
308
|
publish:
|
306
309
|
invalid: Impossibile pubblicare proposte
|
307
310
|
success: Tutte le proposte sono state pubblicate
|
311
|
+
discard:
|
312
|
+
success: Tutte le bozze di testo partecipativo sono state scartate.
|
308
313
|
sections:
|
309
314
|
article: "<em>Articolo</em>"
|
310
315
|
section: "<em>Sezione:</em> <strong>%{title}</strong>"
|
311
316
|
sub-section: "<em>Sottosezione:</em> %{title}"
|
317
|
+
update:
|
318
|
+
success: Testo partecipativo aggiornato correttamente.
|
312
319
|
proposal_answers:
|
313
320
|
edit:
|
314
321
|
accepted: Accettata
|
data/config/locales/nl.yml
CHANGED
@@ -261,7 +261,7 @@ nl:
|
|
261
261
|
votes:
|
262
262
|
description: Aantal stemmen dat is gegenereerd in voorstellen van gebruikers
|
263
263
|
object: stemmen
|
264
|
-
title:
|
264
|
+
title: Stemmen
|
265
265
|
participatory_processes:
|
266
266
|
participatory_process_groups:
|
267
267
|
highlighted_proposals:
|
@@ -289,13 +289,16 @@ nl:
|
|
289
289
|
name: Voorstel
|
290
290
|
participatory_texts:
|
291
291
|
bulk-actions:
|
292
|
+
are_you_sure: Weet je zeker dat je de hele deelnemende tekstopmaak wilt verwijderen?
|
292
293
|
import_doc: Document importeren
|
294
|
+
discard_all: Gooi alles weg
|
293
295
|
import:
|
294
296
|
invalid: Het formulier is ongeldig!
|
295
297
|
success: Gefeliciteerd, de volgende secties zijn geparseerd uit het geïmporteerde document, ze zijn geconverteerd naar voorstellen. Nu kunt u alles bekijken en aanpassen wat u nodig heeft voordat u publiceert.
|
296
298
|
index:
|
297
299
|
info_1: De volgende secties zijn geparseerd uit het geïmporteerde document, ze zijn geconverteerd naar voorstellen. Nu kunt u alles bekijken en aanpassen wat u nodig heeft voordat u publiceert.
|
298
300
|
publish_document: Publiceer document
|
301
|
+
save_draft: Concept opslaan
|
299
302
|
title: VOORBEELD PARTICIPATIEVE TEKST BEKIJKEN
|
300
303
|
new_import:
|
301
304
|
bottom_hint: "(U kunt documentsecties vooraf bekijken en sorteren)"
|
@@ -305,10 +308,14 @@ nl:
|
|
305
308
|
publish:
|
306
309
|
invalid: Kan voorstellen niet publiceren
|
307
310
|
success: Alle voorstellen zijn gepubliceerd
|
311
|
+
discard:
|
312
|
+
success: Alle participatieve tekstconcepten zijn genegeerd.
|
308
313
|
sections:
|
309
314
|
article: "<em>Artikel</em>"
|
310
315
|
section: "<em>Sectie:</em> <strong>%{title}</strong>"
|
311
316
|
sub-section: "<em>Onderafdeling:</em> %{title}"
|
317
|
+
update:
|
318
|
+
success: Participatieve tekst succesvol bijgewerkt.
|
312
319
|
proposal_answers:
|
313
320
|
edit:
|
314
321
|
accepted: Aanvaard
|
@@ -461,7 +468,7 @@ nl:
|
|
461
468
|
published: Gepubliceerd
|
462
469
|
related_to: Gerelateerd aan
|
463
470
|
search: Zoeken
|
464
|
-
state:
|
471
|
+
state: Status
|
465
472
|
withdrawn: teruggetrokken
|
466
473
|
filters_small_view:
|
467
474
|
close_modal: Modal sluiten
|
@@ -551,7 +558,7 @@ nl:
|
|
551
558
|
official_proposal: Officieel voorstel
|
552
559
|
published_at: Gepubliceerd op
|
553
560
|
scope: Scope
|
554
|
-
state:
|
561
|
+
state: Status
|
555
562
|
title: Titel
|
556
563
|
votes: Stemmen
|
557
564
|
new:
|
data/config/locales/pl.yml
CHANGED
@@ -271,7 +271,7 @@ pl:
|
|
271
271
|
votes:
|
272
272
|
description: Liczba głosów uzyskanych w propozycjach przez użytkowników
|
273
273
|
object: głosów
|
274
|
-
title:
|
274
|
+
title: Głosowania
|
275
275
|
participatory_processes:
|
276
276
|
participatory_process_groups:
|
277
277
|
highlighted_proposals:
|
@@ -299,13 +299,16 @@ pl:
|
|
299
299
|
name: Wniosek
|
300
300
|
participatory_texts:
|
301
301
|
bulk-actions:
|
302
|
+
are_you_sure: Czy na pewno chcesz odrzucić cały szkic tekstu dla uczestników?
|
302
303
|
import_doc: Zaimportuj dokument
|
304
|
+
discard_all: Odrzuć wszystko
|
303
305
|
import:
|
304
306
|
invalid: Formularz jest nieprawidłowy!
|
305
307
|
success: Gratulacje, z importowanego dokumentu zostały przeanalizowane następujące sekcje, które zostały przekształcone w propozycje. Teraz możesz przejrzeć i dostosować, co potrzebujesz przed publikacją.
|
306
308
|
index:
|
307
309
|
info_1: Z importowanego dokumentu przeanalizowano następujące sekcje, które zostały przekształcone w propozycje. Teraz możesz przejrzeć i dostosować, co potrzebujesz przed publikacją.
|
308
310
|
publish_document: Opublikuj dokument
|
311
|
+
save_draft: Zapisz Projekt
|
309
312
|
title: PREVIEW TEKST UCZESTNIKA
|
310
313
|
new_import:
|
311
314
|
bottom_hint: "(Będziesz mógł przeglądać i sortować sekcje dokumentów)"
|
@@ -315,10 +318,14 @@ pl:
|
|
315
318
|
publish:
|
316
319
|
invalid: Nie można publikować propozycji
|
317
320
|
success: Wszystkie wnioski zostały opublikowane
|
321
|
+
discard:
|
322
|
+
success: Wszystkie projekty tekstowe z uczestnictwem zostały odrzucone.
|
318
323
|
sections:
|
319
324
|
article: "<em>Artykuł</em>"
|
320
325
|
section: "<em>Sekcja:</em> <strong>%{title}</strong>"
|
321
326
|
sub-section: "<em>Podsekcja:</em> %{title}"
|
327
|
+
update:
|
328
|
+
success: Tekst uczestnictwa został zaktualizowany pomyślnie.
|
322
329
|
proposal_answers:
|
323
330
|
edit:
|
324
331
|
accepted: Przyjęty
|
data/config/locales/pt-BR.yml
CHANGED
@@ -289,13 +289,16 @@ pt-BR:
|
|
289
289
|
name: Proposta
|
290
290
|
participatory_texts:
|
291
291
|
bulk-actions:
|
292
|
+
are_you_sure: Tem certeza de descartar todo o rascunho do texto participativo?
|
292
293
|
import_doc: Importar documento
|
294
|
+
discard_all: Descartar tudo
|
293
295
|
import:
|
294
296
|
invalid: O formato é inválido!
|
295
297
|
success: Parabéns, as seções a seguir foram analisadas do documento importado, elas foram convertidas em propostas. Agora você pode revisar e ajustar o que precisar antes de publicar.
|
296
298
|
index:
|
297
299
|
info_1: As seções a seguir foram analisadas a partir do documento importado, elas foram convertidas em propostas. Agora você pode revisar e ajustar o que precisar antes de publicar.
|
298
300
|
publish_document: Publicar documento
|
301
|
+
save_draft: Salvar rascunho
|
299
302
|
title: Visualizar texto participativo
|
300
303
|
new_import:
|
301
304
|
bottom_hint: "(Você será capaz de visualizar e classificar as seções do documento)"
|
@@ -305,10 +308,14 @@ pt-BR:
|
|
305
308
|
publish:
|
306
309
|
invalid: Não foi possível publicar propostas
|
307
310
|
success: Todas as propostas foram publicadas
|
311
|
+
discard:
|
312
|
+
success: Todos os rascunhos de texto participativos foram descartados.
|
308
313
|
sections:
|
309
314
|
article: "<em>Artigo</em>"
|
310
315
|
section: "<em>Seção:</em> <strong>%{title}</strong>"
|
311
316
|
sub-section: "<em>Subsecção:</em> %{title}"
|
317
|
+
update:
|
318
|
+
success: Texto participativo atualizado com sucesso.
|
312
319
|
proposal_answers:
|
313
320
|
edit:
|
314
321
|
accepted: Aceitaram
|
data/config/locales/pt.yml
CHANGED
@@ -289,13 +289,16 @@ pt:
|
|
289
289
|
name: Proposta
|
290
290
|
participatory_texts:
|
291
291
|
bulk-actions:
|
292
|
+
are_you_sure: Tem certeza de descartar todo o rascunho do texto participativo?
|
292
293
|
import_doc: Documento de importação
|
294
|
+
discard_all: Descartar tudo
|
293
295
|
import:
|
294
296
|
invalid: O formulário é inválido!
|
295
297
|
success: Parabéns, as seções a seguir foram analisadas do documento importado, elas foram convertidas em propostas. Agora você pode revisar e ajustar o que precisar antes de publicar.
|
296
298
|
index:
|
297
299
|
info_1: As seções a seguir foram analisadas a partir do documento importado, elas foram convertidas em propostas. Agora você pode revisar e ajustar o que precisar antes de publicar.
|
298
300
|
publish_document: Publicar documento
|
301
|
+
save_draft: Salvar rascunho
|
299
302
|
title: PREVIEW TEXTO PARTICIPATIVO
|
300
303
|
new_import:
|
301
304
|
bottom_hint: "(Você será capaz de visualizar e classificar as seções do documento)"
|
@@ -305,10 +308,14 @@ pt:
|
|
305
308
|
publish:
|
306
309
|
invalid: Não foi possível publicar propostas
|
307
310
|
success: Todas as propostas foram publicadas
|
311
|
+
discard:
|
312
|
+
success: Todos os rascunhos de texto participativos foram descartados.
|
308
313
|
sections:
|
309
314
|
article: "<em>Artigo</em>"
|
310
315
|
section: "<em>Seção:</em> <strong>%{title}</strong>"
|
311
316
|
sub-section: "<em>Subsecção:</em> %{title}"
|
317
|
+
update:
|
318
|
+
success: Texto participativo atualizado com sucesso.
|
312
319
|
proposal_answers:
|
313
320
|
edit:
|
314
321
|
accepted: Aceitaram
|
data/config/locales/ru.yml
CHANGED
@@ -149,6 +149,9 @@ ru:
|
|
149
149
|
email_outro: Вы получили это уведомление, потому что вы следите за «%{participatory_space_title}». Вы можете отписаться от уведомлений, перейдя по приведенной выше ссылке.
|
150
150
|
email_subject: В %{participatory_space_title} началось голосование по предложениям
|
151
151
|
notification_title: Теперь в <a href="%{participatory_space_url}">%{participatory_space_title}</a> появилась возможность <a href="%{resource_path}">голосовать по предложениям</a>
|
152
|
+
metrics:
|
153
|
+
votes:
|
154
|
+
title: Голоса
|
152
155
|
participatory_processes:
|
153
156
|
participatory_process_groups:
|
154
157
|
highlighted_proposals:
|
@@ -243,6 +246,9 @@ ru:
|
|
243
246
|
official: Служебные
|
244
247
|
filter_state_values:
|
245
248
|
except_rejected: Все, кроме отклоненных
|
249
|
+
collaborative_drafts:
|
250
|
+
filters:
|
251
|
+
state: Cостояние
|
246
252
|
create:
|
247
253
|
error: При попытке сохранить это предложение произошли ошибки.
|
248
254
|
success: Предложение успешно создано. Сохранено как черновик.
|
data/config/locales/sv.yml
CHANGED
@@ -289,13 +289,16 @@ sv:
|
|
289
289
|
name: Förslag
|
290
290
|
participatory_texts:
|
291
291
|
bulk-actions:
|
292
|
+
are_you_sure: Är du säker på att kassera hela deltagande textförslaget?
|
292
293
|
import_doc: Importera dokument
|
294
|
+
discard_all: Kassera allt
|
293
295
|
import:
|
294
296
|
invalid: Blanketten är ogiltig!
|
295
297
|
success: Grattis, följande avsnitt har analyserats från det importerade dokumentet, de har konverterats till förslag. Nu kan du granska och justera vad du behöver innan du publicerar.
|
296
298
|
index:
|
297
299
|
info_1: Följande avsnitt har analyserats från det importerade dokumentet, de har konverterats till förslag. Nu kan du granska och justera vad du behöver innan du publicerar.
|
298
300
|
publish_document: Publicera dokument
|
301
|
+
save_draft: Spara utkast
|
299
302
|
title: PREVIEW PARTICIPERY TEXT
|
300
303
|
new_import:
|
301
304
|
bottom_hint: "(Du kommer att kunna förhandsgranska och sortera dokumentavsnitt)"
|
@@ -305,10 +308,14 @@ sv:
|
|
305
308
|
publish:
|
306
309
|
invalid: Kunde inte publicera förslag
|
307
310
|
success: Alla förslag har publicerats
|
311
|
+
discard:
|
312
|
+
success: Alla deltagande textförslag har kasseras.
|
308
313
|
sections:
|
309
314
|
article: "<em>Artikel</em>"
|
310
315
|
section: "<em>Avsnitt:</em> <strong>%{title}</strong>"
|
311
316
|
sub-section: "<em>Underavsnitt:</em> %{title}"
|
317
|
+
update:
|
318
|
+
success: Deltagande text uppdaterad framgångsrikt.
|
312
319
|
proposal_answers:
|
313
320
|
edit:
|
314
321
|
accepted: Accepterad
|
data/config/locales/tr-TR.yml
CHANGED
@@ -141,6 +141,7 @@ tr:
|
|
141
141
|
email_intro: 'Şimdi %{participatory_space_title}yeni teklifler oluşturabilirsiniz! Bu sayfaya katılmaya başlayın:'
|
142
142
|
email_outro: Bu bildirimi, %{participatory_space_title}izlediğiniz için aldınız. Önceki bağlantıyı takip ederek bildirimleri almayı durdurabilirsiniz.
|
143
143
|
email_subject: Şu anda %{participatory_space_title}teklif mevcut
|
144
|
+
notification_title: Artık ileri koyabilirsiniz <a href="%{resource_path}">yeni teklifler</a> içinde <a href="%{participatory_space_url}">%{participatory_space_title}</a>
|
144
145
|
endorsing_enabled:
|
145
146
|
email_intro: 'Teklifleri %{participatory_space_title}onaylayabilirsiniz! Bu sayfaya katılmaya başlayın:'
|
146
147
|
email_outro: Bu bildirimi, %{participatory_space_title}izlediğiniz için aldınız. Önceki bağlantıyı takip ederek bildirimleri almayı durdurabilirsiniz.
|
@@ -288,13 +289,16 @@ tr:
|
|
288
289
|
name: öneri
|
289
290
|
participatory_texts:
|
290
291
|
bulk-actions:
|
292
|
+
are_you_sure: Katılımcı metin taslağının tamamını atadığınızdan emin misiniz?
|
291
293
|
import_doc: Dokümanı içe aktar
|
294
|
+
discard_all: Hepsini at
|
292
295
|
import:
|
293
296
|
invalid: Form geçersiz!
|
294
297
|
success: Tebrikler, aşağıdaki bölümler içe aktarılan belgeden ayrıştırılmış, tekliflere dönüştürülmüştür. Artık yayınlamadan önce ihtiyacınız olan şeyleri inceleyip ayarlayabilirsin.
|
295
298
|
index:
|
296
299
|
info_1: Aşağıdaki bölümler içe aktarılan belgeden ayrıştırılmış, tekliflere dönüştürülmüştür. Artık yayınlamadan önce ihtiyacınız olan şeyleri inceleyip ayarlayabilirsin.
|
297
300
|
publish_document: Belge yayınla
|
301
|
+
save_draft: Taslağı kaydet
|
298
302
|
title: ÖNEMLİ KATILIMCI METİN
|
299
303
|
new_import:
|
300
304
|
bottom_hint: "(Belge bölümlerini önizleyebilir ve sıralayabilirsiniz)"
|
@@ -304,10 +308,14 @@ tr:
|
|
304
308
|
publish:
|
305
309
|
invalid: Teklifler yayınlanamadı
|
306
310
|
success: Tüm teklifler yayınlandı
|
311
|
+
discard:
|
312
|
+
success: Tüm Katılımcı metin taslakları atıldı.
|
307
313
|
sections:
|
308
314
|
article: "<em>Madde</em>"
|
309
315
|
section: "<em>Bölüm:</em> <strong>%{title}</strong>"
|
310
316
|
sub-section: "<em>Alt Bölüm:</em> %{title}"
|
317
|
+
update:
|
318
|
+
success: Katılımcı metin başarıyla güncellendi.
|
311
319
|
proposal_answers:
|
312
320
|
edit:
|
313
321
|
accepted: Kabul edilmiş
|
data/config/locales/uk.yml
CHANGED
@@ -149,6 +149,9 @@ uk:
|
|
149
149
|
email_outro: Ви отримали це сповіщення, тому що ви стежите за %{participatory_space_title}. Ви можете відписатися від цих сповіщень, перейшовши за наведеним вище посиланням.
|
150
150
|
email_subject: У %{participatory_space_title} почалось голосування щодо пропозицій
|
151
151
|
notification_title: Тепер в <a href="%{participatory_space_url}">%{participatory_space_title}</a> відкрилась можливість <a href="%{resource_path}">голосувати щодо пропозицій</a>
|
152
|
+
metrics:
|
153
|
+
votes:
|
154
|
+
title: Голоси
|
152
155
|
participatory_processes:
|
153
156
|
participatory_process_groups:
|
154
157
|
highlighted_proposals:
|
@@ -243,6 +246,9 @@ uk:
|
|
243
246
|
official: Службове
|
244
247
|
filter_state_values:
|
245
248
|
except_rejected: Усі, окрім відхилених
|
249
|
+
collaborative_drafts:
|
250
|
+
filters:
|
251
|
+
state: Стан
|
246
252
|
create:
|
247
253
|
error: При спробі збереження цієї пропозиції сталися помилки.
|
248
254
|
success: Пропозицію успішно створено. Збережено як чернетку.
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class UseMd5Indexes < ActiveRecord::Migration[5.2]
|
4
|
+
def up
|
5
|
+
remove_index :decidim_proposals_proposals, name: "decidim_proposals_proposal_title_search"
|
6
|
+
remove_index :decidim_proposals_proposals, name: "decidim_proposals_proposal_body_search"
|
7
|
+
execute "CREATE INDEX decidim_proposals_proposal_title_search ON decidim_proposals_proposals(md5(title::text))"
|
8
|
+
execute "CREATE INDEX decidim_proposals_proposal_body_search ON decidim_proposals_proposals(md5(body::text))"
|
9
|
+
end
|
10
|
+
|
11
|
+
def down
|
12
|
+
remove_index :decidim_proposals_proposals, name: "decidim_proposals_proposal_title_search"
|
13
|
+
remove_index :decidim_proposals_proposals, name: "decidim_proposals_proposal_body_search"
|
14
|
+
add_index :decidim_proposals_proposals, :title, name: "decidim_proposals_proposal_title_search"
|
15
|
+
add_index :decidim_proposals_proposals, :body, name: "decidim_proposals_proposal_body_search"
|
16
|
+
end
|
17
|
+
end
|
@@ -22,8 +22,8 @@ module Decidim
|
|
22
22
|
# Matches a URL
|
23
23
|
URL_REGEX_SCHEME = '(?:http(s)?:\/\/)'
|
24
24
|
URL_REGEX_CONTENT = '[\w.-]+[\w\-\._~:\/?#\[\]@!\$&\'\(\)\*\+,;=.]+'
|
25
|
-
URL_REGEX_END_CHAR = '[\
|
26
|
-
URL_REGEX =
|
25
|
+
URL_REGEX_END_CHAR = '[\d]'
|
26
|
+
URL_REGEX = %r{#{URL_REGEX_SCHEME}#{URL_REGEX_CONTENT}/proposals/#{URL_REGEX_END_CHAR}+}i
|
27
27
|
# Matches a mentioned Proposal ID (~(d)+ expression)
|
28
28
|
ID_REGEX = /~(\d+)/
|
29
29
|
|
@@ -21,11 +21,13 @@ module Decidim
|
|
21
21
|
resources :proposal_notes, only: [:index, :create]
|
22
22
|
end
|
23
23
|
scope "/proposal_components/:component_id" do
|
24
|
-
resources :participatory_texts, only: :index do
|
24
|
+
resources :participatory_texts, only: [:index] do
|
25
25
|
collection do
|
26
26
|
get :new_import
|
27
27
|
post :import
|
28
|
-
|
28
|
+
patch :import
|
29
|
+
post :update
|
30
|
+
post :discard
|
29
31
|
end
|
30
32
|
end
|
31
33
|
end
|
@@ -19,11 +19,17 @@ module Decidim
|
|
19
19
|
@current_user = current_user
|
20
20
|
@last_position = 0
|
21
21
|
@num_sections = 0
|
22
|
+
@list_items = []
|
22
23
|
end
|
23
24
|
|
24
25
|
def parse(document)
|
25
26
|
renderer = self
|
26
|
-
|
27
|
+
extensions = {
|
28
|
+
# no lax_spacing so that it is easier to group paragraphs in articles.
|
29
|
+
lax_spacing: false,
|
30
|
+
fenced_code_blocks: true
|
31
|
+
}
|
32
|
+
parser = ::Redcarpet::Markdown.new(renderer, extensions)
|
27
33
|
parser.render(document)
|
28
34
|
end
|
29
35
|
|
@@ -31,6 +37,8 @@ module Decidim
|
|
31
37
|
# Redcarpet callbacks
|
32
38
|
##########################################
|
33
39
|
|
40
|
+
# Block-level calls ######################
|
41
|
+
|
34
42
|
# Recarpet callback to process headers.
|
35
43
|
# Creates Paricipatory Text Proposals at Section and Subsection levels.
|
36
44
|
def header(title, level)
|
@@ -60,9 +68,46 @@ module Decidim
|
|
60
68
|
text
|
61
69
|
end
|
62
70
|
|
63
|
-
#
|
64
|
-
def
|
65
|
-
|
71
|
+
# Render the list as a whole
|
72
|
+
def list(_contents, list_type)
|
73
|
+
return if @list_items.empty?
|
74
|
+
|
75
|
+
body = case list_type
|
76
|
+
when :ordered
|
77
|
+
@list_items.collect.with_index { |item, idx| "#{idx + 1}. #{item}\n" }.join
|
78
|
+
else
|
79
|
+
@list_items.collect { |item| "- #{item}\n" }.join
|
80
|
+
end
|
81
|
+
# reset items for the next list
|
82
|
+
@list_items = []
|
83
|
+
create_proposal(
|
84
|
+
(@last_position + 1 - @num_sections).to_s,
|
85
|
+
body,
|
86
|
+
Decidim::Proposals::ParticipatoryTextSection::LEVELS[:article]
|
87
|
+
)
|
88
|
+
|
89
|
+
body
|
90
|
+
end
|
91
|
+
|
92
|
+
# do not render list items, save them for rendering with the whole list
|
93
|
+
def list_item(text, _list_type)
|
94
|
+
@list_items << text.strip
|
95
|
+
nil
|
96
|
+
end
|
97
|
+
|
98
|
+
# Span-level calls #######################
|
99
|
+
|
100
|
+
def link(link, title, content)
|
101
|
+
attrs = %(href="#{link}")
|
102
|
+
attrs += %( title="#{title}") if title.present?
|
103
|
+
"<a #{attrs}>#{content}</a>"
|
104
|
+
end
|
105
|
+
|
106
|
+
def image(link, title, alt_text)
|
107
|
+
attrs = %(src="#{link}")
|
108
|
+
attrs += %( alt="#{alt_text}") if alt_text.present?
|
109
|
+
attrs += %( title="#{title}") if title.present?
|
110
|
+
"<img #{attrs}/>"
|
66
111
|
end
|
67
112
|
|
68
113
|
private
|