47 lines
2.0 KiB
Ruby
47 lines
2.0 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'highline/import'
|
|
|
|
# consumers
|
|
FactoryBot.create(:consumer)
|
|
FactoryBot.create(:consumer, name: 'openSAP')
|
|
# The following consumer is preconfigured in Xikolo for local development
|
|
FactoryBot.create(:consumer, name: 'Xikolo Development', oauth_key: 'consumer', oauth_secret: 'secret')
|
|
|
|
# users
|
|
# Set default_url_options explicitly, required for rake task
|
|
Rails.application.routes.default_url_options = Rails.application.config.action_mailer.default_url_options
|
|
UserMailer.delivery_method = :test
|
|
admin = FactoryBot.create(:admin, study_groups: StudyGroup.all)
|
|
teacher = FactoryBot.create(:teacher, email: 'teacher@example.org', study_groups: StudyGroup.all)
|
|
FactoryBot.create(:learner, email: 'learner@example.org', study_groups: StudyGroup.all)
|
|
external_user = FactoryBot.create(:external_user, study_groups: StudyGroup.all)
|
|
|
|
# file types
|
|
FileType.create_factories user: admin
|
|
|
|
# execution environments
|
|
ExecutionEnvironment.skip_callback(:commit, :after, :sync_runner_environment)
|
|
ExecutionEnvironment.create_factories user: admin
|
|
|
|
# exercises
|
|
@exercises = find_factories_by_class(Exercise).map(&:name).index_with {|factory_name| FactoryBot.create(factory_name, user: teacher) }
|
|
|
|
# submissions
|
|
FactoryBot.create(:submission, exercise: @exercises[:fibonacci], contributor: external_user)
|
|
|
|
# The old images included in the seed data do not feature a dedicated `user` and therefore require a privileged execution.
|
|
ExecutionEnvironment.update_all privileged_execution: true # rubocop:disable Rails/SkipsModelValidations
|
|
|
|
say(<<~CONFIRMATION_MESSAGE)
|
|
Development data has been seeded successfully.
|
|
|
|
As part of this setup, some execution environments have been \
|
|
stored in the database. However, these haven't been yet \
|
|
synchronized with a runner management. Please take care \
|
|
to configure a runner management according to the \
|
|
documentation and synchronize environments through the \
|
|
user interface. To do so, open `/execution_environments` \
|
|
and click on the "Synchronize all" button.
|
|
CONFIRMATION_MESSAGE
|