spina 0.6.22 → 0.6.23

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of spina might be problematic. Click here for more details.

Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/db/migrate/20150507135428_create_spina_tables.rb +160 -0
  3. data/lib/generators/spina/install_generator.rb +47 -0
  4. data/lib/generators/spina/templates/application.html.erb +16 -0
  5. data/lib/generators/spina/templates/homepage.html.erb +3 -0
  6. data/lib/generators/spina/templates/show.html.erb +3 -0
  7. data/lib/generators/spina/templates/spina.rb +3 -0
  8. data/lib/generators/spina/templates/theme.rb +42 -0
  9. data/lib/spina/version.rb +1 -1
  10. data/lib/tasks/spina_tasks.rake +5 -9
  11. data/test/dummy/config/initializers/spina.rb +1 -56
  12. data/test/dummy/config/initializers/themes/default.rb +38 -0
  13. data/test/dummy/config/routes.rb +1 -1
  14. data/test/dummy/db/migrate/20150507153614_create_spina_tables.spina.rb +161 -0
  15. data/test/dummy/db/schema.rb +1 -1
  16. data/test/dummy/log/development.log +2005 -0
  17. data/test/lib/generators/spina/install_generator_test.rb +16 -0
  18. metadata +12 -54
  19. data/app/views/spina/pages/_page.html.haml +0 -3
  20. data/app/views/spina/pages/homepage.html.haml +0 -3
  21. data/app/views/spina/pages/show.html.haml +0 -1
  22. data/db/migrate/20130412140449_create_spina_pages.rb +0 -15
  23. data/db/migrate/20130412140656_change_columns_pages.rb +0 -6
  24. data/db/migrate/20130412173041_create_spina_users.rb +0 -12
  25. data/db/migrate/20130412175403_create_spina_page_parts.rb +0 -12
  26. data/db/migrate/20130412175531_change_admin_of_users.rb +0 -5
  27. data/db/migrate/20130412180027_create_spina_page_includes.rb +0 -12
  28. data/db/migrate/20130412182257_create_spina_photos.rb +0 -9
  29. data/db/migrate/20130412191946_create_spina_accounts.rb +0 -16
  30. data/db/migrate/20130414145608_create_spina_inquiries.rb +0 -13
  31. data/db/migrate/20130422094248_add_theme_to_spina_accounts.rb +0 -5
  32. data/db/migrate/20130422161041_remove_theme_from_spina_accounts.rb +0 -5
  33. data/db/migrate/20130422194143_change_default_value_column_archived_inquiries.rb +0 -5
  34. data/db/migrate/20130425080630_change_page_includes.rb +0 -8
  35. data/db/migrate/20130426122705_add_parent_id_to_spina_pages.rb +0 -5
  36. data/db/migrate/20130426133425_change_colum_n_spina_pages_again.rb +0 -5
  37. data/db/migrate/20130426133606_bring_out_the_nukes.rb +0 -6
  38. data/db/migrate/20130429092708_add_name_to_spina_pages.rb +0 -5
  39. data/db/migrate/20130429124414_change_column_stomme_onzin.rb +0 -6
  40. data/db/migrate/20130503072744_add_last_logged_in_to_users.rb +0 -5
  41. data/db/migrate/20130503073613_change_column_spina_users.rb +0 -5
  42. data/db/migrate/20130503104857_create_spina_spina_files.rb +0 -9
  43. data/db/migrate/20130503105356_add_file_to_spina_page_parts.rb +0 -5
  44. data/db/migrate/20130503105943_change_columns_spina_files.rb +0 -6
  45. data/db/migrate/20130503110240_fix_namespaces.rb +0 -12
  46. data/db/migrate/20130503133649_create_spina_galleries.rb +0 -10
  47. data/db/migrate/20130504163456_add_seo_title_to_spina_pages.rb +0 -5
  48. data/db/migrate/20130516132913_add_spam_to_spina_inquiries.rb +0 -5
  49. data/db/migrate/20130523132347_add_page_partable_to_spina_page_parts.rb +0 -137
  50. data/db/migrate/20130527124130_remove_deprecated_columns_from_spina_page_parts.rb +0 -11
  51. data/db/migrate/20130715151201_switch_to_nested_sets_instead_of_position_pages.rb +0 -10
  52. data/db/migrate/20130719120007_add_skip_to_first_child_and_templates_to_spina_pages.rb +0 -7
  53. data/db/migrate/20130719121520_add_draft_to_spina_pages.rb +0 -5
  54. data/db/migrate/20130719122139_add_link_url_to_spina_pages.rb +0 -5
  55. data/db/migrate/20130719134545_rename_spina_file_to_attachments.rb +0 -9
  56. data/db/migrate/20130725111749_add_ancestry_to_spina_pages.rb +0 -10
  57. data/db/migrate/20130730185527_add_materialized_path_to_spina_pages.rb +0 -5
  58. data/db/migrate/20130918133920_change_column_page_parts.rb +0 -6
  59. data/db/migrate/20130919074011_create_spina_texts.rb +0 -9
  60. data/db/migrate/20130919074023_create_spina_lines.rb +0 -9
  61. data/db/migrate/20130919074838_remove_column_from_spina_page_parts.rb +0 -5
  62. data/db/migrate/20131210122702_change_column_spina_texts.rb +0 -5
  63. data/db/migrate/20131212080016_add_required_stuff_to_spina_accounts.rb +0 -6
  64. data/db/migrate/20140225141812_create_layout_parts.rb +0 -12
  65. data/db/migrate/20140225151146_add_account_id_to_spina_layout_parts.rb +0 -5
  66. data/db/migrate/20140407095608_add_active_to_spina_pages.rb +0 -5
  67. data/db/migrate/20140711154425_add_robots_allowed_to_spina_accounts.rb +0 -5
  68. data/db/migrate/20140718095419_add_position_to_spina_photo_collections_photos.rb +0 -5
  69. data/db/migrate/20150402144347_create_structures.rb +0 -27
  70. data/db/migrate/20150430085527_create_spina_colors.rb +0 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 796e86d829ea9b9d49a6c5ddffbde384d5f18518
