decidim-forms 0.21.0 → 0.22.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 (92) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/config/admin/decidim_forms_manifest.js +1 -0
  3. data/app/assets/images/decidim/surveys/icon.svg +1 -19
  4. data/app/assets/javascripts/decidim/forms/admin/collapsible_questions.js.es6 +13 -0
  5. data/app/assets/javascripts/decidim/forms/admin/forms.js.es6 +95 -7
  6. data/app/assets/javascripts/decidim/forms/admin/live_text_update.component.js.es6 +52 -0
  7. data/app/assets/javascripts/decidim/forms/forms.js.es6 +42 -1
  8. data/app/assets/javascripts/decidim/forms/max_choices_alert.component.js.es6 +44 -0
  9. data/app/assets/stylesheets/decidim/forms/forms.scss +39 -0
  10. data/app/cells/decidim/forms/matrix_readonly/show.erb +5 -0
  11. data/app/cells/decidim/forms/matrix_readonly_cell.rb +12 -0
  12. data/app/cells/decidim/forms/question_readonly/show.erb +5 -1
  13. data/app/cells/decidim/forms/question_readonly_cell.rb +5 -0
  14. data/app/cells/decidim/forms/step_navigation/show.erb +35 -0
  15. data/app/cells/decidim/forms/step_navigation_cell.rb +46 -0
  16. data/app/commands/decidim/forms/admin/update_questionnaire.rb +8 -0
  17. data/app/commands/decidim/forms/answer_questionnaire.rb +2 -1
  18. data/app/controllers/decidim/forms/admin/concerns/has_questionnaire.rb +6 -2
  19. data/app/controllers/decidim/forms/concerns/has_questionnaire.rb +11 -2
  20. data/app/forms/decidim/forms/admin/question_form.rb +20 -1
  21. data/app/forms/decidim/forms/admin/question_matrix_row_form.rb +26 -0
  22. data/app/forms/decidim/forms/answer_choice_form.rb +1 -0
  23. data/app/forms/decidim/forms/answer_form.rb +16 -2
  24. data/app/forms/decidim/forms/questionnaire_form.rb +25 -3
  25. data/app/helpers/decidim/forms/admin/application_helper.rb +16 -0
  26. data/app/models/decidim/forms/answer_choice.rb +7 -0
  27. data/app/models/decidim/forms/question.rb +18 -2
  28. data/app/models/decidim/forms/question_matrix_row.rb +12 -0
  29. data/app/views/decidim/forms/admin/questionnaires/_answer_option_template.html.erb +1 -1
  30. data/app/views/decidim/forms/admin/questionnaires/_form.html.erb +37 -4
  31. data/app/views/decidim/forms/admin/questionnaires/_matrix_row.html.erb +34 -0
  32. data/app/views/decidim/forms/admin/questionnaires/_matrix_row_template.html.erb +7 -0
  33. data/app/views/decidim/forms/admin/questionnaires/_question.html.erb +29 -6
  34. data/app/views/decidim/forms/admin/questionnaires/_separator.html.erb +41 -0
  35. data/app/views/decidim/forms/questionnaires/_answer.html.erb +21 -92
  36. data/app/views/decidim/forms/questionnaires/answers/_long_answer.html.erb +1 -0
  37. data/app/views/decidim/forms/questionnaires/answers/_matrix_multiple.html.erb +43 -0
  38. data/app/views/decidim/forms/questionnaires/answers/_matrix_single.html.erb +43 -0
  39. data/app/views/decidim/forms/questionnaires/answers/_multiple_option.html.erb +23 -0
  40. data/app/views/decidim/forms/questionnaires/answers/_separator.html.erb +1 -0
  41. data/app/views/decidim/forms/questionnaires/answers/_short_answer.html.erb +1 -0
  42. data/app/views/decidim/forms/questionnaires/answers/_single_option.html.erb +30 -0
  43. data/app/views/decidim/forms/questionnaires/answers/_sorting.html.erb +23 -0
  44. data/app/views/decidim/forms/questionnaires/show.html.erb +57 -25
  45. data/config/locales/ar.yml +7 -3
  46. data/config/locales/bg-BG.yml +16 -0
  47. data/config/locales/ca.yml +35 -3
  48. data/config/locales/cs.yml +35 -3
  49. data/config/locales/da-DK.yml +1 -0
  50. data/config/locales/de.yml +41 -3
  51. data/config/locales/el.yml +119 -0
  52. data/config/locales/en.yml +35 -3
  53. data/config/locales/es-MX.yml +35 -3
  54. data/config/locales/es-PY.yml +35 -3
  55. data/config/locales/es.yml +35 -3
  56. data/config/locales/et-EE.yml +1 -0
  57. data/config/locales/eu.yml +7 -3
  58. data/config/locales/fi-plain.yml +35 -3
  59. data/config/locales/fi.yml +36 -4
  60. data/config/locales/fr-CA.yml +120 -0
  61. data/config/locales/fr.yml +36 -4
  62. data/config/locales/ga-IE.yml +1 -0
  63. data/config/locales/gl.yml +7 -3
  64. data/config/locales/hr-HR.yml +1 -0
  65. data/config/locales/hu.yml +11 -3
  66. data/config/locales/id-ID.yml +7 -3
  67. data/config/locales/it.yml +36 -4
  68. data/config/locales/ja-JP.yml +120 -0
  69. data/config/locales/lt-LT.yml +1 -0
  70. data/config/locales/lv-LV.yml +119 -0
  71. data/config/locales/mt-MT.yml +1 -0
  72. data/config/locales/nl.yml +35 -3
  73. data/config/locales/no.yml +7 -3
  74. data/config/locales/pl.yml +63 -25
  75. data/config/locales/pt-BR.yml +8 -4
  76. data/config/locales/pt.yml +62 -24
  77. data/config/locales/ro-RO.yml +118 -0
  78. data/config/locales/ru.yml +4 -1
  79. data/config/locales/sk-SK.yml +88 -0
  80. data/config/locales/sk.yml +92 -0
  81. data/config/locales/sl.yml +5 -0
  82. data/config/locales/sr-CS.yml +1 -0
  83. data/config/locales/sv.yml +38 -6
  84. data/config/locales/tr-TR.yml +7 -3
  85. data/db/migrate/20200225123810_create_decidim_forms_question_matrix_rows.rb +11 -0
  86. data/db/migrate/20200304152939_add_matrix_row_id_to_decidim_forms_answer_choices.rb +11 -0
  87. data/lib/decidim/forms/test/factories.rb +20 -0
  88. data/lib/decidim/forms/test/shared_examples/has_questionnaire.rb +313 -36
  89. data/lib/decidim/forms/test/shared_examples/manage_questionnaires.rb +346 -15
  90. data/lib/decidim/forms/user_answers_serializer.rb +21 -4
  91. data/lib/decidim/forms/version.rb +1 -1
  92. metadata +45 -8
