decidim-forms 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +65 -0
  3. data/Rakefile +3 -0
  4. data/app/assets/config/admin/decidim_forms_manifest.js +1 -0
  5. data/app/assets/config/decidim_forms_manifest.js +1 -0
  6. data/app/assets/images/decidim/surveys/icon.svg +19 -0
  7. data/app/assets/javascripts/decidim/forms/admin/auto_buttons_by_min_items.component.js.es6 +25 -0
  8. data/app/assets/javascripts/decidim/forms/admin/auto_select_options_by_total_items.component.js.es6 +23 -0
  9. data/app/assets/javascripts/decidim/forms/admin/forms.js.es6 +188 -0
  10. data/app/assets/javascripts/decidim/forms/autosortable_checkboxes.component.js.es6 +65 -0
  11. data/app/assets/javascripts/decidim/forms/forms.js.es6 +20 -0
  12. data/app/assets/javascripts/decidim/forms/option_attached_inputs.component.js.es6 +32 -0
  13. data/app/commands/decidim/forms/admin/update_questionnaire.rb +86 -0
  14. data/app/commands/decidim/forms/answer_questionnaire.rb +54 -0
  15. data/app/controllers/decidim/forms/admin/concerns/has_questionnaire.rb +95 -0
  16. data/app/controllers/decidim/forms/concerns/has_questionnaire.rb +84 -0
  17. data/app/forms/decidim/forms/admin/answer_option_form.rb +23 -0
  18. data/app/forms/decidim/forms/admin/question_form.rb +35 -0
  19. data/app/forms/decidim/forms/admin/questionnaire_form.rb +27 -0
  20. data/app/forms/decidim/forms/answer_choice_form.rb +15 -0
  21. data/app/forms/decidim/forms/answer_form.rb +69 -0
  22. data/app/forms/decidim/forms/questionnaire_form.rb +22 -0
  23. data/app/helpers/decidim/forms/admin/application_helper.rb +19 -0
  24. data/app/models/concerns/decidim/forms/has_questionnaire.rb +20 -0
  25. data/app/models/decidim/forms/answer.rb +45 -0
  26. data/app/models/decidim/forms/answer_choice.rb +15 -0
  27. data/app/models/decidim/forms/answer_option.rb +11 -0
  28. data/app/models/decidim/forms/application_record.rb +10 -0
  29. data/app/models/decidim/forms/question.rb +36 -0
  30. data/app/models/decidim/forms/questionnaire.rb +23 -0
  31. data/app/queries/decidim/forms/questionnaire_user_answers.rb +28 -0
  32. data/app/views/decidim/forms/admin/questionnaires/_answer_option.html.erb +44 -0
  33. data/app/views/decidim/forms/admin/questionnaires/_form.html.erb +51 -0
  34. data/app/views/decidim/forms/admin/questionnaires/_question.html.erb +115 -0
  35. data/app/views/decidim/forms/admin/questionnaires/edit.html.erb +7 -0
  36. data/app/views/decidim/forms/questionnaires/_answer.html.erb +94 -0
  37. data/app/views/decidim/forms/questionnaires/show.html.erb +84 -0
  38. data/config/locales/ca.yml +79 -0
  39. data/config/locales/de.yml +79 -0
  40. data/config/locales/en.yml +79 -0
  41. data/config/locales/es-PY.yml +79 -0
  42. data/config/locales/es.yml +79 -0
  43. data/config/locales/eu.yml +79 -0
  44. data/config/locales/fi-pl.yml +79 -0
  45. data/config/locales/fi.yml +79 -0
  46. data/config/locales/fr.yml +79 -0
  47. data/config/locales/gl.yml +79 -0
  48. data/config/locales/hu.yml +79 -0
  49. data/config/locales/id-ID.yml +1 -0
  50. data/config/locales/it.yml +79 -0
  51. data/config/locales/nl.yml +79 -0
  52. data/config/locales/pl.yml +79 -0
  53. data/config/locales/pt-BR.yml +79 -0
  54. data/config/locales/pt.yml +79 -0
  55. data/config/locales/ru.yml +1 -0
  56. data/config/locales/sv.yml +79 -0
  57. data/config/locales/tr-TR.yml +1 -0
  58. data/config/locales/uk.yml +1 -0
  59. data/db/migrate/20170511092231_create_decidim_forms_questionnaires.rb +15 -0
  60. data/db/migrate/20170515090916_create_decidim_forms_questions.rb +17 -0
  61. data/db/migrate/20170515144119_create_decidim_forms_answers.rb +15 -0
  62. data/db/migrate/20180405015012_create_decidim_forms_answer_options.rb +11 -0
  63. data/db/migrate/20180405015147_create_decidim_forms_answer_choices.rb +13 -0
  64. data/lib/decidim/forms.rb +13 -0
  65. data/lib/decidim/forms/admin.rb +9 -0
  66. data/lib/decidim/forms/admin_engine.rb +21 -0
  67. data/lib/decidim/forms/data_portability_user_answers_serializer.rb +37 -0
  68. data/lib/decidim/forms/engine.rb +14 -0
  69. data/lib/decidim/forms/test.rb +4 -0
  70. data/lib/decidim/forms/test/factories.rb +55 -0
  71. data/lib/decidim/forms/test/shared_examples/has_questionnaire.rb +524 -0
  72. data/lib/decidim/forms/test/shared_examples/manage_questionnaires.rb +626 -0
  73. data/lib/decidim/forms/user_answers_serializer.rb +29 -0
  74. data/lib/decidim/forms/version.rb +10 -0
  75. metadata +165 -0
@@ -0,0 +1,79 @@
1
+ es:
2
+ activemodel:
3
+ attributes:
4
+ answer:
5
+ body: Responder
6
+ question:
7
+ max_choices: Número máximo de opciones
8
+ question_type: Tipo
9
+ questionnaire_question:
10
+ mandatory: Obligatorio
11
+ errors:
12
+ models:
13
+ answer:
14
+ attributes:
15
+ choices:
16
+ missing: no están completos
17
+ too_many: son demasiados
18
+ decidim:
19
+ forms:
20
+ admin:
21
+ models:
22
+ components:
23
+ description: Descripción
24
+ tos: Términos y condiciones de uso
25
+ questionnaires:
26
+ answer_option:
27
+ answer_option: Opción de respuesta
28
+ free_text: Texto libre
29
+ remove: Retirar
30
+ statement: Declaración
31
+ edit:
32
+ save: Guardar
33
+ title: Título
34
+ form:
35
+ add_question: Añadir pregunta
36
+ already_answered_warning: Algunos usuarios ya han respondido al cuestionario, por lo que no puedes modificar las preguntas.
37
+ question:
38
+ add_answer_option: Añadir opción de respuesta
39
+ any: Alguna
40
+ description: Descripción
41
+ down: Abajo
42
+ question: Pregunta
43
+ remove: Borrar
44
+ statement: Declaración
45
+ up: Arriba
46
+ update:
47
+ invalid: Ha habido errores al guardar el cuestionario.
48
+ success: Cuestionarios guardados con éxito.
49
+ errors:
50
+ answer:
51
+ body: El campo no puede estar en blanco
52
+ question_types:
53
+ long_answer: Respuesta larga
54
+ multiple_option: Opción múltiple
55
+ short_answer: Respuesta corta
56
+ single_option: Opción única
57
+ sorting: Ordenación
58
+ questionnaires:
59
+ answer:
60
+ invalid: Ha habido errores al responder al cuestionario.
61
+ success: Has respondido al cuestionario con éxito.
62
+ question:
63
+ max_choices: 'Opciones máximas: %{n}'
64
+ show:
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}">regístrese</a> para responder al cuestionario.
67
+ title: Responde al cuestionario
68
+ are_you_sure: Esta acción no se puede deshacer y no podrás editar tus respuestas. ¿Estás seguro?
69
+ questionnaire_answered:
70
+ body: Ya has respondido este cuestionario.
71
+ title: Ya has respondido
72
+ questionnaire_closed:
73
+ body: El cuestionario está cerrado y ya no puedes responder.
74
+ title: Cuestionario cerrado
75
+ questionnaire_for_private_users:
76
+ body: El cuestionario está disponible solo para usuarios privados
77
+ title: Cuestionario cerrado
78
+ submit: Enviar
79
+ tos_agreement: Al responder aceptas los Términos y condiciones de uso
@@ -0,0 +1,79 @@
1
+ eu:
2
+ activemodel:
3
+ attributes:
4
+ answer:
5
+ body: Erantzuna
6
+ question:
7
+ max_choices: Gehienezko aukera kopurua
8
+ question_type: Mota
9
+ questionnaire_question:
10
+ mandatory: derrigorrezko
11
+ errors:
12
+ models:
13
+ answer:
14
+ attributes:
15
+ choices:
16
+ missing: ez dira osatu
17
+ too_many: gehiegi dira
18
+ decidim:
19
+ forms:
20
+ admin:
21
+ models:
22
+ components:
23
+ description: deskribapena
24
+ tos: Zerbitzu-baldintzak
25
+ questionnaires:
26
+ answer_option:
27
+ answer_option: Erantzun aukera
28
+ free_text: Testu librea
29
+ remove: Kendu
30
+ statement: adierazpena
31
+ edit:
32
+ save: Save
33
+ title: Izenburua
34
+ form:
35
+ add_question: Galdera gehitu
36
+ already_answered_warning: Galdetegia dagoeneko erantzun dio erabiltzaile batzuek, beraz, ezin dituzu bere galderak aldatu.
37
+ question:
38
+ add_answer_option: Gehitu erantzun aukera
39
+ any: Edozein
40
+ description: deskribapena
41
+ down: Down
42
+ question: Galdera
43
+ remove: Kendu
44
+ statement: adierazpena
45
+ up: up
46
+ update:
47
+ invalid: Akatsik egon da galdeketa gordetzean.
48
+ success: Galdeketak arrakastaz gorde dira.
49
+ errors:
50
+ answer:
51
+ body: Gorputza ezin da hutsik egon
52
+ question_types:
53
+ long_answer: Erantzun luzea
54
+ multiple_option: Hainbat aukera
55
+ short_answer: Erantzun laburra
56
+ single_option: Aukera bakarra
57
+ sorting: Lazcoz
58
+ questionnaires:
59
+ answer:
60
+ invalid: Akatsik egon da galdeketa erantzutean.
61
+ success: Galdesortaz erantzun ona.
62
+ question:
63
+ max_choices: 'Gehienezko aukerak: %{n}'
64
+ show:
65
+ answer_questionnaire:
66
+ anonymous_user_message: <a href="%{sign_in_link}">Hasi saioa zure kontuarekin</a> edo <a href="%{sign_up_link}">saioa hasi</a> galdetegiari erantzuteko.
67
+ title: Erantzun galdetegia
68
+ are_you_sure: Ekintza hau ezin da desegin eta ezin izango dituzu zure erantzunak editatu. Ziur zaude?
69
+ questionnaire_answered:
70
+ body: Galdeketa honi erantzun dio.
71
+ title: Dagoeneko erantzun
72
+ questionnaire_closed:
73
+ body: Galdetegia itxita dago eta ezin da erantzun.
74
+ title: Galdeketa itxia
75
+ questionnaire_for_private_users:
76
+ body: Galdetegia erabiltzaile pribatuentzat soilik dago erabilgarri
77
+ title: Galdeketa itxia
78
+ submit: Bidali
79
+ tos_agreement: Zerbitzu-baldintzak onartzen dituzunean parte hartuz
@@ -0,0 +1,79 @@
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
@@ -0,0 +1,79 @@
1
+ fi:
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
@@ -0,0 +1,79 @@
1
+ fr:
2
+ activemodel:
3
+ attributes:
4
+ answer:
5
+ body: Répondre
6
+ question:
7
+ max_choices: Nombre maximum de choix
8
+ question_type: Type
9
+ questionnaire_question:
10
+ mandatory: Obligatoire
11
+ errors:
12
+ models:
13
+ answer:
14
+ attributes:
15
+ choices:
16
+ missing: ne sont pas complets
17
+ too_many: sont trop nombreux
18
+ decidim:
19
+ forms:
20
+ admin:
21
+ models:
22
+ components:
23
+ description: La description
24
+ tos: Conditions d'utilisation
25
+ questionnaires:
26
+ answer_option:
27
+ answer_option: Option de réponse
28
+ free_text: Texte libre
29
+ remove: Retirer
30
+ statement: Déclaration
31
+ edit:
32
+ save: sauvegarder
33
+ title: Titre
34
+ form:
35
+ add_question: Ajouter une question
36
+ already_answered_warning: Certains utilisateurs ont déjà répondu au questionnaire, vous ne pouvez donc pas modifier ses questions.
37
+ question:
38
+ add_answer_option: Ajouter une option de réponse
39
+ any: Tout
40
+ description: La description
41
+ down: Vers le bas
42
+ question: Question
43
+ remove: Retirer
44
+ statement: Déclaration
45
+ up: Up
46
+ update:
47
+ invalid: Il y a eu des erreurs lors de la sauvegarde du questionnaire.
48
+ success: Questionnaires sauvegardés avec succès.
49
+ errors:
50
+ answer:
51
+ body: Le corps ne peut pas être vide
52
+ question_types:
53
+ long_answer: Longue réponse
54
+ multiple_option: Option multiple
55
+ short_answer: Réponse courte
56
+ single_option: Option unique
57
+ sorting: Tri
58
+ questionnaires:
59
+ answer:
60
+ invalid: Il y a eu des erreurs en répondant au questionnaire.
61
+ success: Questionnaire répondu avec succès.
62
+ question:
63
+ max_choices: 'Choix maximum: %{n}'
64
+ show:
65
+ answer_questionnaire:
66
+ anonymous_user_message: <a href="%{sign_in_link}">Connectez-vous avec votre compte</a> ou <a href="%{sign_up_link}">inscrivez-vous</a> pour répondre au questionnaire.
67
+ title: Répondez au questionnaire
68
+ are_you_sure: Cette action ne peut pas être annulée et vous ne pourrez pas modifier vos réponses. Êtes-vous sûr?
69
+ questionnaire_answered:
70
+ body: Vous avez déjà répondu à ce questionnaire.
71
+ title: Déjà répondu
72
+ questionnaire_closed:
73
+ body: Le questionnaire est fermé et vous ne pouvez pas y répondre.
74
+ title: Questionnaire fermé
75
+ questionnaire_for_private_users:
76
+ body: Le questionnaire est disponible uniquement pour les utilisateurs privés
77
+ title: Questionnaire fermé
78
+ submit: Soumettre
79
+ tos_agreement: En participant, vous acceptez ses conditions d'utilisation
@@ -0,0 +1,79 @@
1
+ gl:
2
+ activemodel:
3
+ attributes:
4
+ answer:
5
+ body: Resposta
6
+ question:
7
+ max_choices: Número máximo de opcións
8
+ question_type: Tipo
9
+ questionnaire_question:
10
+ mandatory: Obrigatorio
11
+ errors:
12
+ models:
13
+ answer:
14
+ attributes:
15
+ choices:
16
+ missing: non están completos
17
+ too_many: son demasiados
18
+ decidim:
19
+ forms:
20
+ admin:
21
+ models:
22
+ components:
23
+ description: Descrición
24
+ tos: Condicións de servicio
25
+ questionnaires:
26
+ answer_option:
27
+ answer_option: Opción de resposta
28
+ free_text: Texto libre
29
+ remove: Quitar
30
+ statement: Declaración
31
+ edit:
32
+ save: Gardar
33
+ title: Título
34
+ form:
35
+ add_question: Engadir pregunta
36
+ already_answered_warning: Algúns usuarios xa responderon o cuestionario para que non poida modificar as súas preguntas.
37
+ question:
38
+ add_answer_option: Engadir unha opción de resposta
39
+ any: Calquera
40
+ description: Descrición
41
+ down: Baixo
42
+ question: Pregunta
43
+ remove: Quitar
44
+ statement: Declaración
45
+ up: Arriba
46
+ update:
47
+ invalid: Produciuse un erro ao gardar o cuestionario.
48
+ success: Os cuestionarios gardáronse con éxito.
49
+ errors:
50
+ answer:
51
+ body: O corpo non pode estar en branco
52
+ question_types:
53
+ long_answer: Resposta longa
54
+ multiple_option: Múltipla opción
55
+ short_answer: Resposta curta
56
+ single_option: Opción única
57
+ sorting: Clasificación
58
+ questionnaires:
59
+ answer:
60
+ invalid: Houbo erros ao responder ao cuestionario.
61
+ success: O cuestionario respondeu con éxito.
62
+ question:
63
+ max_choices: 'Opcións máximas: %{n}'
64
+ show:
65
+ answer_questionnaire:
66
+ anonymous_user_message: <a href="%{sign_in_link}">Inicie sesión coa súa conta</a> ou <a href="%{sign_up_link}">rexístrese</a> para responder ao cuestionario.
67
+ title: Responde o cuestionario
68
+ are_you_sure: Non se pode desfacer esta acción e non poderá editar as túas respostas. Estás seguro?
69
+ questionnaire_answered:
70
+ body: Xa contestou este cuestionario.
71
+ title: Xa respondeu
72
+ questionnaire_closed:
73
+ body: O cuestionario está pechado e non se pode responder.
74
+ title: Cuestionario pechado
75
+ questionnaire_for_private_users:
76
+ body: O cuestionario só está dispoñible para usuarios privados
77
+ title: Cuestionario pechado
78
+ submit: Enviar
79
+ tos_agreement: Ao participar aceptas as Condicións de servizo