decidim-forms 0.26.7 → 0.27.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/app/commands/decidim/forms/admin/update_questionnaire.rb +13 -8
  3. data/app/commands/decidim/forms/answer_questionnaire.rb +1 -1
  4. data/app/controllers/decidim/forms/admin/concerns/has_questionnaire.rb +2 -2
  5. data/app/forms/decidim/forms/admin/display_condition_form.rb +3 -3
  6. data/app/models/decidim/forms/answer.rb +2 -2
  7. data/app/models/decidim/forms/display_condition.rb +1 -1
  8. data/app/models/decidim/forms/questionnaire.rb +7 -0
  9. data/app/packs/src/decidim/forms/admin/forms.js +0 -3
  10. data/app/presenters/decidim/forms/admin/questionnaire_answer_presenter.rb +13 -8
  11. data/app/presenters/decidim/forms/admin/questionnaire_participant_presenter.rb +5 -3
  12. data/app/presenters/decidim/forms/admin_log/questionnaire_presenter.rb +35 -0
  13. data/app/queries/decidim/forms/questionnaire_participant.rb +1 -1
  14. data/app/queries/decidim/forms/questionnaire_participants.rb +1 -1
  15. data/app/queries/decidim/forms/questionnaire_user_answers.rb +1 -1
  16. data/app/views/decidim/forms/admin/questionnaires/_form.html.erb +1 -1
  17. data/app/views/decidim/forms/questionnaires/_answer.html.erb +2 -2
  18. data/app/views/decidim/forms/questionnaires/show.html.erb +5 -3
  19. data/config/locales/am-ET.yml +1 -0
  20. data/config/locales/ar.yml +1 -0
  21. data/config/locales/bg.yml +1 -0
  22. data/config/locales/ca.yml +7 -6
  23. data/config/locales/cs.yml +6 -5
  24. data/config/locales/da.yml +1 -0
  25. data/config/locales/de.yml +1 -4
  26. data/config/locales/el.yml +1 -4
  27. data/config/locales/en.yml +5 -5
  28. data/config/locales/eo.yml +1 -0
  29. data/config/locales/es-MX.yml +6 -5
  30. data/config/locales/es-PY.yml +6 -5
  31. data/config/locales/es.yml +6 -5
  32. data/config/locales/et.yml +1 -0
  33. data/config/locales/eu.yml +21 -39
  34. data/config/locales/fi-plain.yml +6 -5
  35. data/config/locales/fi.yml +6 -5
  36. data/config/locales/fr-CA.yml +3 -5
  37. data/config/locales/fr.yml +3 -5
  38. data/config/locales/ga-IE.yml +1 -0
  39. data/config/locales/gl.yml +5 -0
  40. data/config/locales/hr.yml +1 -0
  41. data/config/locales/hu.yml +4 -0
  42. data/config/locales/id-ID.yml +1 -0
  43. data/config/locales/is-IS.yml +2 -1
  44. data/config/locales/it.yml +1 -4
  45. data/config/locales/ja.yml +6 -5
  46. data/config/locales/ko.yml +1 -0
  47. data/config/locales/lb.yml +1 -4
  48. data/config/locales/lt.yml +1 -188
  49. data/config/locales/lv.yml +1 -4
  50. data/config/locales/mt.yml +1 -0
  51. data/config/locales/nl.yml +1 -4
  52. data/config/locales/no.yml +1 -4
  53. data/config/locales/om-ET.yml +1 -0
  54. data/config/locales/pl.yml +5 -9
  55. data/config/locales/pt-BR.yml +2 -5
  56. data/config/locales/pt.yml +1 -4
  57. data/config/locales/ro-RO.yml +1 -6
  58. data/config/locales/ru.yml +1 -0
  59. data/config/locales/si-LK.yml +1 -0
  60. data/config/locales/sk.yml +1 -0
  61. data/config/locales/sl.yml +1 -0
  62. data/config/locales/so-SO.yml +1 -0
  63. data/config/locales/sr-CS.yml +1 -0
  64. data/config/locales/sv.yml +1 -4
  65. data/config/locales/sw-KE.yml +1 -0
  66. data/config/locales/ti-ER.yml +1 -0
  67. data/config/locales/tr-TR.yml +1 -4
  68. data/config/locales/uk.yml +1 -0
  69. data/config/locales/val-ES.yml +1 -0
  70. data/config/locales/vi.yml +1 -0
  71. data/config/locales/zh-CN.yml +1 -4
  72. data/config/locales/zh-TW.yml +1 -190
  73. data/lib/decidim/exporters/form_pdf.rb +2 -2
  74. data/lib/decidim/forms/{data_portability_user_answers_serializer.rb → download_your_data_user_answers_serializer.rb} +2 -2
  75. data/lib/decidim/forms/test/factories.rb +22 -13
  76. data/lib/decidim/forms/test/shared_examples/manage_questionnaire_answers.rb +2 -25
  77. data/lib/decidim/forms/test/shared_examples/manage_questionnaires/update_questions.rb +2 -2
  78. data/lib/decidim/forms/user_answers_serializer.rb +2 -2
  79. data/lib/decidim/forms/version.rb +1 -1
  80. data/lib/decidim/forms.rb +1 -1
  81. metadata +14 -19
  82. data/config/locales/fa-IR.yml +0 -1
  83. data/config/locales/gn-PY.yml +0 -1
  84. data/config/locales/ka-GE.yml +0 -1
  85. data/config/locales/kaa.yml +0 -1
  86. data/config/locales/lo-LA.yml +0 -1
  87. data/config/locales/oc-FR.yml +0 -1