@@ -28,15 +28,32 @@ module Decidim
28
28
  private
29
29
 
30
30
  def normalize_body(answer)
31
- answer.body || normalize_choices(answer.choices)
31
+ answer.body || normalize_choices(answer, answer.choices)
32
32
  end
33
33
 
34
- def normalize_choices(choices)
35
- choices.map do |choice|
36
- choice.try(:custom_body) || choice.try(:body)
34
+ def normalize_choices(answer, choices)
35
+ if answer.question.matrix?
36
+ normalize_matrix_choices(answer, choices)
37
+ else
38
+ choices.map do |choice|
39
+ choice.try(:custom_body) || choice.try(:body)
40
+ end
37
41
  end
38
42
  end
39
43
 
44
+ def normalize_matrix_choices(answer, choices)
45
+ answer.question.matrix_rows.map do |matrix_row|
46
+ row_body = translated_attribute(matrix_row.body)
47
+
48
+ row_choices = answer.question.answer_options.map do |answer_option|
49
+ choice = choices.find_by(matrix_row: matrix_row, answer_option: answer_option)
50
+ choice.try(:custom_body) || choice.try(:body)
51
+ end
52
+
53
+ [row_body, row_choices]
54
+ end.to_h
55
+ end
56
+
40
57
  def answer_translated_attribute_name(attribute)
41
58
  I18n.t(attribute.to_sym, scope: "decidim.forms.user_answers_serializer")
42
59
  end
@@ -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.21.0"
7
+ "0.22.0"
8
8
  end
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-forms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.0
4
+ version: 0.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey Peroy
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2020-04-08 00:00:00.000000000 Z
14
+ date: 2020-09-01 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: decidim-core
@@ -19,42 +19,42 @@ dependencies:
19
19
  requirements:
