Add Call for Booths

This commit is contained in:
nasia 2017-07-07 16:13:35 +03:00 committed by nasia-sam
parent 4615505fcd
commit b86472ac3c
8 changed files with 92 additions and 13 deletions

View file

@ -180,6 +180,7 @@ linters:
InstanceVariables: InstanceVariables:
exclude: exclude:
- "app/views/admin/campaigns/_form.html.haml" - "app/views/admin/campaigns/_form.html.haml"
- "app/views/admin/cfps/_booths_cfp.html.haml"
- "app/views/admin/cfps/_form.html.haml" - "app/views/admin/cfps/_form.html.haml"
- "app/views/admin/conferences/_todo_list.html.haml" - "app/views/admin/conferences/_todo_list.html.haml"
- "app/views/admin/difficulty_levels/_form.html.haml" - "app/views/admin/difficulty_levels/_form.html.haml"

View file

@ -1,7 +1,7 @@
# cannot delete program if there are events submitted # cannot delete program if there are events submitted
class Cfp < ActiveRecord::Base class Cfp < ActiveRecord::Base
TYPES = %w(events).freeze TYPES = %w(events booths).freeze
scope :for_events, (-> { find_by(cfp_type: 'events') }) scope :for_events, (-> { find_by(cfp_type: 'events') })

View file

@ -0,0 +1,12 @@
%dt
Start Date
%dd
= @cfp.start_date.strftime('%A, %B %e. %Y')
%dt
End Date
%dd
= @cfp.end_date.strftime('%A, %B %e. %Y')
%dt
Days Left
%dd
= pluralize(@cfp.remaining_days, 'day')

View file

@ -3,7 +3,7 @@
FactoryGirl.define do FactoryGirl.define do
factory :cfp do factory :cfp do
start_date { 1.day.ago } start_date { 1.day.ago }
end_date { 6.days.from_now } end_date { 2.days.from_now }
cfp_type 'events' cfp_type 'events'
program program

View file

@ -60,16 +60,32 @@ feature 'Has correct abilities' do
visit edit_admin_conference_program_path(conference.short_title) visit edit_admin_conference_program_path(conference.short_title)
expect(current_path).to eq(edit_admin_conference_program_path(conference.short_title)) expect(current_path).to eq(edit_admin_conference_program_path(conference.short_title))
# Only event type exists
visit new_admin_conference_program_cfp_path(conference.short_title)
expect(current_path).to eq(new_admin_conference_program_cfp_path(conference.short_title))
# Both event and booth exists
cfb = create(:cfp, cfp_type: 'booths', program: conference.program)
visit new_admin_conference_program_cfp_path(conference.short_title) visit new_admin_conference_program_cfp_path(conference.short_title)
expect(current_path).to eq root_path expect(current_path).to eq root_path
visit edit_admin_conference_program_cfp_path(conference.short_title, conference.program.cfp)
expect(current_path).to eq(edit_admin_conference_program_cfp_path(conference.short_title, conference.program.cfp))
conference.program.cfp.destroy! conference.program.cfp.destroy!
visit new_admin_conference_program_cfp_path(conference.short_title) visit new_admin_conference_program_cfp_path(conference.short_title)
expect(current_path).to eq new_admin_conference_program_cfp_path(conference.short_title) expect(current_path).to eq new_admin_conference_program_cfp_path(conference.short_title)
create(:cfp, program: conference.program)
visit edit_admin_conference_program_cfp_path(conference.short_title, conference.program.cfp) # Only booth exists
expect(current_path).to eq(edit_admin_conference_program_cfp_path(conference.short_title, conference.program.cfp)) visit new_admin_conference_program_cfp_path(conference.short_title)
expect(current_path).to eq(new_admin_conference_program_cfp_path(conference.short_title))
visit edit_admin_conference_program_cfp_path(conference.short_title, cfb)
expect(current_path). to eq(edit_admin_conference_program_cfp_path(conference.short_title, cfb))
cfb.destroy
visit new_admin_conference_program_cfp_path(conference.short_title)
expect(current_path).to eq(new_admin_conference_program_cfp_path(conference.short_title))
create(:event, program: conference.program) create(:event, program: conference.program)
visit edit_admin_conference_program_event_path(conference.short_title, conference.program.events.first) visit edit_admin_conference_program_event_path(conference.short_title, conference.program.events.first)

View file

