decidim-proposals 0.5.1 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/images/decidim/proposals/icon.svg +3 -1
- data/app/forms/decidim/proposals/admin/proposal_form.rb +1 -1
- data/app/forms/decidim/proposals/proposal_form.rb +1 -1
- data/app/models/decidim/proposals/abilities/participatory_process_admin_ability.rb +2 -2
- data/app/models/decidim/proposals/abilities/participatory_process_moderator_ability.rb +1 -1
- data/app/models/decidim/proposals/proposal.rb +8 -15
- data/app/views/decidim/proposals/admin/proposals/_form.html.erb +2 -2
- data/app/views/decidim/proposals/admin/proposals/index.html.erb +7 -3
- data/app/views/decidim/proposals/proposals/_filters.html.erb +2 -2
- data/app/views/decidim/proposals/proposals/new.html.erb +2 -2
- data/app/views/decidim/proposals/proposals/show.html.erb +2 -1
- data/config/locales/ca.yml +8 -2
- data/config/locales/en.yml +3 -6
- data/config/locales/es.yml +8 -2
- data/config/locales/eu.yml +26 -9
- data/config/locales/fi.yml +32 -2
- data/config/locales/fr.yml +35 -15
- data/config/locales/it.yml +20 -2
- data/config/locales/nl.yml +160 -0
- data/config/locales/pl.yml +163 -0
- data/config/locales/uk.yml +171 -0
- data/db/migrate/20170307085300_migrate_proposal_reports_data_to_reports.rb +1 -1
- data/lib/decidim/proposals/feature.rb +19 -17
- data/lib/decidim/proposals/test/factories.rb +6 -6
- metadata +31 -17
- data/config/i18n-tasks.yml +0 -15
@@ -0,0 +1,171 @@
|
|
1
|
+
uk:
|
2
|
+
activemodel:
|
3
|
+
attributes:
|
4
|
+
proposal:
|
5
|
+
body: Основний текст
|
6
|
+
category_id: Розділ
|
7
|
+
scope_id: Обсяг
|
8
|
+
title: Назва
|
9
|
+
user_group_id: Створити пропозицію як
|
10
|
+
proposal_answer:
|
11
|
+
answer: Відповідь
|
12
|
+
decidim:
|
13
|
+
features:
|
14
|
+
proposals:
|
15
|
+
actions:
|
16
|
+
create: Створити
|
17
|
+
vote: Голосувати
|
18
|
+
name: Пропозиції
|
19
|
+
settings:
|
20
|
+
global:
|
21
|
+
announcement: Оголошення
|
22
|
+
attachments_allowed: Дозволити вкладення
|
23
|
+
comments_enabled: Коментарі ввімкнено
|
24
|
+
geocoding_enabled: Геокодування ввімкнено
|
25
|
+
new_proposal_help_text: Підказки зі створення нової пропозиції
|
26
|
+
official_proposals_enabled: Офіційні пропозиції ввімкнені
|
27
|
+
proposal_answering_enabled: Ввімкнуто відповіді на пропозиції
|
28
|
+
vote_limit: Гранична кількість голосів
|
29
|
+
step:
|
30
|
+
announcement: Оголошення
|
31
|
+
comments_blocked: Коментарі заблоковано
|
32
|
+
creation_enabled: Ввімкнено створення пропозицій
|
33
|
+
proposal_answering_enabled: Ввімкнуто відповіді на пропозиції
|
34
|
+
votes_blocked: Голосування заблоковане
|
35
|
+
votes_enabled: Голосування ввімкнене
|
36
|
+
votes_hidden: Голосування приховане (якщо голосування ввімкнене, то при галочці тут буде сховано кількість голосів)
|
37
|
+
proposals:
|
38
|
+
actions:
|
39
|
+
answer: Відповідь
|
40
|
+
new: Нова
|
41
|
+
title: Дії
|
42
|
+
admin:
|
43
|
+
actions:
|
44
|
+
preview: Попередній перегляд
|
45
|
+
exports:
|
46
|
+
comments: Коментарі
|
47
|
+
proposals: Пропозиції
|
48
|
+
models:
|
49
|
+
proposal:
|
50
|
+
name: Пропозиція
|
51
|
+
proposal_answers:
|
52
|
+
edit:
|
53
|
+
accepted: Прийнято
|
54
|
+
answer_proposal: Відповідь
|
55
|
+
evaluating: Розглядається
|
56
|
+
rejected: Відхилено
|
57
|
+
title: Відповідь на пропозицію %{title}
|
58
|
+
proposals:
|
59
|
+
answer:
|
60
|
+
invalid: При відповіді на цю пропозицію сталася помилка
|
61
|
+
success: Відповідь на пропозицію успішно опубліковано
|
62
|
+
create:
|
63
|
+
invalid: При створенні цієї пропозиції сталася помилка
|
64
|
+
success: Пропозицію успішно створено
|
65
|
+
form:
|
66
|
+
attachment_legend: "(Необов'язково) Додати вкладений файл"
|
67
|
+
select_a_category: Оберіть розділ
|
68
|
+
index:
|
69
|
+
title: Пропозиції
|
70
|
+
new:
|
71
|
+
create: Створити
|
72
|
+
title: Створити пропозицію
|
73
|
+
answers:
|
74
|
+
accepted: Прийнято
|
75
|
+
evaluating: Розглядається
|
76
|
+
not_answered: Ще не отримало відгуків
|
77
|
+
rejected: Відхилено
|
78
|
+
create:
|
79
|
+
error: При збереженні цієї пропозиції сталися помилки.
|
80
|
+
success: Пропозицію успішно створено.
|
81
|
+
models:
|
82
|
+
proposal:
|
83
|
+
fields:
|
84
|
+
category: Розділ
|
85
|
+
id: Ідентифікатор
|
86
|
+
official_proposal: Офіційна пропозиція
|
87
|
+
scope: Обсяг
|
88
|
+
state: Стан
|
89
|
+
title: Назва
|
90
|
+
proposal_votes:
|
91
|
+
create:
|
92
|
+
error: При голосуванні пропозиції сталися помилки.
|
93
|
+
proposals:
|
94
|
+
author:
|
95
|
+
deleted: Видалений користувач
|
96
|
+
verified_user_group: Перевірена організація
|
97
|
+
count:
|
98
|
+
proposals_count:
|
99
|
+
one: 1 пропозиція
|
100
|
+
few: "%{count} пропозиції"
|
101
|
+
many: "%{count} пропозицій"
|
102
|
+
other: "%{count} пропозицій"
|
103
|
+
filters:
|
104
|
+
accepted: Прийнято
|
105
|
+
activity: Діяльність
|
106
|
+
all: Усі
|
107
|
+
category: Розділ
|
108
|
+
category_prompt: Оберіть розділ
|
109
|
+
citizenship: Громадянство
|
110
|
+
evaluating: Розглядається
|
111
|
+
official: Офіційне
|
112
|
+
origin: Джерело
|
113
|
+
rejected: Відхилено
|
114
|
+
related_to: Пов'язане з
|
115
|
+
scope_prompt: Оберіть обсяг
|
116
|
+
scopes: Обсяги
|
117
|
+
search: Шукати
|
118
|
+
state: Стан
|
119
|
+
voted: Проголосоване
|
120
|
+
filters_small_view:
|
121
|
+
close_modal: Закрити віконце
|
122
|
+
filter: Відібрати
|
123
|
+
filter_by: 'Відібрати за ознакою:'
|
124
|
+
unfold: Розгорнути
|
125
|
+
index:
|
126
|
+
new_proposal: Нова пропозиція
|
127
|
+
view_proposal: Переглянути пропозицію
|
128
|
+
linked_proposals:
|
129
|
+
proposal_votes:
|
130
|
+
one: <span class="card--list__data__number">1</span> голос
|
131
|
+
few: <span class="card--list__data__number">%{count}</span> голоси
|
132
|
+
many: <span class="card--list__data__number">%{count}</span> голосів
|
133
|
+
other: <span class="card--list__data__number">%{count}</span> голосів
|
134
|
+
new:
|
135
|
+
attachment_legend: "(Необов'язково) Додати вкладений файл"
|
136
|
+
back: Назад
|
137
|
+
select_a_category: Будь ласка, оберіть розділ
|
138
|
+
send: Надіслати
|
139
|
+
title: Нова пропозиція
|
140
|
+
orders:
|
141
|
+
label: 'Впорядкувати пропозиції за:'
|
142
|
+
most_voted: Найбільш підтримані
|
143
|
+
random: Випадково
|
144
|
+
recent: Нещодавні
|
145
|
+
proposal:
|
146
|
+
view_proposal: Переглянути пропозицію
|
147
|
+
show:
|
148
|
+
proposal_accepted_reason: 'Ця пропозиція була прийнята, тому що:'
|
149
|
+
proposal_rejected_reason: 'Ця пропозиція була відхилена, оскільки:'
|
150
|
+
report: Доповісти
|
151
|
+
vote_button:
|
152
|
+
already_voted: Вже проголосували
|
153
|
+
no_votes_remaining: Не залишилось голосів
|
154
|
+
vote: Голосувати
|
155
|
+
votes_blocked: Голосування вимкнене
|
156
|
+
votes_count:
|
157
|
+
count:
|
158
|
+
one: ГОЛОС
|
159
|
+
few: ГОЛОСИ
|
160
|
+
many: ГОЛОСІВ
|
161
|
+
other: ГОЛОСІВ
|
162
|
+
votes_limit:
|
163
|
+
vote_limit:
|
164
|
+
description: Ви маєте право проголосувати лише по %{limit} пропозиціям, а не по скільком завгодно багатьом.
|
165
|
+
left: Залишилось
|
166
|
+
title: У вас є %{limit} голосів для того, щоб їх розподілити
|
167
|
+
votes: Голоси
|
168
|
+
resource_links:
|
169
|
+
included_proposals:
|
170
|
+
proposal_projects: 'Пропозиція, яка є в таких проектах:'
|
171
|
+
proposal_results: 'Пропозиція, яка є в таких підсумках:'
|
@@ -9,7 +9,7 @@ class MigrateProposalReportsDataToReports < ActiveRecord::Migration[5.0]
|
|
9
9
|
def change
|
10
10
|
Decidim::Proposals::ProposalReport.find_each do |proposal_report|
|
11
11
|
moderation = Decidim::Moderation.find_or_create_by!(reportable: proposal_report.proposal,
|
12
|
-
participatory_process: proposal_report.proposal.feature.
|
12
|
+
participatory_process: proposal_report.proposal.feature.participatory_space)
|
13
13
|
Decidim::Report.create!(moderation: moderation,
|
14
14
|
user: proposal_report.user,
|
15
15
|
reason: proposal_report.reason,
|
@@ -59,7 +59,7 @@ Decidim.register_feature(:proposals) do |feature|
|
|
59
59
|
exports.collection do |feature_instance|
|
60
60
|
Decidim::Proposals::Proposal
|
61
61
|
.where(feature: feature_instance)
|
62
|
-
.includes(:category, feature: {
|
62
|
+
.includes(:category, feature: { participatory_space: :organization })
|
63
63
|
end
|
64
64
|
|
65
65
|
exports.serializer Decidim::Proposals::ProposalSerializer
|
@@ -75,25 +75,29 @@ Decidim.register_feature(:proposals) do |feature|
|
|
75
75
|
exports.serializer Decidim::Comments::CommentSerializer
|
76
76
|
end
|
77
77
|
|
78
|
-
feature.seeds do |
|
78
|
+
feature.seeds do |participatory_space|
|
79
|
+
step_settings = if participatory_space.allows_steps?
|
80
|
+
{ participatory_space.active_step.id => { votes_enabled: true, votes_blocked: false, creation_enabled: true } }
|
81
|
+
else
|
82
|
+
{}
|
83
|
+
end
|
84
|
+
|
79
85
|
feature = Decidim::Feature.create!(
|
80
|
-
name: Decidim::Features::Namer.new(
|
86
|
+
name: Decidim::Features::Namer.new(participatory_space.organization.available_locales, :proposals).i18n_name,
|
81
87
|
manifest_name: :proposals,
|
82
88
|
published_at: Time.current,
|
83
|
-
|
89
|
+
participatory_space: participatory_space,
|
84
90
|
settings: {
|
85
91
|
vote_limit: 0
|
86
92
|
},
|
87
|
-
step_settings:
|
88
|
-
process.active_step.id => { votes_enabled: true, votes_blocked: false, creation_enabled: true }
|
89
|
-
}
|
93
|
+
step_settings: step_settings
|
90
94
|
)
|
91
95
|
|
92
|
-
if
|
93
|
-
scopes =
|
94
|
-
global =
|
96
|
+
if participatory_space.scope
|
97
|
+
scopes = participatory_space.scope.descendants
|
98
|
+
global = participatory_space.scope
|
95
99
|
else
|
96
|
-
scopes =
|
100
|
+
scopes = participatory_space.organization.scopes
|
97
101
|
global = nil
|
98
102
|
end
|
99
103
|
|
@@ -112,7 +116,7 @@ Decidim.register_feature(:proposals) do |feature|
|
|
112
116
|
|
113
117
|
proposal = Decidim::Proposals::Proposal.create!(
|
114
118
|
feature: feature,
|
115
|
-
category:
|
119
|
+
category: participatory_space.categories.sample,
|
116
120
|
scope: Faker::Boolean.boolean(0.5) ? global : scopes.sample,
|
117
121
|
title: Faker::Lorem.sentence(2),
|
118
122
|
body: Faker::Lorem.paragraphs(2).join("\n"),
|
@@ -124,8 +128,8 @@ Decidim.register_feature(:proposals) do |feature|
|
|
124
128
|
)
|
125
129
|
|
126
130
|
rand(3).times do |m|
|
127
|
-
email = "vote-author-#{
|
128
|
-
name = "#{Faker::Name.name} #{
|
131
|
+
email = "vote-author-#{participatory_space.underscored_name}-#{participatory_space.id}-#{n}-#{m}@example.org"
|
132
|
+
name = "#{Faker::Name.name} #{participatory_space.id} #{n} #{m}"
|
129
133
|
|
130
134
|
author = Decidim::User.find_or_initialize_by(email: email)
|
131
135
|
author.update!(
|
@@ -134,9 +138,7 @@ Decidim.register_feature(:proposals) do |feature|
|
|
134
138
|
name: name,
|
135
139
|
organization: feature.organization,
|
136
140
|
tos_agreement: "1",
|
137
|
-
confirmed_at: Time.current
|
138
|
-
comments_notifications: true,
|
139
|
-
replies_notifications: true
|
141
|
+
confirmed_at: Time.current
|
140
142
|
)
|
141
143
|
|
142
144
|
Decidim::Proposals::ProposalVote.create!(proposal: proposal,
|
@@ -2,14 +2,14 @@
|
|
2
2
|
|
3
3
|
FactoryGirl.define do
|
4
4
|
factory :proposal_feature, parent: :feature do
|
5
|
-
name { Decidim::Features::Namer.new(
|
5
|
+
name { Decidim::Features::Namer.new(participatory_space.organization.available_locales, :proposals).i18n_name }
|
6
6
|
manifest_name :proposals
|
7
|
-
|
7
|
+
participatory_space { create(:participatory_process, :with_steps, organization: organization) }
|
8
8
|
|
9
9
|
trait :with_votes_enabled do
|
10
10
|
step_settings do
|
11
11
|
{
|
12
|
-
|
12
|
+
participatory_space.active_step.id => { votes_enabled: true }
|
13
13
|
}
|
14
14
|
end
|
15
15
|
end
|
@@ -17,7 +17,7 @@ FactoryGirl.define do
|
|
17
17
|
trait :with_votes_disabled do
|
18
18
|
step_settings do
|
19
19
|
{
|
20
|
-
|
20
|
+
participatory_space.active_step.id => { votes_enabled: false }
|
21
21
|
}
|
22
22
|
end
|
23
23
|
end
|
@@ -37,7 +37,7 @@ FactoryGirl.define do
|
|
37
37
|
trait :with_votes_blocked do
|
38
38
|
step_settings do
|
39
39
|
{
|
40
|
-
|
40
|
+
participatory_space.active_step.id => {
|
41
41
|
votes_enabled: true,
|
42
42
|
votes_blocked: true
|
43
43
|
}
|
@@ -48,7 +48,7 @@ FactoryGirl.define do
|
|
48
48
|
trait :with_creation_enabled do
|
49
49
|
step_settings do
|
50
50
|
{
|
51
|
-
|
51
|
+
participatory_space.active_step.id => { creation_enabled: true }
|
52
52
|
}
|
53
53
|
end
|
54
54
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: decidim-proposals
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josep Jaume Rey Peroy
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2017-
|
13
|
+
date: 2017-09-15 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: decidim-core
|
@@ -18,28 +18,28 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - '='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.
|
21
|
+
version: 0.6.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - '='
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: 0.
|
28
|
+
version: 0.6.0
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: decidim-comments
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
33
|
- - '='
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: 0.
|
35
|
+
version: 0.6.0
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
40
|
- - '='
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: 0.
|
42
|
+
version: 0.6.0
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: rectify
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
@@ -88,70 +88,84 @@ dependencies:
|
|
88
88
|
requirements:
|
89
89
|
- - '='
|
90
90
|
- !ruby/object:Gem::Version
|
91
|
-
version: 0.
|
91
|
+
version: 0.6.0
|
92
92
|
type: :development
|
93
93
|
prerelease: false
|
94
94
|
version_requirements: !ruby/object:Gem::Requirement
|
95
95
|
requirements:
|
96
96
|
- - '='
|
97
97
|
- !ruby/object:Gem::Version
|
98
|
-
version: 0.
|
98
|
+
version: 0.6.0
|
99
99
|
- !ruby/object:Gem::Dependency
|
100
100
|
name: decidim-admin
|
101
101
|
requirement: !ruby/object:Gem::Requirement
|
102
102
|
requirements:
|
103
103
|
- - '='
|
104
104
|
- !ruby/object:Gem::Version
|
105
|
-
version: 0.
|
105
|
+
version: 0.6.0
|
106
106
|
type: :development
|
107
107
|
prerelease: false
|
108
108
|
version_requirements: !ruby/object:Gem::Requirement
|
109
109
|
requirements:
|
110
110
|
- - '='
|
111
111
|
- !ruby/object:Gem::Version
|
112
|
-
version: 0.
|
112
|
+
version: 0.6.0
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: decidim-participatory_processes
|
115
|
+
requirement: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - '='
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: 0.6.0
|
120
|
+
type: :development
|
121
|
+
prerelease: false
|
122
|
+
version_requirements: !ruby/object:Gem::Requirement
|
123
|
+
requirements:
|
124
|
+
- - '='
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: 0.6.0
|
113
127
|
- !ruby/object:Gem::Dependency
|
114
128
|
name: decidim-meetings
|
115
129
|
requirement: !ruby/object:Gem::Requirement
|
116
130
|
requirements:
|
117
131
|
- - '='
|
118
132
|
- !ruby/object:Gem::Version
|
119
|
-
version: 0.
|
133
|
+
version: 0.6.0
|
120
134
|
type: :development
|
121
135
|
prerelease: false
|
122
136
|
version_requirements: !ruby/object:Gem::Requirement
|
123
137
|
requirements:
|
124
138
|
- - '='
|
125
139
|
- !ruby/object:Gem::Version
|
126
|
-
version: 0.
|
140
|
+
version: 0.6.0
|
127
141
|
- !ruby/object:Gem::Dependency
|
128
142
|
name: decidim-results
|
129
143
|
requirement: !ruby/object:Gem::Requirement
|
130
144
|
requirements:
|
131
145
|
- - '='
|
132
146
|
- !ruby/object:Gem::Version
|
133
|
-
version: 0.
|
147
|
+
version: 0.6.0
|
134
148
|
type: :development
|
135
149
|
prerelease: false
|
136
150
|
version_requirements: !ruby/object:Gem::Requirement
|
137
151
|
requirements:
|
138
152
|
- - '='
|
139
153
|
- !ruby/object:Gem::Version
|
140
|
-
version: 0.
|
154
|
+
version: 0.6.0
|
141
155
|
- !ruby/object:Gem::Dependency
|
142
156
|
name: decidim-budgets
|
143
157
|
requirement: !ruby/object:Gem::Requirement
|
144
158
|
requirements:
|
145
159
|
- - '='
|
146
160
|
- !ruby/object:Gem::Version
|
147
|
-
version: 0.
|
161
|
+
version: 0.6.0
|
148
162
|
type: :development
|
149
163
|
prerelease: false
|
150
164
|
version_requirements: !ruby/object:Gem::Requirement
|
151
165
|
requirements:
|
152
166
|
- - '='
|
153
167
|
- !ruby/object:Gem::Version
|
154
|
-
version: 0.
|
168
|
+
version: 0.6.0
|
155
169
|
description: A proposals component for decidim's participatory processes.
|
156
170
|
email:
|
157
171
|
- josepjaume@gmail.com
|
@@ -220,7 +234,6 @@ files:
|
|
220
234
|
- app/views/decidim/proposals/proposals/index.js.erb
|
221
235
|
- app/views/decidim/proposals/proposals/new.html.erb
|
222
236
|
- app/views/decidim/proposals/proposals/show.html.erb
|
223
|
-
- config/i18n-tasks.yml
|
224
237
|
- config/initializers/social_share_button.rb
|
225
238
|
- config/locales/ca.yml
|
226
239
|
- config/locales/en.yml
|
@@ -231,6 +244,7 @@ files:
|
|
231
244
|
- config/locales/it.yml
|
232
245
|
- config/locales/nl.yml
|
233
246
|
- config/locales/pl.yml
|
247
|
+
- config/locales/uk.yml
|
234
248
|
- db/migrate/20161212110850_create_decidim_proposals.rb
|
235
249
|
- db/migrate/20170112115253_create_proposal_votes.rb
|
236
250
|
- db/migrate/20170113114245_add_text_search_indexes.rb
|
data/config/i18n-tasks.yml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
base_locale: en
|
2
|
-
ignore_unused:
|
3
|
-
- "decidim.features.proposals.name"
|
4
|
-
- "decidim.features.proposals.settings.*"
|
5
|
-
- "decidim.resource_links.*"
|
6
|
-
- "activemodel.attributes.*"
|
7
|
-
- "decidim.proposals.answers.*"
|
8
|
-
- "decidim.features.proposals.actions.*"
|
9
|
-
- "decidim.proposals.proposals.orders.*"
|
10
|
-
- "decidim.proposals.admin.exports.proposals"
|
11
|
-
- "decidim.proposals.admin.exports.comments"
|
12
|
-
ignore_missing:
|
13
|
-
- decidim.scopes.global
|
14
|
-
search:
|
15
|
-
strict: false
|