decidim-core 0.19.0 → 0.19.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/javascripts/decidim/vizzs/metrics.js.es6 +2 -2
- data/app/controllers/concerns/decidim/impersonate_users.rb +8 -1
- data/config/locales/ar.yml +17 -5
- data/config/locales/cs.yml +4 -4
- data/config/locales/es-MX.yml +2 -0
- data/config/locales/es-PY.yml +2 -0
- data/config/locales/fi.yml +1 -1
- data/config/locales/fr.yml +14 -9
- data/config/locales/hu.yml +10 -10
- data/config/locales/it.yml +29 -7
- data/config/locales/nl.yml +154 -154
- data/config/locales/no.yml +622 -3
- data/config/locales/ru.yml +207 -0
- data/config/locales/sv.yml +6 -0
- data/lib/decidim/core/test.rb +1 -0
- data/lib/decidim/core/test/shared_examples/has_private_users.rb +63 -0
- data/lib/decidim/core/version.rb +1 -1
- data/lib/decidim/has_private_users.rb +5 -3
- metadata +7 -6
data/config/locales/ru.yml
CHANGED
@@ -3,12 +3,21 @@ ru:
|
|
3
3
|
attributes:
|
4
4
|
account:
|
5
5
|
delete_reason: Причина для удаления вашей учетной записи
|
6
|
+
group:
|
7
|
+
about: О группе
|
8
|
+
avatar: Аватар
|
9
|
+
document_number: Номер документа
|
10
|
+
email: Эл. адрес
|
11
|
+
name: Название
|
12
|
+
nickname: Псевдоним
|
13
|
+
phone: Телефон
|
6
14
|
report:
|
7
15
|
details: Дополнительные комментарии
|
8
16
|
user:
|
9
17
|
about: Об участнике
|
10
18
|
email: Ваш адрес электронной почты
|
11
19
|
name: Ваше имя
|
20
|
+
nickname: Псевдоним
|
12
21
|
password: Пароль
|
13
22
|
password_confirmation: Подтвердите свой пароль
|
14
23
|
personal_url: Личный веб-адрес
|
@@ -16,7 +25,13 @@ ru:
|
|
16
25
|
models:
|
17
26
|
decidim/attachment_created_event: Прикрепленный файл
|
18
27
|
decidim/component_published_event: Действующая составляющая
|
28
|
+
decidim/demoted_membership: Больше не администратор группы
|
29
|
+
decidim/gamification/badge_earned_event: Значок получен
|
30
|
+
decidim/gamification/level_up_event: Вы повысили свой уровень
|
31
|
+
decidim/join_request_accepted_event: Запрос на присоединение принят
|
32
|
+
decidim/join_request_rejected_event: Запрос на присоединение отклонен
|
19
33
|
decidim/profile_updated_event: Профиль обновлен
|
34
|
+
decidim/removed_from_group: Удален из группы
|
20
35
|
activerecord:
|
21
36
|
attributes:
|
22
37
|
decidim/user:
|
@@ -91,6 +106,10 @@ ru:
|
|
91
106
|
update: "%{user_name} обновил приложение OAuth %{resource_name}"
|
92
107
|
organization:
|
93
108
|
update: "%{user_name} обновил настройки организации"
|
109
|
+
participatory_space_private_user:
|
110
|
+
create: "%{user_name} пригласил %{resource_name} стать частным участником"
|
111
|
+
create_via_csv: "%{user_name} пригласил %{resource_name} через csv стать частным участником"
|
112
|
+
delete: "%{user_name} удалил участника %{resource_name} как приватного участника"
|
94
113
|
scope:
|
95
114
|
create: "%{user_name} добавил охват %{resource_name}"
|
96
115
|
create_with_parent: "%{user_name} создал охват %{resource_name} внутри охвата %{parent_scope}"
|
@@ -110,7 +129,36 @@ ru:
|
|
110
129
|
user_group:
|
111
130
|
reject: "%{user_name} отклонил подтверждение группы участников %{resource_name}"
|
112
131
|
verify: "%{user_name} подтвердил группу участников %{resource_name}"
|
132
|
+
verify_via_csv: "%{user_name} подтвердил группу %{resource_name} через CSV файл"
|
113
133
|
amendments:
|
134
|
+
accepted:
|
135
|
+
error: Произошла ошибка при принятии поправки.
|
136
|
+
success: Поправка была успешно принята.
|
137
|
+
amendable:
|
138
|
+
amended_by: Исправлено
|
139
|
+
button: Изменить %{model_name}
|
140
|
+
help_text: Улучшить этот %{model_name}, изменив его %{amendable_fields}
|
141
|
+
promote_button: Повысить до %{model_name}
|
142
|
+
compare_draft:
|
143
|
+
continue: Продолжить
|
144
|
+
edit_draft:
|
145
|
+
send: Предпросмотр
|
146
|
+
emendation:
|
147
|
+
actions:
|
148
|
+
button_accept: Принять
|
149
|
+
button_reject: Отклонить
|
150
|
+
new:
|
151
|
+
send: Создать
|
152
|
+
title: Создать черновик поправок
|
153
|
+
preview_draft:
|
154
|
+
modify: Изменить
|
155
|
+
publish: Опубликовать
|
156
|
+
title: Опубликовать черновик поправок
|
157
|
+
promoted:
|
158
|
+
error: Возникла проблема с опубликованием поправки в качестве нового предложения
|
159
|
+
success: Эта поправка была успешно опубликована как новое предложение
|
160
|
+
review:
|
161
|
+
back: Назад
|
114
162
|
wizard_step_form:
|
115
163
|
steps:
|
116
164
|
'1': Create your amendment
|
@@ -167,7 +215,9 @@ ru:
|
|
167
215
|
explanation: Срок действия подтверждения вашей личности истек. Чтобы выполнить это действие, вам необходимо снова подтвердить свою личность с помощью «%{authorization}».
|
168
216
|
title: Срок действия подтверждения личности истек
|
169
217
|
incomplete:
|
218
|
+
cancel: Отменить
|
170
219
|
explanation: 'Несмотря на то, что вы подтвердили свою личность с помощью «%{authorization}», мы просим вас заново подтвердить свою личность, потому что нам не хватает следующих данных:'
|
220
|
+
invalid_field: "%{field}"
|
171
221
|
reauthorize: Заново подтвердить свою личность
|
172
222
|
title: Пожалуйста, заново подтвердите свою личность
|
173
223
|
missing:
|
@@ -183,7 +233,14 @@ ru:
|
|
183
233
|
invalid_field: "Для %{field} недопустимо значение %{value}."
|
184
234
|
ok: Хорошо
|
185
235
|
title: Не подтвердили свою личность
|
236
|
+
unconfirmed:
|
237
|
+
title: Подтвердите вашу электронную почту
|
186
238
|
collapsible_list:
|
239
|
+
hidden_elements_count:
|
240
|
+
one: и еще %{count}
|
241
|
+
few: и еще %{count}
|
242
|
+
many: и еще %{count}
|
243
|
+
other: и еще %{count}
|
187
244
|
see_less: "(читать меньше)"
|
188
245
|
see_more: "(читать подробнее)"
|
189
246
|
components:
|
@@ -212,12 +269,22 @@ ru:
|
|
212
269
|
name: Баннер рекомендуемого содержимого
|
213
270
|
how_to_participate:
|
214
271
|
name: Как принять участие
|
272
|
+
html:
|
273
|
+
html_content: HTML-содержимое
|
274
|
+
name: HTML-блок
|
275
|
+
last_activity:
|
276
|
+
name: Последняя активность
|
277
|
+
title: Последняя активность
|
278
|
+
view_all: Посмотреть всё
|
279
|
+
metrics:
|
280
|
+
name: Метрики организации
|
215
281
|
stats:
|
216
282
|
name: Статистика организации
|
217
283
|
sub_hero:
|
218
284
|
name: Под-богатырский баннер
|
219
285
|
core:
|
220
286
|
actions:
|
287
|
+
login_before_access: Пожалуйста, войдите под вашей учётной записью перед получением доступа
|
221
288
|
unauthorized: Вы не имеете прав для выполнения этого действия
|
222
289
|
data_portability:
|
223
290
|
export:
|
@@ -226,12 +293,15 @@ ru:
|
|
226
293
|
download_data: Загрузить данные
|
227
294
|
download_data_description: Файл со всеми сведениями, связанными с учетной записью, будет отправлен на <strong>%{user_email}</strong>
|
228
295
|
request_data: Запросить данные
|
296
|
+
datepicker:
|
297
|
+
help_text: 'Ожидаемый формат: %{datepicker_format}'
|
229
298
|
devise:
|
230
299
|
omniauth_registrations:
|
231
300
|
create:
|
232
301
|
email_already_exists: Другая учетная запись использует тот же адрес электронной почты
|
233
302
|
new:
|
234
303
|
complete_profile: Заполните профиль
|
304
|
+
nickname_help: Ваш псевдоним в %{organization}
|
235
305
|
sign_up: Пожалуйста, заполните свой профиль
|
236
306
|
subtitle: Пожалуйста, заполните следующую форму, чтобы завершить регистрацию
|
237
307
|
username_help: Общедоступное имя, которое отображается в ваших сообщениях. В целях обеспечения анонимности оно может быть любым.
|
@@ -240,6 +310,8 @@ ru:
|
|
240
310
|
already_have_an_account?: У вас уже есть учетная запись?
|
241
311
|
newsletter: Получать время от времени рассылку со свежими новостями
|
242
312
|
newsletter_title: Разрешение на связь с вами
|
313
|
+
nickname_help: Ваш псевдоним в %{organization}
|
314
|
+
password_help: "Минимум %{minimun_characters} символов, не должен быть слишком распространенным (например, 123456) и должен отличаться от вашего имени и электронной почты."
|
243
315
|
sign_in: Войти
|
244
316
|
sign_up: Зарегистрироваться
|
245
317
|
sign_up_as:
|
@@ -253,6 +325,8 @@ ru:
|
|
253
325
|
new:
|
254
326
|
are_you_new?: Вы впервые на этой площадке?
|
255
327
|
register: Создать учетную запись
|
328
|
+
sign_in_disabled: Вы можете получить доступ с помощью внешней учетной записи
|
329
|
+
sign_up_disabled: Регистрация отключена, вы можете использовать существующую учетную запись для доступа
|
256
330
|
shared:
|
257
331
|
newsletter_modal:
|
258
332
|
buttons:
|
@@ -288,6 +362,16 @@ ru:
|
|
288
362
|
content_doesnt_exist: Этот адрес неверен или был удален.
|
289
363
|
title: Не удается найти страницу, которую вы ищете
|
290
364
|
events:
|
365
|
+
amendments:
|
366
|
+
amendment_accepted:
|
367
|
+
affected_user:
|
368
|
+
email_intro: 'Для %{amendable_title} была принята поправка. Вы можете увидеть ее на этой странице:'
|
369
|
+
email_outro: Вы получили это уведомление, потому что вы автор %{amendable_title}.
|
370
|
+
email_subject: Принята поправка для %{amendable_title} от %{emendation_author_nickname}
|
371
|
+
notification_title: <a href="%{emendation_path}">Эта поправка</a> создана <a href="%{emendation_author_path}">%{emendation_author_nickname}</a> была принята для <a href="%{amendable_path}">%{amendable_title}</a>.
|
372
|
+
follower:
|
373
|
+
email_intro: 'Для %{amendable_title} была принята поправка. Вы можете увидеть ее на этой странице:'
|
374
|
+
email_outro: Вы получили это уведомление, потому что вы следите за «%{amendable_title}». Вы можете отписаться от уведомлений, перейдя по приведенной выше ссылке.
|
291
375
|
attachments:
|
292
376
|
attachment_created:
|
293
377
|
email_intro: 'В %{resource_title} добавили новый документ. Вы можете посмотреть его на странице:'
|
@@ -354,6 +438,48 @@ ru:
|
|
354
438
|
errors:
|
355
439
|
error: В этом поле есть ошибка.
|
356
440
|
remove_this_file: Удалить этот файл
|
441
|
+
gamification:
|
442
|
+
badges:
|
443
|
+
index:
|
444
|
+
how: Как вы можете его получить
|
445
|
+
title: Значки
|
446
|
+
invitations:
|
447
|
+
name: Приглашения
|
448
|
+
level: Уровень %{level}
|
449
|
+
group_admins:
|
450
|
+
actions:
|
451
|
+
demote_admin: Удалить админа
|
452
|
+
index:
|
453
|
+
current_admins: 'Текущие администраторы:'
|
454
|
+
manage_admins: Управление админами
|
455
|
+
group_invites:
|
456
|
+
accept_invitation: Принять
|
457
|
+
index:
|
458
|
+
invite: Пригласить
|
459
|
+
reject_invitation: Отклонить
|
460
|
+
group_members:
|
461
|
+
actions:
|
462
|
+
are_you_sure: Вы уверены?
|
463
|
+
remove_from_group: Удалить участника
|
464
|
+
index:
|
465
|
+
manage_members: Управление участниками
|
466
|
+
groups:
|
467
|
+
actions:
|
468
|
+
are_you_sure: Вы уверены?
|
469
|
+
edit:
|
470
|
+
edit_user_group: Изменить группу
|
471
|
+
update_user_group: Обновить группу
|
472
|
+
form:
|
473
|
+
document_number_help: Не использовать дефисы и пробелы
|
474
|
+
email_help: Электронная почта вашей организации, ассоциации, коллектива, группы и т.д.
|
475
|
+
phone_help: Не использовать дефисы и пробелы
|
476
|
+
join:
|
477
|
+
error: Возникла проблема при присоединении к группе
|
478
|
+
success: Запрос на присоединение успешно создан. Администратор рассмотрит ваш запрос перед тем, как принять вас в группу.
|
479
|
+
last_activities:
|
480
|
+
all: Все виды активности
|
481
|
+
index:
|
482
|
+
last_activity: Последняя активность
|
357
483
|
log:
|
358
484
|
base_presenter:
|
359
485
|
create: "%{user_name} добавил %{resource_name}"
|
@@ -376,6 +502,7 @@ ru:
|
|
376
502
|
managed_users:
|
377
503
|
expired_session: Текущий сеанс выступления в роли участника истек.
|
378
504
|
menu:
|
505
|
+
help: Справка
|
379
506
|
home: Главная
|
380
507
|
messaging:
|
381
508
|
conversation_mailer:
|
@@ -395,6 +522,7 @@ ru:
|
|
395
522
|
index:
|
396
523
|
no_conversations: У вас еще нет бесед
|
397
524
|
reply:
|
525
|
+
send: Отправить
|
398
526
|
title: Ответить
|
399
527
|
start:
|
400
528
|
send: Отправить
|
@@ -508,8 +636,17 @@ ru:
|
|
508
636
|
show:
|
509
637
|
followers: Читают
|
510
638
|
following: Следит за
|
639
|
+
sidebar:
|
640
|
+
badges:
|
641
|
+
info: Значки заработаны за выполнение определенных действий на платформе.
|
642
|
+
title: Значки
|
511
643
|
user:
|
644
|
+
confirmation_instructions_sent: Письмо с инструкциями по подтверждению отправлено
|
645
|
+
create_user_group: Создать группу
|
512
646
|
edit_profile: Редактировать профиль
|
647
|
+
edit_user_group: Изменить профиль группы
|
648
|
+
fill_in_email_to_confirm_it: Пожалуйста, заполните электронную почту вашей группы для подтверждения
|
649
|
+
invite_user: Пригласить участника
|
513
650
|
reported_mailer:
|
514
651
|
hide:
|
515
652
|
hello: Здравствуйте, %{name}!
|
@@ -556,6 +693,8 @@ ru:
|
|
556
693
|
report: Пожаловаться
|
557
694
|
spam: Содержит кликоловки (манипулятивно-сенсационные заголовки), рекламу, мошенничество или лохотроны.
|
558
695
|
title: Пожаловаться на проблему
|
696
|
+
floating_help:
|
697
|
+
help: Справка
|
559
698
|
follow_button:
|
560
699
|
sign_in_before_follow: Пожалуйста, войдите в учетную запись, прежде чем выполнять это действие
|
561
700
|
login_modal:
|
@@ -571,14 +710,54 @@ ru:
|
|
571
710
|
share_link: Поделиться ссылкой
|
572
711
|
version_author:
|
573
712
|
deleted: Удаленный участник
|
713
|
+
wizard_step_form:
|
714
|
+
wizard_aside:
|
715
|
+
back: Назад
|
716
|
+
wizard_header:
|
717
|
+
see_steps: посмотреть шаги
|
718
|
+
step_of: Шаг %{current_step} из %{total_steps}
|
574
719
|
devise:
|
720
|
+
confirmations:
|
721
|
+
confirmed: Ваш адрес электронной почты был успешно подтвержден.
|
722
|
+
new:
|
723
|
+
resend_confirmation_instructions: Повторно отправить инструкции по подтверждению
|
724
|
+
send_instructions: Вы получите письмо с инструкциями по подтверждению вашего адреса электронной почты в течение нескольких минут.
|
725
|
+
send_paranoid_instructions: Если ваш адрес электронной почты существует в нашей базе данных, вы получите письмо с инструкциями по подтверждению вашего адреса электронной почты в течение нескольких минут.
|
726
|
+
failure:
|
727
|
+
already_authenticated: Вы уже авторизованы.
|
728
|
+
inactive: Ваш аккаунт еще не активирован.
|
729
|
+
invalid: Неверный %{authentication_keys} или пароль.
|
730
|
+
invited: У вас есть приглашение, примите его, чтобы завершить создание учетной записи.
|
731
|
+
last_attempt: У вас есть еще одна попытка, прежде чем ваша учетная запись будет заблокирована.
|
732
|
+
locked: Ваша учетная запись заблокирована.
|
733
|
+
not_found_in_database: Неверный %{authentication_keys} или пароль.
|
734
|
+
timeout: Ваша сессия истекла. Пожалуйста, войдите снова, чтобы продолжить.
|
735
|
+
unauthenticated: Вам нужно войти или зарегистрироваться, чтобы продолжить.
|
575
736
|
invitations:
|
576
737
|
edit:
|
577
738
|
header: Завершите создание своей учетной записи
|
578
739
|
nickname_help: Ваш уникальный псевдоним в %{organization}.
|
579
740
|
submit_button: Сохранить
|
580
741
|
subtitle: Если вы принимаете приглашение, укажите, пожалуйста, свой псевдоним и пароль.
|
742
|
+
invitation_removed: Ваше приглашение было удалено.
|
743
|
+
invitation_token_invalid: Предоставленный токен приглашения недействителен!
|
744
|
+
new:
|
745
|
+
header: Отправить приглашение
|
746
|
+
submit_button: Отправить приглашение
|
747
|
+
no_invitations_remaining: Приглашений не осталось
|
748
|
+
send_instructions: Приглашение было отправлено на %{email}.
|
749
|
+
updated: Ваш пароль был успешно установлен. Вы вошли в систему.
|
750
|
+
updated_not_active: Ваш пароль был успешно установлен.
|
581
751
|
mailer:
|
752
|
+
confirmation_instructions:
|
753
|
+
action: Подтвердить мой аккаунт
|
754
|
+
greeting: Добро пожаловать %{recipient}!
|
755
|
+
instruction: 'Вы можете подтвердить вашу учетную запись электронной почты по ссылке ниже:'
|
756
|
+
subject: Инструкции по подтверждению
|
757
|
+
email_changed:
|
758
|
+
greeting: Здравствуйте, %{recipient}!
|
759
|
+
message: Мы связываемся с вами, чтобы уведомить о том, что ваш адрес электронной почты изменен на %{email}.
|
760
|
+
subject: Адрес электронной почты изменен
|
582
761
|
invitation_instructions:
|
583
762
|
accept: Принять приглашение
|
584
763
|
accept_until: Срок действия этого приглашения закончится %{due_date}.
|
@@ -591,6 +770,7 @@ ru:
|
|
591
770
|
someone_invited_you: Кто-то пригласил вас в %{application}. Вы можете принять это приглашение по ссылке ниже.
|
592
771
|
someone_invited_you_as_admin: Кто-то пригласил вас в качестве администратора %{application}, вы можете принять это приглашение по ссылке ниже.
|
593
772
|
someone_invited_you_as_private_user: Кто-то пригласил вас в качестве частного участника %{application}, вы можете принять это приглашение по ссылке ниже.
|
773
|
+
subject: Инструкция по приглашению
|
594
774
|
invite_admin:
|
595
775
|
subject: Вам было предложено распоряжаться %{organization}
|
596
776
|
invite_collaborator:
|
@@ -606,11 +786,38 @@ ru:
|
|
606
786
|
passwords:
|
607
787
|
edit:
|
608
788
|
new_password: Пароль
|
789
|
+
registrations:
|
790
|
+
new:
|
791
|
+
sign_up: Зарегистрироваться
|
792
|
+
signed_up: Добро пожаловать! Вы успешно зарегистрировались.
|
793
|
+
signed_up_but_inactive: Вы успешно зарегистрировались. Однако вы не можете войти в систему, потому что учетная запись еще не активирована.
|
794
|
+
signed_up_but_locked: Вы успешно зарегистрировались. Однако вы не можете войти в систему, потому что ваша учетная запись заблокирована.
|
795
|
+
sessions:
|
796
|
+
new:
|
797
|
+
sign_in: Войти
|
798
|
+
signed_in: Вход выполнен успешно.
|
799
|
+
signed_out: Вы вышли.
|
800
|
+
shared:
|
801
|
+
links:
|
802
|
+
back: Назад
|
803
|
+
didn_t_receive_confirmation_instructions: Не получили инструкцию по подтверждению?
|
804
|
+
didn_t_receive_unlock_instructions: Не получили инструкцию по разблокировке?
|
805
|
+
forgot_your_password: Забыли пароль?
|
806
|
+
sign_in: Войти
|
807
|
+
sign_in_with_provider: Войти с помощью %{provider}
|
808
|
+
sign_up: Зарегистрироваться
|
809
|
+
unlocks:
|
810
|
+
new:
|
811
|
+
resend_unlock_instructions: Повторно отправить инструкции по разблокировке
|
812
|
+
send_instructions: Вы получите письмо с инструкциями по разблокированию учетной записи в течение нескольких минут.
|
813
|
+
send_paranoid_instructions: Если ваша учетная запись существует, вы получите письмо с инструкциями о том, как ее разблокировать в течение нескольких минут.
|
814
|
+
unlocked: Ваша учетная запись успешно разблокирована. Пожалуйста, войдите, чтобы продолжить.
|
609
815
|
doorkeeper:
|
610
816
|
scopes:
|
611
817
|
public: Обнародованные сведения о вас.
|
612
818
|
errors:
|
613
819
|
messages:
|
820
|
+
already_confirmed: уже был подтвержден, попробуйте войти
|
614
821
|
content_type_whitelist_error: этот тип файла недопустим
|
615
822
|
cycle_detected: родитель охвата не может быть одним из его потомков
|
616
823
|
file_size_is_less_than_or_equal_to: размер файла должен быть меньше или равен %{count}
|
data/config/locales/sv.yml
CHANGED
@@ -152,7 +152,10 @@ sv:
|
|
152
152
|
section_heading: Ändringar (%{count})
|
153
153
|
compare_draft:
|
154
154
|
continue: Fortsätt
|
155
|
+
created:
|
156
|
+
error: Ett fel uppstod när ändringsutkastet skulle skapas.
|
155
157
|
edit_draft:
|
158
|
+
discard: Släng utkastet
|
156
159
|
send: Förhandsvisa
|
157
160
|
emendation:
|
158
161
|
actions:
|
@@ -550,6 +553,9 @@ sv:
|
|
550
553
|
current_image: Nuvarande bild
|
551
554
|
default_image: Förvald bild
|
552
555
|
errors:
|
556
|
+
decidim/user:
|
557
|
+
password: Lösenordet är för kort.
|
558
|
+
password_confirmation: Lösenordsbekräftelsen måste stämma överens med angivet lösenord.
|
553
559
|
error: Det finns ett fel i det här fältet.
|
554
560
|
remove_this_file: Ta bort den här filen
|
555
561
|
gamification:
|
data/lib/decidim/core/test.rb
CHANGED
@@ -42,3 +42,4 @@ require "decidim/core/test/shared_examples/amendable/amendment_accepted_event_ex
|
|
42
42
|
require "decidim/core/test/shared_examples/amendable/amendment_rejected_event_examples"
|
43
43
|
require "decidim/core/test/shared_examples/amendable/amendment_promoted_event_examples"
|
44
44
|
require "decidim/core/test/shared_examples/uncommentable_component_examples"
|
45
|
+
require "decidim/core/test/shared_examples/has_private_users"
|
@@ -0,0 +1,63 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
shared_examples_for "has private users" do
|
6
|
+
let(:factory_name) { described_class.name.demodulize.underscore.to_sym }
|
7
|
+
|
8
|
+
let!(:public_space) do
|
9
|
+
create(factory_name, private_space: false, published_at: Time.current)
|
10
|
+
end
|
11
|
+
|
12
|
+
let!(:private_space) do
|
13
|
+
create(factory_name, private_space: true, published_at: Time.current)
|
14
|
+
end
|
15
|
+
|
16
|
+
def create_space_private_user(space, user = create(:user, organization: space.organization))
|
17
|
+
Decidim::ParticipatorySpacePrivateUser.create(privatable_to: space, user: user)
|
18
|
+
end
|
19
|
+
|
20
|
+
describe ".public_spaces" do
|
21
|
+
let(:scope) { described_class.send(:public_spaces) }
|
22
|
+
|
23
|
+
it { expect(scope).to eq([public_space]) }
|
24
|
+
end
|
25
|
+
|
26
|
+
describe ".visible_for" do
|
27
|
+
let(:scope) { described_class.send(:visible_for, user) }
|
28
|
+
|
29
|
+
before { create_space_private_user(private_space) }
|
30
|
+
|
31
|
+
context "without user" do
|
32
|
+
let(:user) { nil }
|
33
|
+
|
34
|
+
it { expect(scope).to contain_exactly(public_space) }
|
35
|
+
end
|
36
|
+
|
37
|
+
context "with non-private user" do
|
38
|
+
let(:user) { create(:user) }
|
39
|
+
|
40
|
+
it { expect(scope).to contain_exactly(public_space) }
|
41
|
+
end
|
42
|
+
|
43
|
+
context "with private user" do
|
44
|
+
let(:user) { private_space.users.first }
|
45
|
+
|
46
|
+
it { expect(scope).to contain_exactly(public_space, private_space) }
|
47
|
+
end
|
48
|
+
|
49
|
+
context "when the space is both public and has private users" do
|
50
|
+
# Visible spaces for non-private user.
|
51
|
+
let(:user) { create(:user) }
|
52
|
+
|
53
|
+
before do
|
54
|
+
# Public space has multiple private users.
|
55
|
+
create_space_private_user(public_space)
|
56
|
+
create_space_private_user(public_space)
|
57
|
+
end
|
58
|
+
|
59
|
+
# Expect no duplicate results.
|
60
|
+
it { expect(scope).to contain_exactly(public_space) }
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|