@ -102,16 +102,32 @@ feature 'Has correct abilities' do
visit edit_admin_conference_program_path(conference.short_title) visit edit_admin_conference_program_path(conference.short_title)
expect(current_path).to eq(edit_admin_conference_program_path(conference.short_title)) expect(current_path).to eq(edit_admin_conference_program_path(conference.short_title))
# Only event exists
visit new_admin_conference_program_cfp_path(conference.short_title)
expect(current_path).to eq(new_admin_conference_program_cfp_path(conference.short_title))
# Both event and booth exists
cfb = create(:cfp, cfp_type: 'booths', program: conference.program)
visit new_admin_conference_program_cfp_path(conference.short_title) visit new_admin_conference_program_cfp_path(conference.short_title)
expect(current_path).to eq root_path expect(current_path).to eq root_path
visit edit_admin_conference_program_cfp_path(conference.short_title, conference.program.cfp)
expect(current_path).to eq(edit_admin_conference_program_cfp_path(conference.short_title, conference.program.cfp))
conference.program.cfp.destroy! conference.program.cfp.destroy!
visit new_admin_conference_program_cfp_path(conference.short_title) visit new_admin_conference_program_cfp_path(conference.short_title)
expect(current_path).to eq new_admin_conference_program_cfp_path(conference.short_title) expect(current_path).to eq new_admin_conference_program_cfp_path(conference.short_title)
create(:cfp, program: conference.program)
visit edit_admin_conference_program_cfp_path(conference.short_title, conference.program.cfp) # Only booth exists
expect(current_path).to eq(edit_admin_conference_program_cfp_path(conference.short_title, conference.program.cfp)) visit new_admin_conference_program_cfp_path(conference.short_title)
expect(current_path).to eq(new_admin_conference_program_cfp_path(conference.short_title))
visit edit_admin_conference_program_cfp_path(conference.short_title, cfb)
expect(current_path). to eq(edit_admin_conference_program_cfp_path(conference.short_title, cfb))
cfb.destroy
visit new_admin_conference_program_cfp_path(conference.short_title)
expect(current_path).to eq(new_admin_conference_program_cfp_path(conference.short_title))
visit admin_conference_program_events_path(conference.short_title) visit admin_conference_program_events_path(conference.short_title)
expect(current_path).to eq(admin_conference_program_events_path(conference.short_title)) expect(current_path).to eq(admin_conference_program_events_path(conference.short_title))

View file

@ -108,16 +108,32 @@ feature 'Has correct abilities' do
visit edit_admin_conference_program_path(conference.short_title) visit edit_admin_conference_program_path(conference.short_title)
expect(current_path).to eq(edit_admin_conference_program_path(conference.short_title)) expect(current_path).to eq(edit_admin_conference_program_path(conference.short_title))
# Only event type exists
visit new_admin_conference_program_cfp_path(conference.short_title)
expect(current_path).to eq(new_admin_conference_program_cfp_path(conference.short_title))
# Both event and booth exists
cfb = create(:cfp, cfp_type: 'booths', program: conference.program)
visit new_admin_conference_program_cfp_path(conference.short_title) visit new_admin_conference_program_cfp_path(conference.short_title)
expect(current_path).to eq root_path expect(current_path).to eq root_path
visit edit_admin_conference_program_cfp_path(conference.short_title, conference.program.cfp)
expect(current_path).to eq(edit_admin_conference_program_cfp_path(conference.short_title, conference.program.cfp))
conference.program.cfp.destroy! conference.program.cfp.destroy!
visit new_admin_conference_program_cfp_path(conference.short_title) visit new_admin_conference_program_cfp_path(conference.short_title)
expect(current_path).to eq new_admin_conference_program_cfp_path(conference.short_title) expect(current_path).to eq new_admin_conference_program_cfp_path(conference.short_title)
create(:cfp, program: conference.program)
visit edit_admin_conference_program_cfp_path(conference.short_title, conference.program.cfp) # Only booth exists
expect(current_path).to eq(edit_admin_conference_program_cfp_path(conference.short_title, conference.program.cfp)) visit new_admin_conference_program_cfp_path(conference.short_title)
expect(current_path).to eq(new_admin_conference_program_cfp_path(conference.short_title))
visit edit_admin_conference_program_cfp_path(conference.short_title, cfb)
expect(current_path). to eq(edit_admin_conference_program_cfp_path(conference.short_title, cfb))
cfb.destroy
visit new_admin_conference_program_cfp_path(conference.short_title)
expect(current_path).to eq(new_admin_conference_program_cfp_path(conference.short_title))
visit admin_conference_program_events_path(conference.short_title) visit admin_conference_program_events_path(conference.short_title)
expect(current_path).to eq(admin_conference_program_events_path(conference.short_title)) expect(current_path).to eq(admin_conference_program_events_path(conference.short_title))

View file

@ -253,10 +253,28 @@ describe Program do
end end
describe '#remaining_cfp_types' do describe '#remaining_cfp_types' do
it 'returns an array with the types for which a cfp doesn\'t exist' do it 'returns an array with the types for which a cfp doesn\'t exist, when only the Event type does' do
expect(program.remaining_cfp_types).to eq(Cfp::TYPES) expect(program.remaining_cfp_types).to eq(Cfp::TYPES)
create(:cfp, cfp_type: 'events', program: program, end_date: Date.current + 1) create(:cfp, cfp_type: 'events', program: program)
expect(program.remaining_cfp_types).to eq(['booths'])
end
it 'returns an array with the types for which a cfp doesn\'t exist, when only the Booth type does' do
expect(program.remaining_cfp_types).to eq(Cfp::TYPES)
create(:cfp, cfp_type: 'booths', program: program)
expect(program.remaining_cfp_types).to eq(['events'])
end
it 'returns an empty array when all the cfp types exist' do
expect(program.remaining_cfp_types).to eq(Cfp::TYPES)
create(:cfp, cfp_type: 'events', program: program)
create(:cfp, cfp_type: 'booths', program: program)
expect(program.remaining_cfp_types).to eq([]) expect(program.remaining_cfp_types).to eq([])
end end
it 'returns all the possible cfp types when there is no existed cfp type' do
expect(program.remaining_cfp_types).to eq(Cfp::TYPES)
expect(program.remaining_cfp_types). to eq(%w[events booths])
end
end end
end end