diff --git a/app/models/budget.rb b/app/models/budget.rb index ecfacc5c0..28fb8c5ca 100644 --- a/app/models/budget.rb +++ b/app/models/budget.rb @@ -21,6 +21,8 @@ class Budget < ActiveRecord::Base has_many :headings, through: :groups has_many :phases, class_name: Budget::Phase + has_one :poll + before_validation :sanitize_descriptions after_create :generate_phases diff --git a/app/models/poll.rb b/app/models/poll.rb index 9276cf9fb..9b300c150 100644 --- a/app/models/poll.rb +++ b/app/models/poll.rb @@ -23,6 +23,7 @@ class Poll < ActiveRecord::Base has_and_belongs_to_many :geozones belongs_to :author, -> { with_hidden }, class_name: "User", foreign_key: "author_id" + belongs_to :budget validates_translation :name, presence: true validate :date_range diff --git a/db/migrate/20180604173248_add_budget_to_polls.rb b/db/migrate/20180604173248_add_budget_to_polls.rb new file mode 100644 index 000000000..74d45e1a8 --- /dev/null +++ b/db/migrate/20180604173248_add_budget_to_polls.rb @@ -0,0 +1,5 @@ +class AddBudgetToPolls < ActiveRecord::Migration + def change + add_reference :polls, :budget, index: { unique: true }, foreign_key: true + end +end diff --git a/db/schema.rb b/db/schema.rb index 991f6d327..96e3d3487 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -1129,8 +1129,10 @@ ActiveRecord::Schema.define(version: 20190205131722) do t.boolean "stats_enabled", default: false t.datetime "created_at" t.datetime "updated_at" + t.integer "budget_id" end + add_index "polls", ["budget_id"], name: "index_polls_on_budget_id", unique: true, using: :btree add_index "polls", ["starts_at", "ends_at"], name: "index_polls_on_starts_at_and_ends_at", using: :btree create_table "progress_bar_translations", force: :cascade do |t| @@ -1614,6 +1616,7 @@ ActiveRecord::Schema.define(version: 20190205131722) do add_foreign_key "poll_recounts", "poll_booth_assignments", column: "booth_assignment_id" add_foreign_key "poll_recounts", "poll_officer_assignments", column: "officer_assignment_id" add_foreign_key "poll_voters", "polls" + add_foreign_key "polls", "budgets" add_foreign_key "proposals", "communities" add_foreign_key "related_content_scores", "related_contents" add_foreign_key "related_content_scores", "users"