Sprankelprachtig aan/afmeldsysteem

seeds.rb 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. # This file should contain all the record creation needed to seed the database with its default values.
  2. # The data can then be loaded with the rails db:seed command (or created alongside the database with db:setup).
  3. #
  4. # Examples:
  5. #
  6. # movies = Movie.create([{ name: 'Star Wars' }, { name: 'Lord of the Rings' }])
  7. # Character.create(name: 'Luke', movie: movies.first)
  8. require 'byebug'
  9. exit if Rails.env.production?
  10. its_me = Person.create!(
  11. first_name: 'Maarten',
  12. infix: 'van den',
  13. last_name: 'Berg',
  14. birth_date: Faker::Date.between(21.years.ago, Date.today),
  15. email: 'maarten@maartenberg.nl',
  16. is_admin: true
  17. )
  18. User.create!(
  19. email: 'maarten@maartenberg.nl',
  20. person: its_me,
  21. password: 'aardbei123',
  22. password_confirmation: 'aardbei123',
  23. confirmed: true
  24. )
  25. Person.create!(
  26. first_name: 'Henkie',
  27. last_name: 'Gekke',
  28. birth_date: Faker::Date.between(21.years.ago, Date.today),
  29. email: 'gekkehenkie@maartenberg.nl'
  30. )
  31. default_test_group = Group.create!(
  32. name: 'Teststam'
  33. )
  34. 2.times do
  35. Group.create!(
  36. name: Faker::Team.name
  37. )
  38. end
  39. 15.times do
  40. Person.create!(
  41. first_name: Faker::Name.first_name,
  42. last_name: Faker::Name.last_name,
  43. birth_date: Faker::Date.between(21.years.ago, Date.today),
  44. email: "testuser#{i}@maartenberg.nl"
  45. )
  46. end
  47. Activity.create!(
  48. name: 'Fikkie stoken ofzo',
  49. description: 'Een scout trekt er samen met anderen op uit',
  50. location: 'In het bos in het bos',
  51. start: 4.weeks.since,
  52. end: 4.weeks.since + 2.hours,
  53. deadline: 3.weeks.since,
  54. group: default_test_group
  55. )
  56. Group.all.each do |g|
  57. 10.times do
  58. starttime = Faker::Time.between(DateTime.now, 1.years.since, :morning)
  59. endtime = Faker::Time.between(1.hours.since(starttime), 1.days.since(starttime), :afternoon)
  60. deadline = 5.days.ago(starttime)
  61. Activity.create!(
  62. name: Faker::Hacker.ingverb,
  63. description: Faker::Hipster.sentence,
  64. location: Faker::Address.city,
  65. start: starttime,
  66. end: endtime,
  67. deadline: deadline,
  68. group: g,
  69. no_response_action: Faker::Boolean.boolean
  70. )
  71. end
  72. end
  73. Person.all.each do |p|
  74. Group.all.each do |g|
  75. next unless Faker::Boolean.boolean(0.75)
  76. Member.create!(
  77. person: p,
  78. group: g,
  79. is_leader: Faker::Boolean.boolean(0.1)
  80. )
  81. g.activities.each do |a|
  82. if Faker::Boolean.boolean(0.15)
  83. notes = Faker::Hipster.sentence
  84. else
  85. notes = nil
  86. end
  87. # Participants are created on adding to group, no need to create
  88. part = Participant.find_by(
  89. activity: a,
  90. person: p
  91. )
  92. part.update!(
  93. is_organizer: Faker::Boolean.boolean(0.1),
  94. attending: [true, false, nil].sample,
  95. notes: notes
  96. )
  97. end
  98. end
  99. end