20
20
  - - '='
21
21
  - !ruby/object:Gem::Version
22
- version: 0.21.0
22
+ version: 0.22.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - '='
28
28
  - !ruby/object:Gem::Version
29
- version: 0.21.0
29
+ version: 0.22.0
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: decidim-admin
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  requirements:
34
34
  - - '='
35
35
  - !ruby/object:Gem::Version
36
- version: 0.21.0
36
+ version: 0.22.0
37
37
  type: :development
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - '='
42
42
  - !ruby/object:Gem::Version
43
- version: 0.21.0
43
+ version: 0.22.0
44
44
  - !ruby/object:Gem::Dependency
45
45
  name: decidim-dev
46
46
  requirement: !ruby/object:Gem::Requirement
47
47
  requirements:
48
48
  - - '='
49
49
  - !ruby/object:Gem::Version
50
- version: 0.21.0
50
+ version: 0.22.0
51
51
  type: :development
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
55
  - - '='
56
56
  - !ruby/object:Gem::Version
57
- version: 0.21.0
57
+ version: 0.22.0
58
58
  description: A forms gem for decidim.
59
59
  email:
60
60
  - josepjaume@gmail.com
@@ -73,21 +73,29 @@ files:
73
73
  - app/assets/images/decidim/surveys/icon.svg
74
74
  - app/assets/javascripts/decidim/forms/admin/auto_buttons_by_min_items.component.js.es6
75
75
  - app/assets/javascripts/decidim/forms/admin/auto_select_options_by_total_items.component.js.es6
76
+ - app/assets/javascripts/decidim/forms/admin/collapsible_questions.js.es6
76
77
  - app/assets/javascripts/decidim/forms/admin/forms.js.es6
78
+ - app/assets/javascripts/decidim/forms/admin/live_text_update.component.js.es6
77
79
  - app/assets/javascripts/decidim/forms/autosortable_checkboxes.component.js.es6
78
80
  - app/assets/javascripts/decidim/forms/forms.js.es6
81
+ - app/assets/javascripts/decidim/forms/max_choices_alert.component.js.es6
79
82
  - app/assets/javascripts/decidim/forms/option_attached_inputs.component.js.es6
80
83
  - app/assets/stylesheets/decidim/forms/forms.scss
81
84
  - app/cells/decidim/forms/answer_readonly/show.erb
82
85
  - app/cells/decidim/forms/answer_readonly_cell.rb
86
+ - app/cells/decidim/forms/matrix_readonly/show.erb
87
+ - app/cells/decidim/forms/matrix_readonly_cell.rb
83
88
  - app/cells/decidim/forms/question_readonly/show.erb
84
89
  - app/cells/decidim/forms/question_readonly_cell.rb
90
+ - app/cells/decidim/forms/step_navigation/show.erb
91
+ - app/cells/decidim/forms/step_navigation_cell.rb
85
92
  - app/commands/decidim/forms/admin/update_questionnaire.rb
86
93
  - app/commands/decidim/forms/answer_questionnaire.rb
87
94
  - app/controllers/decidim/forms/admin/concerns/has_questionnaire.rb
88
95
  - app/controllers/decidim/forms/concerns/has_questionnaire.rb
89
96
  - app/forms/decidim/forms/admin/answer_option_form.rb
90
97
  - app/forms/decidim/forms/admin/question_form.rb
98
+ - app/forms/decidim/forms/admin/question_matrix_row_form.rb
91
99
  - app/forms/decidim/forms/admin/questionnaire_form.rb
92
100
  - app/forms/decidim/forms/answer_choice_form.rb
93
101
  - app/forms/decidim/forms/answer_form.rb
@@ -100,6 +108,7 @@ files:
100
108
  - app/models/decidim/forms/answer_option.rb
101
109
  - app/models/decidim/forms/application_record.rb
102
110
  - app/models/decidim/forms/question.rb
111
+ - app/models/decidim/forms/question_matrix_row.rb
103
112
  - app/models/decidim/forms/questionnaire.rb
104
113
  - app/queries/decidim/forms/questionnaire_user_answers.rb
105
114
  - app/types/decidim/forms/answer_option_type.rb
@@ -108,15 +117,28 @@ files:
108
117
  - app/views/decidim/forms/admin/questionnaires/_answer_option.html.erb
