decidim-forms 0.21.0 → 0.22.0

Sign up to get free protection for your applications and to get access to all the features.
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