4
- data.tar.gz: 3950fdf74f60f420a0438c70efeb921a204d33ce
3
+ metadata.gz: af6ddade0ef1bdb9d4339a2efff6d026c3989c08
4
+ data.tar.gz: 90e270d42ff537063911b006fa2aa25e91edb812
5
5
  SHA512:
6
- metadata.gz: 5706f2cc384eb65268911c98f98be7984f7dce01e6f9bcaa3e89390efa6ae6bbf6838bb1e689efe85705c26ef068f85833b60ddce864e15312fc0ddf5b54047c
7
- data.tar.gz: 0509a6123d396b81cabbcea251990abf2257e43d870c01a8d7606670f29b4cbfee28293c30f1d02384b3fb5e8bbc900f45885290b05fa3c064c4f55a96f6f58c
6
+ metadata.gz: cfd5ab9bc3ec0d84df1909534c6ea0aea06bff5a093a49a83a80846c498e531e43ec25643f80f1e5bc49c20bded6e2404885d5b2094294ab38b2f936372931f2
7
+ data.tar.gz: b679d098e7f234661476a03f41b372e17a66aabf9c53ba0909d69ab320627b12f327b68ec29b4afb84311d126f1868014a94a0e71d29281d954f132730bda7da
@@ -0,0 +1,160 @@
1
+ class CreateSpinaTables < ActiveRecord::Migration
2
+ def change
3
+ create_table "spina_accounts", force: :cascade do |t|
4
+ t.string "name"
5
+ t.string "address"
6
+ t.string "postal_code"
7
+ t.string "city"
8
+ t.string "phone"
9
+ t.string "email"
10
+ t.text "preferences"
11
+ t.string "logo"
12
+ t.datetime "created_at", null: false
13
+ t.datetime "updated_at", null: false
14
+ t.string "kvk_identifier"
15
+ t.string "vat_identifier"
16
+ t.boolean "robots_allowed", default: false
17
+ end
18
+
19
+ create_table "spina_attachment_collections", force: :cascade do |t|
20
+ t.datetime "created_at", null: false
21
+ t.datetime "updated_at", null: false
22
+ end
23
+
24
+ create_table "spina_attachment_collections_attachments", force: :cascade do |t|
25
+ t.integer "attachment_collection_id"
26
+ t.integer "attachment_id"
27
+ end
28
+
29
+ create_table "spina_attachments", force: :cascade do |t|
30
+ t.string "file"
31
+ t.datetime "created_at", null: false
32
+ t.datetime "updated_at", null: false
33
+ end
34
+
35
+ create_table "spina_colors", force: :cascade do |t|
36
+ t.text "content"
37
+ t.datetime "created_at"
38
+ t.datetime "updated_at"
39
+ end
40
+
41
+ create_table "spina_inquiries", force: :cascade do |t|
42
+ t.string "name"
43
+ t.string "email"
44
+ t.string "phone"
45
+ t.text "message"
46
+ t.boolean "archived", default: false
47
+ t.datetime "created_at", null: false
48
+ t.datetime "updated_at", null: false
49
+ t.boolean "spam"
50
+ end
51
+
52
+ create_table "spina_layout_parts", force: :cascade do |t|
53
+ t.string "title"
54
+ t.string "name"
55
+ t.integer "layout_partable_id"
56
+ t.string "layout_partable_type"
57
+ t.datetime "created_at"
58
+ t.datetime "updated_at"
59
+ t.integer "account_id"
60
+ end
61
+
62
+ create_table "spina_lines", force: :cascade do |t|
63
+ t.string "content"
64
+ t.datetime "created_at"
65
+ t.datetime "updated_at"
66
+ end
67
+
68
+ create_table "spina_page_parts", force: :cascade do |t|
69
+ t.string "title"
70
+ t.string "name"
71
+ t.datetime "created_at", null: false
72
+ t.datetime "updated_at", null: false
73
+ t.integer "page_id"
74
+ t.integer "page_partable_id"
75
+ t.string "page_partable_type"
76
+ end
77
+
78
+ create_table "spina_pages", force: :cascade do |t|
79
+ t.string "title"
80
+ t.string "menu_title"
81
+ t.string "description"
82
+ t.boolean "show_in_menu", default: true
83
+ t.string "slug"
84
+ t.boolean "deletable", default: true
85
+ t.datetime "created_at", null: false
86
+ t.datetime "updated_at", null: false
87
+ t.string "name"
88
+ t.string "seo_title"
89
+ t.boolean "skip_to_first_child", default: false
90
+ t.string "view_template"
91
+ t.string "layout_template"
92
+ t.boolean "draft", default: false
93
+ t.string "link_url"
94
+ t.string "ancestry"
95
+ t.integer "position"
96
+ t.string "materialized_path"
97
+ t.boolean "active", default: true
98
+ end
99
+
100
+ create_table "spina_photo_collections", force: :cascade do |t|
101
+ t.datetime "created_at", null: false
102
+ t.datetime "updated_at", null: false
103
+ end
104
+
105
+ create_table "spina_photo_collections_photos", force: :cascade do |t|
106
+ t.integer "photo_collection_id"
107
+ t.integer "photo_id"
108
+ t.integer "position"
109
+ end
110
+
111
+ create_table "spina_photos", force: :cascade do |t|
112
+ t.string "file"
113
+ t.datetime "created_at", null: false
114
+ t.datetime "updated_at", null: false
115
+ end
116
+
117
+ create_table "spina_structure_items", force: :cascade do |t|
118
+ t.integer "structure_id"
119
+ t.integer "position"
120
+ t.datetime "created_at"
121
+ t.datetime "updated_at"
122
+ end
123
+
124
+ add_index "spina_structure_items", ["structure_id"], name: "index_spina_structure_items_on_structure_id", using: :btree
125
+
126
+ create_table "spina_structure_parts", force: :cascade do |t|
127
+ t.integer "structure_item_id"
128
+ t.integer "structure_partable_id"
129
+ t.string "structure_partable_type"
130
+ t.string "name"
131
+ t.string "title"
132
+ t.datetime "created_at"
133
+ t.datetime "updated_at"
134
+ end
135
+
136
+ add_index "spina_structure_parts", ["structure_item_id"], name: "index_spina_structure_parts_on_structure_item_id", using: :btree
137
+ add_index "spina_structure_parts", ["structure_partable_id"], name: "index_spina_structure_parts_on_structure_partable_id", using: :btree
138
+
139
+ create_table "spina_structures", force: :cascade do |t|
140
+ t.datetime "created_at"
141
+ t.datetime "updated_at"
142
+ end
143
+
144
+ create_table "spina_texts", force: :cascade do |t|
145
+ t.text "content"
146
+ t.datetime "created_at"
147
+ t.datetime "updated_at"
148
+ end
149
+
150
+ create_table "spina_users", force: :cascade do |t|
151
+ t.string "name"
152
+ t.string "email"
153
+ t.string "password_digest"
154
+ t.boolean "admin", default: false
155
+ t.datetime "created_at", null: false
156
+ t.datetime "updated_at", null: false
157
+ t.datetime "last_logged_in"
158
+ end
159
+ end
160
+ end
@@ -0,0 +1,47 @@
1
+ module Spina
2
+ class InstallGenerator < Rails::Generators::Base
3
+ source_root File.expand_path("../templates", __FILE__)
4
+
5
+ def create_initializer_file
6
+ template "spina.rb", "config/initializers/spina.rb"
7
+ end
8
+
9
+ def create_theme_initializer
10
+ template "theme.rb", "config/initializers/themes/default.rb"
11
+ end
12
+
13
+ def copy_migrations
14
+ rake "spina:install:migrations"
15
+ end
16
+
17
+ def run_migrations
18
+ rake "db:migrate"
19
+ end
20
+
21
+ def copy_views
22
+ template "application.html.erb", "app/views/layouts/default/application.html.erb"
23
+ template "homepage.html.erb", "app/views/default/pages/homepage.html.erb"
24
+ template "show.html.erb", "app/views/default/pages/show.html.erb"
25
+ end
26
+
27
+ def create_account
28
+ name = ask("What would you like to name your website?")
29
+ Account.create name: name, theme: 'default'
30
+ end
31
+
32
+ def create_user
33
+ email = ask("Please enter an email address for your first user:")
34
+ password = ask("Create a temporary password:")
35
+ User.create name: 'admin', email: email, password: password, admin: true
36
+ end
37
+
38
+ def bootstrap_spina
39
+ rake "spina:bootstrap"
40
+ end
41
+
42
+ def add_route
43
+ route "mount Spina::Engine => '/'"
44
+ end
45
+
46
+ end
47
+ end
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title><%%= current_account.name %></title>
5
+ <%%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
6
+ <%%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
7
+ <%%= csrf_meta_tags %>
8
+ </head>
9
+ <body>
10
+
11
+ <%%= render 'spina/shared/navigation' %>
12
+
13
+ <%%= yield %>
14
+
15
+ </body>
16
+ </html>
@@ -0,0 +1,3 @@
1
+ <h1><%%= @page.title %></h1>
2
+
3
+ <%%= @page.content(:content).try(:html_safe) %>
@@ -0,0 +1,3 @@
1
+ <h1><%%= @page.title %></h1>
2
+
3
+ <%%= @page.content(:content).try(:html_safe) %>
@@ -0,0 +1,3 @@
1
+ Spina::Engine.configure do
2
+ config.NEGATIVE_CAPTCHA_SECRET = '<%= SecureRandom.hex(64) %>'
3
+ end
@@ -0,0 +1,42 @@
1
+ module Spina
2
+ module DefaultTheme
3
+ include ::ActiveSupport::Configurable
4
+
5
+ config_accessor :title, :page_parts, :view_templates, :layout_parts, :custom_pages, :plugins, :structures
6
+
7
+ self.title = "Default theme"
8
+
9
+ self.page_parts = [{
10
+ name: 'content',
11
+ title: 'Content',
12
+ page_partable_type: "Spina::Text"
13
+ }]
14
+
15
+ self.structures = []
16
+ self.layout_parts = []
17
+ self.custom_pages = []
18
+ self.plugins = []
19
+
20
+ self.view_templates = {
21
+ 'homepage' => {
22
+ title: 'Homepage',
23
+ page_parts: ['content']
24
+ },
25
+ 'show' => {
26
+ title: 'Default',
27
+ description: 'A simple page',
28
+ usage: 'Use for your content',
29
+ page_parts: ['content']
30
+ }
31
+ }
32
+
33
+ self.custom_pages = [
34
+ { name: 'homepage', title: 'Homepage', deletable: false, view_template: 'homepage' }
35
+ ]
36
+ end
37
+ end
38
+
39
+ theme = Spina::Theme.new
40
+ theme.name = "default"
41
+ theme.config = Spina::DefaultTheme.config
42
+ Spina.register_theme(theme)
data/lib/spina/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Spina
2
- VERSION = "0.6.22"
2
+ VERSION = "0.6.23"
3
3
  end
