decidim-forms 0.23.3 → 0.24.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/decidim/forms/forms.js.es6 +4 -4
- data/app/commands/decidim/forms/admin/update_questionnaire.rb +2 -1
- data/app/commands/decidim/forms/answer_questionnaire.rb +43 -1
- data/app/controllers/decidim/forms/admin/concerns/has_questionnaire.rb +10 -2
- data/app/controllers/decidim/forms/concerns/has_questionnaire.rb +10 -4
- data/app/forms/decidim/forms/admin/question_form.rb +2 -0
- data/app/forms/decidim/forms/answer_form.rb +27 -0
- data/app/helpers/decidim/forms/admin/application_helper.rb +1 -6
- data/app/helpers/decidim/forms/admin/concerns/has_questionnaire_answers_url_helper.rb +3 -3
- data/app/jobs/decidim/forms/export_questionnaire_answers_job.rb +1 -1
- data/app/models/decidim/forms/answer.rb +8 -0
- data/app/models/decidim/forms/question.rb +9 -3
- data/app/presenters/decidim/forms/admin/questionnaire_answer_presenter.rb +20 -0
- data/app/presenters/decidim/forms/admin/questionnaire_participant_presenter.rb +4 -4
- data/app/queries/decidim/forms/questionnaire_user_answers.rb +2 -1
- data/app/views/decidim/forms/admin/questionnaires/_form.html.erb +3 -3
- data/app/views/decidim/forms/admin/questionnaires/_question.html.erb +11 -0
- data/app/views/decidim/forms/admin/questionnaires/edit.html.erb +1 -1
- data/app/views/decidim/forms/questionnaires/_answer.html.erb +1 -1
- data/app/views/decidim/forms/questionnaires/answers/_files.html.erb +1 -0
- data/app/views/decidim/forms/questionnaires/answers/_long_answer.html.erb +1 -1
- data/app/views/decidim/forms/questionnaires/answers/_matrix_multiple.html.erb +2 -1
- data/app/views/decidim/forms/questionnaires/answers/_matrix_single.html.erb +2 -1
- data/app/views/decidim/forms/questionnaires/answers/_multiple_option.html.erb +2 -1
- data/app/views/decidim/forms/questionnaires/answers/_short_answer.html.erb +1 -1
- data/app/views/decidim/forms/questionnaires/answers/_single_option.html.erb +2 -1
- data/app/views/decidim/forms/questionnaires/show.html.erb +1 -1
- data/config/initializers/wicked_pdf.rb +2 -0
- data/config/locales/ca.yml +4 -2
- data/config/locales/cs.yml +8 -2
- data/config/locales/de.yml +8 -2
- data/config/locales/el.yml +1 -1
- data/config/locales/en.yml +8 -2
- data/config/locales/es-MX.yml +2 -2
- data/config/locales/es-PY.yml +2 -2
- data/config/locales/es.yml +2 -2
- data/config/locales/fi-plain.yml +8 -2
- data/config/locales/fi.yml +8 -2
- data/config/locales/fr-CA.yml +8 -2
- data/config/locales/fr.yml +8 -2
- data/config/locales/gl.yml +0 -1
- data/config/locales/it.yml +1 -2
- data/config/locales/ja.yml +2 -2
- data/config/locales/lv.yml +1 -1
- data/config/locales/nl.yml +4 -5
- data/config/locales/no.yml +1 -2
- data/config/locales/pl.yml +11 -2
- data/config/locales/pt.yml +1 -2
- data/config/locales/ro-RO.yml +1 -2
- data/config/locales/sv.yml +1 -2
- data/config/locales/tr-TR.yml +2 -2
- data/config/locales/zh-CN.yml +1 -2
- data/db/migrate/20210208094442_add_max_characters_to_decidim_forms_questions.rb +7 -0
- data/lib/decidim/api/answer_option_type.rb +13 -0
- data/lib/decidim/api/question_type.rb +21 -0
- data/lib/decidim/api/questionnaire_entity_interface.rb +5 -5
- data/lib/decidim/api/questionnaire_type.rb +19 -0
- data/lib/decidim/exporters/form_pdf_controller_helper.rb +2 -0
- data/lib/decidim/forms.rb +1 -1
- data/lib/decidim/forms/api.rb +3 -0
- data/lib/decidim/forms/data_portability_user_answers_serializer.rb +7 -1
- data/lib/decidim/forms/test/factories.rb +12 -2
- data/lib/decidim/forms/test/shared_examples/has_questionnaire.rb +38 -5
- data/lib/decidim/forms/test/shared_examples/manage_questionnaires.rb +5 -4
- data/lib/decidim/forms/test/shared_examples/manage_questionnaires/add_display_conditions.rb +7 -3
- data/lib/decidim/forms/test/shared_examples/manage_questionnaires/add_questions.rb +1 -1
- data/lib/decidim/forms/test/shared_examples/manage_questionnaires/update_questions.rb +5 -0
- data/lib/decidim/forms/user_answers_serializer.rb +9 -1
- data/lib/decidim/forms/version.rb +1 -1
- metadata +17 -15
- data/app/types/decidim/forms/answer_option_type.rb +0 -14
- data/app/types/decidim/forms/question_type.rb +0 -23
- data/app/types/decidim/forms/questionnaire_type.rb +0 -22
data/config/locales/fr-CA.yml
CHANGED
@@ -10,10 +10,15 @@ fr-CA:
|
|
10
10
|
question_type: Type
|
11
11
|
questionnaire_question:
|
12
12
|
mandatory: Obligatoire
|
13
|
+
max_characters: Limite de caractères (laisser à 0 si aucune limite)
|
13
14
|
errors:
|
14
15
|
models:
|
15
16
|
answer:
|
16
17
|
attributes:
|
18
|
+
add_documents:
|
19
|
+
needs_to_be_reattached: Doit être téléchargé de nouveau
|
20
|
+
body:
|
21
|
+
too_long: est trop long
|
17
22
|
choices:
|
18
23
|
missing: ne sont pas complets
|
19
24
|
too_many: sont trop nombreux
|
@@ -78,7 +83,7 @@ fr-CA:
|
|
78
83
|
collapse: Réduire toutes les questions
|
79
84
|
expand: Développer toutes les questions
|
80
85
|
preview: Aperçu
|
81
|
-
title: Modifier le
|
86
|
+
title: Modifier le questionnaire pour %{questionnaire_for}
|
82
87
|
unpublished_warning: Le formulaire n'est pas publié. Vous pouvez modifier ses questions, mais cela supprimera les réponses actuelles.
|
83
88
|
matrix_row:
|
84
89
|
matrix_row: Ligne
|
@@ -110,7 +115,7 @@ fr-CA:
|
|
110
115
|
answer:
|
111
116
|
body: Le corps ne peut pas être vide
|
112
117
|
files:
|
113
|
-
|
118
|
+
extension_allowlist: 'Formats acceptés :'
|
114
119
|
images:
|
115
120
|
dimensions: "%{width} x %{height} px"
|
116
121
|
dimensions_info: 'Cette image sera :'
|
@@ -118,6 +123,7 @@ fr-CA:
|
|
118
123
|
resize_and_pad: Redimensionné et ajustée à
|
119
124
|
resize_to_fit: Redimensionnée pour s'adapter
|
120
125
|
question_types:
|
126
|
+
files: Fichiers
|
121
127
|
long_answer: Longue réponse
|
122
128
|
matrix_multiple: Matrice (choix multiples)
|
123
129
|
matrix_single: Matrice (choix unique)
|
data/config/locales/fr.yml
CHANGED
@@ -10,10 +10,15 @@ fr:
|
|
10
10
|
question_type: Type
|
11
11
|
questionnaire_question:
|
12
12
|
mandatory: Obligatoire
|
13
|
+
max_characters: Limite de caractères (laisser à 0 si aucune limite)
|
13
14
|
errors:
|
14
15
|
models:
|
15
16
|
answer:
|
16
17
|
attributes:
|
18
|
+
add_documents:
|
19
|
+
needs_to_be_reattached: Doit être téléchargé de nouveau
|
20
|
+
body:
|
21
|
+
too_long: est trop long
|
17
22
|
choices:
|
18
23
|
missing: ne sont pas complets
|
19
24
|
too_many: sont trop nombreux
|
@@ -78,7 +83,7 @@ fr:
|
|
78
83
|
collapse: Réduire toutes les questions
|
79
84
|
expand: Développer toutes les questions
|
80
85
|
preview: Aperçu
|
81
|
-
title: Modifier le
|
86
|
+
title: Modifier le questionnaire pour %{questionnaire_for}
|
82
87
|
unpublished_warning: Le formulaire n'est pas publié. Vous pouvez modifier ses questions, mais cela supprimera les réponses actuelles.
|
83
88
|
matrix_row:
|
84
89
|
matrix_row: Ligne
|
@@ -110,7 +115,7 @@ fr:
|
|
110
115
|
answer:
|
111
116
|
body: Le corps ne peut pas être vide
|
112
117
|
files:
|
113
|
-
|
118
|
+
extension_allowlist: 'Formats acceptés :'
|
114
119
|
images:
|
115
120
|
dimensions: "%{width} x %{height} px"
|
116
121
|
dimensions_info: 'Cette image sera :'
|
@@ -118,6 +123,7 @@ fr:
|
|
118
123
|
resize_and_pad: Redimensionné et ajustée à
|
119
124
|
resize_to_fit: Redimensionnée pour s'adapter
|
120
125
|
question_types:
|
126
|
+
files: Fichiers
|
121
127
|
long_answer: Longue réponse
|
122
128
|
matrix_multiple: Matrice (choix multiples)
|
123
129
|
matrix_single: Matrice (choix unique)
|
data/config/locales/gl.yml
CHANGED
data/config/locales/it.yml
CHANGED
@@ -78,7 +78,6 @@ it:
|
|
78
78
|
collapse: Comprimi tutte le domande
|
79
79
|
expand: Espandi tutte le domande
|
80
80
|
preview: Anteprima
|
81
|
-
title: Modificare il modulo
|
82
81
|
unpublished_warning: Il modulo non è pubblicato. Puoi modificare le sue domande, ma in questo modo cancellerai le risposte correnti.
|
83
82
|
matrix_row:
|
84
83
|
matrix_row: Riga
|
@@ -110,7 +109,7 @@ it:
|
|
110
109
|
answer:
|
111
110
|
body: Il corpo non può essere vuoto
|
112
111
|
files:
|
113
|
-
|
112
|
+
extension_allowlist: 'Formati accettati:'
|
114
113
|
images:
|
115
114
|
dimensions: "%{width} x %{height} px"
|
116
115
|
dimensions_info: 'Questa immagine sarà:'
|
data/config/locales/ja.yml
CHANGED
@@ -76,7 +76,7 @@ ja:
|
|
76
76
|
collapse: すべての質問を閉じる
|
77
77
|
expand: すべての質問を展開
|
78
78
|
preview: プレビュー
|
79
|
-
title:
|
79
|
+
title: '%{questionnaire_for} のフォームを編集'
|
80
80
|
unpublished_warning: フォームは公開されていません。質問を修正することはできますが、そうすると現在の回答が削除されます。
|
81
81
|
matrix_row:
|
82
82
|
matrix_row: 行
|
@@ -108,7 +108,7 @@ ja:
|
|
108
108
|
answer:
|
109
109
|
body: 本文は空白にできません
|
110
110
|
files:
|
111
|
-
|
111
|
+
extension_allowlist: '承認されたフォーマット:'
|
112
112
|
images:
|
113
113
|
dimensions: "%{width} x %{height} px"
|
114
114
|
dimensions_info: 'この画像は次のようになります:'
|
data/config/locales/lv.yml
CHANGED
data/config/locales/nl.yml
CHANGED
@@ -24,8 +24,8 @@ nl:
|
|
24
24
|
admin:
|
25
25
|
models:
|
26
26
|
components:
|
27
|
-
description:
|
28
|
-
tos:
|
27
|
+
description: Omschrijving
|
28
|
+
tos: Servicevoorwaarden
|
29
29
|
questionnaires:
|
30
30
|
actions:
|
31
31
|
back: Terug naar vragen
|
@@ -74,11 +74,10 @@ nl:
|
|
74
74
|
form:
|
75
75
|
add_question: Vraag toevoegen
|
76
76
|
add_separator: Scheidingsteken toevoegen
|
77
|
-
already_answered_warning:
|
77
|
+
already_answered_warning: De vragenlijst is al door enkele gebruikers beantwoord, dus u kunt de vragen niet wijzigen.
|
78
78
|
collapse: Alle vragen samenvouwen
|
79
79
|
expand: Vouw alle vragen uit
|
80
80
|
preview: Voorvertoning
|
81
|
-
title: Formulier bewerken
|
82
81
|
unpublished_warning: Het formulier is niet gepubliceerd. Je kunt de vragen wijzigen, maar als je dit doet worden de huidige antwoorden verwijderd.
|
83
82
|
matrix_row:
|
84
83
|
matrix_row: Rij
|
@@ -110,7 +109,7 @@ nl:
|
|
110
109
|
answer:
|
111
110
|
body: Lichaam mag niet leeg zijn
|
112
111
|
files:
|
113
|
-
|
112
|
+
extension_allowlist: 'Geaccepteerde formaten:'
|
114
113
|
images:
|
115
114
|
dimensions: "%{width} x %{height} px"
|
116
115
|
dimensions_info: 'Deze afbeelding zal zijn:'
|
data/config/locales/no.yml
CHANGED
@@ -53,7 +53,6 @@
|
|
53
53
|
form:
|
54
54
|
add_question: Legg til spørsmål
|
55
55
|
already_answered_warning: Skjemaet er allerede besvart av noen brukere derfor kan du ikke endre spørsmålene.
|
56
|
-
title: Rediger skjema
|
57
56
|
matrix_row:
|
58
57
|
remove: Fjern
|
59
58
|
statement: Uttalelse
|
@@ -81,7 +80,7 @@
|
|
81
80
|
answer:
|
82
81
|
body: Teksten kan ikke være blank
|
83
82
|
files:
|
84
|
-
|
83
|
+
extension_allowlist: 'Aksepterte formater:'
|
85
84
|
images:
|
86
85
|
dimensions: "%{width} x %{height} px"
|
87
86
|
dimensions_info: 'Dette bildet vil være:'
|
data/config/locales/pl.yml
CHANGED
@@ -3,15 +3,22 @@ pl:
|
|
3
3
|
attributes:
|
4
4
|
answer:
|
5
5
|
body: Odpowiedź
|
6
|
+
choices: Opcje
|
7
|
+
selected_choices: Wybrane opcje
|
6
8
|
question:
|
7
9
|
max_choices: Maksymalna liczba opcji do wyboru
|
8
10
|
question_type: Typ
|
9
11
|
questionnaire_question:
|
10
12
|
mandatory: Obowiązkowy
|
13
|
+
max_characters: Limit znaków (zostaw 0 jeśli nie chcesz ustawiać limitu)
|
11
14
|
errors:
|
12
15
|
models:
|
13
16
|
answer:
|
14
17
|
attributes:
|
18
|
+
add_documents:
|
19
|
+
needs_to_be_reattached: Załącz ponownie
|
20
|
+
body:
|
21
|
+
too_long: jest zbyt długie
|
15
22
|
choices:
|
16
23
|
missing: nie są kompletne
|
17
24
|
too_many: jest zbyt wiele
|
@@ -76,7 +83,7 @@ pl:
|
|
76
83
|
collapse: Zwiń wszystkie pytania
|
77
84
|
expand: Rozwiń wszystkie pytania
|
78
85
|
preview: Podgląd
|
79
|
-
title: Edytuj formularz
|
86
|
+
title: Edytuj formularz dla %{questionnaire_for}
|
80
87
|
unpublished_warning: Formularz nie został jeszcze opublikowany. Możesz zmienić jego pytania, ale to spowoduje usunięcie bieżących odpowiedzi.
|
81
88
|
matrix_row:
|
82
89
|
matrix_row: Wiersz
|
@@ -103,11 +110,12 @@ pl:
|
|
103
110
|
up: W górę
|
104
111
|
update:
|
105
112
|
invalid: Podczas zapisywania formularza wystąpił błąd.
|
113
|
+
success: Formularz został zapisany.
|
106
114
|
errors:
|
107
115
|
answer:
|
108
116
|
body: Treść nie może być pusta
|
109
117
|
files:
|
110
|
-
|
118
|
+
extension_allowlist: 'Dozwolone formaty:'
|
111
119
|
images:
|
112
120
|
dimensions: "%{width} × %{height} px"
|
113
121
|
dimensions_info: 'Rozmiar obrazu będzie wynosił:'
|
@@ -115,6 +123,7 @@ pl:
|
|
115
123
|
resize_and_pad: Zmieniony i dopełniony do
|
116
124
|
resize_to_fit: Dopasowany
|
117
125
|
question_types:
|
126
|
+
files: Pliki
|
118
127
|
long_answer: Długa odpowiedź
|
119
128
|
matrix_multiple: Macierz (wiele opcji)
|
120
129
|
matrix_single: Macierz (jedna opcja)
|
data/config/locales/pt.yml
CHANGED
@@ -76,7 +76,6 @@ pt:
|
|
76
76
|
collapse: Colapsar todas as questões
|
77
77
|
expand: Expandir todas as questões
|
78
78
|
preview: Pré-visualizar
|
79
|
-
title: Editar formulário
|
80
79
|
unpublished_warning: O formulário não está publicado. Pode modificar as suas questões, mas essa ação eliminará as respostas atuais.
|
81
80
|
matrix_row:
|
82
81
|
matrix_row: Linha
|
@@ -107,7 +106,7 @@ pt:
|
|
107
106
|
answer:
|
108
107
|
body: O corpo não pode ficar em branco
|
109
108
|
files:
|
110
|
-
|
109
|
+
extension_allowlist: 'Formatos aceites:'
|
111
110
|
images:
|
112
111
|
dimensions: "%{width} x %{height} px"
|
113
112
|
dimensions_info: 'Esta imagem será:'
|
data/config/locales/ro-RO.yml
CHANGED
@@ -76,7 +76,6 @@ ro:
|
|
76
76
|
collapse: Restrânge toate întrebările
|
77
77
|
expand: Extinde toate întrebările
|
78
78
|
preview: Previzualizare
|
79
|
-
title: Editare formular
|
80
79
|
unpublished_warning: Formularul nu este publicat. Puteți modifica întrebările, dar acest lucru va șterge răspunsurile curente.
|
81
80
|
matrix_row:
|
82
81
|
matrix_row: Rând
|
@@ -107,7 +106,7 @@ ro:
|
|
107
106
|
answer:
|
108
107
|
body: Corpul nu poate fi gol
|
109
108
|
files:
|
110
|
-
|
109
|
+
extension_allowlist: 'Formate acceptate:'
|
111
110
|
images:
|
112
111
|
dimensions: "%{width} x %{height} px"
|
113
112
|
dimensions_info: 'Această imagine va fi:'
|
data/config/locales/sv.yml
CHANGED
@@ -76,7 +76,6 @@ sv:
|
|
76
76
|
collapse: Komprimera alla frågor
|
77
77
|
expand: Expandera alla frågor
|
78
78
|
preview: Förhandsgranska
|
79
|
-
title: Redigera formulär
|
80
79
|
unpublished_warning: Formuläret är inte publicerat. Du kan ändra dess frågor, men det kommer att ta bort aktuella svar.
|
81
80
|
matrix_row:
|
82
81
|
matrix_row: Rad
|
@@ -107,7 +106,7 @@ sv:
|
|
107
106
|
answer:
|
108
107
|
body: Kroppen kan inte vara to
|
109
108
|
files:
|
110
|
-
|
109
|
+
extension_allowlist: 'Godkända format:'
|
111
110
|
images:
|
112
111
|
dimensions: "%{width} x %{height} px"
|
113
112
|
dimensions_info: 'Denna bild kommer att vara:'
|
data/config/locales/tr-TR.yml
CHANGED
@@ -78,7 +78,7 @@ tr:
|
|
78
78
|
collapse: Tüm soruları daraltın
|
79
79
|
expand: Tüm soruları genişletin
|
80
80
|
preview: Önizleme
|
81
|
-
title:
|
81
|
+
title: '%{questionnaire_for} için formu düzenleyin'
|
82
82
|
unpublished_warning: Form yayınlanmadı. Sorularını değiştirebilirsiniz, ancak bunu yapmak mevcut cevapları silecektir.
|
83
83
|
matrix_row:
|
84
84
|
matrix_row: Satır
|
@@ -110,7 +110,7 @@ tr:
|
|
110
110
|
answer:
|
111
111
|
body: Vücut boş olamaz
|
112
112
|
files:
|
113
|
-
|
113
|
+
extension_allowlist: 'Kabul edilen biçimler:'
|
114
114
|
images:
|
115
115
|
dimensions: "%{width} x %{height} px"
|
116
116
|
dimensions_info: 'Bu resim:'
|
data/config/locales/zh-CN.yml
CHANGED
@@ -78,7 +78,6 @@ zh-CN:
|
|
78
78
|
collapse: 收起所有问题
|
79
79
|
expand: 展开所有问题
|
80
80
|
preview: 预览
|
81
|
-
title: 编辑表单
|
82
81
|
unpublished_warning: 表单未发布。您可以修改它的问题,但这样做将删除当前答案。
|
83
82
|
matrix_row:
|
84
83
|
matrix_row: 行
|
@@ -110,7 +109,7 @@ zh-CN:
|
|
110
109
|
answer:
|
111
110
|
body: 主体不能为空
|
112
111
|
files:
|
113
|
-
|
112
|
+
extension_allowlist: '接受的格式:'
|
114
113
|
images:
|
115
114
|
dimensions: "%{width} x %{height} px"
|
116
115
|
dimensions_info: '这张图片将是:'
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Forms
|
5
|
+
class AnswerOptionType < Decidim::Api::Types::BaseObject
|
6
|
+
description "An answer option for a multi-choice question in a questionnaire"
|
7
|
+
|
8
|
+
field :id, GraphQL::Types::ID, "ID of this answer option", null: false
|
9
|
+
field :body, Decidim::Core::TranslatedFieldType, "The text answer response option.", null: false
|
10
|
+
field :free_text, GraphQL::Types::Boolean, "Whether if this answer accepts any free text from the user.", null: false
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Forms
|
5
|
+
class QuestionType < Decidim::Api::Types::BaseObject
|
6
|
+
description "A question in a questionnaire"
|
7
|
+
|
8
|
+
implements Decidim::Core::TimestampsInterface
|
9
|
+
|
10
|
+
field :id, GraphQL::Types::ID, "ID of this question", null: false
|
11
|
+
field :body, Decidim::Core::TranslatedFieldType, "What is being asked in this question.", null: false
|
12
|
+
field :description, Decidim::Core::TranslatedFieldType, "The description of this question.", null: true
|
13
|
+
field :mandatory, GraphQL::Types::Boolean, "Whether if this question is mandatory.", null: false
|
14
|
+
field :position, GraphQL::Types::Int, "Order position of the question in the questionnaire", null: true
|
15
|
+
field :max_choices, GraphQL::Types::Int, "On questions with answer options, maximum number of choices the user has", null: true
|
16
|
+
field :max_characters, GraphQL::Types::Int, "On questions with free text answers, maximum number of characters the answer can have (0 if no limit)", null: false
|
17
|
+
field :question_type, GraphQL::Types::String, "Type of question.", null: true
|
18
|
+
field :answer_options, [AnswerOptionType, { null: true }], "List of answer options in multi-choice questions.", null: false
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -4,15 +4,15 @@ module Decidim
|
|
4
4
|
module Forms
|
5
5
|
# This interface should be implemented by any Type that can be linked to a questionnaire
|
6
6
|
# The only requirement is to have an ID and the Type name be the class.name + Type
|
7
|
-
QuestionnaireEntityInterface
|
8
|
-
|
7
|
+
module QuestionnaireEntityInterface
|
8
|
+
include Decidim::Api::Types::BaseInterface
|
9
9
|
description "An interface that can be used in objects with questionnaires"
|
10
10
|
|
11
|
-
field :id,
|
11
|
+
field :id, GraphQL::Types::ID, "ID of this entity", null: false
|
12
12
|
|
13
|
-
resolve_type
|
13
|
+
def self.resolve_type(obj, _ctx)
|
14
14
|
"#{obj.class.name}Type".constantize
|
15
|
-
|
15
|
+
end
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Forms
|
5
|
+
class QuestionnaireType < Decidim::Api::Types::BaseObject
|
6
|
+
description "A questionnaire"
|
7
|
+
|
8
|
+
implements Decidim::Core::TimestampsInterface
|
9
|
+
|
10
|
+
field :id, GraphQL::Types::ID, "ID of this questionnaire", null: false
|
11
|
+
field :title, Decidim::Core::TranslatedFieldType, "The title of this questionnaire.", null: false
|
12
|
+
field :description, Decidim::Core::TranslatedFieldType, "The description of this questionnaire.", null: true
|
13
|
+
field :tos, Decidim::Core::TranslatedFieldType, "The Terms of Service for this questionnaire.", null: true
|
14
|
+
field :for_type, GraphQL::Types::String, "Type of entity using this questionnaire.", method: :questionnaire_for_type, null: true
|
15
|
+
field :for_entity, QuestionnaireEntityInterface, "Entity using this questionnaire.", method: :questionnaire_for, null: true
|
16
|
+
field :questions, [Decidim::Forms::QuestionType, { null: true }], "Questions in this questionnaire.", null: false
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -2,8 +2,10 @@
|
|
2
2
|
|
3
3
|
module Decidim
|
4
4
|
module Exporters
|
5
|
+
# rubocop: disable Rails/ApplicationController
|
5
6
|
# A dummy controller to render views while exporting questionnaires
|
6
7
|
class FormPDFControllerHelper < ActionController::Base
|
8
|
+
# rubocop: enable Rails/ApplicationController
|
7
9
|
helper Decidim::TranslationsHelper
|
8
10
|
helper Decidim::Forms::Admin::QuestionnaireAnswersHelper
|
9
11
|
end
|
data/lib/decidim/forms.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "decidim/forms/admin"
|
4
|
+
require "decidim/forms/api"
|
4
5
|
require "decidim/forms/engine"
|
5
6
|
require "decidim/forms/admin_engine"
|
6
|
-
require "decidim/forms/api"
|
7
7
|
|
8
8
|
module Decidim
|
9
9
|
# This namespace holds the logic of the `Forms`.
|