decidim-forms 0.16.1 → 0.17.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/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
|
- - ">="
|