@@ -1,12 +1,8 @@
1
1
  namespace :spina do
2
- desc "Generate basic pages"
3
- task bootstrap: [:create_basic_pages]
4
2
 
5
- desc "Create custom pages from spina config"
6
- task :create_basic_pages => :environment do
7
- puts "Bootstrap Spina!"
8
- puts "Creating Homepage..."
9
- Spina::Page.where(name: 'homepage').where(deletable: false).first_or_create!
10
- puts "Done"
3
+ desc "Generate all pages based on the theme config"
4
+ task bootstrap: :environment do
5
+ Spina::Account.first.save
11
6
  end
12
- end
7
+
8
+ end
@@ -1,58 +1,3 @@
1
1
  Spina::Engine.configure do
2
- config.NEGATIVE_CAPTCHA_SECRET = 'abc'
2
+ config.NEGATIVE_CAPTCHA_SECRET = '3f4539dc9dd9352a98acac830c2c006ef2b804c3d8936fdd332dea67f1389e005c0a4caab6f2058873c2a2501b114710d0082f0844eaa5e04f82d7e1ab6915c0'
3
3
  end
4
-
5
- module Spina
6
- module DefaultTheme
7
- include ::ActiveSupport::Configurable
8
-
9
- config_accessor :title, :page_parts, :view_templates, :layout_parts, :custom_pages, :plugins, :structures
10
-
11
- self.title = "Default theme"
12
-
13
- self.page_parts = [{
14
- name: 'content',
15
- title: 'Content',
16
- page_partable_type: "Spina::Text"
17
- }, {
18
- name: 'team',
19
- title: 'Team',
20
- page_partable_type: "Spina::Structure"
21
- }]
22
-
23
- self.structures = {
24
- 'team' => [{
25
- name: 'name',
26
- title: 'Naam',
27
- structure_partable_type: "Spina::Line"
28
- }, {
29
- name: 'description',
30
- title: 'Omschrijving',
31
- structure_partable_type: "Spina::Text"
32
- }, {
33
- name: 'photo',
34
- title: 'Foto',
35
- structure_partable_type: "Spina::Photo"
36
- }]
37
- }
38
-
39
- self.layout_parts = []
40
-
41
- self.custom_pages = []
42
- self.plugins = []
43
-
44
- self.view_templates = {
45
- 'show' => {
46
- title: 'Default',
47
- description: 'Default template',
48
- usage: 'Default page',
49
- page_parts: ['content', 'team']
50
- }
51
- }
52
- end
53
- end
54
-
55
- theme = Spina::Theme.new
56
- theme.name = "Default theme"
57
- theme.config = Spina::DefaultTheme.config
58
- Spina.register_theme(theme)
@@ -0,0 +1,38 @@
1
+ module Spina
2
+ module DefaultTheme
3
+ include ::ActiveSupport::Configurable
4
+
5
+ config_accessor :title, :page_parts, :view_templates, :layout_parts, :custom_pages, :plugins, :structures
6
+
7
+ self.title = "Default theme"
8
+
9
+ self.page_parts = [{
10
+ name: 'content',
11
+ title: 'Content',
12
+ page_partable_type: "Spina::Text"
13
+ }]
14
+
15
+ self.structures = []
16
+ self.layout_parts = []
17
+ self.custom_pages = []
18
+ self.plugins = []
19
+
20
+ self.view_templates = {
21
+ 'homepage' => {
22
+ title: 'Homepage',
23
+ page_parts: ['content']
24
+ },
25
+ 'show' => {
26
+ title: 'Default',
27
+ description: 'A simple page',
28
+ usage: 'Use for your content',
29
+ page_parts: ['content']
30
+ }
31
+ }
32
+ end
33
+ end
34
+
35
+ theme = Spina::Theme.new
36
+ theme.name = "Default"
37
+ theme.config = Spina::DefaultTheme.config
38
+ Spina.register_theme(theme)
@@ -1,4 +1,4 @@
1
1
  Rails.application.routes.draw do