@@ -1,3 +1,4 @@
1
+ ---
1
2
  pl:
2
3
  activemodel:
3
4
  attributes:
@@ -7,10 +8,10 @@ pl:
7
8
  selected_choices: Wybrane opcje
8
9
  question:
9
10
  max_choices: Maksymalna liczba opcji do wyboru
10
- question_type: Typ odpowiedzi
11
+ question_type: Typ
11
12
  questionnaire_question:
12
- mandatory: Odpowiedź wymagana
13
- max_characters: Limit znaków (zostaw 0, jeśli nie chcesz ustawiać limitu)
13
+ mandatory: Obowiązkowy
14
+ max_characters: Limit znaków (zostaw 0 jeśli nie chcesz ustawiać limitu)
14
15
  errors:
15
16
  models:
16
17
  answer:
@@ -37,7 +38,7 @@ pl:
37
38
  show: Pokaż odpowiedzi
38
39
  answer_option:
39
40
  answer_option: Opcja odpowiedzi
40
- free_text: Możliwość wpisania dowolnego tekstu
41
+ free_text: Dowolny tekst
41
42
  remove: Usuń
42
43
  statement: Komunikat
43
44
  answers:
@@ -118,10 +119,6 @@ pl:
118
119
  extension_allowlist: 'Dozwolone formaty:'
119
120
  images:
120
121
  dimensions: "%{width} × %{height} px"
121
- dimensions_info: 'Rozmiar obrazu będzie wynosił:'
122
- processors:
123
- resize_and_pad: Zmieniony i dopełniony do
124
- resize_to_fit: Dopasowany
125
122
  question_types:
126
123
  files: Pliki
127
124
  long_answer: Długa odpowiedź
@@ -131,7 +128,6 @@ pl:
131
128
  short_answer: Krótka odpowiedź
132
129
  single_option: Jedna opcja
133
130
  sorting: Sortowanie
134
- title_and_description: Tytuł i opis
135
131
  questionnaires:
136
132
  answer:
137
133
  invalid: Podczas wypełniania formularza wystąpiły błędy.
@@ -1,4 +1,5 @@
1
- pt-BR:
1
+ ---
2
+ pt:
2
3
  activemodel:
3
4
  attributes:
4
5
  answer:
@@ -118,10 +119,6 @@ pt-BR:
118
119
  extension_allowlist: 'Formatos aceitos:'
119
120
  images:
120
121
  dimensions: "%{width} x %{height} px"
121
- dimensions_info: 'Esta imagem será:'
122
- processors:
123
- resize_and_pad: Redimensionado e acolchoado para
124
- resize_to_fit: Redimensionado para caber
125
122
  question_types:
126
123
  files: Arquivos
127
124
  long_answer: Resposta longa
@@ -1,3 +1,4 @@
1
+ ---
1
2
  pt:
2
3
  activemodel:
3
4
  attributes:
@@ -118,10 +119,6 @@ pt:
118
119
  extension_allowlist: 'Formatos aceites:'
119
120
  images:
120
121
  dimensions: "%{width} x %{height} px"
121
- dimensions_info: 'Esta imagem será:'
122
- processors:
123
- resize_and_pad: Redimensionada e ajustada para
124
- resize_to_fit: Redimensionada para caber
125
122
  question_types:
126
123
  files: Ficheiros
127
124
  long_answer: Resposta longa
@@ -1,3 +1,4 @@
1
+ ---
1
2
  ro:
2
3
  activemodel:
3
4
  attributes:
@@ -128,10 +129,6 @@ ro:
128
129
  extension_allowlist: 'Formate acceptate:'
129
130
  images:
130
131
  dimensions: "%{width} x %{height} px"
131
- dimensions_info: 'Această imagine va fi:'
132
- processors:
133
- resize_and_pad: Redimensionat și padded la
134
- resize_to_fit: Redimensionată pentru a se potrivi
135
132
  question_types:
136
133
  files: Fișiere
137
134
  long_answer: Răspuns lung
@@ -142,8 +139,6 @@ ro:
142
139
  single_option: Opțiune unică
143
140
  sorting: Sortare
144
141
  title_and_description: Titlu și descriere
145
- questionnaire_answer_presenter:
146
- download_attachment: Descărcare atașament
147
142
  questionnaires:
148
143
  answer:
149
144
  invalid: A apărut o problemă la completarea chestionarului.
@@ -1,3 +1,4 @@
1
+ ---
1
2
  ru:
2
3
  decidim:
3
4
  forms:
@@ -1 +1,2 @@
1
+ ---
1
2
  si:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  sk:
2
3
  activemodel:
3
4
  attributes:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  sl:
2
3
  activemodel:
3
4
  attributes:
@@ -1 +1,2 @@
1
+ ---
1
2
  so:
@@ -1 +1,2 @@
1
+ ---
1
2
  sr:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  sv:
2
3
  activemodel:
3
4
  attributes:
@@ -128,10 +129,6 @@ sv:
128
129
  extension_allowlist: 'Godkända format:'
129
130
  images:
130
131
  dimensions: "%{width} x %{height} px"
131
- dimensions_info: 'Denna bild kommer att vara:'
132
- processors:
133
- resize_and_pad: Anpassad och vadderad till
134
- resize_to_fit: Anpassad för att passa
135
132
  question_types:
136
133
  files: Filer
137
134
  long_answer: Långt svar
@@ -1 +1,2 @@
1
+ ---
1
2
  sw:
@@ -1 +1,2 @@
1
+ ---
1
2
  ti:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  tr:
2
3
  activemodel:
3
4
  attributes:
@@ -113,10 +114,6 @@ tr:
113
114
  extension_allowlist: 'Kabul edilen biçimler:'
114
115
  images:
115
116
  dimensions: "%{width} x %{height} px"
116
- dimensions_info: 'Bu resim:'
117
- processors:
118
- resize_and_pad: Yeniden boyutlandırıldı ve dolduruldu
119
- resize_to_fit: Sığacak şekilde yeniden boyutlandırıldı
120
117
  question_types:
121
118
  long_answer: Uzun cevap
122
119
  matrix_multiple: Matris (Çoklu seçenek)
@@ -1 +1,2 @@
1
+ ---
1
2
  uk:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  val:
2
3
  decidim:
3
4
  forms:
@@ -1 +1,2 @@
1
+ ---
1
2
  vi:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  zh-CN:
2
3
  activemodel:
3
4
  attributes:
@@ -112,10 +113,6 @@ zh-CN:
112
113
  extension_allowlist: '接受的格式:'
113
114
  images:
114
115
  dimensions: "%{width} x %{height} px"
115
- dimensions_info: '这张图片将是:'
116
- processors:
117
- resize_and_pad: 缩放并填充到
118
- resize_to_fit: 调整到适合的
119
116
  question_types:
120
117
  long_answer: 长答案
121
118
  matrix_multiple: 矩阵(多选项)
