Skip to content

Commit b8b38c8

Browse files
committed
Make questions publicable
1 parent d7e66dc commit b8b38c8

5 files changed

Lines changed: 28 additions & 4 deletions

File tree

decidim-forms/app/commands/decidim/forms/admin/update_questionnaire.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ def update_questionnaire_question(form_question)
4949
mandatory: form_question.mandatory,
5050
question_type: form_question.question_type,
5151
max_choices: form_question.max_choices,
52-
max_characters: form_question.max_characters
52+
max_characters: form_question.max_characters,
53+
published_at: Time.current
5354
}
5455

5556
update_nested_model(form_question, question_attributes, @questionnaire.questions) do |question|

decidim-forms/app/models/decidim/forms/question.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ module Forms
55
# The data store for a Question in the Decidim::Forms component.
66
class Question < Forms::ApplicationRecord
77
include Decidim::TranslatableResource
8+
include Decidim::Publicable
89

910
QUESTION_TYPES = %w(short_answer long_answer single_option multiple_option sorting files matrix_single matrix_multiple).freeze
1011
SEPARATOR_TYPE = "separator"
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# frozen_string_literal: true
2+
3+
class AddPublishedAtToDecidimQuestions < ActiveRecord::Migration[5.2]
4+
class Question < ApplicationRecord
5+
self.table_name = :decidim_forms_questions
6+
end
7+
8+
def change
9+
add_column :decidim_forms_questions, :published_at, :datetime, index: true
10+
11+
Question.reset_column_information
12+
13+
Question.find_each do |question|
14+
question.published_at = Time.current
15+
question.save!
16+
end
17+
end
18+
end

decidim-forms/lib/decidim/forms/test/factories.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
end
5050
mandatory { false }
5151
position { 0 }
52+
published_at { Time.current }
5253
question_type { Decidim::Forms::Question::TYPES.first }
5354
questionnaire
5455

decidim-forms/spec/commands/decidim/forms/admin/update_questionnaire_spec.rb

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -239,27 +239,30 @@ module Admin
239239
expect(questionnaire.questions[1].description["en"]).to eq(form_params["questions"]["1"]["description"]["en"])
240240
expect(questionnaire.questions[1].question_type).to eq("long_answer")
241241
expect(questionnaire.questions[1].max_characters).to eq(100)
242-
expect(questionnaire.questions[2].answer_options[1]["body"]["en"]).to eq(form_params["questions"]["2"]["answer_options"]["1"]["body"]["en"])
242+
expect(questionnaire.questions[1].published_at).not_to be_nil
243243

244244
expect(questionnaire.questions[2].question_type).to eq("single_option")
245245
expect(questionnaire.questions[2].max_choices).to be_nil
246246
expect(questionnaire.questions[2].max_characters).to eq(0)
247-
248-
expect(questionnaire.questions[3].question_type).to eq("multiple_option")
247+
expect(questionnaire.questions[2].answer_options[1]["body"]["en"]).to eq(form_params["questions"]["2"]["answer_options"]["1"]["body"]["en"])
248+
expect(questionnaire.questions[2].published_at).not_to be_nil
249249
expect(questionnaire.questions[2].answer_options[0].free_text).to eq(false)
250250
expect(questionnaire.questions[2].max_choices).to be_nil
251251

252252
expect(questionnaire.questions[3].question_type).to eq("multiple_option")
253253
expect(questionnaire.questions[3].answer_options[0].free_text).to eq(true)
254254
expect(questionnaire.questions[3].max_choices).to eq(2)
255+
expect(questionnaire.questions[3].published_at).not_to be_nil
255256

256257
expect(questionnaire.questions[4].question_type).to eq("matrix_single")
257258
expect(questionnaire.questions[4].answer_options[0].free_text).to eq(true)
258259
expect(questionnaire.questions[4].matrix_rows[0].body["en"]).to eq(form_params["questions"]["4"]["matrix_rows"]["0"]["body"]["en"])
260+
expect(questionnaire.questions[4].published_at).not_to be_nil
259261

260262
expect(questionnaire.questions[5].question_type).to eq("matrix_multiple")
261263
expect(questionnaire.questions[5].answer_options[0].free_text).to eq(true)
262264
expect(questionnaire.questions[5].matrix_rows[0].body["en"]).to eq(form_params["questions"]["5"]["matrix_rows"]["0"]["body"]["en"])
265+
expect(questionnaire.questions[5].published_at).not_to be_nil
263266
end
264267
end
265268

0 commit comments

Comments
 (0)