decidim-forms 0.16.1 → 0.17.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/assets/config/decidim_forms_manifest.css +3 -0
- data/app/assets/stylesheets/decidim/forms/forms.scss +37 -0
- data/app/cells/decidim/forms/answer_readonly/show.erb +3 -0
- data/app/cells/decidim/forms/answer_readonly_cell.rb +9 -0
- data/app/cells/decidim/forms/question_readonly/show.erb +15 -0
- data/app/cells/decidim/forms/question_readonly_cell.rb +9 -0
- data/app/forms/decidim/forms/admin/answer_option_form.rb +3 -1
- data/app/forms/decidim/forms/admin/question_form.rb +3 -1
- data/app/views/decidim/forms/questionnaires/_answer.html.erb +1 -1
- data/app/views/decidim/forms/questionnaires/show.html.erb +4 -0
- data/config/locales/ar-SA.yml +20 -0
- data/config/locales/ca.yml +15 -12
- data/config/locales/cs.yml +82 -0
- data/config/locales/de.yml +3 -0
- data/config/locales/en.yml +16 -12
- data/config/locales/es-MX.yml +3 -0
- data/config/locales/es-PY.yml +3 -0
- data/config/locales/es.yml +15 -12
- data/config/locales/eu.yml +3 -0
- data/config/locales/fi-plain.yml +82 -0
- data/config/locales/fi.yml +13 -10
- data/config/locales/fr.yml +3 -0
- data/config/locales/gl.yml +3 -0
- data/config/locales/hu.yml +3 -0
- data/config/locales/id-ID.yml +20 -0
- data/config/locales/it.yml +3 -0
- data/config/locales/nl.yml +3 -0
- data/config/locales/pl.yml +3 -0
- data/config/locales/pt-BR.yml +3 -0
- data/config/locales/pt.yml +3 -0
- data/config/locales/sv.yml +3 -0
- data/config/locales/tr-TR.yml +15 -12
- data/lib/decidim/forms/engine.rb +5 -1
- data/lib/decidim/forms/test/shared_examples/has_questionnaire.rb +16 -12
- data/lib/decidim/forms/test/shared_examples/manage_questionnaires.rb +1 -1
- data/lib/decidim/forms/user_answers_serializer.rb +9 -1
- data/lib/decidim/forms/version.rb +1 -1
- metadata +16 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7d81ecefd5a170425406afb4b1e9012970f1149750f5dc1e71520b12f550f667
|
4
|
+
data.tar.gz: 37cb9ccc0e7cc64f7cd45062e90e3c882a5aa3c5bc85159787221c223949a80a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0f746e69717ed7aadc2bd29f867cf6cbe209c70e076e2b8d5473d1cc32a73ad73a8cf5b63f59222fb01f12de4fd9e16972bdbc64a25c64375a18e609ac4ee0c8
|
7
|
+
data.tar.gz: '086519491a2c72ab2a8715aead24ba985f470db18683e65d61b7a1089d30923aff48c58922075c217fbde04e166d4a15b985803384416c04e3478efe45d92660'
|
@@ -0,0 +1,37 @@
|
|
1
|
+
.questionnaire-question_readonly{
|
2
|
+
font-weight: bold;
|
3
|
+
font-size: .875rem;
|
4
|
+
|
5
|
+
p{
|
6
|
+
margin-bottom: .5rem;
|
7
|
+
}
|
8
|
+
|
9
|
+
em{
|
10
|
+
font-weight: normal;
|
11
|
+
font-size: 90%;
|
12
|
+
}
|
13
|
+
|
14
|
+
p + ul{
|
15
|
+
margin-top: -.5rem;
|
16
|
+
}
|
17
|
+
}
|
18
|
+
|
19
|
+
.questionnaire-question_readonly-answers{
|
20
|
+
margin-bottom: .5rem;
|
21
|
+
|
22
|
+
&.single_option{
|
23
|
+
list-style-type: disc;
|
24
|
+
}
|
25
|
+
|
26
|
+
&.multiple_option{
|
27
|
+
list-style-type: square;
|
28
|
+
}
|
29
|
+
|
30
|
+
&.sorting{
|
31
|
+
list-style-type: circle;
|
32
|
+
}
|
33
|
+
}
|
34
|
+
|
35
|
+
.questionnaire-question_readonly-answer{
|
36
|
+
font-weight: normal;
|
37
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<li class="questionnaire-question_readonly">
|
2
|
+
<p>
|
3
|
+
<%= translated_attribute(model.body) %>
|
4
|
+
<br />
|
5
|
+
<em>
|
6
|
+
(<%= t(model.question_type, scope: "decidim.forms.question_types") %>)
|
7
|
+
</em>
|
8
|
+
</p>
|
9
|
+
|
10
|
+
<% if model.multiple_choice? %>
|
11
|
+
<ul class="questionnaire-question_readonly-answers <%= model.question_type %>">
|
12
|
+
<%= cell("decidim/forms/answer_readonly", collection: model.answer_options) %>
|
13
|
+
</ul>
|
14
|
+
<% end %>
|
15
|
+
</li>
|
@@ -22,7 +22,7 @@
|
|
22
22
|
<%= label_tag "#{choice_id}_body" do %>
|
23
23
|
<%= radio_button_tag "questionnaire[answers][#{answer_idx}][choices][][body]",
|
24
24
|
translated_attribute(answer_option.body),
|
25
|
-
choice.try(:
|
25
|
+
answer_option.id == choice.try(:answer_option_id),
|
26
26
|
id: "#{choice_id}_body", disabled: disabled %>
|
27
27
|
|
28
28
|
<%= translated_attribute(answer_option.body) %>
|
@@ -66,6 +66,10 @@
|
|
66
66
|
<p>
|
67
67
|
<%= t(".answer_questionnaire.anonymous_user_message", sign_in_link: decidim.new_user_session_path, sign_up_link: decidim.new_user_registration_path).html_safe %>
|
68
68
|
</p>
|
69
|
+
|
70
|
+
<ol>
|
71
|
+
<%= cell("decidim/forms/question_readonly", collection: @questionnaire.questions) %>
|
72
|
+
</ol>
|
69
73
|
</div>
|
70
74
|
<% end %>
|
71
75
|
<% else %>
|
data/config/locales/ar-SA.yml
CHANGED
@@ -33,6 +33,7 @@ ar:
|
|
33
33
|
title: عنوان
|
34
34
|
form:
|
35
35
|
add_question: أضف سؤال
|
36
|
+
already_answered_warning: تمت الإجابة على النموذج من قبل بعض المستخدمين حتى لا تتمكن من تعديل أسئلته.
|
36
37
|
question:
|
37
38
|
add_answer_option: إضافة خيار الإجابة
|
38
39
|
any: أي
|
@@ -42,6 +43,9 @@ ar:
|
|
42
43
|
remove: إزالة
|
43
44
|
statement: بيان
|
44
45
|
up: فوق
|
46
|
+
update:
|
47
|
+
invalid: كانت هناك مشكلة في حفظ النموذج.
|
48
|
+
success: تم حفظ النماذج بنجاح.
|
45
49
|
errors:
|
46
50
|
answer:
|
47
51
|
body: لا يمكن أن يكون الجسم فارغًا
|
@@ -52,11 +56,27 @@ ar:
|
|
52
56
|
single_option: خيار واحد
|
53
57
|
sorting: فرز
|
54
58
|
questionnaires:
|
59
|
+
answer:
|
60
|
+
invalid: كانت هناك مشكلة في الإجابة على النموذج.
|
61
|
+
success: نموذج أجاب بنجاح.
|
55
62
|
question:
|
56
63
|
max_choices: 'خيارات ماكس: %{n}'
|
57
64
|
show:
|
65
|
+
answer_questionnaire:
|
66
|
+
anonymous_user_message: <a href="%{sign_in_link}">قم بتسجيل الدخول بحسابك</a> أو <a href="%{sign_up_link}">اشترك</a> للإجابة على النموذج
|
67
|
+
title: أجب عن النموذج
|
58
68
|
are_you_sure: لا يمكن التراجع عن هذا الإجراء ولن تتمكن من تعديل إجاباتك. هل أنت واثق؟
|
59
69
|
questionnaire_answered:
|
70
|
+
body: لقد أجبت بالفعل على هذا النموذج.
|
60
71
|
title: تمت الاجابة مسبقا
|
72
|
+
questionnaire_closed:
|
73
|
+
body: النموذج مغلق ولا يمكن الرد عليه.
|
74
|
+
title: شكل مغلق
|
75
|
+
questionnaire_for_private_users:
|
76
|
+
body: النموذج متاح فقط للمستخدمين من القطاع الخاص
|
77
|
+
title: شكل مغلق
|
61
78
|
submit: خضع
|
62
79
|
tos_agreement: من خلال المشاركة ، فإنك تقبل شروط الخدمة
|
80
|
+
user_answers_serializer:
|
81
|
+
created_at: أجاب على
|
82
|
+
id: معرف الإجابة
|
data/config/locales/ca.yml
CHANGED
@@ -33,7 +33,7 @@ ca:
|
|
33
33
|
title: Títol
|
34
34
|
form:
|
35
35
|
add_question: Afegeix una pregunta
|
36
|
-
already_answered_warning: No pots modificar les
|
36
|
+
already_answered_warning: No pots modificar les preguntes d'aquest formulari perquè ja ha estat contestat per algunes participants.
|
37
37
|
question:
|
38
38
|
add_answer_option: Afegeix una opció de resposta
|
39
39
|
any: Cap
|
@@ -44,8 +44,8 @@ ca:
|
|
44
44
|
statement: Declaració
|
45
45
|
up: Pujar
|
46
46
|
update:
|
47
|
-
invalid: S'han produït
|
48
|
-
success: Els
|
47
|
+
invalid: S'han produït un error en desar el formulari.
|
48
|
+
success: Els formularis s'han desat correctament.
|
49
49
|
errors:
|
50
50
|
answer:
|
51
51
|
body: El camp no pot estar en blanc
|
@@ -57,23 +57,26 @@ ca:
|
|
57
57
|
sorting: Ordenació
|
58
58
|
questionnaires:
|
59
59
|
answer:
|
60
|
-
invalid: S'han produït
|
61
|
-
success: El
|
60
|
+
invalid: S'han produït un error en respondre el formulari.
|
61
|
+
success: El formulari ha estat respost correctament.
|
62
62
|
question:
|
63
63
|
max_choices: 'Opcions màximes: %{n}'
|
64
64
|
show:
|
65
65
|
answer_questionnaire:
|
66
|
-
anonymous_user_message: <a href="%{sign_in_link}">Inicia sessió amb el teu compte</a> o <a href="%{sign_up_link}">registra't</a> per respondre el
|
67
|
-
title: Respon el
|
66
|
+
anonymous_user_message: <a href="%{sign_in_link}">Inicia sessió amb el teu compte</a> o <a href="%{sign_up_link}">registra't</a> per respondre el formulari.
|
67
|
+
title: Respon el formulari
|
68
68
|
are_you_sure: Aquesta acció no es pot desfer i no podràs editar les teves respostes. Estàs segur?
|
69
69
|
questionnaire_answered:
|
70
|
-
body: Ja has respost a aquest
|
70
|
+
body: Ja has respost a aquest formulari.
|
71
71
|
title: Ja has respost
|
72
72
|
questionnaire_closed:
|
73
|
-
body: El
|
74
|
-
title: S'ha tancat el
|
73
|
+
body: El formulari està tancat i no es pot respondre.
|
74
|
+
title: S'ha tancat el formulari
|
75
75
|
questionnaire_for_private_users:
|
76
|
-
body: El
|
77
|
-
title: S'ha tancat el
|
76
|
+
body: El formulari només està disponible per a participants privades
|
77
|
+
title: S'ha tancat el formulari
|
78
78
|
submit: Enviar respostes
|
79
79
|
tos_agreement: En participar, acceptes els Termes i condicions d'ús
|
80
|
+
user_answers_serializer:
|
81
|
+
created_at: Respost el
|
82
|
+
id: Identificador de resposta
|
@@ -0,0 +1,82 @@
|
|
1
|
+
cs:
|
2
|
+
activemodel:
|
3
|
+
attributes:
|
4
|
+
answer:
|
5
|
+
body: Odpovědět
|
6
|
+
question:
|
7
|
+
max_choices: Maximální počet možností
|
8
|
+
question_type: Typ
|
9
|
+
questionnaire_question:
|
10
|
+
mandatory: Povinné
|
11
|
+
errors:
|
12
|
+
models:
|
13
|
+
answer:
|
14
|
+
attributes:
|
15
|
+
choices:
|
16
|
+
missing: nejsou úplné
|
17
|
+
too_many: jsou příliš mnoho
|
18
|
+
decidim:
|
19
|
+
forms:
|
20
|
+
admin:
|
21
|
+
models:
|
22
|
+
components:
|
23
|
+
description: Popis
|
24
|
+
tos: Podmínky služby
|
25
|
+
questionnaires:
|
26
|
+
answer_option:
|
27
|
+
answer_option: Možnost odpovědi
|
28
|
+
free_text: Volný text
|
29
|
+
remove: Odstranit
|
30
|
+
statement: Prohlášení
|
31
|
+
edit:
|
32
|
+
save: Uložit
|
33
|
+
title: Titul
|
34
|
+
form:
|
35
|
+
add_question: Přidat otázku
|
36
|
+
already_answered_warning: Dotazník již odpověděli někteří uživatelé, takže nemusíte upravovat své dotazy.
|
37
|
+
question:
|
38
|
+
add_answer_option: Přidat možnost odpovědi
|
39
|
+
any: Žádný
|
40
|
+
description: Popis
|
41
|
+
down: Dolů
|
42
|
+
question: Otázka
|
43
|
+
remove: Odstranit
|
44
|
+
statement: Prohlášení
|
45
|
+
up: Nahoru
|
46
|
+
update:
|
47
|
+
invalid: Při ukládání dotazníku došlo k chybám.
|
48
|
+
success: Dotazníky byly úspěšně uloženy.
|
49
|
+
errors:
|
50
|
+
answer:
|
51
|
+
body: Tělo nemůže být prázdné
|
52
|
+
question_types:
|
53
|
+
long_answer: Dlouhá odpověď
|
54
|
+
multiple_option: Více možností
|
55
|
+
short_answer: Stručná odpověď
|
56
|
+
single_option: Jedna možnost
|
57
|
+
sorting: Třídění
|
58
|
+
questionnaires:
|
59
|
+
answer:
|
60
|
+
invalid: Při odpovědi na dotazník došlo k chybám.
|
61
|
+
success: Dotazník úspěšně odpověděl.
|
62
|
+
question:
|
63
|
+
max_choices: 'Max možnosti: %{n}'
|
64
|
+
show:
|
65
|
+
answer_questionnaire:
|
66
|
+
anonymous_user_message: <a href="%{sign_in_link}">Přihlaste se svým účtem</a> nebo <a href="%{sign_up_link}">zaregistrujte</a> abyste odpověděli na dotazník.
|
67
|
+
title: Odpovězte na dotazník
|
68
|
+
are_you_sure: Tato akce nemůže být odvolána a vaše odpovědi nebudete moci upravovat. Jsi si jistá?
|
69
|
+
questionnaire_answered:
|
70
|
+
body: Již jste odpověděli na tento dotazník.
|
71
|
+
title: Již jste odpověděli
|
72
|
+
questionnaire_closed:
|
73
|
+
body: Dotazník je uzavřen a nelze jej zodpovědět.
|
74
|
+
title: Dotazník byl uzavřen
|
75
|
+
questionnaire_for_private_users:
|
76
|
+
body: Dotazník je k dispozici pouze pro soukromé uživatele
|
77
|
+
title: Dotazník byl uzavřen
|
78
|
+
submit: Předložit
|
79
|
+
tos_agreement: Účastí přijímáte jeho smluvní podmínky
|
80
|
+
user_answers_serializer:
|
81
|
+
created_at: Zodpovězeno
|
82
|
+
id: ID odpovědi
|
data/config/locales/de.yml
CHANGED
data/config/locales/en.yml
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
---
|
1
2
|
en:
|
2
3
|
activemodel:
|
3
4
|
attributes:
|
@@ -33,7 +34,7 @@ en:
|
|
33
34
|
title: Title
|
34
35
|
form:
|
35
36
|
add_question: Add question
|
36
|
-
already_answered_warning: The
|
37
|
+
already_answered_warning: The form is already answered by some users so you cannot modify its questions.
|
37
38
|
question:
|
38
39
|
add_answer_option: Add answer option
|
39
40
|
any: Any
|
@@ -44,8 +45,8 @@ en:
|
|
44
45
|
statement: Statement
|
45
46
|
up: Up
|
46
47
|
update:
|
47
|
-
invalid: There
|
48
|
-
success:
|
48
|
+
invalid: There was a problem saving the form.
|
49
|
+
success: Forms successfully saved.
|
49
50
|
errors:
|
50
51
|
answer:
|
51
52
|
body: Body can't be blank
|
@@ -57,23 +58,26 @@ en:
|
|
57
58
|
sorting: Sorting
|
58
59
|
questionnaires:
|
59
60
|
answer:
|
60
|
-
invalid: There
|
61
|
-
success:
|
61
|
+
invalid: There was a problem answering the form.
|
62
|
+
success: Form successfully answered.
|
62
63
|
question:
|
63
64
|
max_choices: 'Max choices: %{n}'
|
64
65
|
show:
|
65
66
|
answer_questionnaire:
|
66
|
-
anonymous_user_message: <a href="%{sign_in_link}">Sign in with your account</a> or <a href="%{sign_up_link}">sign up</a> to answer the
|
67
|
-
title: Answer the
|
67
|
+
anonymous_user_message: <a href="%{sign_in_link}">Sign in with your account</a> or <a href="%{sign_up_link}">sign up</a> to answer the form.
|
68
|
+
title: Answer the form
|
68
69
|
are_you_sure: This action cannot be undone and you will not be able to edit your answers. Are you sure?
|
69
70
|
questionnaire_answered:
|
70
|
-
body: You have already answered this
|
71
|
+
body: You have already answered this form.
|
71
72
|
title: Already answered
|
72
73
|
questionnaire_closed:
|
73
|
-
body: The
|
74
|
-
title:
|
74
|
+
body: The form is closed and cannot be answered.
|
75
|
+
title: Form closed
|
75
76
|
questionnaire_for_private_users:
|
76
|
-
body: The
|
77
|
-
title:
|
77
|
+
body: The form is available only for private users
|
78
|
+
title: Form closed
|
78
79
|
submit: Submit
|
79
80
|
tos_agreement: By participating you accept its Terms of Service
|
81
|
+
user_answers_serializer:
|
82
|
+
created_at: Answered on
|
83
|
+
id: Answer ID
|
data/config/locales/es-MX.yml
CHANGED
data/config/locales/es-PY.yml
CHANGED
data/config/locales/es.yml
CHANGED
@@ -33,7 +33,7 @@ es:
|
|
33
33
|
title: Título
|
34
34
|
form:
|
35
35
|
add_question: Añadir pregunta
|
36
|
-
already_answered_warning:
|
36
|
+
already_answered_warning: Algunas participantes ya han respondido el formulario, por lo que no puedes modificar las preguntas.
|
37
37
|
question:
|
38
38
|
add_answer_option: Añadir opción de respuesta
|
39
39
|
any: Alguna
|
@@ -44,8 +44,8 @@ es:
|
|
44
44
|
statement: Declaración
|
45
45
|
up: Arriba
|
46
46
|
update:
|
47
|
-
invalid:
|
48
|
-
success:
|
47
|
+
invalid: Se ha producido un error al guardar el formulario.
|
48
|
+
success: Formularios guardados correctamente.
|
49
49
|
errors:
|
50
50
|
answer:
|
51
51
|
body: El campo no puede estar en blanco
|
@@ -57,23 +57,26 @@ es:
|
|
57
57
|
sorting: Ordenación
|
58
58
|
questionnaires:
|
59
59
|
answer:
|
60
|
-
invalid:
|
61
|
-
success: Has respondido al
|
60
|
+
invalid: Se ha producido un error al responder el formulario.
|
61
|
+
success: Has respondido al formulario correctamente.
|
62
62
|
question:
|
63
63
|
max_choices: 'Opciones máximas: %{n}'
|
64
64
|
show:
|
65
65
|
answer_questionnaire:
|
66
|
-
anonymous_user_message: <a href="%{sign_in_link}">Inicia sesión con tu cuenta</a> o <a href="%{sign_up_link}">
|
67
|
-
title: Responde
|
66
|
+
anonymous_user_message: <a href="%{sign_in_link}">Inicia sesión con tu cuenta</a> o <a href="%{sign_up_link}">regístrate</a> para responder al formulario.
|
67
|
+
title: Responde el formulario
|
68
68
|
are_you_sure: Esta acción no se puede deshacer y no podrás editar tus respuestas. ¿Estás seguro?
|
69
69
|
questionnaire_answered:
|
70
|
-
body: Ya has respondido este
|
70
|
+
body: Ya has respondido este formulario.
|
71
71
|
title: Ya has respondido
|
72
72
|
questionnaire_closed:
|
73
|
-
body: El
|
74
|
-
title:
|
73
|
+
body: El formulario está cerrado y ya no puedes responder.
|
74
|
+
title: Formulario cerrado
|
75
75
|
questionnaire_for_private_users:
|
76
|
-
body: El
|
77
|
-
title:
|
76
|
+
body: El formulario está disponible solo para participantes privadas
|
77
|
+
title: Formulario cerrado
|
78
78
|
submit: Enviar
|
79
79
|
tos_agreement: Al responder aceptas los Términos y condiciones de uso
|
80
|
+
user_answers_serializer:
|
81
|
+
created_at: Respondido en
|
82
|
+
id: ID de respuesta
|
data/config/locales/eu.yml
CHANGED
@@ -0,0 +1,82 @@
|
|
1
|
+
fi-pl:
|
2
|
+
activemodel:
|
3
|
+
attributes:
|
4
|
+
answer:
|
5
|
+
body: Vastaus
|
6
|
+
question:
|
7
|
+
max_choices: Valintojen enimmäismäärä
|
8
|
+
question_type: Tyyppi
|
9
|
+
questionnaire_question:
|
10
|
+
mandatory: Pakollinen
|
11
|
+
errors:
|
12
|
+
models:
|
13
|
+
answer:
|
14
|
+
attributes:
|
15
|
+
choices:
|
16
|
+
missing: ovat puutteellisia
|
17
|
+
too_many: liian monta
|
18
|
+
decidim:
|
19
|
+
forms:
|
20
|
+
admin:
|
21
|
+
models:
|
22
|
+
components:
|
23
|
+
description: Kuvaus
|
24
|
+
tos: Käyttöehdot
|
25
|
+
questionnaires:
|
26
|
+
answer_option:
|
27
|
+
answer_option: Vastausvaihtoehto
|
28
|
+
free_text: Vapaa teksti
|
29
|
+
remove: Poista
|
30
|
+
statement: Selite
|
31
|
+
edit:
|
32
|
+
save: Tallenna
|
33
|
+
title: Otsikko
|
34
|
+
form:
|
35
|
+
add_question: Lisää kysymys
|
36
|
+
already_answered_warning: Jotkut käyttäjät ovat jo vastanneet kyselyyn, joten et voi muokata kysymyksiä.
|
37
|
+
question:
|
38
|
+
add_answer_option: Lisää vastausvaihtoehto
|
39
|
+
any: Minkä tahansa
|
40
|
+
description: Kuvaus
|
41
|
+
down: Alas
|
42
|
+
question: Kysymys
|
43
|
+
remove: Poista
|
44
|
+
statement: Selite
|
45
|
+
up: Ylös
|
46
|
+
update:
|
47
|
+
invalid: Kyselylomakkeiden tallentamisessa on tapahtunut virheitä.
|
48
|
+
success: Kyselylomakkeet tallennettiin onnistuneesti.
|
49
|
+
errors:
|
50
|
+
answer:
|
51
|
+
body: Runkoteksti ei voi olla tyhjä
|
52
|
+
question_types:
|
53
|
+
long_answer: Pitkä vastaus
|
54
|
+
multiple_option: Useita vaihtoehtoja
|
55
|
+
short_answer: Lyhyt vastaus
|
56
|
+
single_option: Yksi vaihtoehto
|
57
|
+
sorting: Järjestäminen
|
58
|
+
questionnaires:
|
59
|
+
answer:
|
60
|
+
invalid: Kyselylomakkeeseen vastatessa tapahtui virheitä.
|
61
|
+
success: Kyselyyn vastattu onnistuneesti.
|
62
|
+
question:
|
63
|
+
max_choices: 'Valintojen maksimimäärä: %{n}'
|
64
|
+
show:
|
65
|
+
answer_questionnaire:
|
66
|
+
anonymous_user_message: <a href="%{sign_in_link}">Kirjaudu sisään tililläsi</a> tai <a href="%{sign_up_link}">rekisteröidy</a> vastataksesi kyselyyn.
|
67
|
+
title: Vastaa kyselyyn
|
68
|
+
are_you_sure: Tätä toimintoa ei voi kumota, etkä voi muokata vastauksiasi. Oletko varma?
|
69
|
+
questionnaire_answered:
|
70
|
+
body: Olet jo vastannut tähän kyselyyn.
|
71
|
+
title: Olet jo vastannut
|
72
|
+
questionnaire_closed:
|
73
|
+
body: Kyselylomake on suljettu, eikä siihen voi vastata.
|
74
|
+
title: Kysely on suljettu
|
75
|
+
questionnaire_for_private_users:
|
76
|
+
body: Kyselylomake on saatavilla vain yksityisille käyttäjille
|
77
|
+
title: Kysely on suljettu
|
78
|
+
submit: Lähetä
|
79
|
+
tos_agreement: Osallistumalla hyväksyt käyttöehdot
|
80
|
+
user_answers_serializer:
|
81
|
+
created_at: Vastattu
|
82
|
+
id: Vastaa tunnus
|
data/config/locales/fi.yml
CHANGED
@@ -33,7 +33,7 @@ fi:
|
|
33
33
|
title: Otsikko
|
34
34
|
form:
|
35
35
|
add_question: Lisää kysymys
|
36
|
-
already_answered_warning: Jotkut käyttäjät ovat jo vastanneet
|
36
|
+
already_answered_warning: Jotkut käyttäjät ovat jo vastanneet tähän kyselylomakkeeseen, joten et voi enää muokata kysymyksiä.
|
37
37
|
question:
|
38
38
|
add_answer_option: Lisää vastausvaihtoehto
|
39
39
|
any: Minkä tahansa
|
@@ -44,7 +44,7 @@ fi:
|
|
44
44
|
statement: Selite
|
45
45
|
up: Ylös
|
46
46
|
update:
|
47
|
-
invalid:
|
47
|
+
invalid: Kyselylomakkeen tallentaminen epäonnistui.
|
48
48
|
success: Kyselylomakkeet tallennettiin onnistuneesti.
|
49
49
|
errors:
|
50
50
|
answer:
|
@@ -57,23 +57,26 @@ fi:
|
|
57
57
|
sorting: Järjestäminen
|
58
58
|
questionnaires:
|
59
59
|
answer:
|
60
|
-
invalid: Kyselylomakkeeseen
|
61
|
-
success:
|
60
|
+
invalid: Kyselylomakkeeseen vastaaminen epäonnistui.
|
61
|
+
success: Kyselylomakkeeseen vastaaminen onnistui.
|
62
62
|
question:
|
63
63
|
max_choices: 'Valintojen maksimimäärä: %{n}'
|
64
64
|
show:
|
65
65
|
answer_questionnaire:
|
66
|
-
anonymous_user_message: <a href="%{sign_in_link}">Kirjaudu sisään tililläsi</a> tai <a href="%{sign_up_link}">rekisteröidy</a> vastataksesi
|
67
|
-
title: Vastaa
|
66
|
+
anonymous_user_message: <a href="%{sign_in_link}">Kirjaudu sisään tililläsi</a> tai <a href="%{sign_up_link}">rekisteröidy</a> vastataksesi lomakkeeseen.
|
67
|
+
title: Vastaa kyselylomakkeeseen
|
68
68
|
are_you_sure: Tätä toimintoa ei voi kumota, etkä voi muokata vastauksiasi. Oletko varma?
|
69
69
|
questionnaire_answered:
|
70
|
-
body: Olet jo vastannut tähän
|
70
|
+
body: Olet jo vastannut tähän kyselylomakkeeseen.
|
71
71
|
title: Olet jo vastannut
|
72
72
|
questionnaire_closed:
|
73
73
|
body: Kyselylomake on suljettu, eikä siihen voi vastata.
|
74
|
-
title:
|
74
|
+
title: Kyselylomake on suljettu
|
75
75
|
questionnaire_for_private_users:
|
76
|
-
body: Kyselylomake on
|
77
|
-
title:
|
76
|
+
body: Kyselylomake on nähtävillä vain yksityisille käyttäjille
|
77
|
+
title: Kyselylomake on suljettu
|
78
78
|
submit: Lähetä
|
79
79
|
tos_agreement: Osallistumalla hyväksyt käyttöehdot
|
80
|
+
user_answers_serializer:
|
81
|
+
created_at: Vastauksen ajankohta
|
82
|
+
id: Vastauksen ID
|
data/config/locales/fr.yml
CHANGED
data/config/locales/gl.yml
CHANGED
data/config/locales/hu.yml
CHANGED
data/config/locales/id-ID.yml
CHANGED
@@ -33,6 +33,7 @@ id:
|
|
33
33
|
title: Judul
|
34
34
|
form:
|
35
35
|
add_question: Tambahkan pertanyaan
|
36
|
+
already_answered_warning: Formulir sudah dijawab oleh beberapa pengguna sehingga Anda tidak dapat mengubah pertanyaannya.
|
36
37
|
question:
|
37
38
|
add_answer_option: Tambahkan opsi jawaban
|
38
39
|
any: Apa saja
|
@@ -42,6 +43,9 @@ id:
|
|
42
43
|
remove: Menghapus
|
43
44
|
statement: Pernyataan
|
44
45
|
up: Naik
|
46
|
+
update:
|
47
|
+
invalid: Terjadi masalah saat menyimpan formulir.
|
48
|
+
success: Formulir berhasil disimpan.
|
45
49
|
errors:
|
46
50
|
answer:
|
47
51
|
body: Tubuh tidak boleh kosong
|
@@ -52,11 +56,27 @@ id:
|
|
52
56
|
single_option: Opsi tunggal
|
53
57
|
sorting: Penyortiran
|
54
58
|
questionnaires:
|
59
|
+
answer:
|
60
|
+
invalid: Ada masalah saat menjawab formulir.
|
61
|
+
success: Formulir berhasil dijawab.
|
55
62
|
question:
|
56
63
|
max_choices: 'Pilihan maksimal: %{n}'
|
57
64
|
show:
|
65
|
+
answer_questionnaire:
|
66
|
+
anonymous_user_message: <a href="%{sign_in_link}">Masuk dengan akun Anda</a> atau <a href="%{sign_up_link}">mendaftar</a> untuk menjawab formulir.
|
67
|
+
title: Jawab formulirnya
|
58
68
|
are_you_sure: Tindakan ini tidak dapat diurungkan dan Anda tidak akan dapat mengedit jawaban Anda. Apakah kamu yakin
|
59
69
|
questionnaire_answered:
|
70
|
+
body: Anda sudah menjawab formulir ini.
|
60
71
|
title: Sudah dijawab
|
72
|
+
questionnaire_closed:
|
73
|
+
body: Formulir ditutup dan tidak dapat dijawab.
|
74
|
+
title: Formulir ditutup
|
75
|
+
questionnaire_for_private_users:
|
76
|
+
body: Formulir ini hanya tersedia untuk pengguna pribadi
|
77
|
+
title: Formulir ditutup
|
61
78
|
submit: Menyerahkan
|
62
79
|
tos_agreement: Dengan berpartisipasi Anda menerima Ketentuan Layanannya
|
80
|
+
user_answers_serializer:
|
81
|
+
created_at: Dijawab pada
|
82
|
+
id: ID jawaban
|
data/config/locales/it.yml
CHANGED
data/config/locales/nl.yml
CHANGED
data/config/locales/pl.yml
CHANGED
data/config/locales/pt-BR.yml
CHANGED
data/config/locales/pt.yml
CHANGED
data/config/locales/sv.yml
CHANGED
data/config/locales/tr-TR.yml
CHANGED
@@ -33,7 +33,7 @@ tr:
|
|
33
33
|
title: Başlık
|
34
34
|
form:
|
35
35
|
add_question: Soru ekle
|
36
|
-
already_answered_warning:
|
36
|
+
already_answered_warning: Form, bazı kullanıcılar tarafından zaten yanıtlandı, bu nedenle sorularını değiştiremezsiniz.
|
37
37
|
question:
|
38
38
|
add_answer_option: Cevap seçeneği ekle
|
39
39
|
any: herhangi
|
@@ -44,8 +44,8 @@ tr:
|
|
44
44
|
statement: Beyan
|
45
45
|
up: yukarı
|
46
46
|
update:
|
47
|
-
invalid:
|
48
|
-
success:
|
47
|
+
invalid: Formu kaydederken bir sorun oluştu.
|
48
|
+
success: Formlar başarıyla kaydedildi.
|
49
49
|
errors:
|
50
50
|
answer:
|
51
51
|
body: Vücut boş olamaz
|
@@ -57,23 +57,26 @@ tr:
|
|
57
57
|
sorting: sınıflandırma
|
58
58
|
questionnaires:
|
59
59
|
answer:
|
60
|
-
invalid:
|
61
|
-
success:
|
60
|
+
invalid: Formu yanıtlarken bir sorun oluştu.
|
61
|
+
success: Form başarıyla cevaplandı.
|
62
62
|
question:
|
63
63
|
max_choices: 'Maksimum seçenek: %{n}'
|
64
64
|
show:
|
65
65
|
answer_questionnaire:
|
66
|
-
anonymous_user_message:
|
67
|
-
title:
|
66
|
+
anonymous_user_message: <a href="%{sign_in_link}">Formu yanıtlamak için</a> veya <a href="%{sign_up_link}">hesabınızla giriş yapın</a>.
|
67
|
+
title: Formu cevapla
|
68
68
|
are_you_sure: Bu işlem geri alınamaz ve cevaplarınızı düzenleyemezsiniz. Emin misiniz?
|
69
69
|
questionnaire_answered:
|
70
|
-
body: Bu
|
70
|
+
body: Bu formu zaten cevapladınız.
|
71
71
|
title: Zaten cevaplandı
|
72
72
|
questionnaire_closed:
|
73
|
-
body:
|
74
|
-
title:
|
73
|
+
body: Form kapalı ve cevaplanamıyor.
|
74
|
+
title: Form kapatıldı
|
75
75
|
questionnaire_for_private_users:
|
76
|
-
body:
|
77
|
-
title:
|
76
|
+
body: Form yalnızca özel kullanıcılar tarafından kullanılabilir
|
77
|
+
title: Form kapatıldı
|
78
78
|
submit: Gönder
|
79
79
|
tos_agreement: Katılarak Hizmet Şartlarını kabul etmiş olursunuz.
|
80
|
+
user_answers_serializer:
|
81
|
+
created_at: Yanıtlandı
|
82
|
+
id: Cevap kimliği
|
data/lib/decidim/forms/engine.rb
CHANGED
@@ -6,8 +6,12 @@ module Decidim
|
|
6
6
|
class Engine < ::Rails::Engine
|
7
7
|
isolate_namespace Decidim::Forms
|
8
8
|
|
9
|
+
initializer "decidim_forms.add_cells_view_paths" do
|
10
|
+
Cell::ViewModel.view_paths << File.expand_path("#{Decidim::Forms::Engine.root}/app/cells")
|
11
|
+
end
|
12
|
+
|
9
13
|
initializer "decidim_forms.assets" do |app|
|
10
|
-
app.config.assets.precompile += %w(decidim_forms_manifest.js)
|
14
|
+
app.config.assets.precompile += %w(decidim_forms_manifest.js decidim_forms_manifest.css)
|
11
15
|
end
|
12
16
|
end
|
13
17
|
end
|
@@ -10,9 +10,13 @@ shared_examples_for "has questionnaire" do
|
|
10
10
|
expect(page).to have_i18n_content(questionnaire.title, upcase: true)
|
11
11
|
expect(page).to have_i18n_content(questionnaire.description)
|
12
12
|
|
13
|
-
expect(page).
|
13
|
+
expect(page).not_to have_css(".form.answer-questionnaire")
|
14
|
+
|
15
|
+
within ".questionnaire-question_readonly" do
|
16
|
+
expect(page).to have_i18n_content(question.body)
|
17
|
+
end
|
14
18
|
|
15
|
-
expect(page).to have_content("Sign in with your account or sign up to answer the
|
19
|
+
expect(page).to have_content("Sign in with your account or sign up to answer the form.")
|
16
20
|
end
|
17
21
|
end
|
18
22
|
|
@@ -39,7 +43,7 @@ shared_examples_for "has questionnaire" do
|
|
39
43
|
|
40
44
|
visit questionnaire_public_path
|
41
45
|
|
42
|
-
expect(page).to have_content("You have already answered this
|
46
|
+
expect(page).to have_content("You have already answered this form.")
|
43
47
|
expect(page).to have_no_i18n_content(question.body)
|
44
48
|
end
|
45
49
|
|
@@ -130,7 +134,7 @@ shared_examples_for "has questionnaire" do
|
|
130
134
|
|
131
135
|
it "submits the form and shows errors" do
|
132
136
|
within ".alert.flash" do
|
133
|
-
expect(page).to have_content("
|
137
|
+
expect(page).to have_content("problem")
|
134
138
|
end
|
135
139
|
|
136
140
|
expect(page).to have_content("can't be blank")
|
@@ -176,7 +180,7 @@ shared_examples_for "has questionnaire" do
|
|
176
180
|
|
177
181
|
it "submits the form and shows errors" do
|
178
182
|
within ".alert.flash" do
|
179
|
-
expect(page).to have_content("
|
183
|
+
expect(page).to have_content("problem")
|
180
184
|
end
|
181
185
|
|
182
186
|
expect(page).to have_content("can't be blank")
|
@@ -266,7 +270,7 @@ shared_examples_for "has questionnaire" do
|
|
266
270
|
accept_confirm { click_button "Submit" }
|
267
271
|
|
268
272
|
within ".alert.flash" do
|
269
|
-
expect(page).to have_content("There
|
273
|
+
expect(page).to have_content("There was a problem answering")
|
270
274
|
end
|
271
275
|
|
272
276
|
expect(page).to have_field("questionnaire_answers_0_choices_2_custom_body", with: "Cacatua")
|
@@ -312,7 +316,7 @@ shared_examples_for "has questionnaire" do
|
|
312
316
|
accept_confirm { click_button "Submit" }
|
313
317
|
|
314
318
|
within ".alert.flash" do
|
315
|
-
expect(page).to have_content("There
|
319
|
+
expect(page).to have_content("There was a problem answering")
|
316
320
|
end
|
317
321
|
|
318
322
|
expect(page).to have_field("questionnaire_answers_0_choices_2_custom_body", with: "Cacatua")
|
@@ -361,7 +365,7 @@ shared_examples_for "has questionnaire" do
|
|
361
365
|
|
362
366
|
visit questionnaire_public_path
|
363
367
|
|
364
|
-
expect(page).to have_content("You have already answered this
|
368
|
+
expect(page).to have_content("You have already answered this form.")
|
365
369
|
expect(page).to have_no_i18n_content(question.body)
|
366
370
|
end
|
367
371
|
end
|
@@ -390,7 +394,7 @@ shared_examples_for "has questionnaire" do
|
|
390
394
|
|
391
395
|
visit questionnaire_public_path
|
392
396
|
|
393
|
-
expect(page).to have_content("You have already answered this
|
397
|
+
expect(page).to have_content("You have already answered this form.")
|
394
398
|
expect(page).to have_no_i18n_content(question.body)
|
395
399
|
end
|
396
400
|
|
@@ -410,7 +414,7 @@ shared_examples_for "has questionnaire" do
|
|
410
414
|
accept_confirm { click_button "Submit" }
|
411
415
|
|
412
416
|
within ".alert.flash" do
|
413
|
-
expect(page).to have_content("There
|
417
|
+
expect(page).to have_content("There was a problem answering")
|
414
418
|
end
|
415
419
|
|
416
420
|
expect(page).to have_content("are too many")
|
@@ -447,7 +451,7 @@ shared_examples_for "has questionnaire" do
|
|
447
451
|
|
448
452
|
visit questionnaire_public_path
|
449
453
|
|
450
|
-
expect(page).to have_content("You have already answered this
|
454
|
+
expect(page).to have_content("You have already answered this form.")
|
451
455
|
expect(page).to have_no_i18n_content(question.body)
|
452
456
|
end
|
453
457
|
end
|
@@ -514,7 +518,7 @@ shared_examples_for "has questionnaire" do
|
|
514
518
|
accept_confirm { click_button "Submit" }
|
515
519
|
|
516
520
|
within ".alert.flash" do
|
517
|
-
expect(page).to have_content("
|
521
|
+
expect(page).to have_content("problem")
|
518
522
|
end
|
519
523
|
|
520
524
|
expect(page).to have_content("are not complete")
|
@@ -343,7 +343,7 @@ shared_examples_for "manage questionnaires" do
|
|
343
343
|
click_button "Save"
|
344
344
|
end
|
345
345
|
|
346
|
-
expect(page).to have_admin_callout("There
|
346
|
+
expect(page).to have_admin_callout("There was a problem saving")
|
347
347
|
expect(page).to have_content("can't be blank", count: 3) # emtpy question, 2 empty default answer options
|
348
348
|
|
349
349
|
expect(page).to have_selector("input[value='']")
|
@@ -15,7 +15,11 @@ module Decidim
|
|
15
15
|
# Public: Exports a hash with the serialized data for the user answers.
|
16
16
|
def serialize
|
17
17
|
@answers.each_with_index.inject({}) do |serialized, (answer, idx)|
|
18
|
-
serialized.update(
|
18
|
+
serialized.update(
|
19
|
+
answer_translated_attribute_name(:id) => answer.id,
|
20
|
+
answer_translated_attribute_name(:created_at) => answer.created_at.to_s(:db),
|
21
|
+
"#{idx + 1}. #{translated_attribute(answer.question.body)}" => normalize_body(answer)
|
22
|
+
)
|
19
23
|
end
|
20
24
|
end
|
21
25
|
|
@@ -30,6 +34,10 @@ module Decidim
|
|
30
34
|
choice.try(:custom_body) || choice.try(:body)
|
31
35
|
end
|
32
36
|
end
|
37
|
+
|
38
|
+
def answer_translated_attribute_name(attribute)
|
39
|
+
I18n.t(attribute.to_sym, scope: "decidim.forms.user_answers_serializer")
|
40
|
+
end
|
33
41
|
end
|
34
42
|
end
|
35
43
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: decidim-forms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josep Jaume Rey Peroy
|
@@ -19,42 +19,42 @@ dependencies:
|
|
19
19
|
requirements:
|
20
20
|
- - '='
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.
|
22
|
+
version: 0.17.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - '='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.
|
29
|
+
version: 0.17.0
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: decidim-admin
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
requirements:
|
34
34
|
- - '='
|
35
35
|
- !ruby/object:Gem::Version
|
36
|
-
version: 0.
|
36
|
+
version: 0.17.0
|
37
37
|
type: :development
|
38
38
|
prerelease: false
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
41
41
|
- - '='
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: 0.
|
43
|
+
version: 0.17.0
|
44
44
|
- !ruby/object:Gem::Dependency
|
45
45
|
name: decidim-dev
|
46
46
|
requirement: !ruby/object:Gem::Requirement
|
47
47
|
requirements:
|
48
48
|
- - '='
|
49
49
|
- !ruby/object:Gem::Version
|
50
|
-
version: 0.
|
50
|
+
version: 0.17.0
|
51
51
|
type: :development
|
52
52
|
prerelease: false
|
53
53
|
version_requirements: !ruby/object:Gem::Requirement
|
54
54
|
requirements:
|
55
55
|
- - '='
|
56
56
|
- !ruby/object:Gem::Version
|
57
|
-
version: 0.
|
57
|
+
version: 0.17.0
|
58
58
|
description: A forms gem for decidim.
|
59
59
|
email:
|
60
60
|
- josepjaume@gmail.com
|
@@ -68,6 +68,7 @@ files:
|
|
68
68
|
- README.md
|
69
69
|
- Rakefile
|
70
70
|
- app/assets/config/admin/decidim_forms_manifest.js
|
71
|
+
- app/assets/config/decidim_forms_manifest.css
|
71
72
|
- app/assets/config/decidim_forms_manifest.js
|
72
73
|
- app/assets/images/decidim/surveys/icon.svg
|
73
74
|
- app/assets/javascripts/decidim/forms/admin/auto_buttons_by_min_items.component.js.es6
|
@@ -76,6 +77,11 @@ files:
|
|
76
77
|
- app/assets/javascripts/decidim/forms/autosortable_checkboxes.component.js.es6
|
77
78
|
- app/assets/javascripts/decidim/forms/forms.js.es6
|
78
79
|
- app/assets/javascripts/decidim/forms/option_attached_inputs.component.js.es6
|
80
|
+
- app/assets/stylesheets/decidim/forms/forms.scss
|
81
|
+
- app/cells/decidim/forms/answer_readonly/show.erb
|
82
|
+
- app/cells/decidim/forms/answer_readonly_cell.rb
|
83
|
+
- app/cells/decidim/forms/question_readonly/show.erb
|
84
|
+
- app/cells/decidim/forms/question_readonly_cell.rb
|
79
85
|
- app/commands/decidim/forms/admin/update_questionnaire.rb
|
80
86
|
- app/commands/decidim/forms/answer_questionnaire.rb
|
81
87
|
- app/controllers/decidim/forms/admin/concerns/has_questionnaire.rb
|
@@ -104,6 +110,7 @@ files:
|
|
104
110
|
- config/locales/ar-SA.yml
|
105
111
|
- config/locales/ca.yml
|
106
112
|
- config/locales/cs-CZ.yml
|
113
|
+
- config/locales/cs.yml
|
107
114
|
- config/locales/de.yml
|
108
115
|
- config/locales/en.yml
|
109
116
|
- config/locales/es-MX.yml
|
@@ -111,6 +118,7 @@ files:
|
|
111
118
|
- config/locales/es.yml
|
112
119
|
- config/locales/eu.yml
|
113
120
|
- config/locales/fi-pl.yml
|
121
|
+
- config/locales/fi-plain.yml
|
114
122
|
- config/locales/fi.yml
|
115
123
|
- config/locales/fr.yml
|
116
124
|
- config/locales/gl.yml
|
@@ -153,7 +161,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
153
161
|
requirements:
|
154
162
|
- - ">="
|
155
163
|
- !ruby/object:Gem::Version
|
156
|
-
version: '2.
|
164
|
+
version: '2.5'
|
157
165
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
158
166
|
requirements:
|
159
167
|
- - ">="
|