@@ -1,191 +1,2 @@
1
+ ---
1
2
  zh-TW:
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: 必填的
13
- max_characters: 字元限制(如果不需要限制,請設為0)
14
- errors:
15
- models:
16
- answer:
17
- attributes:
18
- add_documents:
19
- needs_to_be_reattached: 需要重新附加
20
- body:
21
- too_long: 太長
22
- choices:
23
- missing: 尚未完成
24
- too_many: 太多了
25
- questionnaire:
26
- request_invalid: 處理請求時發生錯誤,請再試一次
27
- decidim:
28
- forms:
29
- admin:
30
- models:
31
- components:
32
- description: 說明
33
- tos: 服務條款
34
- questionnaires:
35
- actions:
36
- back: 返回問題
37
- show: 顯示回應
38
- answer_option:
39
- answer_option: 答案選項:
40
- free_text: 免費文字
41
- remove: 移除
42
- statement: 聲明
43
- answers:
44
- actions:
45
- back: 返回回覆
46
- export: 匯出
47
- show: 顯示答案
48
- empty: 目前尚未回答
49
- export:
50
- answer:
51
- title: '回應 #%{number}'
52
- export_response:
53
- title: 調查問卷使用者回答_%{token}
54
- index:
55
- title: "%{total} 個回應總數"
56
- show:
57
- title: '回答#%{number}'
58
- display_condition:
59
- answer_option: 答案選項
60
- condition_question: 問題
61
- condition_type: 條件
62
- condition_types:
63
- answered: 已回答
64
- equal: 等於
65
- match: 包含文字
66
- not_answered: 未回答
67
- not_equal: 不等於
68
- condition_value: 包含文字
69
- display_condition: 顯示條件
70
- mandatory: 這個條件必須始終滿足,無論其他條件的狀態如何。
71
- remove: 移除
72
- save_warning: 在配置顯示條件之前,請記得保存表單。
73
- select_answer_option: 選擇答案選項
74
- select_condition_question: 選取一個問題
75
- select_condition_type: 選擇一個條件類型
76
- edit:
77
- save: 儲存
78
- title: 編輯問卷內容
79
- form:
80
- add_question: 新增問題
81
- add_separator: 新增分隔線
82
- add_title_and_description: 新增標題與描述
83
- already_answered_warning: 已有使用者回答此表單,因此您無法修改問題。
84
- collapse: 收起所有問題
85
- expand: 展開所有問題
86
- preview: 預覽
87
- title: 編輯問卷表單%{questionnaire_for}
88
- unpublished_warning: 此表單尚未發佈。您可以修改其問題,但這樣做將刪除目前的回答。
89
- matrix_row:
90
- matrix_row: 列
91
- remove: 移除
92
- statement: 聲明
93
- question:
94
- add_answer_option: 新增答案選項
95
- add_display_condition: 新增顯示條件
96
- add_display_condition_info: 請先儲存表單再設定顯示條件
97
- add_matrix_row: 新增列
98
- any: 任何
99
- collapse: 收回
100
- description: 說明
101
- down: 向下
102
- expand: 展開
103
- question: 問題
104
- remove: 移除
105
- statement: 聲明
106
- up: 往上
107
- separator:
108
- down: 向下
109
- remove: 移除
110
- separator: 分隔線
111
- up: 往上
112
- title_and_description:
113
- collapse: 收回
114
- description: 說明
115
- down: 向下
116
- expand: 展開
117
- remove: 移除
118
- title: 標題
119
- title_and_description: 標題和描述
120
- up: 往上
121
- update:
122
- invalid: 儲存表單時發生問題。
123
- success: 表單已成功儲存。
124
- errors:
125
- answer:
126
- body: 內容不能為空
127
- files:
128
- extension_allowlist: '可用格式'
129
- images:
130
- dimensions: "%{width} x %{height} 像素"
131
- dimensions_info: '這張圖片會是:'
132
- processors:
133
- resize_and_pad: 調整大小並填充為
134
- resize_to_fit: 重新調整大小以符合
135
- question_types:
136
- files: 檔案
137
- long_answer: 長回答
138
- matrix_multiple: 矩陣(多重選項)
139
- matrix_single: 矩陣(單一選項)
140
- multiple_option: 多選
141
- short_answer: 簡答
142
- single_option: 單選
143
- sorting: 排序中
144
- title_and_description: 標題和描述
145
- questionnaire_answer_presenter:
146
- download_attachment: 下載附件
147
- questionnaires:
148
- answer:
149
- invalid: 回答表單時出現問題
150
- max_choices_alert: 選擇的項目太多了
151
- success: 表單已成功回答
152
- question:
153
- max_choices: '最多選擇數量: %{n}'
154
- show:
155
- answer_questionnaire:
156
- anonymous_user_message: <a href="%{sign_in_link}">使用現有帳號登入</a> 或 <a href="%{sign_up_link}">註冊新帳戶</a> 以回答此表單。
157
- title: 回答表單
158
- current_step: 步驟%{step}
159
- of_total_steps: 的%{total_steps}
160
- questionnaire_answered:
161
- body: 您已經回答過此表格。
162
- title: 已經回答
163
- questionnaire_closed:
164
- body: 該表格已關閉,無法回答。
165
- title: 表單已關閉
166
- questionnaire_for_private_users:
167
- body: 此表單僅適用於私人使用者
168
- title: 表單已關閉
169
- questionnaire_js_disabled:
170
- body: 此表單的某些功能將被禁用。為了改善您的體驗,請在您的瀏覽器中啟用JavaScript。
171
- title: JavaScript已停用
172
- questionnaire_not_published:
173
- body: 此表單尚未發佈。
174
- tos_agreement: 透過參與,您同意其服務條款
175
- step_navigation:
176
- show:
177
- are_you_sure: 此操作無法撤消,您將無法編輯您的答案。您確定嗎?
178
- back: 返回
179
- continue: 繼續
180
- submit: 提交
181
- user_answers_serializer:
182
- body: 回答
183
- completion: 完成
184
- created_at: 回答時間
185
- id: 回答 ID
186
- ip_hash: IP Hash
187
- question: 問題
188
- registered: 已註冊
189
- session_token: 使用者識別碼
190
- unregistered: 未註冊
191
- user_status: 用戶狀態
@@ -15,11 +15,11 @@ module Decidim
15
15
  end
