osem-fcy/spec/factories/conferences.rb
James Mason b11001cdba Every campaign has an end.
Drop ahoy, because it's more trouble than it's worth. This means dropping
visits, campaigns, targets.

Campaigns are better run to analytics, such as:
* https://matomo.org/docs/tracking-campaigns/
* https://matomo.org/docs/tracking-goals-web-analytics/
* https://support.google.com/analytics/answer/1012040?hl=en
2018-10-16 21:34:04 +02:00

59 lines
2.4 KiB
Ruby

# frozen_string_literal: true
# Read about factories at https://github.com/thoughtbot/factory_bot
FactoryBot.define do
factory :conference do
title { Faker::Book.title }
short_title { SecureRandom.urlsafe_base64(4) }
timezone { Faker::Address.time_zone }
start_date { Time.zone.today }
end_date { 6.days.from_now }
start_hour { 9 }
end_hour { 20 }
registration_limit { 0 }
ticket_layout { 'portrait' }
description { Faker::Hipster.paragraph }
organization
after(:create) do |conference|
Role.where(name: 'organizer', resource: conference).first_or_create(description: 'For the organizers of the conference (who shall have full access)')
Role.where(name: 'cfp', resource: conference).first_or_create(description: 'For the members of the CfP team')
Role.where(name: 'info_desk', resource: conference).first_or_create(description: 'For the members of the Info Desk team')
Role.where(name: 'volunteers_coordinator', resource: conference).first_or_create(description: 'For the people in charge of volunteers')
end
factory :full_conference do
association :splashpage, factory: :full_splashpage
registration_period
venue
after :create do |conference|
conference.commercials << create(:conference_commercial, commercialable: conference)
# Contact/Program is created by Conference callbacks
conference.contact.destroy
conference.contact = create(:contact, conference: conference)
conference.program.update_attributes(schedule_public: true)
create(:cfp, program: conference.program)
create_list(:track, 2, program: conference.program)
create_list(:ticket, 3, conference: conference)
create_list(:room, 3, venue: conference.venue)
create_list(:lodging, 4, conference: conference)
create_list(:sponsorship_level, 3, conference: conference)
create(:sponsor, sponsorship_level: conference.sponsorship_levels.first, conference: conference)
create_list(:sponsor, 2, sponsorship_level: conference.sponsorship_levels.second, conference: conference)
create_list(:sponsor, 3, sponsorship_level: conference.sponsorship_levels.third, conference: conference)
create(:question, conferences: [conference])
# Logo...
File.open('spec/support/logos/OSEM.jpg') do |file|
conference.picture = file
end
conference.save!
end
end
end
end