decidim-core 0.13.1 → 0.14.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of decidim-core might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/assets/config/decidim_core_manifest.js +1 -1
- data/app/assets/images/decidim/gamification/badges/invitations.svg +117 -0
- data/app/assets/javascripts/decidim.js.es6 +4 -1
- data/app/assets/javascripts/decidim/ajax_modals.js.es6 +17 -0
- data/app/assets/javascripts/decidim/conferences.js.es6 +16 -0
- data/app/assets/javascripts/decidim/input_hashtags.js.es6 +115 -0
- data/app/assets/javascripts/decidim/input_mentions.js.es6 +2 -3
- data/app/assets/javascripts/decidim/vizzs/areachart.js.es6 +226 -0
- data/app/assets/javascripts/decidim/vizzs/metrics.js.es6 +26 -0
- data/app/assets/javascripts/decidim/vizzs/orgchart.js.es6 +701 -0
- data/app/assets/javascripts/decidim/vizzs/renders.js.es6 +11 -0
- data/app/assets/stylesheets/decidim/extras/_proposal_form.scss +3 -1
- data/app/assets/stylesheets/decidim/layouts/_home.scss +1 -1
- data/app/assets/stylesheets/decidim/modules/_areachart.scss +74 -0
- data/app/assets/stylesheets/decidim/modules/_badges.scss +116 -0
- data/app/assets/stylesheets/decidim/modules/_buttons.scss +5 -0
- data/app/assets/stylesheets/decidim/modules/_cards.scss +21 -4
- data/app/assets/stylesheets/decidim/modules/_chart-tooltip.scss +42 -0
- data/app/assets/stylesheets/decidim/modules/_collapsible-list.scss +12 -8
- data/app/assets/stylesheets/decidim/modules/_conference-nav.scss +31 -0
- data/app/assets/stylesheets/decidim/modules/_conference-programme.scss +110 -0
- data/app/assets/stylesheets/decidim/modules/_conference-speaker.scss +86 -0
- data/app/assets/stylesheets/decidim/modules/_conversation.scss +58 -0
- data/app/assets/stylesheets/decidim/modules/_help.scss +38 -0
- data/app/assets/stylesheets/decidim/modules/_hover-section.scss +29 -0
- data/app/assets/stylesheets/decidim/modules/_icons.scss +10 -4
- data/app/assets/stylesheets/decidim/modules/_input-hashtags.scss +124 -0
- data/app/assets/stylesheets/decidim/modules/_loading-spinner.scss +12 -0
- data/app/assets/stylesheets/decidim/modules/_margins.scss +2 -2
- data/app/assets/stylesheets/decidim/modules/_modules.scss +15 -0
- data/app/assets/stylesheets/decidim/modules/_navbar.scss +9 -0
- data/app/assets/stylesheets/decidim/modules/_orgchart.scss +62 -0
- data/app/assets/stylesheets/decidim/modules/_status-labels.scss +2 -1
- data/app/assets/stylesheets/decidim/modules/_typography.scss +9 -0
- data/app/assets/stylesheets/decidim/utils/_helpers.scss +28 -0
- data/app/assets/stylesheets/decidim/utils/_mixins.scss +63 -0
- data/app/cells/decidim/author/withdraw.erb +1 -1
- data/app/cells/decidim/author_cell.rb +1 -1
- data/app/cells/decidim/badge/show.erb +36 -0
- data/app/cells/decidim/badge_cell.rb +53 -0
- data/app/cells/decidim/badges/show.erb +6 -0
- data/app/cells/decidim/badges_cell.rb +14 -0
- data/app/cells/decidim/card_m/header.erb +1 -1
- data/app/cells/decidim/card_m/show.erb +1 -2
- data/app/cells/decidim/card_m/top.erb +7 -0
- data/app/cells/decidim/card_m_cell.rb +14 -17
- data/app/cells/decidim/coauthorships_cell.rb +77 -0
- data/app/cells/decidim/collapsible_authors/show.erb +0 -1
- data/app/cells/decidim/collapsible_authors_cell.rb +4 -4
- data/app/cells/decidim/collapsible_list/show.erb +12 -4
- data/app/cells/decidim/collapsible_list_cell.rb +14 -12
- data/app/cells/decidim/content_blocks/footer_sub_hero/show.erb +14 -0
- data/app/cells/decidim/content_blocks/footer_sub_hero_cell.rb +12 -0
- data/app/{views/decidim/pages/home/_hero.html.erb → cells/decidim/content_blocks/hero/show.erb} +4 -4
- data/app/cells/decidim/content_blocks/hero_cell.rb +25 -0
- data/app/cells/decidim/content_blocks/hero_settings_form/show.erb +7 -0
- data/app/cells/decidim/content_blocks/hero_settings_form_cell.rb +13 -0
- data/app/cells/decidim/content_blocks/highlighted_content_banner/show.erb +24 -0
- data/app/cells/decidim/content_blocks/highlighted_content_banner_cell.rb +16 -0
- data/app/{views/decidim/pages/home/_extended.html.erb → cells/decidim/content_blocks/how_to_participate/show.erb} +10 -10
- data/app/cells/decidim/content_blocks/how_to_participate_cell.rb +9 -0
- data/app/{views/decidim/pages/home/_statistics.html.erb → cells/decidim/content_blocks/stats/show.erb} +2 -2
- data/app/cells/decidim/content_blocks/stats_cell.rb +18 -0
- data/app/{views/decidim/pages/home/_sub_hero.html.erb → cells/decidim/content_blocks/sub_hero/show.erb} +2 -2
- data/app/cells/decidim/content_blocks/sub_hero_cell.rb +17 -0
- data/app/cells/decidim/conversation/show.erb +18 -0
- data/app/cells/decidim/conversation_cell.rb +23 -0
- data/app/cells/decidim/conversation_header/show.erb +17 -0
- data/app/cells/decidim/conversation_header_cell.rb +16 -0
- data/app/cells/decidim/conversations/show.erb +45 -0
- data/app/cells/decidim/conversations_cell.rb +24 -0
- data/app/cells/decidim/follow_button/show.erb +3 -3
- data/app/cells/decidim/follow_button_cell.rb +1 -5
- data/app/cells/decidim/following_cell.rb +1 -7
- data/app/cells/decidim/message/show.erb +15 -0
- data/app/cells/decidim/message_cell.rb +23 -0
- data/app/cells/decidim/new_conversation/show.erb +19 -0
- data/app/cells/decidim/new_conversation_cell.rb +19 -0
- data/app/cells/decidim/notifications/show.erb +1 -1
- data/app/cells/decidim/profile/show.erb +27 -0
- data/app/cells/decidim/profile_cell.rb +33 -0
- data/app/cells/decidim/profile_sidebar/show.erb +57 -0
- data/app/cells/decidim/profile_sidebar_cell.rb +31 -0
- data/app/cells/decidim/tos_page_cell.rb +0 -4
- data/app/cells/decidim/user_profile/header.erb +1 -1
- data/app/controllers/concerns/decidim/action_authorization.rb +13 -38
- data/app/controllers/concerns/decidim/needs_permission.rb +15 -6
- data/app/controllers/decidim/application_controller.rb +1 -0
- data/app/controllers/decidim/authorization_modals_controller.rb +35 -0
- data/app/controllers/decidim/components/base_controller.rb +0 -1
- data/app/controllers/decidim/devise/invitations_controller.rb +2 -1
- data/app/controllers/decidim/messaging/conversations_controller.rb +2 -11
- data/app/controllers/decidim/newsletters_controller.rb +4 -6
- data/app/controllers/decidim/notifications_controller.rb +4 -0
- data/app/controllers/decidim/pages_controller.rb +3 -7
- data/app/controllers/decidim/profiles_controller.rb +17 -7
- data/app/forms/decidim/notifications_settings_form.rb +1 -1
- data/app/forms/decidim/registration_form.rb +1 -1
- data/app/helpers/decidim/action_authorization_helper.rb +51 -46
- data/app/helpers/decidim/application_helper.rb +18 -0
- data/app/helpers/decidim/card_helper.rb +1 -1
- data/app/helpers/decidim/cells_helper.rb +6 -2
- data/app/helpers/decidim/resource_helper.rb +8 -1
- data/app/helpers/decidim/searches_helper.rb +5 -4
- data/app/helpers/decidim/traceability_helper.rb +5 -1
- data/app/models/decidim/authorization.rb +2 -2
- data/app/models/decidim/content_block.rb +144 -0
- data/app/models/decidim/gamification/badge_score.rb +13 -0
- data/app/models/decidim/messaging/message.rb +1 -1
- data/app/models/decidim/messaging/receipt.rb +1 -1
- data/app/models/decidim/organization.rb +1 -5
- data/app/models/decidim/resource_permission.rb +8 -0
- data/app/models/decidim/searchable_resource.rb +1 -1
- data/app/models/decidim/user.rb +17 -1
- data/app/permissions/decidim/default_permissions.rb +4 -3
- data/app/permissions/decidim/permissions.rb +33 -1
- data/app/presenters/decidim/hashtag_presenter.rb +32 -0
- data/app/presenters/decidim/resource_locator_presenter.rb +13 -0
- data/app/presenters/decidim/user_presenter.rb +1 -1
- data/app/queries/decidim/messaging/user_conversations.rb +1 -1
- data/app/resolvers/decidim/hashtags_resolver.rb +15 -0
- data/app/services/decidim/action_authorizer.rb +9 -8
- data/app/types/decidim/core/date_time_type.rb +1 -1
- data/app/types/decidim/core/hashtag_type.rb +13 -0
- data/app/uploaders/decidim/homepage_image_uploader.rb +1 -1
- data/app/uploaders/decidim/image_uploader.rb +1 -0
- data/app/views/decidim/authorization_modals/show.html.erb +32 -0
- data/app/views/decidim/messaging/conversations/create.js.erb +1 -1
- data/app/views/decidim/messaging/conversations/index.html.erb +1 -51
- data/app/views/decidim/messaging/conversations/new.html.erb +1 -5
- data/app/views/decidim/messaging/conversations/show.html.erb +1 -9
- data/app/views/decidim/messaging/conversations/update.js.erb +1 -1
- data/app/views/decidim/notifications/index.html.erb +1 -0
- data/app/views/decidim/pages/decidim_page.html.erb +9 -0
- data/app/views/decidim/pages/home.html.erb +12 -16
- data/app/views/decidim/pages/index.html.erb +8 -0
- data/app/views/decidim/profiles/_user_follow.erb +2 -2
- data/app/views/decidim/profiles/show.html.erb +1 -37
- data/app/views/decidim/searches/_results.html.erb +1 -1
- data/app/views/decidim/shared/_author_reference.html.erb +1 -1
- data/app/views/decidim/shared/_authorization_modal.html.erb +1 -0
- data/app/views/decidim/shared/_tags.html.erb +1 -1
- data/app/views/kaminari/decidim/_page.html.erb +1 -1
- data/app/views/layouts/decidim/_application.html.erb +6 -1
- data/app/views/layouts/decidim/_edit_link.html.erb +8 -0
- data/app/views/layouts/decidim/_impersonation_warning.html.erb +1 -1
- data/app/views/layouts/decidim/_user_menu.html.erb +2 -2
- data/app/views/layouts/decidim/_wrapper.html.erb +14 -1
- data/config/initializers/carrierwave.rb +15 -0
- data/config/locales/ca.yml +78 -30
- data/config/locales/en.yml +78 -30
- data/config/locales/es-PY.yml +78 -30
- data/config/locales/es.yml +78 -30
- data/config/locales/eu.yml +78 -30
- data/config/locales/fi.yml +262 -214
- data/config/locales/fr.yml +78 -30
- data/config/locales/gl.yml +78 -30
- data/config/locales/hu.yml +781 -0
- data/config/locales/it.yml +78 -30
- data/config/locales/nl.yml +78 -30
- data/config/locales/pl.yml +78 -30
- data/config/locales/pt-BR.yml +106 -58
- data/config/locales/pt.yml +78 -30
- data/config/locales/ru.yml +52 -32
- data/config/locales/sv.yml +183 -135
- data/config/locales/uk.yml +60 -40
- data/config/routes.rb +8 -6
- data/db/migrate/20180705091019_create_decidim_resource_permissions.rb +12 -0
- data/db/migrate/20180706104107_add_nickname_to_managed_users.rb +14 -0
- data/db/migrate/20180706111847_fix_result_follows.rb +9 -0
- data/db/migrate/20180724103814_add_content_blocks.rb +22 -0
- data/db/migrate/20180726112510_create_decidim_hashtags.rb +17 -0
- data/db/migrate/20180730071851_add_core_content_blocks.rb +28 -0
- data/db/migrate/20180802132147_rename_content_block_options_to_settings.rb +7 -0
- data/db/migrate/20180806095628_add_badge_scores.rb +11 -0
- data/db/migrate/20180808135006_add_images_to_content_blocks.rb +7 -0
- data/db/migrate/20180810092428_move_organization_fields_to_hero_content_block.rb +23 -0
- data/db/seeds.rb +10 -2
- data/lib/decidim/api/authorable_interface.rb +1 -1
- data/lib/decidim/coauthorable.rb +1 -0
- data/lib/decidim/content_block_manifest.rb +58 -0
- data/lib/decidim/content_block_registry.rb +87 -0
- data/lib/decidim/content_parsers.rb +1 -0
- data/lib/decidim/content_parsers/hashtag_parser.rb +36 -0
- data/lib/decidim/content_processor.rb +11 -0
- data/lib/decidim/content_renderers.rb +1 -0
- data/lib/decidim/content_renderers/hashtag_renderer.rb +43 -0
- data/lib/decidim/core.rb +28 -6
- data/lib/decidim/core/api.rb +1 -0
- data/lib/decidim/core/engine.rb +52 -1
- data/lib/decidim/core/test.rb +3 -0
- data/lib/decidim/core/test/factories.rb +32 -17
- data/lib/decidim/core/test/shared_examples/authorable_interface_examples.rb +10 -0
- data/lib/decidim/core/test/shared_examples/coauthorable.rb +3 -0
- data/lib/decidim/core/test/shared_examples/edit_link_shared_examples.rb +30 -0
- data/lib/decidim/core/test/shared_examples/has_space_in_mcell_examples.rb +15 -0
- data/lib/decidim/core/test/shared_examples/publicable.rb +1 -1
- data/lib/decidim/core/test/shared_examples/railtie_examples.rb +15 -0
- data/lib/decidim/core/test/shared_examples/scope_helper_examples.rb +1 -0
- data/lib/decidim/core/version.rb +1 -1
- data/lib/decidim/events/base_event.rb +2 -1
- data/lib/decidim/form_builder.rb +9 -3
- data/lib/decidim/friendly_dates.rb +1 -1
- data/lib/decidim/gamification.rb +109 -0
- data/lib/decidim/gamification/badge.rb +54 -0
- data/lib/decidim/gamification/badge_earned_event.rb +9 -0
- data/lib/decidim/gamification/badge_registry.rb +63 -0
- data/lib/decidim/gamification/badge_scorer.rb +118 -0
- data/lib/decidim/gamification/badge_status.rb +41 -0
- data/lib/decidim/gamification/base_event.rb +40 -0
- data/lib/decidim/gamification/level_up_event.rb +9 -0
- data/lib/decidim/hashtag.rb +15 -0
- data/lib/decidim/hashtaggable.rb +20 -0
- data/lib/decidim/query_extensions.rb +10 -0
- data/lib/decidim/resource_manifest.rb +10 -0
- data/lib/decidim/resourceable.rb +13 -0
- data/lib/decidim/search_resource_fields_mapper.rb +8 -3
- data/lib/decidim/searchable.rb +8 -0
- data/lib/decidim/translatable_attributes.rb +6 -18
- data/lib/decidim/view_model.rb +6 -0
- data/lib/devise/models/decidim_newsletterable.rb +1 -1
- data/vendor/assets/javascripts/d3.js +17813 -0
- metadata +125 -27
- data/app/cells/decidim/card_m/author.erb +0 -3
- data/app/cells/decidim/card_m/authors.erb +0 -9
- data/app/views/decidim/messaging/conversations/_message.html.erb +0 -14
- data/app/views/decidim/messaging/conversations/_reply.html.erb +0 -11
- data/app/views/decidim/messaging/conversations/_show.html.erb +0 -21
- data/app/views/decidim/messaging/conversations/_start.html.erb +0 -12
- data/app/views/decidim/pages/home/_footer_sub_hero.html.erb +0 -14
- data/app/views/decidim/pages/home/_highlighted_content_banner.html.erb +0 -26
- data/app/views/decidim/pages/home/_highlighted_processes.html.erb +0 -7
- data/app/views/decidim/profiles/_user.html.erb +0 -59
- data/app/views/decidim/shared/_action_authorization_modal.html.erb +0 -39
- data/app/views/layouts/decidim/_component_authorization_modals.html.erb +0 -5
data/config/locales/uk.yml
CHANGED
@@ -165,6 +165,31 @@ uk:
|
|
165
165
|
name: Приклад підтвердження своєї особи
|
166
166
|
granted_at: 'Надано: %{timestamp}'
|
167
167
|
started_at: 'Розпочато: %{timestamp}'
|
168
|
+
authorization_modals:
|
169
|
+
show:
|
170
|
+
expired:
|
171
|
+
authorize: Знову підтвердити свою особу за допомогою "%{authorization}"
|
172
|
+
explanation: Строк дії підтвердження вашої особи вичерпався. Щоб виконати цю дію, вам потрібно знову підтвердити свою особу за допомогою "%{authorization}".
|
173
|
+
title: Строк дії підтвердження особи вичерпався
|
174
|
+
incomplete:
|
175
|
+
cancel: Скасувати
|
176
|
+
explanation: 'Незважаючи на те, що ви наразі підтвердили свою особу за допомогою "%{authorization}", ми просимо вас знову підтвердити свою особу, оскільки нам не вистачає наступних даних:'
|
177
|
+
invalid_field: "Поле %{field}"
|
178
|
+
reauthorize: Заново підтвердити свою особу
|
179
|
+
title: Будь ласка, заново підтвердіть свою особу
|
180
|
+
missing:
|
181
|
+
authorize: Підтвердити свою особу за допомогою "%{authorization}"
|
182
|
+
explanation: Щоб виконати цю дію, потрібно підтвердити свою особу за допомогою "%{authorization}".
|
183
|
+
title: Необхідне підтвердження своєї особи
|
184
|
+
pending:
|
185
|
+
explanation: Щоб виконати цю дію, потрібно підтвердити особу за допомогою "%{authorization}", але ваше підтвердження особи все ще триває
|
186
|
+
resume: Відстежте перебіг підтвердження особи "%{authorization}"
|
187
|
+
title: Підтвердження особи все ще триває
|
188
|
+
unauthorized:
|
189
|
+
explanation: Вибачте, ви не можете виконати цю дію, оскільки деякі з ваших даних підтвердження особи не збігаються.
|
190
|
+
invalid_field: "Для поля %{field} значення %{value} неприпустиме."
|
191
|
+
ok: Гаразд
|
192
|
+
title: Недостатньо прав через відсутність підтвердження особи
|
168
193
|
collapsible_list:
|
169
194
|
hidden_elements_count:
|
170
195
|
one: і ще 1
|
@@ -184,11 +209,25 @@ uk:
|
|
184
209
|
comments_enabled: Коментарі увімкнено
|
185
210
|
dummy_global_attribute_1: Приклад властивості 1
|
186
211
|
dummy_global_attribute_2: Приклад властивості 2
|
212
|
+
resources_permissions_enabled: Дозволи ресурсів увімкнуто
|
187
213
|
step:
|
188
214
|
comments_blocked: Коментарі вимкнено
|
189
215
|
dummy_step_attribute_1: Приклад 1 властивості кроку
|
190
216
|
dummy_step_attribute_2: Приклад 2 властивості кроку
|
191
217
|
contact: Зв'язатися
|
218
|
+
content_blocks:
|
219
|
+
footer_sub_hero:
|
220
|
+
name: Нижній колонтитул під-багатирського банера
|
221
|
+
hero:
|
222
|
+
name: Багатирський банер
|
223
|
+
highlighted_content_banner:
|
224
|
+
name: Банер висвітленого вмісту
|
225
|
+
how_to_participate:
|
226
|
+
name: Як взяти участь
|
227
|
+
stats:
|
228
|
+
name: Статистика організації
|
229
|
+
sub_hero:
|
230
|
+
name: Під-багатирський банер
|
192
231
|
core:
|
193
232
|
actions:
|
194
233
|
unauthorized: Ви не маєте прав на виконання цієї дії
|
@@ -212,7 +251,7 @@ uk:
|
|
212
251
|
registrations:
|
213
252
|
new:
|
214
253
|
already_have_an_account?: Вже маєте обліковий запис?
|
215
|
-
newsletter: Отримувати іноді розсилання
|
254
|
+
newsletter: Отримувати іноді розсилання зі свіжими новинами
|
216
255
|
newsletter_title: Дозвіл на зв'язок
|
217
256
|
nickname_help: Ваш короткий, унікальний псевдонім в %{organization}
|
218
257
|
sign_in: Увійти
|
@@ -300,9 +339,9 @@ uk:
|
|
300
339
|
filters:
|
301
340
|
linked_classes:
|
302
341
|
all: Усі
|
303
|
-
|
342
|
+
dummy_resource: Приклади ресурсів
|
304
343
|
meeting: Зустрічі
|
305
|
-
project:
|
344
|
+
project: Проекти
|
306
345
|
proposal: Пропозиції
|
307
346
|
result: Підсумки
|
308
347
|
fingerprint:
|
@@ -370,7 +409,7 @@ uk:
|
|
370
409
|
messaging:
|
371
410
|
conversation_mailer:
|
372
411
|
new_conversation:
|
373
|
-
greeting:
|
412
|
+
greeting: Вітаємо, %{recipient}!
|
374
413
|
intro: "%{sender} почав з вами нову бесіду. Клацніть тут, щоб прочитати її:"
|
375
414
|
outro: Насолоджуйтесь Десідім!
|
376
415
|
subject: "%{sender} почав з вами бесіду"
|
@@ -383,13 +422,13 @@ uk:
|
|
383
422
|
create:
|
384
423
|
error: Бесіда не розпочата. Спробуйте ще раз пізніше
|
385
424
|
index:
|
425
|
+
from: Від
|
426
|
+
last_message_html: Останнє повідомлення <strong>%{time} тому</strong>
|
386
427
|
no_conversations: У вас ще немає бесід
|
387
|
-
title: Бесіда з
|
388
|
-
reply:
|
389
|
-
send: Надіслати
|
390
|
-
title: Відповісти
|
391
428
|
show:
|
392
|
-
|
429
|
+
conversation_with_html: Бесіда з <strong>%{name}</strong>
|
430
|
+
reply: Відповісти
|
431
|
+
send: Надіслати
|
393
432
|
start:
|
394
433
|
send: Надіслати
|
395
434
|
title: Почати бесіду
|
@@ -414,11 +453,11 @@ uk:
|
|
414
453
|
success: Розсилання новин успішно оновлено
|
415
454
|
newsletters_opt_in_mailer:
|
416
455
|
notify:
|
417
|
-
body_1: Обробка особистих даних та їх захист стають дедалі важливішими для всіх нас.
|
456
|
+
body_1: Обробка особистих даних та їх захист стають дедалі важливішими для всіх нас. За новим "Загальним положенням про захист даних" (GDPR) від 25 травня 2018 року люди мають змогу керувати своїми особистими даними. Тому ми потребуємо вашої згоди, щоб продовжувати надсилати вам свіжі новини про діяльність %{organization_name}.
|
418
457
|
body_2: 'Як ви можете дати нам свою згоду? Просто натисніть цю кнопку:'
|
419
458
|
body_3: Погодившись, ви зможете продовжувати отримувати відомості про послуги нашого майданчику. Якщо ж ми не отримаємо вашої згоди, ми припинимо надсилати вам наші повідомлення. Якщо ви підтвердите, що хочете продовжувати отримувати новини, ви зможете потім в будь-який момент від них відмовитись.
|
420
|
-
button: Так, я хочу продовжувати отримувати
|
421
|
-
greetings:
|
459
|
+
button: Так, я хочу продовжувати отримувати новини
|
460
|
+
greetings: Добридень,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>!
|
422
461
|
hello: Вітаємо,
|
423
462
|
subject: Бажаєте продовжити отримувати свіжі новини про %{organization_name}?
|
424
463
|
notifications:
|
@@ -465,7 +504,7 @@ uk:
|
|
465
504
|
orders_count: Голосів
|
466
505
|
pages_count: Сторінок
|
467
506
|
processes_count: Рухів
|
468
|
-
projects_count:
|
507
|
+
projects_count: Проектів
|
469
508
|
proposals_accepted: Прийняті пропозиції
|
470
509
|
proposals_count: Пропозицій
|
471
510
|
results_count: Підсумків
|
@@ -502,6 +541,7 @@ uk:
|
|
502
541
|
profiles:
|
503
542
|
default_officialization_text: Особу цього учасника прилюдно підтверджено, його ім'я чи роль перевірено на відповідність його справжньому імені та ролі
|
504
543
|
show:
|
544
|
+
conversations: Бесіди
|
505
545
|
followers: Ті, хто стежить
|
506
546
|
following: 'Стежить за:'
|
507
547
|
notifications: Сповіщення
|
@@ -523,7 +563,7 @@ uk:
|
|
523
563
|
error: Під час створення скарги сталася помилка. Будь ласка, спробуйте зробити це знову.
|
524
564
|
success: Скарга була успішно створена, і вона буде розглянута адміністратором.
|
525
565
|
scopes:
|
526
|
-
global:
|
566
|
+
global: Всеохопний обсяг
|
527
567
|
picker:
|
528
568
|
cancel: Скасувати
|
529
569
|
choose: Оберіть
|
@@ -545,30 +585,6 @@ uk:
|
|
545
585
|
filter_by: 'Відібрати за ознакою:'
|
546
586
|
unfold: Розгорнути
|
547
587
|
shared:
|
548
|
-
action_authorization_modal:
|
549
|
-
expired:
|
550
|
-
authorize: Знову підтвердити свою особу за допомогою "%{authorization}"
|
551
|
-
explanation: Строк дії підтвердження вашої особи вичерпався. Щоб виконати цю дію, вам потрібно знову підтвердити свою особу за допомогою "%{authorization}".
|
552
|
-
title: Строк дії підтвердження особи вичерпався
|
553
|
-
incomplete:
|
554
|
-
cancel: Скасувати
|
555
|
-
explanation: 'Незважаючи на те, що ви наразі підтвердили свою особу за допомогою "%{authorization}", ми просимо вас знову підтвердити свою особу, оскільки нам не вистачає наступних даних:'
|
556
|
-
invalid_field: "Поле %{field}"
|
557
|
-
reauthorize: Заново підтвердити свою особу
|
558
|
-
title: Будь ласка, заново підтвердіть свою особу
|
559
|
-
missing:
|
560
|
-
authorize: Підтвердити свою особу за допомогою "%{authorization}"
|
561
|
-
explanation: Щоб виконати цю дію, потрібно підтвердити свою особу за допомогою "%{authorization}".
|
562
|
-
title: Необхідне підтвердження своєї особи
|
563
|
-
pending:
|
564
|
-
explanation: Щоб виконати цю дію, потрібно підтвердити особу за допомогою "%{authorization}", але ваше підтвердження особи все ще триває
|
565
|
-
resume: Відстежте перебіг підтвердження особи "%{authorization}"
|
566
|
-
title: Підтвердження особи все ще триває
|
567
|
-
unauthorized:
|
568
|
-
explanation: Вибачте, ви не можете виконати цю дію, оскільки деякі з ваших даних підтвердження особи не збігаються.
|
569
|
-
invalid_field: "Для поля %{field} значення %{value} неприпустиме."
|
570
|
-
ok: Гаразд
|
571
|
-
title: Недостатньо прав через відсутність підтвердження особи
|
572
588
|
embed_modal:
|
573
589
|
close_window: Закрити вікно
|
574
590
|
embed: Будь ласка, вставте цей код на свою сторінку
|
@@ -590,7 +606,7 @@ uk:
|
|
590
606
|
reference:
|
591
607
|
reference: 'Посилання на джерело: %{reference}'
|
592
608
|
results_per_page:
|
593
|
-
label: '
|
609
|
+
label: 'Результатів на сторінку:'
|
594
610
|
share_modal:
|
595
611
|
close_window: Закрити вікно
|
596
612
|
share: Поділитися
|
@@ -608,6 +624,7 @@ uk:
|
|
608
624
|
invitation_instructions:
|
609
625
|
accept: Прийняти запрошення
|
610
626
|
accept_until: Строк дії цього запрошення закінчується %{due_date}.
|
627
|
+
decline: Відхилити запрошення
|
611
628
|
hello: Доброго дня, %{email}%!
|
612
629
|
ignore: |-
|
613
630
|
Якщо ви не бажаєте приймати запрошення, проігноруйте цей лист.<br /> Ваш обліковий запис не буде створено, доки ви не перейдете за наведеним вище посиланням та встановите свій псевдонім та пароль.
|
@@ -643,7 +660,7 @@ uk:
|
|
643
660
|
file_size_is_less_than_or_equal_to: розмір файлу має бути меншим або рівним %{count}
|
644
661
|
long_words: містить занадто довгі слова
|
645
662
|
must_start_with_caps: має починатися з великих літер
|
646
|
-
nesting_too_deep: не може бути всередині
|
663
|
+
nesting_too_deep: не може бути всередині підкатегорії
|
647
664
|
too_many_marks: містить забагато знаків оклику або питання
|
648
665
|
too_much_caps: містить забагато великих літер
|
649
666
|
too_short: занадто короткий
|
@@ -658,6 +675,8 @@ uk:
|
|
658
675
|
description_html: На цьому сайті використовуються реп'яшки (куки). Продовжуючи переглядати сайт, ви погоджуєтеся з нашим використанням реп'яшків. Дізнайтеся про це більше %{link}.
|
659
676
|
link_label: тут
|
660
677
|
ok: Я погоджуюся
|
678
|
+
edit_link:
|
679
|
+
edit: Редагувати
|
661
680
|
footer:
|
662
681
|
made_with_open_source: Цей веб-сайт створено за допомогою <a target="_blank" href="https://github.com/decidim/decidim">безкоштовного програмного забезпечення</a>.
|
663
682
|
header:
|
@@ -725,6 +744,7 @@ uk:
|
|
725
744
|
formats:
|
726
745
|
day_of_month: "%b %d"
|
727
746
|
day_of_week: "%a"
|
747
|
+
day_of_week_long: "%a %e"
|
728
748
|
day_of_year: "%d.%m.%y"
|
729
749
|
decidim_day_of_year: "%d %B %Y"
|
730
750
|
decidim_short: "%H:%M %d.%m.%Y"
|
data/config/routes.rb
CHANGED
@@ -40,7 +40,7 @@ Decidim::Core::Engine.routes.draw do
|
|
40
40
|
resources :invitations, only: [:index, :create]
|
41
41
|
end
|
42
42
|
resources :conversations, only: [:new, :create, :index, :show, :update], controller: "messaging/conversations"
|
43
|
-
resources :notifications, only: [:destroy] do
|
43
|
+
resources :notifications, only: [:index, :destroy] do
|
44
44
|
collection do
|
45
45
|
delete :read_all
|
46
46
|
end
|
@@ -56,13 +56,15 @@ Decidim::Core::Engine.routes.draw do
|
|
56
56
|
get :download_file
|
57
57
|
end
|
58
58
|
end
|
59
|
+
|
60
|
+
get "/authorization_modals/:authorization_action/f/:component_id(/:resource_name/:resource_id)", to: "authorization_modals#show", as: :authorization_modal
|
59
61
|
end
|
60
62
|
|
61
|
-
resources :profiles, only: [:show], param: :nickname
|
62
|
-
scope "/profiles/:nickname" do
|
63
|
-
get "
|
64
|
-
get "
|
65
|
-
get "
|
63
|
+
resources :profiles, only: [:show], param: :nickname, constraints: { nickname: %r{[^\/]+} }, format: false
|
64
|
+
scope "/profiles/:nickname", format: false, constraints: { nickname: %r{[^\/]+} } do
|
65
|
+
get "following", to: "profiles#following", as: "profile_following"
|
66
|
+
get "followers", to: "profiles#followers", as: "profile_followers"
|
67
|
+
get "badges", to: "profiles#badges", as: "profile_badges"
|
66
68
|
end
|
67
69
|
|
68
70
|
resources :pages, only: [:index, :show], format: false
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class CreateDecidimResourcePermissions < ActiveRecord::Migration[5.2]
|
4
|
+
def change
|
5
|
+
create_table :decidim_resource_permissions do |t|
|
6
|
+
t.belongs_to :resource, polymorphic: true, index: { name: "index_decidim_resource_permissions_on_r_type_and_r_id", unique: true }
|
7
|
+
t.jsonb :permissions, default: {}
|
8
|
+
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class AddNicknameToManagedUsers < ActiveRecord::Migration[5.2]
|
4
|
+
class User < ApplicationRecord
|
5
|
+
self.table_name = :decidim_users
|
6
|
+
end
|
7
|
+
|
8
|
+
def up
|
9
|
+
User.where(managed: true, nickname: nil).includes(:organization).find_each do |user|
|
10
|
+
user.nickname = User.nicknamize(user.name, organization: user.organization)
|
11
|
+
user.save
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class FixResultFollows < ActiveRecord::Migration[5.2]
|
4
|
+
def change
|
5
|
+
# rubocop:disable Rails/SkipsModelValidations
|
6
|
+
Decidim::Follow.where(decidim_followable_type: "Decidim::Results::Result").update_all(decidim_followable_type: "Decidim::Accountability::Result")
|
7
|
+
# rubocop:enable Rails/SkipsModelValidations
|
8
|
+
end
|
9
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class AddContentBlocks < ActiveRecord::Migration[5.2]
|
4
|
+
def change
|
5
|
+
create_table :decidim_content_blocks do |t|
|
6
|
+
t.integer :decidim_organization_id, null: false, index: true
|
7
|
+
t.string :manifest_name, null: false, index: true
|
8
|
+
t.string :scope, null: false, index: true
|
9
|
+
t.jsonb :options
|
10
|
+
t.datetime :published_at, index: true
|
11
|
+
t.integer :weight
|
12
|
+
t.references
|
13
|
+
end
|
14
|
+
|
15
|
+
add_index(
|
16
|
+
:decidim_content_blocks,
|
17
|
+
[:decidim_organization_id, :scope, :manifest_name],
|
18
|
+
unique: true,
|
19
|
+
name: "idx_dcdm_content_blocks_uniq_org_id_scope_manifest_name"
|
20
|
+
)
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class CreateDecidimHashtags < ActiveRecord::Migration[5.2]
|
4
|
+
def self.up
|
5
|
+
create_table :decidim_hashtags do |t|
|
6
|
+
t.references :decidim_organization
|
7
|
+
|
8
|
+
t.string :name, index: true
|
9
|
+
|
10
|
+
t.timestamps
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.down
|
15
|
+
drop_table :decidim_hashtags
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class AddCoreContentBlocks < ActiveRecord::Migration[5.2]
|
4
|
+
class Organization < ApplicationRecord
|
5
|
+
self.table_name = :decidim_organizations
|
6
|
+
end
|
7
|
+
|
8
|
+
class ContentBlock < ApplicationRecord
|
9
|
+
self.table_name = :decidim_content_blocks
|
10
|
+
end
|
11
|
+
|
12
|
+
def change
|
13
|
+
default_blocks = [:hero, :sub_hero, :highlighted_content_banner, :how_to_participate, :stats, :footer_sub_hero]
|
14
|
+
|
15
|
+
Organization.pluck(:id).each do |organization_id|
|
16
|
+
default_blocks.each_with_index do |manifest_name, index|
|
17
|
+
weight = (index + 1) * 10
|
18
|
+
ContentBlock.create(
|
19
|
+
decidim_organization_id: organization_id,
|
20
|
+
weight: weight,
|
21
|
+
scope: :homepage,
|
22
|
+
manifest_name: manifest_name,
|
23
|
+
published_at: Time.current
|
24
|
+
)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class AddBadgeScores < ActiveRecord::Migration[5.2]
|
4
|
+
def change
|
5
|
+
create_table :decidim_gamification_badge_scores do |t|
|
6
|
+
t.references :user, null: false
|
7
|
+
t.string :badge_name, null: false
|
8
|
+
t.integer :value, null: false, default: 0
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class MoveOrganizationFieldsToHeroContentBlock < ActiveRecord::Migration[5.2]
|
4
|
+
class ::Decidim::Organization < ApplicationRecord
|
5
|
+
mount_uploader :homepage_image, ::Decidim::HomepageImageUploader
|
6
|
+
end
|
7
|
+
|
8
|
+
def change
|
9
|
+
Decidim::Organization.find_each do |organization|
|
10
|
+
content_block = Decidim::ContentBlock.find_by(organization: organization, scope: :homepage, manifest_name: :hero)
|
11
|
+
settings = {}
|
12
|
+
welcome_text = organization.welcome_text
|
13
|
+
settings = welcome_text.inject(settings) { |acc, (k, v)| acc.update("welcome_text_#{k}" => v) }
|
14
|
+
|
15
|
+
content_block.settings = settings
|
16
|
+
content_block.images_container.background_image = organization.homepage_image.file
|
17
|
+
content_block.save!
|
18
|
+
end
|
19
|
+
|
20
|
+
remove_column :decidim_organizations, :welcome_text
|
21
|
+
remove_column :decidim_organizations, :homepage_image
|
22
|
+
end
|
23
|
+
end
|
data/db/seeds.rb
CHANGED
@@ -15,11 +15,9 @@ if !Rails.env.production? || ENV["SEED"]
|
|
15
15
|
youtube_handler: Faker::Hipster.word,
|
16
16
|
github_handler: Faker::Hipster.word,
|
17
17
|
host: ENV["DECIDIM_HOST"] || "localhost",
|
18
|
-
welcome_text: Decidim::Faker::Localized.sentence(5),
|
19
18
|
description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
20
19
|
Decidim::Faker::Localized.sentence(15)
|
21
20
|
end,
|
22
|
-
homepage_image: File.new(File.join(seeds_root, "homepage_image.jpg")),
|
23
21
|
default_locale: Decidim.default_locale,
|
24
22
|
available_locales: Decidim.available_locales,
|
25
23
|
reference_prefix: Faker::Name.suffix,
|
@@ -153,4 +151,14 @@ if !Rails.env.production? || ENV["SEED"]
|
|
153
151
|
scopes: "public",
|
154
152
|
organization: organization
|
155
153
|
)
|
154
|
+
|
155
|
+
Decidim::System::CreateDefaultContentBlocks.call(organization)
|
156
|
+
|
157
|
+
hero_content_block = Decidim::ContentBlock.find_by(organization: organization, manifest_name: :hero, scope: :homepage)
|
158
|
+
hero_content_block.images_container.background_image = File.new(File.join(seeds_root, "homepage_image.jpg"))
|
159
|
+
settings = {}
|
160
|
+
welcome_text = Decidim::Faker::Localized.sentence(5)
|
161
|
+
settings = welcome_text.inject(settings) { |acc, (k, v)| acc.update("welcome_text_#{k}" => v) }
|
162
|
+
hero_content_block.settings = settings
|
163
|
+
hero_content_block.save!
|
156
164
|
end
|
@@ -7,7 +7,7 @@ module Decidim
|
|
7
7
|
name "AuthorableInterface"
|
8
8
|
description "An interface that can be used in authorable objects."
|
9
9
|
|
10
|
-
field :author,
|
10
|
+
field :author, Decidim::Core::AuthorInterface, "The resource author" do
|
11
11
|
# can be an Authorable or a Coauthorable
|
12
12
|
resolve ->(authorable, _, _) {
|
13
13
|
if authorable.respond_to?(:normalized_author)
|