aboutsummaryrefslogtreecommitdiff
path: root/db/seeds.rb
blob: 6252ebf346be6641475509fa7531d94c869bd7c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# This file should contain all the record creation needed to seed the database with its default values.
# The data can then be loaded with the rails db:seed command (or created alongside the database with db:setup).
#
# Examples:
#
#   movies = Movie.create([{ name: 'Star Wars' }, { name: 'Lord of the Rings' }])
#   Character.create(name: 'Luke', movie: movies.first)

# Create a bunch of Agents
{
  'Dewey': '6347f151-6782-437c-8bae-55730672a76f',
  'PS': '3211da93-69fb-4d9b-825c-6ab51784fd18',
  'incommon': '262ea4f5-186d-483b-8414-025f23b65eb4',
  'ConcertES': '066e5968-03c3-4c15-bd5b-f73a10b5e9f1'
}.each do |agent_name, uuid|
  Agent.find_or_create_by(name: agent_name, uuid: uuid)
end

dewey = Agent.find_by(uuid: '6347f151-6782-437c-8bae-55730672a76f') or die('Dewey Agent should be available by now!')

# Create a default taxonomy
Taxonomy.find_or_create_by(
  name: 'Dewey Maps Taxonomy',
  summary: 'Original taxonomy used in Belgique, Mode d\'Emploi',
  description: '## Dewey Maps Taxonomy',
  uuid: '2519915f-d19c-4281-b758-f5ddb889d7fa',
  agent_id: dewey.id
)

# Create French categories and sections
if Category.count == 0
  dewey_taxo = Taxonomy.first
  cats = JSON.parse(IO.read('doc/import/categories-fr.json'))
  cats.each do |cat|
    c = Category.create(name: cat['name'], dewey_id: cat['id'], taxonomy_id: dewey_taxo.id, color: cat['color'])
    cat['sections'].each do |sec|
      Section.create(name: sec['name'], category_id: c.id, dewey_id: sec['id'], color: sec['color'])
    end
  end
  # Now that we have all we need, update resources_sections...
  Resource.all.each do |res|
    sec_ids = res.feature['properties']['categories']
    next if sec_ids.empty?
    sec_ids.each do |id|
      s = Section.find_by(dewey_id: id)
      res.sections << s if s.present?
      res.save
    end
  end
end

# Create default map
if Map.count == 0
  Map.create(uuid: "1a42651e-3fe8-4e83-bfcd-f14bb8d0c713", latitude: 50.8503396, longitude: 4.3517103, zoom: 13, taxonomy_id: 1)
end