Mark track state as not null and add default value
The regular tracks are marked as 'confirmed'
This commit is contained in:
parent
fd93b04f16
commit
0f154d07c9
8 changed files with 32 additions and 13 deletions
|
|
@ -19,6 +19,7 @@ module Admin
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@track = @program.tracks.new(track_params)
|
@track = @program.tracks.new(track_params)
|
||||||
|
@track.state = 'confirmed'
|
||||||
if @track.save
|
if @track.save
|
||||||
redirect_to admin_conference_program_tracks_path(conference_id: @conference.short_title),
|
redirect_to admin_conference_program_tracks_path(conference_id: @conference.short_title),
|
||||||
notice: 'Track successfully created.'
|
notice: 'Track successfully created.'
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,6 @@ class TracksController < ApplicationController
|
||||||
def create
|
def create
|
||||||
@track = @program.tracks.new(track_params)
|
@track = @program.tracks.new(track_params)
|
||||||
@track.submitter = current_user
|
@track.submitter = current_user
|
||||||
@track.state = 'new'
|
|
||||||
@track.cfp_active = false
|
@track.cfp_active = false
|
||||||
if @track.save
|
if @track.save
|
||||||
redirect_to conference_program_tracks_path(conference_id: @conference.short_title),
|
redirect_to conference_program_tracks_path(conference_id: @conference.short_title),
|
||||||
|
|
|
||||||
|
|
@ -25,10 +25,10 @@ class Track < ActiveRecord::Base
|
||||||
inclusion: { in: %w(new to_accept accepted confirmed to_reject rejected canceled withdrawn) },
|
inclusion: { in: %w(new to_accept accepted confirmed to_reject rejected canceled withdrawn) },
|
||||||
if: :self_organized?
|
if: :self_organized?
|
||||||
validates :cfp_active, inclusion: { in: [true, false] }, if: :self_organized?
|
validates :cfp_active, inclusion: { in: [true, false] }, if: :self_organized?
|
||||||
validates :start_date, presence: true, if: :accepted_or_confirmed?
|
validates :start_date, presence: true, if: :self_organized_and_accepted_or_confirmed?
|
||||||
validates :end_date, presence: true, if: :accepted_or_confirmed?
|
validates :end_date, presence: true, if: :self_organized_and_accepted_or_confirmed?
|
||||||
validates :room, presence: true, if: :accepted_or_confirmed?
|
validates :room, presence: true, if: :self_organized_and_accepted_or_confirmed?
|
||||||
validate :valid_dates, if: :accepted_or_confirmed?
|
validate :valid_dates, if: :self_organized_and_accepted_or_confirmed?
|
||||||
|
|
||||||
before_validation :capitalize_color
|
before_validation :capitalize_color
|
||||||
|
|
||||||
|
|
@ -129,12 +129,12 @@ class Track < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
# Checks if the track is accepted or confirmed
|
# Checks if a self-organized track is accepted or confirmed
|
||||||
# ====Returns
|
# ====Returns
|
||||||
# * +true+ -> If the track's state is 'accepted' or 'confirmed'
|
# * +true+ -> If the track's state is 'accepted' or 'confirmed'
|
||||||
# * +false+ -> If the track's state is neither 'accepted' nor 'confirmed'
|
# * +false+ -> If the track's state is neither 'accepted' nor 'confirmed'
|
||||||
def accepted_or_confirmed?
|
def self_organized_and_accepted_or_confirmed?
|
||||||
accepted? || confirmed?
|
self_organized? && (accepted? || confirmed?)
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@
|
||||||
- if track.self_organized?
|
- if track.self_organized?
|
||||||
= track.state
|
= track.state
|
||||||
- else
|
- else
|
||||||
N/A
|
= track.state.humanize
|
||||||
%td
|
%td
|
||||||
- if track.self_organized?
|
- if track.self_organized?
|
||||||
= check_box_tag "#{@conference.short_title}_#{track.short_name}", track.id, track.cfp_active,
|
= check_box_tag "#{@conference.short_title}_#{track.short_name}", track.id, track.cfp_active,
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
class MakeTrackStateNotNullAndAddDefaultValue < ActiveRecord::Migration
|
||||||
|
class TmpTrack < ActiveRecord::Base
|
||||||
|
self.table_name = 'tracks'
|
||||||
|
end
|
||||||
|
|
||||||
|
def change
|
||||||
|
TmpTrack.where(state: nil).each do |track|
|
||||||
|
track.state = 'confirmed'
|
||||||
|
track.save!
|
||||||
|
end
|
||||||
|
|
||||||
|
change_column :tracks, :state, :string, null: false, default: 'new'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -511,15 +511,15 @@ ActiveRecord::Schema.define(version: 20170807092805) do
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "tracks", force: :cascade do |t|
|
create_table "tracks", force: :cascade do |t|
|
||||||
t.string "guid", null: false
|
t.string "guid", null: false
|
||||||
t.string "name", null: false
|
t.string "name", null: false
|
||||||
t.text "description"
|
t.text "description"
|
||||||
t.string "color"
|
t.string "color"
|
||||||
t.datetime "created_at"
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at"
|
t.datetime "updated_at"
|
||||||
t.integer "program_id"
|
t.integer "program_id"
|
||||||
t.string "short_name", null: false
|
t.string "short_name", null: false
|
||||||
t.string "state"
|
t.string "state", default: "new", null: false
|
||||||
t.boolean "cfp_active"
|
t.boolean "cfp_active"
|
||||||
t.integer "submitter_id"
|
t.integer "submitter_id"
|
||||||
t.integer "room_id"
|
t.integer "room_id"
|
||||||
|
|
|
||||||
|
|
@ -80,6 +80,10 @@ describe Admin::TracksController do
|
||||||
it 'creates new track' do
|
it 'creates new track' do
|
||||||
expect(Track.find(assigns(:track).id)).to be_a Track
|
expect(Track.find(assigns(:track).id)).to be_a Track
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'the new tracks has the correct attributes' do
|
||||||
|
expect(assigns(:track).state).to eq 'confirmed'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'save fails' do
|
context 'save fails' do
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ FactoryGirl.define do
|
||||||
description { Faker::Lorem.sentence }
|
description { Faker::Lorem.sentence }
|
||||||
color { Faker::Color.hex_color }
|
color { Faker::Color.hex_color }
|
||||||
short_name { SecureRandom.urlsafe_base64(5) }
|
short_name { SecureRandom.urlsafe_base64(5) }
|
||||||
|
state 'confirmed'
|
||||||
program
|
program
|
||||||
|
|
||||||
trait :self_organized do
|
trait :self_organized do
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue