decidim-core 0.32.0.rc3 → 0.32.0
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/author_cell.rb +0 -4
- data/app/cells/decidim/content_blocks/highlighted_content_banner_cell.rb +1 -1
- data/app/cells/decidim/content_blocks/highlighted_participatory_spaces_cell.rb +1 -1
- data/app/commands/decidim/destroy_account.rb +12 -1
- data/app/commands/decidim/multiple_attachments_methods.rb +28 -27
- data/app/jobs/decidim/process_inactive_participant_job.rb +0 -7
- data/app/mailers/decidim/delete_user_mailer.rb +14 -0
- data/app/mailers/decidim/participants_account_mailer.rb +0 -16
- data/app/packs/src/decidim/controllers/main_menu/controller.js +33 -0
- data/app/packs/src/decidim/controllers/main_menu/main_menu.test.js +77 -0
- data/app/packs/src/decidim/controllers/mention/controller.js +296 -140
- data/app/packs/src/decidim/controllers/mention/input_mentions.test.js +120 -457
- data/app/packs/src/decidim/controllers/multiple_mentions/controller.js +68 -32
- data/app/packs/src/decidim/controllers/multiple_mentions/input_multiple_mentions.test.js +30 -23
- data/app/packs/src/decidim/editor/common/suggestion.js +3 -1
- data/app/packs/src/decidim/editor/extensions/indent/index.js +9 -0
- data/app/packs/src/decidim/geocoding/reverse_geocoding.js +15 -5
- data/app/packs/src/decidim/geocoding/reverse_geocoding.test.js +197 -0
- data/app/packs/src/decidim/index.js +2 -2
- data/app/packs/stylesheets/decidim/_conversations.scss +14 -0
- data/app/packs/stylesheets/decidim/_dropdown.scss +1 -1
- data/app/packs/stylesheets/decidim/_editor_suggestions.scss +49 -0
- data/app/packs/stylesheets/decidim/_header.scss +12 -8
- data/app/packs/stylesheets/decidim/_tom_select.scss +23 -0
- data/app/packs/stylesheets/decidim/application.scss +2 -0
- data/app/packs/stylesheets/decidim/editor.scss +2 -33
- data/app/packs/stylesheets/decidim/geocoding_addons.scss +10 -2
- data/app/uploaders/decidim/image_uploader.rb +1 -1
- data/app/views/decidim/delete_user_mailer/delete.html.erb +6 -0
- data/app/views/decidim/messaging/conversations/_error_modal.html.erb +11 -19
- data/app/views/decidim/messaging/conversations/error.js.erb +12 -7
- data/app/views/layouts/decidim/header/_menu_breadcrumb_mobile.html.erb +2 -1
- data/config/locales/ar.yml +0 -2
- data/config/locales/bg.yml +0 -2
- data/config/locales/ca-IT.yml +21 -10
- data/config/locales/ca.yml +21 -10
- data/config/locales/cs.yml +10 -9
- data/config/locales/de.yml +4 -13
- data/config/locales/el.yml +0 -1
- data/config/locales/en.yml +20 -9
- data/config/locales/es-MX.yml +20 -9
- data/config/locales/es-PY.yml +20 -9
- data/config/locales/es.yml +20 -9
- data/config/locales/eu.yml +36 -9
- data/config/locales/fi-plain.yml +19 -8
- data/config/locales/fi.yml +19 -8
- data/config/locales/fr-CA.yml +23 -9
- data/config/locales/fr.yml +23 -9
- data/config/locales/hu.yml +0 -2
- data/config/locales/it.yml +0 -2
- data/config/locales/ja.yml +59 -19
- data/config/locales/lb.yml +0 -2
- data/config/locales/lt.yml +0 -2
- data/config/locales/nl.yml +0 -2
- data/config/locales/no.yml +0 -2
- data/config/locales/pl.yml +2 -4
- data/config/locales/pt-BR.yml +2 -11
- data/config/locales/pt.yml +0 -2
- data/config/locales/ro-RO.yml +1 -10
- data/config/locales/sk.yml +1 -10
- data/config/locales/sv.yml +0 -9
- data/config/locales/tr-TR.yml +0 -2
- data/config/locales/zh-CN.yml +0 -2
- data/config/locales/zh-TW.yml +0 -2
- data/decidim-core.gemspec +1 -1
- data/lib/decidim/attachment_attributes.rb +58 -9
- data/lib/decidim/command.rb +1 -1
- data/lib/decidim/core/content_blocks/registry_manager.rb +4 -4
- data/lib/decidim/core/engine.rb +8 -0
- data/lib/decidim/core/test/factories.rb +3 -0
- data/lib/decidim/core/test/shared_examples/admin_resource_gallery_examples.rb +10 -10
- data/lib/decidim/core/test/shared_examples/comments_examples.rb +6 -6
- data/lib/decidim/core/version.rb +1 -1
- data/lib/decidim/map/autocomplete.rb +4 -3
- data/lib/decidim/searchable.rb +5 -0
- data/lib/decidim/view_model.rb +1 -1
- data/lib/tasks/decidim_mailers_tasks.rake +31 -9
- metadata +10 -9
- data/app/commands/decidim/gallery_methods.rb +0 -107
- data/app/packs/src/decidim/vendor/tribute.js +0 -1890
- data/app/packs/stylesheets/decidim/_tribute.scss +0 -36
- data/app/views/decidim/participants_account_mailer/removal_notification.html.erb +0 -11
data/config/locales/ja.yml
CHANGED
|
@@ -406,6 +406,10 @@ ja:
|
|
|
406
406
|
withdraw:
|
|
407
407
|
error: 修正案の取り消し中に問題がありました。
|
|
408
408
|
success: 修正を撤回しました。
|
|
409
|
+
wizard_step_form:
|
|
410
|
+
steps:
|
|
411
|
+
'1': 修正内容を作成する
|
|
412
|
+
'2': 修正内容を公開
|
|
409
413
|
anonymous_user: 匿名です
|
|
410
414
|
application:
|
|
411
415
|
document:
|
|
@@ -535,7 +539,7 @@ ja:
|
|
|
535
539
|
global:
|
|
536
540
|
amendments_enabled: 修正を有効にする
|
|
537
541
|
comments_enabled: コメントを有効にする
|
|
538
|
-
comments_max_length:
|
|
542
|
+
comments_max_length: 各コメントの最大文字数
|
|
539
543
|
define_taxonomy_filters: この設定を使用する前に、参加型スペースのフィルターをいくつか定義してください。
|
|
540
544
|
dummy_global_attribute1: ダミーステータス1
|
|
541
545
|
dummy_global_attribute2: ダミーステータス2
|
|
@@ -853,9 +857,13 @@ ja:
|
|
|
853
857
|
affected_user:
|
|
854
858
|
email_intro: '%{amendable_title}の修正が承認されました。このページから確認できます:'
|
|
855
859
|
email_outro: あなたは %{amendable_title} の作成者であるため、この通知を受け取りました。
|
|
860
|
+
email_subject: '%{amendable_title} に対する %{emendation_author_name} からの修正内容を承認しました'
|
|
861
|
+
notification_title: <a href="%{emendation_author_path}">%{emendation_author_name}</a> によって作成された<a href="%{emendation_path}">修正案</a>が、<a href="%{amendable_path}">%{amendable_title}</a> に対して承認されました。
|
|
856
862
|
follower:
|
|
857
863
|
email_intro: '%{amendable_title}の修正が承認されました。このページから確認できます:'
|
|
858
|
-
email_outro: '%{amendable_title}
|
|
864
|
+
email_outro: '%{amendable_title}をフォローしているため、この通知を受け取りました。上記のリンクから通知の受信を停止することができます。'
|
|
865
|
+
email_subject: '%{amendable_title} に対する %{emendation_author_name} からの修正内容を承認しました'
|
|
866
|
+
notification_title: <a href="%{emendation_author_path}">%{emendation_author_name}</a> が作成した <a href="%{emendation_path}">修正内容</a> が <a href="%{amendable_path}">%{amendable_title}</a> に採用されました。
|
|
859
867
|
amendment_created:
|
|
860
868
|
affected_user:
|
|
861
869
|
email_intro: '%{amendable_title}の新しい修正が作成されました。このページから確認できます:'
|
|
@@ -864,27 +872,36 @@ ja:
|
|
|
864
872
|
notification_title: <a href="%{amendable_path}">%{amendable_title}</a> の新しい修正が作成されました。
|
|
865
873
|
follower:
|
|
866
874
|
email_intro: '%{amendable_title}の新しい修正が作成されました。このページから確認できます:'
|
|
867
|
-
email_outro: '%{amendable_title}
|
|
875
|
+
email_outro: '%{amendable_title}をフォローしているため、この通知を受け取りました。上記のリンクから通知の受信を停止することができます。'
|
|
868
876
|
email_subject: '%{amendable_title} の新しい修正'
|
|
869
877
|
notification_title: <a href="%{amendable_path}">%{amendable_title}</a> の新しい修正が作成されました。
|
|
870
878
|
amendment_promoted:
|
|
871
879
|
affected_user:
|
|
872
880
|
email_intro: '%{amendable_title} の修正が却下されました。新しい %{amendable_type}として公開されました。このページから見ることができます:'
|
|
873
881
|
email_outro: あなたは %{amendable_title} の作成者であるため、この通知を受け取りました。
|
|
882
|
+
email_subject: '%{emendation_author_name}による修正が新しい%{amendable_type}として公開されました'
|
|
883
|
+
notification_title: <a href="%{amendable_path}">%{amendable_title}</a>に対する<a href="%{emendation_path}">却下された修正案</a>が、<a href="%{emendation_author_path}">%{emendation_author_name}</a>によって新しい%{amendable_type}として公開されました。
|
|
874
884
|
follower:
|
|
875
885
|
email_intro: '%{amendable_title} の修正が却下されました。新しい %{amendable_type}として公開されました。このページから見ることができます:'
|
|
876
|
-
email_outro: '%{amendable_title}
|
|
886
|
+
email_outro: '%{amendable_title}をフォローしているため、この通知を受け取りました。上記のリンクから通知の受信を停止することができます。'
|
|
887
|
+
email_subject: '%{emendation_author_name} による修正が新しい %{amendable_type} として公開されました'
|
|
888
|
+
notification_title: <a href="%{amendable_path}">%{amendable_title}</a>に対する<a href="%{emendation_path}">却下された修正案</a>が、<a href="%{emendation_author_path}">%{emendation_author_name}</a>によって新しい%{amendable_type}として公開されました。
|
|
877
889
|
amendment_rejected:
|
|
878
890
|
affected_user:
|
|
879
891
|
email_intro: '%{amendable_title}の修正が拒否されました。このページから確認できます:'
|
|
880
892
|
email_outro: あなたは %{amendable_title} の作成者であるため、この通知を受け取りました。
|
|
893
|
+
email_subject: '%{amendable_title}に対する修正案が %{emendation_author_name} によって却下されました'
|
|
894
|
+
notification_title: <a href="%{emendation_author_path}">%{emendation_author_name}</a> が作成した<a href="%{emendation_path}">修正案</a>が、<a href="%{amendable_path}">%{amendable_title}</a> に対して承認されました。
|
|
881
895
|
follower:
|
|
882
896
|
email_intro: '%{amendable_title}の修正が拒否されました。このページから確認できます:'
|
|
883
|
-
email_outro: '%{amendable_title}
|
|
897
|
+
email_outro: '%{amendable_title}をフォローしているため、この通知を受け取りました。上記のリンクから通知の受信を停止することができます。'
|
|
898
|
+
email_subject: '%{amendable_title}に対する修正案が %{emendation_author_name} によって却下されました'
|
|
899
|
+
notification_title: <a href="%{emendation_author_path}">%{emendation_author_name}</a> が作成した<a href="%{emendation_path}">修正案</a>が、<a href="%{amendable_path}">%{amendable_title}</a> に対して承認されました。
|
|
884
900
|
emendation_promoted:
|
|
885
901
|
follower:
|
|
886
902
|
email_intro: '%{amendable_title}に対する修正案が公開されました。このページから確認できます:'
|
|
887
903
|
email_outro: あなたは %{amendable_title}の作者であるため、この通知を受け取りました。
|
|
904
|
+
email_subject: '%{emendation_author_name}による修正案が新しい%{amendable_type}として公開されました'
|
|
888
905
|
attachments:
|
|
889
906
|
attachment_created:
|
|
890
907
|
email_intro: '%{resource_title}に新しいドキュメントが追加されました。このページから見ることができます:'
|
|
@@ -894,13 +911,13 @@ ja:
|
|
|
894
911
|
components:
|
|
895
912
|
component_published:
|
|
896
913
|
email_intro: '%{resource_title} コンポーネントが %{participatory_space_title}でアクティブになりました。このページから見ることができます:'
|
|
897
|
-
email_outro: '%{participatory_space_title}
|
|
914
|
+
email_outro: '%{participatory_space_title}をフォローしているため、この通知を受け取りました。上記のリンクから通知の受信を停止することができます。'
|
|
898
915
|
email_subject: '%{participatory_space_title} への更新'
|
|
899
916
|
notification_title: '%{resource_title} コンポーネントが <a href="%{resource_path}">%{participatory_space_title}</a> のためにアクティブになりました'
|
|
900
917
|
email_event:
|
|
901
918
|
email_greeting: こんにちは、 %{user_name} さん。
|
|
902
919
|
email_intro: '"%{resource_title}" の更新がありました。このページから見ることができます:'
|
|
903
|
-
email_outro: '「%{resource_title}
|
|
920
|
+
email_outro: '「%{resource_title}」をフォローしているため、この通知を受け取りました。上記のリンクからアンフォローすることができます。'
|
|
904
921
|
email_subject: '%{resource_title} への更新'
|
|
905
922
|
gamification:
|
|
906
923
|
badge_earned:
|
|
@@ -927,8 +944,8 @@ ja:
|
|
|
927
944
|
email_subject: '%{resource_type} は表示されなくなりました'
|
|
928
945
|
notification_title: |-
|
|
929
946
|
あなたの%{resource_type}は表示されなくなりました。<br>
|
|
930
|
-
これは、あなたが返信した提案、ミーティング、討論、またはコメントがモデレーションされたためです。
|
|
931
|
-
元の投稿が再び表示可能になった場合、あなたのコメントも自動的に復元されます。
|
|
947
|
+
これは、あなたが返信した提案、ミーティング、討論、またはコメントがモデレーションされたためです。
|
|
948
|
+
元の投稿が再び表示可能になった場合、あなたのコメントも自動的に復元されます。
|
|
932
949
|
<i>%{resource_content}</i>
|
|
933
950
|
resource_hidden:
|
|
934
951
|
email_intro: '%{report_reasons} として報告されたため、管理者が %{resource_type} を削除しました。'
|
|
@@ -937,13 +954,25 @@ ja:
|
|
|
937
954
|
notification_title: |-
|
|
938
955
|
%{resource_type} として報告されたため、管理者が %{report_reasons} を削除しました。</br>
|
|
939
956
|
<i>%{resource_content}</i>
|
|
957
|
+
resource_liked:
|
|
958
|
+
email_intro: 'あなたがフォローしている%{liker_name} が「%{resource_title}」をいいねしました。興味深いかもしれないので、ぜひチェックしてご参加ください:'
|
|
959
|
+
email_outro: '%{liker_name} をフォローしているため、この通知が届きました。上記のリンクから通知の受信を停止できます。'
|
|
960
|
+
email_subject: "%{liker_name} が新しいいいねを行いました"
|
|
961
|
+
notification_title: <a href="%{resource_path}">%{resource_title}</a> %{resource_type} を <a href="%{liker_path}">%{liker_name} </a>さんがいいねしました。
|
|
940
962
|
resources:
|
|
941
963
|
soft_deleted:
|
|
942
964
|
notification_title: 管理者があなたの "%{resource_type}" " "%{resource_title}" を削除しました。
|
|
943
965
|
users:
|
|
966
|
+
profile_updated:
|
|
967
|
+
email_intro: あなたがフォローしている %{name} さんの <a href="%{resource_url}">プロフィールページ</a>が更新されました。
|
|
968
|
+
email_outro: '%{name}をフォローしているため、この通知を受け取りました。上記のリンクから通知の受信を停止することができます。'
|
|
969
|
+
email_subject: "%{name} はプロフィールを更新しました"
|
|
970
|
+
notification_title: あなたがフォローしている %{name} さんの <a href="%{resource_path}">プロフィールページ</a>が更新されました。
|
|
944
971
|
user_officialized:
|
|
972
|
+
email_intro: 参加者 %{name} が公式化されました。
|
|
945
973
|
email_outro: あなたは組織の管理者であるため、この通知を受け取りました。
|
|
946
974
|
email_subject: "%{name} が公式化されました"
|
|
975
|
+
notification_title: 参加者 %{name} が公式化されました。
|
|
947
976
|
export_mailer:
|
|
948
977
|
download_your_data_export:
|
|
949
978
|
click_button_html: 次のリンクをクリックしてデータをダウンロードしてください。<br/>ファイルは %{date} までダウンロードできます。
|
|
@@ -1117,6 +1146,12 @@ ja:
|
|
|
1117
1146
|
update_permissions_with_space: "%{user_name} が %{space_name} の %{resource_name} の権限を更新しました"
|
|
1118
1147
|
update_with_space: "%{user_name} さんが %{resource_name} で %{space_name} を更新しました"
|
|
1119
1148
|
value_types:
|
|
1149
|
+
access_mode_presenter:
|
|
1150
|
+
access_modes:
|
|
1151
|
+
open: 参加可能
|
|
1152
|
+
restricted: メンバー限定
|
|
1153
|
+
transparent: 閲覧可能
|
|
1154
|
+
not_found: アクセスモード %{id} が見つかりません
|
|
1120
1155
|
area_presenter:
|
|
1121
1156
|
not_found: 'エリアがデータベース上に見つかりませんでした (ID: %{id})'
|
|
1122
1157
|
area_type_presenter:
|
|
@@ -1164,7 +1199,6 @@ ja:
|
|
|
1164
1199
|
create:
|
|
1165
1200
|
error: 会話が開始されませんでした。後ほど改めてお試しください。
|
|
1166
1201
|
error_modal:
|
|
1167
|
-
close: ウィンドウを閉じる
|
|
1168
1202
|
correct_errors: エラーを修正して、再度お試しください
|
|
1169
1203
|
intro: 'あなたのメッセージには次のエラーがありました:'
|
|
1170
1204
|
ok: OK
|
|
@@ -1290,6 +1324,7 @@ ja:
|
|
|
1290
1324
|
own_activity: 誰かが私の提案にコメントしたり、私に言及したりした時など、自分自身の活動
|
|
1291
1325
|
push_notifications: プッシュ通知
|
|
1292
1326
|
push_notifications_reminder: プラットフォームから通知を受け取るには、まずブラウザの設定で通知を許可する必要があります。
|
|
1327
|
+
push_notifications_unsupported_browser: お使いのブラウザはサポートされていません。
|
|
1293
1328
|
receive_notifications_about: 受け取りたい通知
|
|
1294
1329
|
update_notifications_settings: 変更を保存
|
|
1295
1330
|
update:
|
|
@@ -1348,7 +1383,7 @@ ja:
|
|
|
1348
1383
|
is_root: このタクソノミーが親を持たない場合は True
|
|
1349
1384
|
name: このタクソノミーの名前
|
|
1350
1385
|
parent_id: このタクソノミーの親の固有ID(もしあれば)
|
|
1351
|
-
part_of:
|
|
1386
|
+
part_of: この分類が他の分類の一部であるかどうかを検出するために使用されます
|
|
1352
1387
|
taxonomizations_count: このタクソノミーを使用するリソースの数
|
|
1353
1388
|
updated_at: このタクソノミーの最終更新日時
|
|
1354
1389
|
weight: このタクソノミーが表示される順序
|
|
@@ -1464,7 +1499,7 @@ ja:
|
|
|
1464
1499
|
participants_account_mailer:
|
|
1465
1500
|
inactivity_notification:
|
|
1466
1501
|
body_html: |
|
|
1467
|
-
<p>記録によると、あなたは<strong>%{date_account_creation}</strong>に%{organization_name}のアカウントを作成しましたが、<strong>%{date_last_connection}</strong>以降は利用されていないようです。</p> <p>プライバシー保護のため、このアカウントは<strong>%{days}日後</strong>に自動削除される予定です。</p>
|
|
1502
|
+
<p>記録によると、あなたは<strong>%{date_account_creation}</strong>に%{organization_name}のアカウントを作成しましたが、<strong>%{date_last_connection}</strong>以降は利用されていないようです。</p> <p>プライバシー保護のため、このアカウントは<strong>%{days}日後</strong>に自動削除される予定です。</p>
|
|
1468
1503
|
<p>%{organization_name}のアカウントを保持したい場合は、それまでに%{login_url}にアクセスするだけでアカウントは維持されます。</p>
|
|
1469
1504
|
greetings_html: |
|
|
1470
1505
|
よろしくお願いいたします。<br>
|
|
@@ -1473,16 +1508,18 @@ ja:
|
|
|
1473
1508
|
log_in: ログイン
|
|
1474
1509
|
never_logged_in: ログインしたことがない
|
|
1475
1510
|
subject: 非アクティブなアカウントの警告
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
hello: こんにちは %{username} さん、
|
|
1482
|
-
subject: 非アクティブなアカウントが削除されました
|
|
1511
|
+
participatory_space:
|
|
1512
|
+
pages:
|
|
1513
|
+
user_profile:
|
|
1514
|
+
member_of:
|
|
1515
|
+
member_of: 所属グループ
|
|
1483
1516
|
participatory_space_members:
|
|
1484
1517
|
index:
|
|
1485
1518
|
members: メンバー
|
|
1519
|
+
participatory_spaces:
|
|
1520
|
+
show:
|
|
1521
|
+
restricted_space: これは制限されたスペースです。メンバーと管理者のみがアクセスできます。
|
|
1522
|
+
transparent_space: これは閲覧可能スペースです。誰でもコンテンツを閲覧できますが、メンバーと管理者のみ参加できます。
|
|
1486
1523
|
passwords:
|
|
1487
1524
|
update:
|
|
1488
1525
|
error: パスワードの更新中に問題が発生しました。
|
|
@@ -1772,6 +1809,7 @@ ja:
|
|
|
1772
1809
|
nickname_help: ニックネームは %{organization} です。英文字、数字、'-' および '_' のみ使用できます。
|
|
1773
1810
|
submit_button: 保存
|
|
1774
1811
|
subtitle: 招待を受け入れる場合は、アカウントIDとパスワードを設定してください。
|
|
1812
|
+
subtitle_no_password: 招待を受け入れる場合は、ニックネームを設定してください。
|
|
1775
1813
|
invitation_removed: 招待が削除されました。
|
|
1776
1814
|
invitation_token_invalid: 指定された招待トークンは無効です!
|
|
1777
1815
|
new:
|
|
@@ -1779,6 +1817,8 @@ ja:
|
|
|
1779
1817
|
submit_button: 招待状を送信
|
|
1780
1818
|
no_invitations_remaining: 招待状は残っていません
|
|
1781
1819
|
send_instructions: '%{email} に招待メールが送信されました。'
|
|
1820
|
+
updated: 招待が承認されました。サインインしています。
|
|
1821
|
+
updated_not_active: 招待が承認されました。
|
|
1782
1822
|
mailer:
|
|
1783
1823
|
confirmation_instructions:
|
|
1784
1824
|
action: アカウントを確認する
|
data/config/locales/lb.yml
CHANGED
|
@@ -297,7 +297,6 @@ lb:
|
|
|
297
297
|
global:
|
|
298
298
|
amendments_enabled: Ännerungen aktivéiert
|
|
299
299
|
comments_enabled: Kommentarer aktiv
|
|
300
|
-
comments_max_length: Maximal Längt vun de Kommentären
|
|
301
300
|
dummy_global_attribute1: Dummy Attribut 1
|
|
302
301
|
dummy_global_attribute2: Dummy Attribut 2
|
|
303
302
|
dummy_global_translatable_text: Dummy Text ze iwwersetzen
|
|
@@ -587,7 +586,6 @@ lb:
|
|
|
587
586
|
modal_title: Nei Konversatioun
|
|
588
587
|
no_results: Keen Resultat
|
|
589
588
|
error_modal:
|
|
590
|
-
close: Dialog zou maachen
|
|
591
589
|
correct_errors: Korrigéier w. e. g. dëse Feeler a probéier op en Neits.
|
|
592
590
|
intro: 'Bei denger Noriicht ass dësen Feeler opgetrueden:'
|
|
593
591
|
ok: OK
|
data/config/locales/lt.yml
CHANGED
|
@@ -468,7 +468,6 @@ lt:
|
|
|
468
468
|
global:
|
|
469
469
|
amendments_enabled: Pataisos leidžiamos
|
|
470
470
|
comments_enabled: Komentarai leidžiami
|
|
471
|
-
comments_max_length: Komentarų maksimalus ilgis
|
|
472
471
|
dummy_global_attribute1: Fiktyvus atributas 1
|
|
473
472
|
dummy_global_attribute2: Fiktyvus atributas 2
|
|
474
473
|
dummy_global_translatable_text: Testinis verčiamas tekstas
|
|
@@ -894,7 +893,6 @@ lt:
|
|
|
894
893
|
create:
|
|
895
894
|
error: Pokalbis neprasidėjo. Bandykite dar kartą vėliau.
|
|
896
895
|
error_modal:
|
|
897
|
-
close: Uždaryti modalinį langą
|
|
898
896
|
correct_errors: Ištaisykite klaidas ir bandykite dar kartą.
|
|
899
897
|
intro: 'Jūsų pranešime aptiktos šios klaidos:'
|
|
900
898
|
ok: Gerai
|
data/config/locales/nl.yml
CHANGED
|
@@ -298,7 +298,6 @@ nl:
|
|
|
298
298
|
global:
|
|
299
299
|
amendments_enabled: Wijzigingen toegestaan
|
|
300
300
|
comments_enabled: Reacties ingeschakeld
|
|
301
|
-
comments_max_length: Commentaar maximale lengte
|
|
302
301
|
dummy_global_attribute1: Voorbeeld-kenmerk 1
|
|
303
302
|
dummy_global_attribute2: Voorbeeld-kenmerk 2
|
|
304
303
|
dummy_global_translatable_text: Vertaalbare tekst Dummy
|
|
@@ -588,7 +587,6 @@ nl:
|
|
|
588
587
|
modal_title: Nieuwe conversatie
|
|
589
588
|
no_results: Geen resultaten gevonden
|
|
590
589
|
error_modal:
|
|
591
|
-
close: Sluit venster
|
|
592
590
|
correct_errors: Corrigeer de fouten en probeer opnieuw.
|
|
593
591
|
intro: 'Er waren de volgende fouten met je bericht:'
|
|
594
592
|
ok: OK
|
data/config/locales/no.yml
CHANGED
|
@@ -304,7 +304,6 @@
|
|
|
304
304
|
global:
|
|
305
305
|
amendments_enabled: Endringer aktivert
|
|
306
306
|
comments_enabled: Kommentarer aktivert
|
|
307
|
-
comments_max_length: Maks lengde på kommentarer
|
|
308
307
|
dummy_global_attribute1: Dummy Egenskap 1
|
|
309
308
|
dummy_global_attribute2: Dummy Egenskap 2
|
|
310
309
|
dummy_global_translatable_text: Dummy Oversettbar tekst
|
|
@@ -602,7 +601,6 @@
|
|
|
602
601
|
modal_title: Ny Samtale
|
|
603
602
|
no_results: Ingen resultater
|
|
604
603
|
error_modal:
|
|
605
|
-
close: Lukk modal
|
|
606
604
|
correct_errors: Vennligst korriger feilene og prøv på nytt.
|
|
607
605
|
intro: 'Det var følgende feil med din melding:'
|
|
608
606
|
ok: Ok
|
data/config/locales/pl.yml
CHANGED
|
@@ -441,7 +441,6 @@ pl:
|
|
|
441
441
|
global:
|
|
442
442
|
amendments_enabled: Poprawki dozwolone
|
|
443
443
|
comments_enabled: Komentarze włączone
|
|
444
|
-
comments_max_length: Maksymalna długość komentarzy
|
|
445
444
|
dummy_global_attribute1: Przykładowy atrybut 1
|
|
446
445
|
dummy_global_attribute2: Przykładowy atrybut 2
|
|
447
446
|
dummy_global_translatable_text: Przykładowy tekst do tłumaczenia
|
|
@@ -566,7 +565,7 @@ pl:
|
|
|
566
565
|
notice: |-
|
|
567
566
|
<p>Hej, czy jesteś pewien, że nie chcesz otrzymywać newslettera?
|
|
568
567
|
Prosimy o ponowne zaznaczenie pola wyboru newslettera poniżej. To dla nas bardzo ważne, abyś mógł otrzymywać sporadyczne e-maile z ważnymi informacjami. Zawsze możesz zmienić to na stronie ustawień o powiadomieniach.</p>
|
|
569
|
-
<p>Jeśli nie zaznaczysz tego pola, mogą cię ominąć istotne informacje na temat możliwości
|
|
568
|
+
<p>Jeśli nie zaznaczysz tego pola, mogą cię ominąć istotne informacje na temat możliwości
|
|
570
569
|
uczestnictwa w procesach na platformie.<br>Jeśli mimo wszystko nie chcesz otrzymywać newsletterów, doskonale rozumiemy twoją decyzję.</p>
|
|
571
570
|
<p>Dziękujemy za uwagę!</p>
|
|
572
571
|
title: Powiadomienia newslettera
|
|
@@ -902,7 +901,6 @@ pl:
|
|
|
902
901
|
create:
|
|
903
902
|
error: Rozmowa nie została rozpoczęta. Spróbuj ponownie później.
|
|
904
903
|
error_modal:
|
|
905
|
-
close: Zamknij okno
|
|
906
904
|
correct_errors: Popraw daty i spróbuj ponownie.
|
|
907
905
|
intro: 'W wiadomości wystąpiły błędy:'
|
|
908
906
|
ok: ok
|
|
@@ -1306,7 +1304,7 @@ pl:
|
|
|
1306
1304
|
hello: Witaj %{email},
|
|
1307
1305
|
ignore: |-
|
|
1308
1306
|
Jeżeli nie chcesz zaakceptować zaproszenia, zignoruj ten e-mail.<br />
|
|
1309
|
-
|
|
1307
|
+
Twoje konto nie zostanie utworzone, dopóki nie skorzystasz z linku powyżej i nie ustawisz pseudonimu i hasła.
|
|
1310
1308
|
invited_you_as_admin: "%{invited_by} zaprasza Cię jako administratora %{application}. Możesz zaakceptować zaproszenie za pomocą poniższego linku."
|
|
1311
1309
|
someone_invited_you: Ktoś zaprosił Cię do %{application}. Możesz zaakceptować zaproszenie za pomocą poniższego linku.
|
|
1312
1310
|
someone_invited_you_as_admin: Ktoś zaprosił Cię jako administratora %{application}, możesz zaakceptować zaproszenie za pomocą poniższego linku.
|
data/config/locales/pt-BR.yml
CHANGED
|
@@ -552,7 +552,6 @@ pt-BR:
|
|
|
552
552
|
global:
|
|
553
553
|
amendments_enabled: Alterações ativadas
|
|
554
554
|
comments_enabled: Comentários ativados
|
|
555
|
-
comments_max_length: Comprimento máximo de comentários
|
|
556
555
|
define_taxonomy_filters: Por favor, defina alguns filtros para este espaço participativo antes de usar esta configuração.
|
|
557
556
|
dummy_global_attribute1: Dummy Atributo 1
|
|
558
557
|
dummy_global_attribute2: Dummy Attribute 2
|
|
@@ -944,8 +943,8 @@ pt-BR:
|
|
|
944
943
|
email_outro: Você recebeu está notificação porque você é autor do %{resource_type} afetado.
|
|
945
944
|
email_subject: Seu %{resource_type} não está mais visível
|
|
946
945
|
notification_title: |-
|
|
947
|
-
Seu %{resource_type} não está mais visível. <br>
|
|
948
|
-
|
|
946
|
+
Seu %{resource_type} não está mais visível. <br>
|
|
947
|
+
Isso aconteceu porque a proposta, reunião, debate ou comentário que você respondeu foi moderado. Se voltar a ficar disponível, o seu comentário será restaurado automaticamente.<i>%{resource_content}</i>
|
|
949
948
|
resource_hidden:
|
|
950
949
|
email_intro: Um administrador removeu seu %{resource_type} porque ele foi reportado como %{report_reasons}.
|
|
951
950
|
email_outro: Você recebeu esta notificação porque você é um autor do conteúdo removido.
|
|
@@ -1180,7 +1179,6 @@ pt-BR:
|
|
|
1180
1179
|
create:
|
|
1181
1180
|
error: Conversa não iniciada. Tente mais tarde.
|
|
1182
1181
|
error_modal:
|
|
1183
|
-
close: Fechar modal
|
|
1184
1182
|
correct_errors: Por favor, corrija os itens citados e tente novamente.
|
|
1185
1183
|
intro: 'Sua mensagem contém os seguintes erros:'
|
|
1186
1184
|
ok: OK
|
|
@@ -1491,13 +1489,6 @@ pt-BR:
|
|
|
1491
1489
|
log_in: iniciar sessão
|
|
1492
1490
|
never_logged_in: nunca iniciou sessão
|
|
1493
1491
|
subject: Aviso de conta inativa
|
|
1494
|
-
removal_notification:
|
|
1495
|
-
body: Sua conta %{organization_name} foi excluída devido a inatividade.
|
|
1496
|
-
greetings_html: |
|
|
1497
|
-
Atenciosamente,<br>
|
|
1498
|
-
%{organization_name}
|
|
1499
|
-
hello: Prezado %{username},
|
|
1500
|
-
subject: Conta inativa excluída
|
|
1501
1492
|
participatory_space_members:
|
|
1502
1493
|
index:
|
|
1503
1494
|
members: Membros
|
data/config/locales/pt.yml
CHANGED
|
@@ -297,7 +297,6 @@ pt:
|
|
|
297
297
|
global:
|
|
298
298
|
amendments_enabled: Modificações ativadas
|
|
299
299
|
comments_enabled: Comentários ativados
|
|
300
|
-
comments_max_length: Comprimento máximo dos comentários
|
|
301
300
|
dummy_global_attribute1: Atributo Fictício 1
|
|
302
301
|
dummy_global_attribute2: Atributo Fictício 2
|
|
303
302
|
dummy_global_translatable_text: Texto Traduzível Fictício
|
|
@@ -591,7 +590,6 @@ pt:
|
|
|
591
590
|
modal_title: Nova conversa
|
|
592
591
|
no_results: Sem resultados
|
|
593
592
|
error_modal:
|
|
594
|
-
close: Fechar modal
|
|
595
593
|
correct_errors: Por favor corrija os erros e tente de novo
|
|
596
594
|
intro: 'Há os seguintes erros com a sua mensagem:'
|
|
597
595
|
ok: OK
|
data/config/locales/ro-RO.yml
CHANGED
|
@@ -566,7 +566,6 @@ ro:
|
|
|
566
566
|
global:
|
|
567
567
|
amendments_enabled: Amendamente activate
|
|
568
568
|
comments_enabled: Comentarii activate
|
|
569
|
-
comments_max_length: Lungimea maximă a comentariilor
|
|
570
569
|
define_taxonomy_filters: Vă rugăm să definiți niște filtre pentru acest spațiu participativ înainte de a utiliza această setare.
|
|
571
570
|
dummy_global_attribute1: Mostră de atribut 1
|
|
572
571
|
dummy_global_attribute2: Mostră de atribut 2
|
|
@@ -711,7 +710,7 @@ ro:
|
|
|
711
710
|
<p>Sigur nu doriți să primiți un buletin informativ?<br>
|
|
712
711
|
Vă rugăm să bifați din nou caseta din buletinul informativ de mai jos.<br>
|
|
713
712
|
Este foarte important pentru noi să puteți primi e-mailuri ocazionale
|
|
714
|
-
pentru a face anunțuri importante, puteți modifica oricând opțiunea pe
|
|
713
|
+
pentru a face anunțuri importante, puteți modifica oricând opțiunea pe
|
|
715
714
|
pagina cu setări pentru notificări. </p>
|
|
716
715
|
<p>Dacă nu bifați caseta ați putea rata informații importante
|
|
717
716
|
despre noi oportunități de participare în cadrul platformei.<br>Dacă, totuși, doriți să evitați primirea de buletine informative, înțelegem
|
|
@@ -1155,7 +1154,6 @@ ro:
|
|
|
1155
1154
|
participants:
|
|
1156
1155
|
title: Participanți
|
|
1157
1156
|
error_modal:
|
|
1158
|
-
close: Închidere
|
|
1159
1157
|
correct_errors: Vă rugăm să remediați erorile și să încercați din nou.
|
|
1160
1158
|
intro: 'Au existat următoarele erori cu mesajul tău:'
|
|
1161
1159
|
ok: Ok
|
|
@@ -1384,13 +1382,6 @@ ro:
|
|
|
1384
1382
|
log_in: autentificare
|
|
1385
1383
|
never_logged_in: niciodată autentificat
|
|
1386
1384
|
subject: Avertizare cont inactiv
|
|
1387
|
-
removal_notification:
|
|
1388
|
-
body: Contul dumneavoastră din %{organization_name} a fost șters din cauza inactivității.
|
|
1389
|
-
greetings_html: |
|
|
1390
|
-
Cu stimă,<br>
|
|
1391
|
-
%{organization_name}
|
|
1392
|
-
hello: Dragă %{username},
|
|
1393
|
-
subject: Cont inactiv șters
|
|
1394
1385
|
participatory_space_members:
|
|
1395
1386
|
index:
|
|
1396
1387
|
members: Membri
|
data/config/locales/sk.yml
CHANGED
|
@@ -583,7 +583,6 @@ sk:
|
|
|
583
583
|
global:
|
|
584
584
|
amendments_enabled: Zmeny povolené
|
|
585
585
|
comments_enabled: Komentáre povolené
|
|
586
|
-
comments_max_length: Maximálna dĺžka komentárov
|
|
587
586
|
define_taxonomy_filters: Pred použitím tohto nastavenia definujte nejaké filtre pre tento participatívny priestor.
|
|
588
587
|
dummy_global_attribute1: Zástupný atribút 1
|
|
589
588
|
dummy_global_attribute2: Zástupný atribút 2
|
|
@@ -1232,7 +1231,6 @@ sk:
|
|
|
1232
1231
|
create:
|
|
1233
1232
|
error: Konverzácia sa nezačala. Skúste to znova neskôr.
|
|
1234
1233
|
error_modal:
|
|
1235
|
-
close: Zavrieť okno
|
|
1236
1234
|
correct_errors: Opravte chyby a skúste to znova.
|
|
1237
1235
|
intro: 'Vo vašej správe sa vyskytli nasledujúce chyby:'
|
|
1238
1236
|
ok: OK
|
|
@@ -1545,13 +1543,6 @@ sk:
|
|
|
1545
1543
|
log_in: prihlásiť sa
|
|
1546
1544
|
never_logged_in: nikdy neprihlásený/á
|
|
1547
1545
|
subject: Upozornenie na neaktívny účet
|
|
1548
|
-
removal_notification:
|
|
1549
|
-
body: Váš účet %{organization_name} bol vymazaný z dôvodu neaktivity.
|
|
1550
|
-
greetings_html: |
|
|
1551
|
-
S pozdravom,<br>
|
|
1552
|
-
%{organization_name}
|
|
1553
|
-
hello: Vážený/á %{username},
|
|
1554
|
-
subject: Neaktívny účet bol vymazaný
|
|
1555
1546
|
participatory_space:
|
|
1556
1547
|
pages:
|
|
1557
1548
|
user_profile:
|
|
@@ -2300,7 +2291,7 @@ sk:
|
|
|
2300
2291
|
dropdown:
|
|
2301
2292
|
choose_diff_view_html: 'Mód zobrazenia HTML:'
|
|
2302
2293
|
choose_diff_view_mode: 'Mód srovnávacího zobrazení:'
|
|
2303
|
-
option_escaped: Nepoužívané
|
|
2294
|
+
option_escaped: Nepoužívané
|
|
2304
2295
|
option_split: Vedle sebe (Sbs)
|
|
2305
2296
|
option_unescaped: Používané
|
|
2306
2297
|
option_unified: Sjednocené
|
data/config/locales/sv.yml
CHANGED
|
@@ -555,7 +555,6 @@ sv:
|
|
|
555
555
|
global:
|
|
556
556
|
amendments_enabled: Aktivera ändringsförslag
|
|
557
557
|
comments_enabled: Aktivera kommentarer
|
|
558
|
-
comments_max_length: Maximal längd på kommentarer
|
|
559
558
|
define_taxonomy_filters: Ställ in filter innan du använder den här inställningen.
|
|
560
559
|
dummy_global_attribute1: Dummy Attribut 1
|
|
561
560
|
dummy_global_attribute2: Dummy Attribut 2
|
|
@@ -1197,7 +1196,6 @@ sv:
|
|
|
1197
1196
|
create:
|
|
1198
1197
|
error: Konversationen har inte startat. Försök igen senare.
|
|
1199
1198
|
error_modal:
|
|
1200
|
-
close: Stäng fönster
|
|
1201
1199
|
correct_errors: Vänligen korrigera felen och försök igen.
|
|
1202
1200
|
intro: 'Det fanns följande fel med ditt meddelande:'
|
|
1203
1201
|
ok: Ok
|
|
@@ -1509,13 +1507,6 @@ sv:
|
|
|
1509
1507
|
log_in: logga in
|
|
1510
1508
|
never_logged_in: har aldrig loggat in
|
|
1511
1509
|
subject: Varning om inaktivt konto
|
|
1512
|
-
removal_notification:
|
|
1513
|
-
body: Ditt %{organization_name}-konto har tagits bort på grund av inaktivitet.
|
|
1514
|
-
greetings_html: |
|
|
1515
|
-
Vänliga hälsningar,<br>
|
|
1516
|
-
%{organization_name}
|
|
1517
|
-
hello: Hej %{username},
|
|
1518
|
-
subject: Inaktivt konto raderat
|
|
1519
1510
|
participatory_space:
|
|
1520
1511
|
pages:
|
|
1521
1512
|
user_profile:
|
data/config/locales/tr-TR.yml
CHANGED
|
@@ -297,7 +297,6 @@ tr:
|
|
|
297
297
|
global:
|
|
298
298
|
amendments_enabled: Değişiklikler etkinleştirildi
|
|
299
299
|
comments_enabled: Yorumlar etkin
|
|
300
|
-
comments_max_length: Maksimum yorum uzunluğu
|
|
301
300
|
dummy_global_attribute1: Sahet Özellik 1
|
|
302
301
|
dummy_global_attribute2: Sahte Özellik 2
|
|
303
302
|
dummy_global_translatable_text: Sahte Çevrilebilir Metin
|
|
@@ -606,7 +605,6 @@ tr:
|
|
|
606
605
|
modal_title: Yeni görüşme
|
|
607
606
|
no_results: Sonuç bulunamadı
|
|
608
607
|
error_modal:
|
|
609
|
-
close: Pencereyi kapat
|
|
610
608
|
correct_errors: Lütfen hataları düzeltip tekrar deneyin.
|
|
611
609
|
intro: 'Mesajınızda aşağıdaki hatalar vardı:'
|
|
612
610
|
ok: OK
|
data/config/locales/zh-CN.yml
CHANGED
|
@@ -260,7 +260,6 @@ zh-CN:
|
|
|
260
260
|
global:
|
|
261
261
|
amendments_enabled: 修改已启用
|
|
262
262
|
comments_enabled: 评论已启用
|
|
263
|
-
comments_max_length: 评论最大长度
|
|
264
263
|
dummy_global_attribute1: 虚拟属性 1
|
|
265
264
|
dummy_global_attribute2: 虚拟属性 2
|
|
266
265
|
dummy_global_translatable_text: 虚拟可翻译文本
|
|
@@ -523,7 +522,6 @@ zh-CN:
|
|
|
523
522
|
modal_title: 新建对话
|
|
524
523
|
no_results: 没有结果
|
|
525
524
|
error_modal:
|
|
526
|
-
close: 关闭模式
|
|
527
525
|
correct_errors: 请更正错误,然后重试。
|
|
528
526
|
intro: '您的消息有以下错误:'
|
|
529
527
|
ok: 好的
|
data/config/locales/zh-TW.yml
CHANGED
|
@@ -402,7 +402,6 @@ zh-TW:
|
|
|
402
402
|
global:
|
|
403
403
|
amendments_enabled: 修改功能已啟用
|
|
404
404
|
comments_enabled: 啟用評論功能
|
|
405
|
-
comments_max_length: 評論最大長度
|
|
406
405
|
dummy_global_attribute1: 虛擬屬性 1
|
|
407
406
|
dummy_global_attribute2: 虛擬屬性 2
|
|
408
407
|
dummy_global_translatable_text: 虛擬可翻譯文字
|
|
@@ -792,7 +791,6 @@ zh-TW:
|
|
|
792
791
|
create:
|
|
793
792
|
error: 對話未開始。請稍後再試。
|
|
794
793
|
error_modal:
|
|
795
|
-
close: 關閉視窗
|
|
796
794
|
correct_errors: 請修正錯誤後再試一次。
|
|
797
795
|
intro: '您的訊息有以下錯誤:'
|
|
798
796
|
ok: 好的
|
data/decidim-core.gemspec
CHANGED
|
@@ -4,7 +4,7 @@ $LOAD_PATH.push File.expand_path("lib", __dir__)
|
|
|
4
4
|
|
|
5
5
|
Gem::Specification.new do |s|
|
|
6
6
|
s.name = "decidim-core"
|
|
7
|
-
version = "0.32.0
|
|
7
|
+
version = "0.32.0"
|
|
8
8
|
s.version = version
|
|
9
9
|
s.authors = ["Josep Jaume Rey Peroy", "Marc Riera Casals", "Oriol Gual Oliva"]
|
|
10
10
|
s.email = ["josepjaume@gmail.com", "mrc2407@gmail.com", "oriolgual@gmail.com"]
|
|
@@ -15,24 +15,39 @@ module Decidim
|
|
|
15
15
|
#
|
|
16
16
|
# name - The attribute's name
|
|
17
17
|
#
|
|
18
|
-
#
|
|
19
18
|
# Example:
|
|
20
19
|
#
|
|
21
|
-
#
|
|
20
|
+
# attachments_attribute :photos
|
|
22
21
|
# # This will create two attributes of the following types:
|
|
23
22
|
# # attribute :photos, Array[Integer]
|
|
24
23
|
# # attribute :add_photos, Array
|
|
25
|
-
# # In addition, it will generate
|
|
26
|
-
# #
|
|
24
|
+
# # In addition, it will generate:
|
|
25
|
+
# # - A setter that handles String (JSON/CSV), Integer, or Array inputs.
|
|
26
|
+
# # - A getter that falls back to add_photos when the attribute is blank.
|
|
27
|
+
# # - Private helpers for parsing and extracting IDs.
|
|
27
28
|
#
|
|
28
29
|
# Returns nothing.
|
|
29
|
-
def attachments_attribute(name)
|
|
30
|
+
def attachments_attribute(name) # rubocop:disable Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity
|
|
30
31
|
attribute name, Array[Integer]
|
|
31
32
|
attribute :"add_#{name}", Array
|
|
32
33
|
|
|
33
|
-
#
|
|
34
|
-
#
|
|
35
|
-
#
|
|
34
|
+
# Setter: coerces String (JSON or comma-separated IDs) and bare Integer
|
|
35
|
+
# values into the expected Array[Integer] format before delegating to super.
|
|
36
|
+
define_method :"#{name}=" do |value|
|
|
37
|
+
case value
|
|
38
|
+
when String
|
|
39
|
+
parsed = send(:"parse_string_#{name}", value)
|
|
40
|
+
parsed.any? ? super(parsed) : super(value)
|
|
41
|
+
when Integer
|
|
42
|
+
super([value])
|
|
43
|
+
else
|
|
44
|
+
super(value)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Getter: resolves stored integer IDs to Decidim::Attachment records,
|
|
49
|
+
# caching the result on the instance. Falls back to extracting IDs from
|
|
50
|
+
# add_<name> when the attribute itself is blank, then resolves those too.
|
|
36
51
|
variable_name = "@#{name}_records"
|
|
37
52
|
define_method name do
|
|
38
53
|
return instance_variable_get(variable_name) if instance_variable_defined?(variable_name)
|
|
@@ -40,9 +55,15 @@ module Decidim
|
|
|
40
55
|
original = @attributes[name.to_s].value_before_type_cast
|
|
41
56
|
return original if original && !original.is_a?(Array)
|
|
42
57
|
|
|
58
|
+
ids = if super().blank? && send(:"add_#{name}").present?
|
|
59
|
+
send(:"extract_ids_from_add_#{name}")
|
|
60
|
+
else
|
|
61
|
+
super()
|
|
62
|
+
end
|
|
63
|
+
|
|
43
64
|
instance_variable_set(
|
|
44
65
|
variable_name,
|
|
45
|
-
|
|
66
|
+
ids.map do |attachment|
|
|
46
67
|
if attachment.is_a?(Integer)
|
|
47
68
|
Decidim::Attachment.find_by(id: attachment)
|
|
48
69
|
else
|
|
@@ -51,6 +72,34 @@ module Decidim
|
|
|
51
72
|
end.compact
|
|
52
73
|
)
|
|
53
74
|
end
|
|
75
|
+
|
|
76
|
+
# Private helpers -------------------------------------------------------
|
|
77
|
+
|
|
78
|
+
define_method :"extract_ids_from_add_#{name}" do
|
|
79
|
+
send(:"add_#{name}")
|
|
80
|
+
.select { |item| item.is_a?(Hash) && (item[:id].present? || item["id"].present?) }
|
|
81
|
+
.map { |item| (item[:id] || item["id"]).to_i }
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
define_method :"parse_string_#{name}" do |value|
|
|
85
|
+
return [] if value.blank?
|
|
86
|
+
|
|
87
|
+
send(:"parse_#{name}_ids", value)
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
define_method :"parse_#{name}_ids" do |value|
|
|
91
|
+
ids = begin
|
|
92
|
+
Array(JSON.parse(value))
|
|
93
|
+
rescue JSON::ParserError
|
|
94
|
+
value.split(",").map(&:strip)
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
ids.map(&:to_i).reject(&:zero?)
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
private :"extract_ids_from_add_#{name}"
|
|
101
|
+
private :"parse_string_#{name}"
|
|
102
|
+
private :"parse_#{name}_ids"
|
|
54
103
|
end
|
|
55
104
|
end
|
|
56
105
|
end
|