2
2
 
3
- mount Spina::Engine => "/"
3
+ mount Spina::Engine => '/'
4
4
  end
@@ -0,0 +1,161 @@
1
+ # This migration comes from spina (originally 20150507135428)
2
+ class CreateSpinaTables < ActiveRecord::Migration
3
+ def change
4
+ create_table "spina_accounts", force: :cascade do |t|
5
+ t.string "name"
6
+ t.string "address"
7
+ t.string "postal_code"
8
+ t.string "city"
9
+ t.string "phone"
10
+ t.string "email"
11
+ t.text "preferences"
12
+ t.string "logo"
13
+ t.datetime "created_at", null: false
14
+ t.datetime "updated_at", null: false
15
+ t.string "kvk_identifier"
16
+ t.string "vat_identifier"
17
+ t.boolean "robots_allowed", default: false
18
+ end
19
+
20
+ create_table "spina_attachment_collections", force: :cascade do |t|
21
+ t.datetime "created_at", null: false
22
+ t.datetime "updated_at", null: false
23
+ end
24
+
25
+ create_table "spina_attachment_collections_attachments", force: :cascade do |t|
26
+ t.integer "attachment_collection_id"
27
+ t.integer "attachment_id"
28
+ end
29
+
30
+ create_table "spina_attachments", force: :cascade do |t|
31
+ t.string "file"
32
+ t.datetime "created_at", null: false
33
+ t.datetime "updated_at", null: false
34
+ end
35
+
36
+ create_table "spina_colors", force: :cascade do |t|
37
+ t.text "content"
38
+ t.datetime "created_at"
39
+ t.datetime "updated_at"
40
+ end
41
+
42
+ create_table "spina_inquiries", force: :cascade do |t|
43
+ t.string "name"
44
+ t.string "email"
45
+ t.string "phone"
46
+ t.text "message"
47
+ t.boolean "archived", default: false
48
+ t.datetime "created_at", null: false
49
+ t.datetime "updated_at", null: false
50
+ t.boolean "spam"
51
+ end
52
+
53
+ create_table "spina_layout_parts", force: :cascade do |t|
54
+ t.string "title"
55
+ t.string "name"
56
+ t.integer "layout_partable_id"
57
+ t.string "layout_partable_type"
58
+ t.datetime "created_at"
59
+ t.datetime "updated_at"
60
+ t.integer "account_id"
61
+ end
62
+
63
+ create_table "spina_lines", force: :cascade do |t|
64
+ t.string "content"
65
+ t.datetime "created_at"
66
+ t.datetime "updated_at"
67
+ end
68
+
69
+ create_table "spina_page_parts", force: :cascade do |t|
70
+ t.string "title"
71
+ t.string "name"
72
+ t.datetime "created_at", null: false
73
+ t.datetime "updated_at", null: false
74
+ t.integer "page_id"
75
+ t.integer "page_partable_id"
76
+ t.string "page_partable_type"
77
+ end
78
+
79
+ create_table "spina_pages", force: :cascade do |t|
80
+ t.string "title"
81
+ t.string "menu_title"
82
+ t.string "description"
83
+ t.boolean "show_in_menu", default: true
84
+ t.string "slug"
85
+ t.boolean "deletable", default: true
86
+ t.datetime "created_at", null: false
87
+ t.datetime "updated_at", null: false
88
+ t.string "name"
89
+ t.string "seo_title"
90
+ t.boolean "skip_to_first_child", default: false
91
+ t.string "view_template"
92
+ t.string "layout_template"
93
+ t.boolean "draft", default: false
94
+ t.string "link_url"
95
+ t.string "ancestry"
96
+ t.integer "position"
97
+ t.string "materialized_path"
98
+ t.boolean "active", default: true
99
+ end
100
+
101
+ create_table "spina_photo_collections", force: :cascade do |t|
102
+ t.datetime "created_at", null: false
103
+ t.datetime "updated_at", null: false
104
+ end
105
+
106
+ create_table "spina_photo_collections_photos", force: :cascade do |t|
107
+ t.integer "photo_collection_id"
108
+ t.integer "photo_id"
109
+ t.integer "position"
110
+ end
111
+
112
+ create_table "spina_photos", force: :cascade do |t|
113
+ t.string "file"
114
+ t.datetime "created_at", null: false
115
+ t.datetime "updated_at", null: false
116
+ end
117
+
118
+ create_table "spina_structure_items", force: :cascade do |t|
119
+ t.integer "structure_id"
120
+ t.integer "position"
121
+ t.datetime "created_at"
122
+ t.datetime "updated_at"
123
+ end
124
+
125
+ add_index "spina_structure_items", ["structure_id"], name: "index_spina_structure_items_on_structure_id", using: :btree
126
+
127
+ create_table "spina_structure_parts", force: :cascade do |t|
128
+ t.integer "structure_item_id"
129
+ t.integer "structure_partable_id"
130
+ t.string "structure_partable_type"
131
+ t.string "name"
132
+ t.string "title"
133
+ t.datetime "created_at"
134
+ t.datetime "updated_at"
135
+ end
136
+
137
+ add_index "spina_structure_parts", ["structure_item_id"], name: "index_spina_structure_parts_on_structure_item_id", using: :btree
138
+ add_index "spina_structure_parts", ["structure_partable_id"], name: "index_spina_structure_parts_on_structure_partable_id", using: :btree
139
+
140
+ create_table "spina_structures", force: :cascade do |t|
141
+ t.datetime "created_at"
142
+ t.datetime "updated_at"
143
+ end
144
+
145
+ create_table "spina_texts", force: :cascade do |t|
146
+ t.text "content"
147
+ t.datetime "created_at"
148
+ t.datetime "updated_at"
149
+ end
150
+
151
+ create_table "spina_users", force: :cascade do |t|
152
+ t.string "name"
153
+ t.string "email"
154
+ t.string "password_digest"
155
+ t.boolean "admin", default: false
156
+ t.datetime "created_at", null: false
157
+ t.datetime "updated_at", null: false
158
+ t.datetime "last_logged_in"
159
+ end
160
+ end
161
+ end