109
118
  - app/views/decidim/forms/admin/questionnaires/_answer_option_template.html.erb
110
119
  - app/views/decidim/forms/admin/questionnaires/_form.html.erb
120
+ - app/views/decidim/forms/admin/questionnaires/_matrix_row.html.erb
121
+ - app/views/decidim/forms/admin/questionnaires/_matrix_row_template.html.erb
111
122
  - app/views/decidim/forms/admin/questionnaires/_question.html.erb
123
+ - app/views/decidim/forms/admin/questionnaires/_separator.html.erb
112
124
  - app/views/decidim/forms/admin/questionnaires/edit.html.erb
113
125
  - app/views/decidim/forms/questionnaires/_answer.html.erb
126
+ - app/views/decidim/forms/questionnaires/answers/_long_answer.html.erb
127
+ - app/views/decidim/forms/questionnaires/answers/_matrix_multiple.html.erb
128
+ - app/views/decidim/forms/questionnaires/answers/_matrix_single.html.erb
129
+ - app/views/decidim/forms/questionnaires/answers/_multiple_option.html.erb
130
+ - app/views/decidim/forms/questionnaires/answers/_separator.html.erb
131
+ - app/views/decidim/forms/questionnaires/answers/_short_answer.html.erb
132
+ - app/views/decidim/forms/questionnaires/answers/_single_option.html.erb
133
+ - app/views/decidim/forms/questionnaires/answers/_sorting.html.erb
114
134
  - app/views/decidim/forms/questionnaires/show.html.erb
115
135
  - config/locales/ar-SA.yml
116
136
  - config/locales/ar.yml
137
+ - config/locales/bg-BG.yml
117
138
  - config/locales/ca.yml
118
139
  - config/locales/cs-CZ.yml
119
140
  - config/locales/cs.yml
141
+ - config/locales/da-DK.yml
120
142
  - config/locales/de.yml
121
143
  - config/locales/el-GR.yml
122
144
  - config/locales/el.yml
@@ -125,22 +147,35 @@ files:
125
147
  - config/locales/es-MX.yml
126
148
  - config/locales/es-PY.yml
127
149
  - config/locales/es.yml
150
+ - config/locales/et-EE.yml
128
151
  - config/locales/eu.yml
129
152
  - config/locales/fi-pl.yml
130
153
  - config/locales/fi-plain.yml
131
154
  - config/locales/fi.yml
155
+ - config/locales/fr-CA.yml
132
156
  - config/locales/fr.yml
157
+ - config/locales/ga-IE.yml
133
158
  - config/locales/gl.yml
159
+ - config/locales/hr-HR.yml
134
160
  - config/locales/hu.yml
135
161
  - config/locales/id-ID.yml
136
162
  - config/locales/is-IS.yml
137
163
  - config/locales/it.yml
164
+ - config/locales/ja-JP.yml
165
+ - config/locales/lt-LT.yml
166
+ - config/locales/lv-LV.yml
167
+ - config/locales/mt-MT.yml
138
168
  - config/locales/nl.yml
139
169
  - config/locales/no.yml
140
170
  - config/locales/pl.yml
141
171
  - config/locales/pt-BR.yml
142
172
  - config/locales/pt.yml
173
+ - config/locales/ro-RO.yml
143
174
  - config/locales/ru.yml
175
+ - config/locales/sk-SK.yml
176
+ - config/locales/sk.yml
177
+ - config/locales/sl.yml
178
+ - config/locales/sr-CS.yml
144
179
  - config/locales/sv.yml
145
180
  - config/locales/tr-TR.yml
146
181
  - config/locales/uk.yml
@@ -151,6 +186,8 @@ files:
151
186
  - db/migrate/20180405015147_create_decidim_forms_answer_choices.rb
152
187
  - db/migrate/20190315203056_add_session_token_to_decidim_forms_answers.rb
153
188
  - db/migrate/20190930094710_add_ip_hash_to_decidim_form_answers.rb
189
+ - db/migrate/20200225123810_create_decidim_forms_question_matrix_rows.rb
190
+ - db/migrate/20200304152939_add_matrix_row_id_to_decidim_forms_answer_choices.rb
154
191
  - lib/decidim/api/questionnaire_entity_interface.rb
155
192
  - lib/decidim/forms.rb
156
193
  - lib/decidim/forms/admin.rb