Changes the way question#copy_attributes_from_proposal works
This commit is contained in:
@@ -43,7 +43,8 @@ class Poll::Question < ActiveRecord::Base
|
|||||||
self.description = proposal.description
|
self.description = proposal.description
|
||||||
self.summary = proposal.summary
|
self.summary = proposal.summary
|
||||||
self.question = proposal.question
|
self.question = proposal.question
|
||||||
self.geozones = Geozone.all
|
self.all_geozones = true
|
||||||
|
self.valid_answers = I18n.t('poll_questions.default_valid_answers')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -56,9 +57,10 @@ class Poll::Question < ActiveRecord::Base
|
|||||||
|
|
||||||
where(poll_id: Poll.answerable_by(user).pluck(:id))
|
where(poll_id: Poll.answerable_by(user).pluck(:id))
|
||||||
.joins('LEFT OUTER JOIN "geozones_poll_questions" ON "geozones_poll_questions"."question_id" = "poll_questions"."id"')
|
.joins('LEFT OUTER JOIN "geozones_poll_questions" ON "geozones_poll_questions"."question_id" = "poll_questions"."id"')
|
||||||
.where('(poll_questions.all_geozones = ? or geozones_poll_questions.geozone_id = ?)',
|
.where('(poll_questions.all_geozones = ? OR geozones_poll_questions.geozone_id = ?)',
|
||||||
true,
|
true,
|
||||||
user.geozone_id || -1) # user.geozone_id can be nil, which would throw errors on sql
|
user.geozone_id || -1) # user.geozone_id can be nil, which would throw errors on sql
|
||||||
|
.distinct
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -385,6 +385,8 @@ en:
|
|||||||
cant_answer_incoming: "This poll has not yet started."
|
cant_answer_incoming: "This poll has not yet started."
|
||||||
cant_answer_expired: "This poll has finished."
|
cant_answer_expired: "This poll has finished."
|
||||||
cant_answer_wrong_geozone: "The following questions are not available in your geozone."
|
cant_answer_wrong_geozone: "The following questions are not available in your geozone."
|
||||||
|
poll_questions:
|
||||||
|
default_valid_answers: "Yes, No"
|
||||||
proposal_ballots:
|
proposal_ballots:
|
||||||
title: "Votings"
|
title: "Votings"
|
||||||
description_html: "The following citizen proposals that have reached the <strong>required supports</strong> and will be voted."
|
description_html: "The following citizen proposals that have reached the <strong>required supports</strong> and will be voted."
|
||||||
|
|||||||
@@ -15,12 +15,13 @@ RSpec.describe Poll::Question, type: :model do
|
|||||||
p = create(:proposal)
|
p = create(:proposal)
|
||||||
q = create(:poll_question)
|
q = create(:poll_question)
|
||||||
q.copy_attributes_from_proposal(p)
|
q.copy_attributes_from_proposal(p)
|
||||||
|
expect(q.valid_answers).to eq(['Yes', 'No'])
|
||||||
expect(q.author).to eq(p.author)
|
expect(q.author).to eq(p.author)
|
||||||
expect(q.author_visible_name).to eq(p.author.name)
|
expect(q.author_visible_name).to eq(p.author.name)
|
||||||
expect(q.proposal_id).to eq(p.id)
|
expect(q.proposal_id).to eq(p.id)
|
||||||
expect(q.title).to eq(p.title)
|
expect(q.title).to eq(p.title)
|
||||||
expect(q.question).to eq(p.question)
|
expect(q.question).to eq(p.question)
|
||||||
expect(q.geozones).to eq(Geozone.all)
|
expect(q.all_geozones).to be_true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user