16
16
 
17
17
  def template
18
- "decidim/forms/admin/questionnaires/answers/export/pdf.html.erb"
18
+ "decidim/forms/admin/questionnaires/answers/export/pdf"
19
19
  end
20
20
 
21
21
  def layout
22
- "decidim/forms/admin/questionnaires/questionnaire_answers.html.erb"
22
+ "decidim/forms/admin/questionnaires/questionnaire_answers"
23
23
  end
24
24
 
25
25
  def locals
@@ -2,9 +2,9 @@
2
2
 
3
3
  module Decidim
4
4
  module Forms
5
- class DataPortabilityUserAnswersSerializer < Decidim::Exporters::Serializer
5
+ class DownloadYourDataUserAnswersSerializer < Decidim::Exporters::Serializer
6
6
  include Decidim::TranslationsHelper
7
- # Serializes an user answer for data portability
7
+ # Serializes an user answer for download your data
8
8
  def serialize
9
9
  {
10
10
  id: resource.id,
@@ -29,38 +29,47 @@ FactoryBot.define do
29
29
  end
30
30
 
31
31
  trait :with_all_questions do
32
- questions do
32
+ after(:build) do |questionaire, _evaluator|
33
33
  position = 0
34
- qs = %w(short_answer long_answer).collect do |text_question_type|
35
- q = build(:questionnaire_question, question_type: text_question_type, position: position)
34
+ %w(short_answer long_answer).collect do |text_question_type|
35
+ q = create(:questionnaire_question,
36
+ question_type: text_question_type,
37
+ position: position,
38
+ questionnaire: questionaire)
36
39
  position += 1
37
- q
40
+ questionaire.questions << q
38
41
  end
39
42
 
40
43
  %w(single_option multiple_option).each do |option_question_type|
41
- q = build(:questionnaire_question, :with_answer_options, question_type: option_question_type, position: position)
42
- position += 1
43
- qs << q
44
+ q = create(:questionnaire_question, :with_answer_options,
45
+ question_type: option_question_type,
46
+ position: position,
47
+ questionnaire: questionaire)
44
48
  q.display_conditions.build(
45
- condition_question: qs[q.position - 2],
49
+ condition_question: questionaire.questions[q.position - 1],
46
50
  question: q,
47
51
  condition_type: :answered,
48
52
  mandatory: true
49
53
  )
54
+ questionaire.questions << q
55
+ position += 1
50
56
  end
51
57
 
52
58
  %w(matrix_single matrix_multiple).collect do |matrix_question_type|
53
- q = build(:questionnaire_question, :with_answer_options, question_type: matrix_question_type, position: position, body: generate_localized_title)
54
- position += 1
55
- qs << q
59
+ q = build(:questionnaire_question, :with_answer_options,
60
+ question_type: matrix_question_type,
61
+ position: position,
62
+ body: generate_localized_title,
63
+ questionnaire: questionaire)
56
64
  q.display_conditions.build(
57
- condition_question: qs[q.position - 2],
65
+ condition_question: questionaire.questions[q.position - 1],
58
66
  question: q,
59
67
  condition_type: :answered,
60
68
  mandatory: true
61
69
  )
70
+ questionaire.questions << q
71
+ position += 1
62
72
  end
63
- qs
64
73
  end
65
74
  end
66
75
 
@@ -10,11 +10,8 @@ shared_examples_for "manage questionnaire answers" do
10
10
  let!(:second) do
11
11
  create :questionnaire_question, questionnaire: questionnaire, position: 2, question_type: "single_option"
12
12
  end
13
- let!(:third) do
14
- create :questionnaire_question, questionnaire: questionnaire, position: 3, question_type: "files"
15
- end
16
13
  let(:questions) do
17
- [first, second, third]
14
+ [first, second]
18
15
  end
19
16
 
20
17
  context "when there are no answers" do
@@ -28,7 +25,6 @@ shared_examples_for "manage questionnaire answers" do
28
25
  let!(:answer1) { create :answer, questionnaire: questionnaire, question: first }
29
26
  let!(:answer2) { create :answer, body: "second answer", questionnaire: questionnaire, question: first }
30
27
  let!(:answer3) { create :answer, questionnaire: questionnaire, question: second }
31
- let!(:file_answer) { create :answer, :with_attachments, questionnaire: questionnaire, question: third, body: nil, user: answer3.user, session_token: answer3.session_token }
32
28
 
33
29
  it "shows the answer admin link" do
34
30
  visit questionnaire_edit_path
@@ -49,7 +45,7 @@ shared_examples_for "manage questionnaire answers" do
49
45
  end
50
46
 
51
47
  it "shows the percentage" do
52
- expect(page).to have_content("33%")
48
+ expect(page).to have_content("50%")
53
49
  end
54
50
 
55
51
  it "has a detail link" do
@@ -125,25 +121,6 @@ shared_examples_for "manage questionnaire answers" do
125
121
  expect(page).not_to have_link("Next ›")
126
122
  expect(page).to have_link("‹ Prev")
127
123
  end
128
-
129
- it "third answer has download link for the attachments" do
130
- click_link answer3.session_token, match: :first
131
- expect(page).to have_content(translated(file_answer.attachments.first.title))
132
- expect(page).to have_content(translated(file_answer.attachments.second.title))
133
- end
134
-
135
- context "when the file answer does not have a title for the attachment" do
136
- let!(:file_answer) { create :answer, questionnaire: questionnaire, question: third, body: nil, user: answer3.user, session_token: answer3.session_token }
137
-
138
- before do
139
- create :attachment, :with_image, attached_to: file_answer, title: {}, description: {}
140
- end
141
-
142
- it "third answer has download link for the attachments" do
143
- click_link answer3.session_token, match: :first
144
- expect(page).to have_content("Download attachment")
145
- end
146
- end
147
124
  end
148
125
  end
149
126
  end
@@ -344,11 +344,11 @@ shared_examples_for "update questions" do
344
344
  end
345
345
 
346
346
  context "when a questionnaire has multiple existing questions" do
347
- let!(:question_1) do
347
+ let!(:question1) do
348
348
  create(:questionnaire_question, questionnaire: questionnaire, body: first_body, position: 0)
349
349
  end
350
350
 
351
- let!(:question_2) do
351
+ let!(:question2) do
352
352
  create(:questionnaire_question, questionnaire: questionnaire, body: second_body, position: 1)
353
353
  end
354
354
 
@@ -79,7 +79,7 @@ module Decidim
79
79
  end
80
80
 
81
81
  def normalize_matrix_choices(answer, choices)
82
- answer.question.matrix_rows.map do |matrix_row|
82
+ answer.question.matrix_rows.to_h do |matrix_row|
83
83
  row_body = translated_attribute(matrix_row.body)
84
84
 
85
85
  row_choices = answer.question.answer_options.map do |answer_option|
@@ -88,7 +88,7 @@ module Decidim
88
88
  end
89
89
 
90
90
  [row_body, row_choices]
91
- end.to_h
91
+ end
92
92
  end
93
93
 
94
94
  def answer_translated_attribute_name(attribute)
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds the decidim-forms version.
5
5
  module Forms
6
6
  def self.version
7
- "0.26.7"
7
+ "0.27.0.rc1"
8
8
  end
9
9
  end
10
10
  end
data/lib/decidim/forms.rb CHANGED
@@ -9,7 +9,7 @@ module Decidim
9
9
  # This namespace holds the logic of the `Forms`.
10
10
  module Forms
11
11
  autoload :UserAnswersSerializer, "decidim/forms/user_answers_serializer"
12
- autoload :DataPortabilityUserAnswersSerializer, "decidim/forms/data_portability_user_answers_serializer"
12
+ autoload :DownloadYourDataUserAnswersSerializer, "decidim/forms/download_your_data_user_answers_serializer"
13
13
  end
14
14
 
15
15
  module Exporters