decidim-forms 0.16.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.
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