mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 11:44:02 +00:00
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
|
||||
@track = @program.tracks.new(track_params)
|
||||
@track.state = 'confirmed'
|
||||
if @track.save
|
||||
redirect_to admin_conference_program_tracks_path(conference_id: @conference.short_title),
|
||||
notice: 'Track successfully created.'
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ class TracksController < ApplicationController
|
|||
def create
|
||||
@track = @program.tracks.new(track_params)
|
||||
@track.submitter = current_user
|
||||
@track.state = 'new'
|
||||
@track.cfp_active = false
|
||||
if @track.save
|
||||
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) },
|
||||
if: :self_organized?
|
||||
validates :cfp_active, inclusion: { in: [true, false] }, if: :self_organized?
|
||||
validates :start_date, presence: true, if: :accepted_or_confirmed?
|
||||
validates :end_date, presence: true, if: :accepted_or_confirmed?
|
||||
validates :room, presence: true, if: :accepted_or_confirmed?
|
||||
validate :valid_dates, if: :accepted_or_confirmed?
|
||||
validates :start_date, presence: true, if: :self_organized_and_accepted_or_confirmed?
|
||||
validates :end_date, presence: true, if: :self_organized_and_accepted_or_confirmed?
|
||||
validates :room, presence: true, if: :self_organized_and_accepted_or_confirmed?
|
||||
validate :valid_dates, if: :self_organized_and_accepted_or_confirmed?
|
||||
|
||||
before_validation :capitalize_color
|
||||
|
||||
|
|
@ -129,12 +129,12 @@ class Track < ActiveRecord::Base
|
|||
end
|
||||
|
||||
##
|
||||
# Checks if the track is accepted or confirmed
|
||||
# Checks if a self-organized track is accepted or confirmed
|
||||
# ====Returns
|
||||
# * +true+ -> If the track's state is 'accepted' or 'confirmed'
|
||||
# * +false+ -> If the track's state is neither 'accepted' nor 'confirmed'
|
||||
def accepted_or_confirmed?
|
||||
accepted? || confirmed?
|
||||
def self_organized_and_accepted_or_confirmed?
|
||||
self_organized? && (accepted? || confirmed?)
|
||||
end
|
||||
|
||||
private
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@
|
|||
- if track.self_organized?
|
||||
= track.state
|
||||
- else
|
||||
N/A
|
||||
= track.state.humanize
|
||||
%td
|
||||
- if track.self_organized?
|
||||
= 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
|
||||
|
||||
create_table "tracks", force: :cascade do |t|
|
||||
t.string "guid", null: false
|
||||
t.string "name", null: false
|
||||
t.string "guid", null: false
|
||||
t.string "name", null: false
|
||||
t.text "description"
|
||||
t.string "color"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.integer "program_id"
|
||||
t.string "short_name", null: false
|
||||
t.string "state"
|
||||
t.string "short_name", null: false
|
||||
t.string "state", default: "new", null: false
|
||||
t.boolean "cfp_active"
|
||||
t.integer "submitter_id"
|
||||
t.integer "room_id"
|
||||
|
|
|
|||
|
|
@ -80,6 +80,10 @@ describe Admin::TracksController do
|
|||
it 'creates new track' do
|
||||
expect(Track.find(assigns(:track).id)).to be_a Track
|
||||
end
|
||||
|
||||
it 'the new tracks has the correct attributes' do
|
||||
expect(assigns(:track).state).to eq 'confirmed'
|
||||
end
|
||||
end
|
||||
|
||||
context 'save fails' do
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ FactoryGirl.define do
|
|||
description { Faker::Lorem.sentence }
|
||||
color { Faker::Color.hex_color }
|
||||
short_name { SecureRandom.urlsafe_base64(5) }
|
||||
state 'confirmed'
|
||||
program
|
||||
|
||||
trait :self_organized do
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue