decidim-forms 0.22.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/config/admin/decidim_forms_manifest.css +3 -0
- data/app/assets/config/decidim_forms_manifest.css +1 -0
- data/app/assets/javascripts/decidim/forms/admin/auto_select_options_from_url.component.js.es6 +40 -0
- data/app/assets/javascripts/decidim/forms/admin/forms.js.es6 +181 -25
- data/app/assets/javascripts/decidim/forms/autosortable_checkboxes.component.js.es6 +54 -34
- data/app/assets/javascripts/decidim/forms/display_conditions.component.js.es6 +204 -0
- data/app/assets/javascripts/decidim/forms/forms.js.es6 +8 -1
- data/app/assets/stylesheets/decidim/forms/questionnaire-answers-pdf.scss +69 -0
- data/app/commands/decidim/forms/admin/update_questionnaire.rb +25 -1
- data/app/commands/decidim/forms/answer_questionnaire.rb +1 -1
- data/app/controllers/decidim/forms/admin/concerns/has_questionnaire.rb +47 -1
- data/app/controllers/decidim/forms/admin/concerns/has_questionnaire_answers.rb +97 -0
- data/app/forms/decidim/forms/admin/display_condition_form.rb +100 -0
- data/app/forms/decidim/forms/admin/question_form.rb +1 -0
- data/app/forms/decidim/forms/answer_form.rb +15 -0
- data/app/helpers/decidim/forms/admin/application_helper.rb +21 -0
- data/app/helpers/decidim/forms/admin/concerns/has_questionnaire_answers_pagination_helper.rb +49 -0
- data/app/helpers/decidim/forms/admin/concerns/has_questionnaire_answers_url_helper.rb +40 -0
- data/app/helpers/decidim/forms/admin/questionnaire_answers_helper.rb +27 -0
- data/app/jobs/decidim/forms/export_questionnaire_answers_job.rb +19 -0
- data/app/models/decidim/forms/answer.rb +0 -3
- data/app/models/decidim/forms/answer_option.rb +14 -0
- data/app/models/decidim/forms/display_condition.rb +51 -0
- data/app/models/decidim/forms/question.rb +34 -0
- data/app/models/decidim/forms/question_matrix_row.rb +3 -0
- data/app/models/decidim/forms/questionnaire.rb +11 -1
- data/app/presenters/decidim/forms/admin/questionnaire_answer_presenter.rb +43 -0
- data/app/presenters/decidim/forms/admin/questionnaire_participant_presenter.rb +60 -0
- data/app/presenters/decidim/forms/answer_option_presenter.rb +20 -0
- data/app/presenters/decidim/forms/question_presenter.rb +16 -0
- data/app/queries/decidim/forms/questionnaire_participant.rb +35 -0
- data/app/queries/decidim/forms/questionnaire_participants.rb +43 -0
- data/app/views/decidim/forms/admin/questionnaires/_display_condition.html.erb +88 -0
- data/app/views/decidim/forms/admin/questionnaires/_display_condition_template.html.erb +7 -0
- data/app/views/decidim/forms/admin/questionnaires/_form.html.erb +30 -4
- data/app/views/decidim/forms/admin/questionnaires/_question.html.erb +19 -3
- data/app/views/decidim/forms/admin/questionnaires/answers/export/_answer.html.erb +31 -0
- data/app/views/decidim/forms/admin/questionnaires/answers/export/pdf.html.erb +13 -0
- data/app/views/decidim/forms/admin/questionnaires/answers/index.html.erb +53 -0
- data/app/views/decidim/forms/admin/questionnaires/answers/show.html.erb +48 -0
- data/app/views/decidim/forms/admin/questionnaires/edit.html.erb +9 -5
- data/app/views/decidim/forms/questionnaires/_answer.html.erb +1 -1
- data/app/views/decidim/forms/questionnaires/show.html.erb +22 -2
- data/app/views/layouts/decidim/forms/admin/questionnaires/questionnaire_answers.html.erb +12 -0
- data/config/initializers/wicked_pdf.rb +25 -0
- data/config/locales/am-ET.yml +1 -0
- data/config/locales/ar.yml +0 -1
- data/config/locales/bg-BG.yml +0 -2
- data/config/locales/bg.yml +14 -0
- data/config/locales/ca.yml +56 -4
- data/config/locales/cs.yml +54 -2
- data/config/locales/da.yml +1 -0
- data/config/locales/de.yml +51 -1
- data/config/locales/el.yml +0 -2
- data/config/locales/en.yml +54 -2
- data/config/locales/eo.yml +1 -0
- data/config/locales/es-MX.yml +53 -1
- data/config/locales/es-PY.yml +53 -1
- data/config/locales/es.yml +54 -2
- data/config/locales/et.yml +1 -0
- data/config/locales/eu.yml +0 -1
- data/config/locales/fi-plain.yml +53 -1
- data/config/locales/fi.yml +53 -1
- data/config/locales/fr-CA.yml +54 -2
- data/config/locales/fr.yml +54 -2
- data/config/locales/gl.yml +0 -1
- data/config/locales/hr.yml +1 -0
- data/config/locales/hu.yml +0 -2
- data/config/locales/id-ID.yml +0 -1
- data/config/locales/is.yml +1 -0
- data/config/locales/it.yml +53 -1
- data/config/locales/ja-JP.yml +51 -1
- data/config/locales/ja.yml +170 -0
- data/config/locales/ko-KR.yml +1 -0
- data/config/locales/ko.yml +1 -0
- data/config/locales/lt.yml +1 -0
- data/config/locales/{lv-LV.yml → lv.yml} +0 -1
- data/config/locales/mt.yml +1 -0
- data/config/locales/nl.yml +59 -7
- data/config/locales/no.yml +47 -2
- data/config/locales/om-ET.yml +1 -0
- data/config/locales/pl.yml +52 -3
- data/config/locales/pt-BR.yml +0 -1
- data/config/locales/pt.yml +51 -2
- data/config/locales/ro-RO.yml +51 -2
- data/config/locales/ru.yml +0 -1
- data/config/locales/sk.yml +0 -2
- data/config/locales/sl.yml +7 -0
- data/config/locales/so-SO.yml +1 -0
- data/config/locales/sv.yml +51 -2
- data/config/locales/ti-ER.yml +1 -0
- data/config/locales/tr-TR.yml +0 -1
- data/config/locales/vi-VN.yml +1 -0
- data/config/locales/vi.yml +1 -0
- data/config/locales/zh-CN.yml +172 -0
- data/config/locales/zh-TW.yml +1 -0
- data/db/migrate/20200130194123_create_decidim_forms_display_conditions.rb +20 -0
- data/lib/decidim/exporters/form_pdf.rb +33 -0
- data/lib/decidim/exporters/form_pdf_controller_helper.rb +11 -0
- data/lib/decidim/forms.rb +5 -0
- data/lib/decidim/forms/admin_engine.rb +1 -1
- data/lib/decidim/forms/test.rb +6 -0
- data/lib/decidim/forms/test/factories.rb +30 -0
- data/lib/decidim/forms/test/shared_examples/has_questionnaire.rb +619 -38
- data/lib/decidim/forms/test/shared_examples/manage_questionnaire_answers.rb +108 -0
- data/lib/decidim/forms/test/shared_examples/manage_questionnaires.rb +21 -894
- data/lib/decidim/forms/test/shared_examples/manage_questionnaires/add_display_conditions.rb +179 -0
- data/lib/decidim/forms/test/shared_examples/manage_questionnaires/add_questions.rb +463 -0
- data/lib/decidim/forms/test/shared_examples/manage_questionnaires/update_display_conditions.rb +93 -0
- data/lib/decidim/forms/test/shared_examples/manage_questionnaires/update_questions.rb +461 -0
- data/lib/decidim/forms/version.rb +1 -1
- metadata +91 -11
|
@@ -0,0 +1 @@
|
|
|
1
|
+
so:
|
data/config/locales/sv.yml
CHANGED
|
@@ -25,11 +25,47 @@ sv:
|
|
|
25
25
|
description: Beskrivning
|
|
26
26
|
tos: Användarvillkor
|
|
27
27
|
questionnaires:
|
|
28
|
+
actions:
|
|
29
|
+
back: Tillbaka till frågor
|
|
30
|
+
show: Visa svar
|
|
28
31
|
answer_option:
|
|
29
32
|
answer_option: Svarsalternativ
|
|
30
33
|
free_text: Fritext
|
|
31
34
|
remove: Ta bort
|
|
32
35
|
statement: Påstående
|
|
36
|
+
answers:
|
|
37
|
+
actions:
|
|
38
|
+
back: Tillbaka till svar
|
|
39
|
+
export: Exportera
|
|
40
|
+
show: Visa svar
|
|
41
|
+
empty: Inga svar ännu
|
|
42
|
+
export:
|
|
43
|
+
answer:
|
|
44
|
+
title: 'Svar #%{number}'
|
|
45
|
+
export_response:
|
|
46
|
+
title: Undersökning_användare_svar_%{token}
|
|
47
|
+
index:
|
|
48
|
+
title: "%{total} svar totalt"
|
|
49
|
+
show:
|
|
50
|
+
title: 'Svar #%{number}'
|
|
51
|
+
display_condition:
|
|
52
|
+
answer_option: Svarsalternativ
|
|
53
|
+
condition_question: Fråga
|
|
54
|
+
condition_type: Skick
|
|
55
|
+
condition_types:
|
|
56
|
+
answered: Besvarad
|
|
57
|
+
equal: Lika
|
|
58
|
+
match: Inkluderar text
|
|
59
|
+
not_answered: Ej besvarad
|
|
60
|
+
not_equal: Inte lika
|
|
61
|
+
condition_value: Inkluderad text
|
|
62
|
+
display_condition: Visa villkor
|
|
63
|
+
mandatory: Detta villkor måste uppfyllas alltid oavsett status för andra villkor
|
|
64
|
+
remove: Radera
|
|
65
|
+
save_warning: Kom ihåg att spara formuläret innan du konfigurerar visningsvillkor
|
|
66
|
+
select_answer_option: Välj svarsalternativ
|
|
67
|
+
select_condition_question: Välj en fråga
|
|
68
|
+
select_condition_type: Välj en villkorstyp
|
|
33
69
|
edit:
|
|
34
70
|
save: Spara
|
|
35
71
|
title: Redigera frågeformulär
|
|
@@ -39,12 +75,17 @@ sv:
|
|
|
39
75
|
already_answered_warning: Frågeformuläret har redan besvarats av vissa användare så du inte kan ändra dess frågor.
|
|
40
76
|
collapse: Komprimera alla frågor
|
|
41
77
|
expand: Expandera alla frågor
|
|
78
|
+
preview: Förhandsgranska
|
|
79
|
+
title: Redigera formulär
|
|
80
|
+
unpublished_warning: Formuläret är inte publicerat. Du kan ändra dess frågor, men det kommer att ta bort aktuella svar.
|
|
42
81
|
matrix_row:
|
|
43
82
|
matrix_row: Rad
|
|
44
83
|
remove: Ta bort
|
|
45
84
|
statement: Påstående
|
|
46
85
|
question:
|
|
47
86
|
add_answer_option: Lägg till svarsalternativ
|
|
87
|
+
add_display_condition: Lägg till visningsvillkor
|
|
88
|
+
add_display_condition_info: Spara formuläret för att konfigurera visningsvillkor
|
|
48
89
|
add_matrix_row: Lägg till rad
|
|
49
90
|
any: Någon
|
|
50
91
|
collapse: Komprimera
|
|
@@ -62,7 +103,6 @@ sv:
|
|
|
62
103
|
up: Upp
|
|
63
104
|
update:
|
|
64
105
|
invalid: Det gick inte att spara formuläret.
|
|
65
|
-
success: Formuläret har sparats.
|
|
66
106
|
errors:
|
|
67
107
|
answer:
|
|
68
108
|
body: Kroppen kan inte vara to
|
|
@@ -104,6 +144,11 @@ sv:
|
|
|
104
144
|
questionnaire_for_private_users:
|
|
105
145
|
body: Formuläret är endast tillgängligt för privata användare
|
|
106
146
|
title: Formuläret är stängt
|
|
147
|
+
questionnaire_js_disabled:
|
|
148
|
+
body: Vissa av formulärens funktioner kommer att inaktiveras. För att förbättra din upplevelse, vänligen aktivera JavaScript i din webbläsare.
|
|
149
|
+
title: JavaScript är inaktiverat
|
|
150
|
+
questionnaire_not_published:
|
|
151
|
+
body: Detta formulär är ännu inte publicerat.
|
|
107
152
|
tos_agreement: Genom att delta godkänner du användarvillkoren
|
|
108
153
|
step_navigation:
|
|
109
154
|
show:
|
|
@@ -112,9 +157,13 @@ sv:
|
|
|
112
157
|
continue: Fortsätt
|
|
113
158
|
submit: Skicka in
|
|
114
159
|
user_answers_serializer:
|
|
160
|
+
body: Svar
|
|
161
|
+
completion: Slutförande
|
|
115
162
|
created_at: Besvarad
|
|
116
163
|
id: Svars-ID
|
|
117
|
-
ip_hash:
|
|
164
|
+
ip_hash: IP Hash
|
|
165
|
+
question: Fråga
|
|
118
166
|
registered: Registrerad
|
|
167
|
+
session_token: Identifierare för användare
|
|
119
168
|
unregistered: Ej registrerad
|
|
120
169
|
user_status: Användarstatus
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ti:
|
data/config/locales/tr-TR.yml
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
vi:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
vi:
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
zh-CN:
|
|
2
|
+
activemodel:
|
|
3
|
+
attributes:
|
|
4
|
+
answer:
|
|
5
|
+
body: 答案
|
|
6
|
+
choices: 选择
|
|
7
|
+
selected_choices: 选定的选择
|
|
8
|
+
question:
|
|
9
|
+
max_choices: 选择的最大数量
|
|
10
|
+
question_type: 类型
|
|
11
|
+
questionnaire_question:
|
|
12
|
+
mandatory: Mandatory
|
|
13
|
+
errors:
|
|
14
|
+
models:
|
|
15
|
+
answer:
|
|
16
|
+
attributes:
|
|
17
|
+
choices:
|
|
18
|
+
missing: 不完成
|
|
19
|
+
too_many: 太多了
|
|
20
|
+
questionnaire:
|
|
21
|
+
request_invalid: 处理请求时出错。请再试一次
|
|
22
|
+
decidim:
|
|
23
|
+
forms:
|
|
24
|
+
admin:
|
|
25
|
+
models:
|
|
26
|
+
components:
|
|
27
|
+
description: 描述
|
|
28
|
+
tos: 服务条款
|
|
29
|
+
questionnaires:
|
|
30
|
+
actions:
|
|
31
|
+
back: 返回问题
|
|
32
|
+
show: 显示回复
|
|
33
|
+
answer_option:
|
|
34
|
+
answer_option: 答案选项
|
|
35
|
+
free_text: 免费文本
|
|
36
|
+
remove: 删除
|
|
37
|
+
statement: 声明
|
|
38
|
+
answers:
|
|
39
|
+
actions:
|
|
40
|
+
back: 回到回应
|
|
41
|
+
export: 导出
|
|
42
|
+
show: 显示答案
|
|
43
|
+
empty: 尚无答案
|
|
44
|
+
export:
|
|
45
|
+
answer:
|
|
46
|
+
title: '回复 #%{number}'
|
|
47
|
+
export_response:
|
|
48
|
+
title: survey_user_answers_%{token}
|
|
49
|
+
index:
|
|
50
|
+
title: "%{total} 个回复总数"
|
|
51
|
+
show:
|
|
52
|
+
title: '答案 #%{number}'
|
|
53
|
+
display_condition:
|
|
54
|
+
answer_option: 答案选项
|
|
55
|
+
condition_question: 问
|
|
56
|
+
condition_type: 条件
|
|
57
|
+
condition_types:
|
|
58
|
+
answered: 已回答
|
|
59
|
+
equal: 等于
|
|
60
|
+
match: 包含文本
|
|
61
|
+
not_answered: 未回答
|
|
62
|
+
not_equal: 不等于
|
|
63
|
+
condition_value: 包含文本
|
|
64
|
+
display_condition: 显示条件
|
|
65
|
+
mandatory: 无论其他条件的状况如何,总是需要满足这个条件
|
|
66
|
+
remove: 删除
|
|
67
|
+
save_warning: 在配置显示条件之前记住保存表单
|
|
68
|
+
select_answer_option: 选择答案选项
|
|
69
|
+
select_condition_question: 选择一个问题
|
|
70
|
+
select_condition_type: 选择一个条件类型
|
|
71
|
+
edit:
|
|
72
|
+
save: 保存
|
|
73
|
+
title: 编辑问题单
|
|
74
|
+
form:
|
|
75
|
+
add_question: 添加问题
|
|
76
|
+
add_separator: 添加分隔符
|
|
77
|
+
already_answered_warning: 某些用户已经回答了表单,因此您不能修改其问题。
|
|
78
|
+
collapse: 收起所有问题
|
|
79
|
+
expand: 展开所有问题
|
|
80
|
+
preview: 预览
|
|
81
|
+
title: 编辑表单
|
|
82
|
+
unpublished_warning: 表单未发布。您可以修改它的问题,但这样做将删除当前答案。
|
|
83
|
+
matrix_row:
|
|
84
|
+
matrix_row: 行
|
|
85
|
+
remove: 删除
|
|
86
|
+
statement: 声明
|
|
87
|
+
question:
|
|
88
|
+
add_answer_option: 添加答案选项
|
|
89
|
+
add_display_condition: 添加显示条件
|
|
90
|
+
add_display_condition_info: 保存表单以配置显示条件
|
|
91
|
+
add_matrix_row: 添加行
|
|
92
|
+
any: 任何
|
|
93
|
+
collapse: 收起
|
|
94
|
+
description: 描述
|
|
95
|
+
down: 向下
|
|
96
|
+
expand: 扩展
|
|
97
|
+
question: 问
|
|
98
|
+
remove: 删除
|
|
99
|
+
statement: 声明
|
|
100
|
+
up: 上移
|
|
101
|
+
separator:
|
|
102
|
+
down: 向下
|
|
103
|
+
remove: 删除
|
|
104
|
+
separator: 分隔符
|
|
105
|
+
up: 上移
|
|
106
|
+
update:
|
|
107
|
+
invalid: 保存表单时出错。
|
|
108
|
+
success: 表单保存成功。
|
|
109
|
+
errors:
|
|
110
|
+
answer:
|
|
111
|
+
body: 主体不能为空
|
|
112
|
+
files:
|
|
113
|
+
extension_whitelist: '接受的格式:'
|
|
114
|
+
images:
|
|
115
|
+
dimensions: "%{width} x %{height} px"
|
|
116
|
+
dimensions_info: '这张图片将是:'
|
|
117
|
+
processors:
|
|
118
|
+
resize_and_pad: 缩放并填充到
|
|
119
|
+
resize_to_fit: 调整到适合的
|
|
120
|
+
question_types:
|
|
121
|
+
long_answer: 长答案
|
|
122
|
+
matrix_multiple: 矩阵(多选项)
|
|
123
|
+
matrix_single: 矩阵(单选项)
|
|
124
|
+
multiple_option: 多选项
|
|
125
|
+
short_answer: 简短答案
|
|
126
|
+
single_option: 单个选项
|
|
127
|
+
sorting: 排序中
|
|
128
|
+
questionnaires:
|
|
129
|
+
answer:
|
|
130
|
+
invalid: 回答表单时出现问题。
|
|
131
|
+
max_choices_alert: 选择了太多选项
|
|
132
|
+
success: 表单回答成功。
|
|
133
|
+
question:
|
|
134
|
+
max_choices: '最大选择数: %{n}'
|
|
135
|
+
show:
|
|
136
|
+
answer_questionnaire:
|
|
137
|
+
anonymous_user_message: <a href="%{sign_in_link}">使用您的帐户</a> 或 <a href="%{sign_up_link}">注册</a> 以回答表单。
|
|
138
|
+
title: 回答表单
|
|
139
|
+
current_step: 步骤 %{step}
|
|
140
|
+
of_total_steps: '%{total_steps}'
|
|
141
|
+
questionnaire_answered:
|
|
142
|
+
body: 您已经回答过这个表单。
|
|
143
|
+
title: 已经回答
|
|
144
|
+
questionnaire_closed:
|
|
145
|
+
body: 表格已关闭,无法解答。
|
|
146
|
+
title: 表单已关闭
|
|
147
|
+
questionnaire_for_private_users:
|
|
148
|
+
body: 表单仅供私人用户使用
|
|
149
|
+
title: 表单已关闭
|
|
150
|
+
questionnaire_js_disabled:
|
|
151
|
+
body: 此表单的一些功能将被禁用。为了改善您的体验,请在您的浏览器中启用 JavaScript。
|
|
152
|
+
title: JavaScript 已禁用
|
|
153
|
+
questionnaire_not_published:
|
|
154
|
+
body: 此表单尚未发布。
|
|
155
|
+
tos_agreement: 通过参与您接受其服务条款
|
|
156
|
+
step_navigation:
|
|
157
|
+
show:
|
|
158
|
+
are_you_sure: 此操作不能撤消,您将无法编辑您的答案。您确定吗?
|
|
159
|
+
back: 后退
|
|
160
|
+
continue: 继续
|
|
161
|
+
submit: 提交
|
|
162
|
+
user_answers_serializer:
|
|
163
|
+
body: 答案
|
|
164
|
+
completion: 完成
|
|
165
|
+
created_at: 回答于
|
|
166
|
+
id: 答案 ID
|
|
167
|
+
ip_hash: IP哈希
|
|
168
|
+
question: 问
|
|
169
|
+
registered: 已注册
|
|
170
|
+
session_token: 用户标识符
|
|
171
|
+
unregistered: 未注册
|
|
172
|
+
user_status: 用户状态
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
zh-TW:
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class CreateDecidimFormsDisplayConditions < ActiveRecord::Migration[5.1]
|
|
4
|
+
def up
|
|
5
|
+
create_table :decidim_forms_display_conditions do |t|
|
|
6
|
+
t.bigint :decidim_question_id, index: { name: "decidim_forms_display_condition_question" }, null: false
|
|
7
|
+
t.bigint :decidim_condition_question_id, index: { name: "decidim_forms_display_condition_condition_question" }, null: false
|
|
8
|
+
t.bigint :decidim_answer_option_id, index: { name: "decidim_forms_display_condition_answer_option" }
|
|
9
|
+
t.integer :condition_type, default: 0, null: false
|
|
10
|
+
t.jsonb :condition_value
|
|
11
|
+
t.boolean :mandatory, default: false
|
|
12
|
+
|
|
13
|
+
t.timestamps
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def down
|
|
18
|
+
drop_table :decidim_forms_display_conditions
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "wicked_pdf"
|
|
4
|
+
|
|
5
|
+
module Decidim
|
|
6
|
+
module Exporters
|
|
7
|
+
# Inherits from abstract PDF exporter. This class is used to set
|
|
8
|
+
# the parameters used to create a PDF when exporting Survey Answers.
|
|
9
|
+
#
|
|
10
|
+
class FormPDF < PDF
|
|
11
|
+
# i18n-tasks-use t('decidim.admin.exports.formats.FormPDF')
|
|
12
|
+
|
|
13
|
+
def controller
|
|
14
|
+
@controller ||= FormPDFControllerHelper.new
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def template
|
|
18
|
+
"decidim/forms/admin/questionnaires/answers/export/pdf.html.erb"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def layout
|
|
22
|
+
"decidim/forms/admin/questionnaires/questionnaire_answers.html.erb"
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def locals
|
|
26
|
+
{
|
|
27
|
+
questionnaire: collection.first.first.questionnaire,
|
|
28
|
+
collection: collection.map { |answer| Decidim::Forms::Admin::QuestionnaireParticipantPresenter.new(participant: answer.first) }
|
|
29
|
+
}
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Decidim
|
|
4
|
+
module Exporters
|
|
5
|
+
# A dummy controller to render views while exporting questionnaires
|
|
6
|
+
class FormPDFControllerHelper < ActionController::Base
|
|
7
|
+
helper Decidim::TranslationsHelper
|
|
8
|
+
helper Decidim::Forms::Admin::QuestionnaireAnswersHelper
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
data/lib/decidim/forms.rb
CHANGED
|
@@ -11,4 +11,9 @@ module Decidim
|
|
|
11
11
|
autoload :UserAnswersSerializer, "decidim/forms/user_answers_serializer"
|
|
12
12
|
autoload :DataPortabilityUserAnswersSerializer, "decidim/forms/data_portability_user_answers_serializer"
|
|
13
13
|
end
|
|
14
|
+
|
|
15
|
+
module Exporters
|
|
16
|
+
autoload :FormPDF, "decidim/exporters/form_pdf"
|
|
17
|
+
autoload :FormPDFControllerHelper, "decidim/exporters/form_pdf_controller_helper"
|
|
18
|
+
end
|
|
14
19
|
end
|
|
@@ -10,7 +10,7 @@ module Decidim
|
|
|
10
10
|
paths["lib/tasks"] = nil
|
|
11
11
|
|
|
12
12
|
initializer "decidim_forms.admin_assets" do |app|
|
|
13
|
-
app.config.assets.precompile += %w(admin/decidim_forms_manifest.js)
|
|
13
|
+
app.config.assets.precompile += %w(admin/decidim_forms_manifest.js admin/decidim_forms_manifest.css)
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def load_seed
|
data/lib/decidim/forms/test.rb
CHANGED
|
@@ -2,3 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
require "decidim/forms/test/shared_examples/has_questionnaire"
|
|
4
4
|
require "decidim/forms/test/shared_examples/manage_questionnaires"
|
|
5
|
+
require "decidim/forms/test/shared_examples/manage_questionnaire_answers"
|
|
6
|
+
|
|
7
|
+
if defined? Decidim::Templates
|
|
8
|
+
require "decidim/templates/test/shared_examples/uses_questionnaire_templates"
|
|
9
|
+
require "decidim/templates/test/factories"
|
|
10
|
+
end
|
|
@@ -23,6 +23,12 @@ FactoryBot.define do
|
|
|
23
23
|
qs
|
|
24
24
|
end
|
|
25
25
|
end
|
|
26
|
+
|
|
27
|
+
trait :empty do
|
|
28
|
+
title { {} }
|
|
29
|
+
description { {} }
|
|
30
|
+
tos { {} }
|
|
31
|
+
end
|
|
26
32
|
end
|
|
27
33
|
|
|
28
34
|
factory :questionnaire_question, class: "Decidim::Forms::Question" do
|
|
@@ -67,6 +73,12 @@ FactoryBot.define do
|
|
|
67
73
|
end
|
|
68
74
|
end
|
|
69
75
|
|
|
76
|
+
trait :conditioned do
|
|
77
|
+
display_conditions do
|
|
78
|
+
Array.new(3).collect { build(:display_condition) }
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
|
|
70
82
|
trait :separator do
|
|
71
83
|
question_type { :separator }
|
|
72
84
|
end
|
|
@@ -77,6 +89,7 @@ FactoryBot.define do
|
|
|
77
89
|
questionnaire
|
|
78
90
|
question { create(:questionnaire_question, questionnaire: questionnaire) }
|
|
79
91
|
user { create(:user, organization: questionnaire.questionnaire_for.organization) }
|
|
92
|
+
session_token { Digest::MD5.hexdigest(user.id.to_s) }
|
|
80
93
|
end
|
|
81
94
|
|
|
82
95
|
factory :answer_option, class: "Decidim::Forms::AnswerOption" do
|
|
@@ -96,4 +109,21 @@ FactoryBot.define do
|
|
|
96
109
|
body { generate_localized_title }
|
|
97
110
|
position { 0 }
|
|
98
111
|
end
|
|
112
|
+
|
|
113
|
+
factory :display_condition, class: "Decidim::Forms::DisplayCondition" do
|
|
114
|
+
condition_question { create(:questionnaire_question) }
|
|
115
|
+
question { create(:questionnaire_question, position: 1) }
|
|
116
|
+
condition_type { :answered }
|
|
117
|
+
mandatory { true }
|
|
118
|
+
|
|
119
|
+
trait :equal do
|
|
120
|
+
condition_type { :equal }
|
|
121
|
+
answer_option { create(:answer_option, question: condition_question) }
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
trait :match do
|
|
125
|
+
condition_type { :match }
|
|
126
|
+
condition_value { generate_localized_title }
|
|
127
|
+
end
|
|
128
|
+
end
|
|
99
129
|
end
|