lcms-engine 0.1.4 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (165) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/CHANGELOG.md +11 -15
  4. data/Dockerfile +0 -1
  5. data/README.md +13 -4
  6. data/app/assets/javascripts/lcms/engine/admin/application.js +2 -6
  7. data/app/assets/javascripts/lcms/engine/application.js +2 -2
  8. data/app/assets/javascripts/lcms/engine/initializers/{google_analytics.js → analytics.js} +0 -0
  9. data/app/assets/javascripts/lcms/engine/initializers/lessons.js +1 -1
  10. data/app/assets/stylesheets/lcms/engine/admin.scss +1 -1
  11. data/app/assets/stylesheets/lcms/engine/application.scss +4 -3
  12. data/app/assets/stylesheets/lcms/engine/components/_curriculum-cards.scss +1 -1
  13. data/app/assets/stylesheets/lcms/engine/components/_curriculum-map.scss +4 -4
  14. data/app/assets/stylesheets/lcms/engine/components/_media-resources.scss +1 -1
  15. data/app/assets/stylesheets/lcms/engine/components/_panel-dsc.scss +1 -1
  16. data/app/assets/stylesheets/lcms/engine/components/_resource.scss +6 -6
  17. data/app/assets/stylesheets/lcms/engine/pages/_home.scss +4 -4
  18. data/app/assets/stylesheets/lcms/engine/pdf.scss +1 -1
  19. data/app/assets/stylesheets/lcms/engine/themes/_settings.scss +419 -116
  20. data/app/assets/stylesheets/lcms/engine/utils/_mixins.scss +2 -2
  21. data/app/assets/stylesheets/lcms/engine/vendors/foundation_and_overrides-pdf.scss +0 -1
  22. data/app/assets/stylesheets/lcms/engine/vendors/foundation_and_overrides.scss +13 -2
  23. data/app/controllers/lcms/engine/admin/admin_controller.rb +0 -2
  24. data/app/controllers/lcms/engine/admin/association_picker_controller.rb +10 -9
  25. data/app/controllers/lcms/engine/admin/documents_controller.rb +17 -14
  26. data/app/controllers/lcms/engine/admin/materials_controller.rb +19 -23
  27. data/app/controllers/lcms/engine/admin/resource_picker_controller.rb +2 -2
  28. data/app/controllers/lcms/engine/admin/resources_controller.rb +45 -79
  29. data/app/controllers/lcms/engine/admin/sketch_compilers_controller.rb +2 -2
  30. data/app/controllers/lcms/engine/application_controller.rb +0 -15
  31. data/app/entities/lcms/engine/pagination.rb +14 -5
  32. data/app/forms/lcms/engine/material_form.rb +0 -1
  33. data/app/helpers/lcms/engine/application_helper.rb +2 -6
  34. data/app/helpers/lcms/engine/view_helper.rb +1 -3
  35. data/app/interactors/lcms/engine/explore_curriculum_interactor.rb +1 -1
  36. data/app/javascript/components/admin/ImportStatus.jsx +1 -1
  37. data/app/javascript/components/admin/association-picker/AssociationPickerResults.jsx +1 -1
  38. data/app/javascript/components/admin/picker/pickerWindowWrapper.jsx +0 -1
  39. data/app/models/lcms/engine/access_code.rb +1 -1
  40. data/app/models/lcms/engine/application_record.rb +9 -0
  41. data/app/models/lcms/engine/author.rb +1 -1
  42. data/app/models/lcms/engine/copyright_attribution.rb +1 -1
  43. data/app/models/lcms/engine/curriculum.rb +1 -1
  44. data/app/models/lcms/engine/document.rb +3 -3
  45. data/app/models/lcms/engine/document_bundle.rb +2 -2
  46. data/app/models/lcms/engine/document_part.rb +1 -1
  47. data/app/models/lcms/engine/download.rb +3 -3
  48. data/app/models/lcms/engine/download_category.rb +1 -1
  49. data/app/models/lcms/engine/leadership_post.rb +1 -1
  50. data/app/models/lcms/engine/material.rb +2 -2
  51. data/app/models/lcms/engine/material_part.rb +1 -1
  52. data/app/models/lcms/engine/page.rb +1 -1
  53. data/app/models/lcms/engine/reading_assignment_author.rb +1 -1
  54. data/app/models/lcms/engine/reading_assignment_text.rb +1 -1
  55. data/app/models/lcms/engine/resource.rb +4 -12
  56. data/app/models/lcms/engine/resource_additional_resource.rb +1 -1
  57. data/app/models/lcms/engine/resource_download.rb +1 -1
  58. data/app/models/lcms/engine/resource_reading_assignment.rb +1 -1
  59. data/app/models/lcms/engine/resource_related_resource.rb +1 -1
  60. data/app/models/lcms/engine/resource_standard.rb +1 -1
  61. data/app/models/lcms/engine/search/elastic_search_document.rb +1 -1
  62. data/app/models/lcms/engine/settings.rb +1 -1
  63. data/app/models/lcms/engine/social_thumbnail.rb +1 -1
  64. data/app/models/lcms/engine/staff_member.rb +1 -1
  65. data/app/models/lcms/engine/standard.rb +1 -1
  66. data/app/models/lcms/engine/standard_link.rb +1 -1
  67. data/app/models/lcms/engine/user.rb +3 -3
  68. data/app/presenters/lcms/engine/content_presenter.rb +1 -1
  69. data/app/queries/lcms/engine/admin_documents_query.rb +1 -1
  70. data/app/queries/lcms/engine/admin_materials_query.rb +1 -1
  71. data/app/serializers/lcms/engine/association_item_serializer.rb +0 -1
  72. data/app/serializers/lcms/engine/curriculum_resource_serializer.rb +0 -2
  73. data/app/serializers/lcms/engine/document_material_serializer.rb +0 -1
  74. data/app/serializers/lcms/engine/material_serializer.rb +0 -1
  75. data/app/serializers/lcms/engine/previews_material_serializer.rb +0 -1
  76. data/app/serializers/lcms/engine/resource_details_serializer.rb +0 -2
  77. data/app/serializers/lcms/engine/resource_instruction_serializer.rb +0 -2
  78. data/app/serializers/lcms/engine/resource_picker_serializer.rb +0 -2
  79. data/app/serializers/lcms/engine/resource_serializer.rb +0 -2
  80. data/app/serializers/lcms/engine/search_document_serializer.rb +0 -2
  81. data/app/services/lcms/engine/document_build_service.rb +1 -0
  82. data/app/services/lcms/engine/html_sanitizer.rb +2 -2
  83. data/app/services/lcms/engine/s3_service.rb +1 -1
  84. data/app/uploaders/social_thumbnail_uploader.rb +0 -4
  85. data/app/views/layouts/lcms/engine/admin.html.erb +1 -1
  86. data/app/views/lcms/engine/admin/access_codes/index.html.erb +10 -8
  87. data/app/views/lcms/engine/admin/documents/index.html.erb +2 -2
  88. data/app/views/lcms/engine/admin/materials/index.html.erb +2 -2
  89. data/app/views/lcms/engine/admin/pages/index.html.erb +3 -3
  90. data/app/views/lcms/engine/admin/standards/index.html.erb +9 -7
  91. data/app/views/lcms/engine/admin/users/index.html.erb +16 -14
  92. data/app/views/lcms/engine/resources/_children_list.html.erb +1 -1
  93. data/app/views/lcms/engine/shared/_social_sharing_menu.html.erb +4 -4
  94. data/config/initializers/carrier_wave.rb +0 -1
  95. data/config/locales/admin/en.yml +0 -2
  96. data/db/migrate/20200422130652_add_reimported_at_to_documents.rb +7 -0
  97. data/lcms-engine.gemspec +73 -87
  98. data/lib/doc_template/document.rb +2 -2
  99. data/lib/doc_template/tables/activity.rb +2 -1
  100. data/lib/doc_template/tables/base.rb +0 -4
  101. data/lib/doc_template/tables/section.rb +2 -1
  102. data/lib/doc_template/tags/link_tag.rb +1 -1
  103. data/lib/doc_template/xpath_functions.rb +1 -3
  104. data/lib/document_exporter/base.rb +1 -2
  105. data/lib/document_exporter/docx.rb +0 -1
  106. data/lib/generators/lcms/engine/install/install_generator.rb +1 -4
  107. data/lib/generators/lcms/engine/install/templates/config/lcms.yml +1 -1
  108. data/lib/lcms/engine/engine.rb +0 -16
  109. data/lib/lcms/engine/migration.rb +2 -0
  110. data/lib/lcms/engine/version.rb +1 -1
  111. data/lib/lt/lcms/metadata/context.rb +7 -5
  112. data/spec/controllers/admin/admin_controller_spec.rb +1 -1
  113. data/spec/controllers/admin/association_picker_controller_spec.rb +2 -2
  114. data/spec/controllers/admin/curriculums_controller_spec.rb +1 -2
  115. data/spec/controllers/admin/documents_controller_spec.rb +12 -41
  116. data/spec/controllers/admin/materials_controller_spec.rb +7 -67
  117. data/spec/controllers/admin/pages_controller_spec.rb +2 -2
  118. data/spec/controllers/admin/resource_bulk_edit_controller_spec.rb +3 -3
  119. data/spec/controllers/admin/sketch_compilers_controller_spec.rb +5 -4
  120. data/spec/controllers/admin/standards_controller_spec.rb +12 -9
  121. data/spec/controllers/admin/users_controller_spec.rb +2 -2
  122. data/spec/controllers/admin/welcome_controller_spec.rb +1 -1
  123. data/spec/controllers/documents_controller_spec.rb +3 -3
  124. data/spec/controllers/enhance_instruction_controller_spec.rb +1 -1
  125. data/spec/controllers/explore_curriculum_controller_spec.rb +2 -2
  126. data/spec/controllers/find_lessons_controller_spec.rb +1 -1
  127. data/spec/controllers/pages_controller_spec.rb +9 -12
  128. data/spec/controllers/resources_controller_spec.rb +2 -2
  129. data/spec/controllers/search_controller_spec.rb +1 -1
  130. data/spec/dummy/bin/spring +2 -2
  131. data/spec/dummy/config/application.rb +3 -3
  132. data/spec/dummy/config/environments/test.rb +2 -5
  133. data/spec/dummy/config/lcms-admin.yml +3 -3
  134. data/spec/dummy/config/webpack/development.js +5 -0
  135. data/spec/dummy/config/webpack/environment.js +3 -0
  136. data/spec/dummy/config/webpack/production.js +5 -0
  137. data/spec/dummy/config/webpack/test.js +5 -0
  138. data/spec/dummy/config/webpacker.yml +96 -0
  139. data/spec/dummy/db/schema.rb +251 -275
  140. data/spec/factories/document_bundles.rb +1 -1
  141. data/spec/factories/standard_links.rb +2 -0
  142. data/spec/factories/taggings.rb +1 -0
  143. data/spec/models/document_bundle_spec.rb +0 -6
  144. data/spec/models/resource_spec.rb +0 -33
  145. data/spec/rails_helper.rb +0 -1
  146. data/spec/requests/admin/curriculum_spec.rb +17 -0
  147. data/spec/services/document_build_service_spec.rb +76 -62
  148. data/spec/services/html_sanitizer_spec.rb +0 -34
  149. data/spec/support/capybara.rb +1 -3
  150. data/spec/support/concerns/searchable.rb +2 -0
  151. data/spec/support/database_cleaner.rb +5 -16
  152. data/spec/support/devise.rb +2 -0
  153. data/yarn.lock +442 -530
  154. metadata +183 -439
  155. data/Gemfile.lock +0 -752
  156. data/config/initializers/active_record.rb +0 -3
  157. data/spec/controllers/admin/resources_controller_spec.rb +0 -84
  158. data/spec/fixtures/tables/activity-metadata-3activities.html +0 -1
  159. data/spec/fixtures/tables/document-metadata-2paragpraphs.html +0 -97
  160. data/spec/fixtures/tables/document-metadata-2spans.html +0 -96
  161. data/spec/fixtures/tables/document-metadata.html +0 -96
  162. data/spec/lib/doc_template/tables/activity_spec.rb +0 -28
  163. data/spec/lib/doc_template/tables/metadata_spec.rb +0 -40
  164. data/spec/lib/doc_template/tables/shared_examples/remove_table.rb +0 -11
  165. data/spec/support/fixture_helper.rb +0 -16
@@ -10,9 +10,9 @@ engine: 'Lcms::Engine::Engine'
10
10
  # Redirects
11
11
  redirect:
12
12
  host:
13
- # root_path: 'admin_path'
14
- # document_path: 'document_path'
15
- # material_path: 'material_path'
13
+ root_path: 'admin_path'
14
+ document_path: 'document_path'
15
+ material_path: 'material_path'
16
16
  engine:
17
17
  root_path: 'admin_path'
18
18
  document_path: 'document_path'
@@ -0,0 +1,5 @@
1
+ process.env.NODE_ENV = process.env.NODE_ENV || 'development'
2
+
3
+ const environment = require('./environment')
4
+
5
+ module.exports = environment.toWebpackConfig()
@@ -0,0 +1,3 @@
1
+ const { environment } = require('@rails/webpacker')
2
+
3
+ module.exports = environment
@@ -0,0 +1,5 @@
1
+ process.env.NODE_ENV = process.env.NODE_ENV || 'production'
2
+
3
+ const environment = require('./environment')
4
+
5
+ module.exports = environment.toWebpackConfig()
@@ -0,0 +1,5 @@
1
+ process.env.NODE_ENV = process.env.NODE_ENV || 'development'
2
+
3
+ const environment = require('./environment')
4
+
5
+ module.exports = environment.toWebpackConfig()
@@ -0,0 +1,96 @@
1
+ # Note: You must restart bin/webpack-dev-server for changes to take effect
2
+
3
+ default: &default
4
+ source_path: app/javascript
5
+ source_entry_path: packs
6
+ public_root_path: public
7
+ public_output_path: lcms_engine_packs
8
+ cache_path: tmp/cache/webpacker
9
+ check_yarn_integrity: false
10
+ webpack_compile_output: false
11
+
12
+ # Additional paths webpack should lookup modules
13
+ # ['app/assets', 'engine/foo/app/assets']
14
+ resolved_paths: []
15
+
16
+ # Reload manifest.json on all requests so we reload latest compiled packs
17
+ cache_manifest: false
18
+
19
+ # Extract and emit a css file
20
+ extract_css: false
21
+
22
+ static_assets_extensions:
23
+ - .jpg
24
+ - .jpeg
25
+ - .png
26
+ - .gif
27
+ - .tiff
28
+ - .ico
29
+ - .svg
30
+ - .eot
31
+ - .otf
32
+ - .ttf
33
+ - .woff
34
+ - .woff2
35
+
36
+ extensions:
37
+ - .jsx
38
+ - .mjs
39
+ - .js
40
+ - .sass
41
+ - .scss
42
+ - .css
43
+ - .module.sass
44
+ - .module.scss
45
+ - .module.css
46
+ - .png
47
+ - .svg
48
+ - .gif
49
+ - .jpeg
50
+ - .jpg
51
+
52
+ development:
53
+ <<: *default
54
+ compile: true
55
+
56
+ # Verifies that correct packages and versions are installed by inspecting package.json, yarn.lock, and node_modules
57
+ check_yarn_integrity: true
58
+
59
+ # Reference: https://webpack.js.org/configuration/dev-server/
60
+ dev_server:
61
+ https: false
62
+ host: localhost
63
+ port: 3036
64
+ public: localhost:3036
65
+ hmr: false
66
+ # Inline should be set to true if using HMR
67
+ inline: true
68
+ overlay: true
69
+ compress: true
70
+ disable_host_check: true
71
+ use_local_ip: false
72
+ quiet: false
73
+ headers:
74
+ 'Access-Control-Allow-Origin': '*'
75
+ watch_options:
76
+ ignored: '**/node_modules/**'
77
+
78
+
79
+ test:
80
+ <<: *default
81
+ compile: true
82
+
83
+ # Compile test packs to a separate directory
84
+ public_output_path: packs-test
85
+
86
+ production:
87
+ <<: *default
88
+
89
+ # Production depends on precompilation of packs prior to booting for performance.
90
+ compile: false
91
+
92
+ # Extract and emit a css file
93
+ extract_css: true
94
+
95
+ # Cache manifest.json for performance
96
+ cache_manifest: true
@@ -1,4 +1,3 @@
1
- # encoding: UTF-8
2
1
  # This file is auto-generated from the current state of the database. Instead
3
2
  # of editing this file, please use the migrations feature of Active Record to
4
3
  # incrementally modify your database, and then regenerate this schema definition.
@@ -11,413 +10,390 @@
11
10
  #
12
11
  # It's strongly recommended that you check this file into your version control system.
13
12
 
14
- ActiveRecord::Schema.define(version: 20200218144849) do
13
+ ActiveRecord::Schema.define(version: 2020_04_22_130652) do
15
14
 
16
15
  # These are extensions that must be enabled in order to support this database
17
- enable_extension "plpgsql"
18
16
  enable_extension "hstore"
17
+ enable_extension "plpgsql"
19
18
 
20
19
  create_table "access_codes", force: :cascade do |t|
21
- t.string "code", null: false
22
- t.boolean "active", default: true, null: false
23
- t.datetime "created_at", null: false
24
- t.datetime "updated_at", null: false
20
+ t.string "code", null: false
21
+ t.boolean "active", default: true, null: false
22
+ t.datetime "created_at", null: false
23
+ t.datetime "updated_at", null: false
24
+ t.index ["code"], name: "index_access_codes_on_code", unique: true
25
25
  end
26
26
 
27
- add_index "access_codes", ["code"], name: "index_access_codes_on_code", unique: true, using: :btree
28
-
29
27
  create_table "authors", force: :cascade do |t|
30
- t.string "name"
31
- t.string "slug"
28
+ t.string "name"
29
+ t.string "slug"
32
30
  t.datetime "created_at", null: false
33
31
  t.datetime "updated_at", null: false
34
32
  end
35
33
 
36
34
  create_table "copyright_attributions", force: :cascade do |t|
37
- t.string "disclaimer"
38
- t.string "value", null: false
39
- t.datetime "created_at", null: false
40
- t.datetime "updated_at", null: false
41
- t.integer "resource_id", null: false
35
+ t.string "disclaimer"
36
+ t.string "value", null: false
37
+ t.datetime "created_at", null: false
38
+ t.datetime "updated_at", null: false
39
+ t.integer "resource_id", null: false
42
40
  end
43
41
 
44
42
  create_table "curriculums", force: :cascade do |t|
45
- t.string "name", null: false
46
- t.string "slug", null: false
47
- t.datetime "created_at", null: false
48
- t.datetime "updated_at", null: false
49
- t.boolean "default", default: false, null: false
43
+ t.string "name", null: false
44
+ t.string "slug", null: false
45
+ t.datetime "created_at", null: false
46
+ t.datetime "updated_at", null: false
47
+ t.boolean "default", default: false, null: false
50
48
  end
51
49
 
52
50
  create_table "document_bundles", force: :cascade do |t|
53
- t.string "category", null: false
54
- t.string "file"
55
- t.integer "resource_id"
56
- t.datetime "created_at", null: false
57
- t.datetime "updated_at", null: false
58
- t.string "url"
59
- t.string "content_type", default: "pdf", null: false
51
+ t.string "category", null: false
52
+ t.string "file"
53
+ t.integer "resource_id"
54
+ t.datetime "created_at", null: false
55
+ t.datetime "updated_at", null: false
56
+ t.string "url"
57
+ t.string "content_type", default: "pdf", null: false
58
+ t.index ["resource_id"], name: "index_document_bundles_on_resource_id"
60
59
  end
61
60
 
62
- add_index "document_bundles", ["resource_id"], name: "index_document_bundles_on_resource_id", using: :btree
63
-
64
61
  create_table "document_parts", force: :cascade do |t|
65
- t.text "content"
66
- t.string "part_type"
67
- t.boolean "active"
68
- t.datetime "created_at", null: false
69
- t.datetime "updated_at", null: false
70
- t.string "placeholder"
71
- t.text "materials", default: [], null: false, array: true
72
- t.integer "context_type", default: 0
73
- t.string "anchor"
74
- t.boolean "optional", default: false, null: false
75
- t.jsonb "data", default: {}, null: false
76
- t.integer "renderer_id"
77
- t.string "renderer_type"
62
+ t.text "content"
63
+ t.string "part_type"
64
+ t.boolean "active"
65
+ t.datetime "created_at", null: false
66
+ t.datetime "updated_at", null: false
67
+ t.string "placeholder"
68
+ t.text "materials", default: [], null: false, array: true
69
+ t.integer "context_type", default: 0
70
+ t.string "anchor"
71
+ t.boolean "optional", default: false, null: false
72
+ t.jsonb "data", default: {}, null: false
73
+ t.integer "renderer_id"
74
+ t.string "renderer_type"
75
+ t.index ["anchor"], name: "index_document_parts_on_anchor"
76
+ t.index ["context_type"], name: "index_document_parts_on_context_type"
77
+ t.index ["placeholder"], name: "index_document_parts_on_placeholder"
78
+ t.index ["renderer_type", "renderer_id"], name: "index_document_parts_on_renderer_type_and_renderer_id"
78
79
  end
79
80
 
80
- add_index "document_parts", ["anchor"], name: "index_document_parts_on_anchor", using: :btree
81
- add_index "document_parts", ["context_type"], name: "index_document_parts_on_context_type", using: :btree
82
- add_index "document_parts", ["placeholder"], name: "index_document_parts_on_placeholder", using: :btree
83
- add_index "document_parts", ["renderer_type", "renderer_id"], name: "index_document_parts_on_renderer_type_and_renderer_id", using: :btree
84
-
85
81
  create_table "documents", force: :cascade do |t|
86
- t.string "file_id"
87
- t.string "name"
82
+ t.string "file_id"
83
+ t.string "name"
88
84
  t.datetime "last_modified_at"
89
- t.string "last_author_email"
90
- t.string "last_author_name"
91
- t.text "original_content"
92
- t.string "version"
93
- t.datetime "created_at", null: false
94
- t.datetime "updated_at", null: false
95
- t.jsonb "metadata", default: {}, null: false
96
- t.jsonb "activity_metadata"
97
- t.integer "resource_id"
98
- t.jsonb "toc"
99
- t.boolean "active", default: true, null: false
100
- t.hstore "foundational_metadata"
101
- t.text "css_styles"
102
- t.jsonb "links", default: {}, null: false
103
- t.jsonb "agenda_metadata"
104
- t.string "foundational_file_id"
105
- t.text "foundational_content"
106
- t.string "fs_name"
107
- t.jsonb "sections_metadata"
108
- t.boolean "reimported", default: true, null: false
85
+ t.string "last_author_email"
86
+ t.string "last_author_name"
87
+ t.text "original_content"
88
+ t.string "version"
89
+ t.datetime "created_at", null: false
90
+ t.datetime "updated_at", null: false
91
+ t.jsonb "metadata", default: {}, null: false
92
+ t.jsonb "activity_metadata"
93
+ t.integer "resource_id"
94
+ t.jsonb "toc"
95
+ t.boolean "active", default: true, null: false
96
+ t.hstore "foundational_metadata"
97
+ t.text "css_styles"
98
+ t.jsonb "links", default: {}, null: false
99
+ t.jsonb "agenda_metadata"
100
+ t.string "foundational_file_id"
101
+ t.text "foundational_content"
102
+ t.string "fs_name"
103
+ t.jsonb "sections_metadata"
104
+ t.boolean "reimported", default: true, null: false
105
+ t.datetime "reimported_at"
106
+ t.index ["file_id"], name: "index_documents_on_file_id"
107
+ t.index ["metadata"], name: "index_documents_on_metadata", using: :gin
108
+ t.index ["resource_id"], name: "index_documents_on_resource_id"
109
109
  end
110
110
 
111
- add_index "documents", ["file_id"], name: "index_documents_on_file_id", using: :btree
112
- add_index "documents", ["metadata"], name: "index_documents_on_metadata", using: :gin
113
- add_index "documents", ["resource_id"], name: "index_documents_on_resource_id", using: :btree
114
-
115
111
  create_table "documents_materials", id: false, force: :cascade do |t|
116
112
  t.integer "document_id"
117
113
  t.integer "material_id"
114
+ t.index ["document_id", "material_id"], name: "index_documents_materials_on_document_id_and_material_id", unique: true
115
+ t.index ["material_id"], name: "index_documents_materials_on_material_id"
118
116
  end
119
117
 
120
- add_index "documents_materials", ["document_id", "material_id"], name: "index_documents_materials_on_document_id_and_material_id", unique: true, using: :btree
121
- add_index "documents_materials", ["material_id"], name: "index_documents_materials_on_material_id", using: :btree
122
-
123
118
  create_table "download_categories", force: :cascade do |t|
124
- t.string "title", null: false
125
- t.text "description"
119
+ t.string "title", null: false
120
+ t.text "description"
126
121
  t.integer "position"
127
- t.text "long_description"
128
- t.boolean "bundle", default: false, null: false
122
+ t.text "long_description"
123
+ t.boolean "bundle", default: false, null: false
129
124
  end
130
125
 
131
126
  create_table "downloads", force: :cascade do |t|
132
- t.string "filename"
133
- t.integer "filesize"
134
- t.string "url"
135
- t.string "content_type"
136
- t.string "title"
137
- t.string "description"
138
- t.datetime "created_at", null: false
139
- t.datetime "updated_at", null: false
140
- t.boolean "main", default: false, null: false
127
+ t.string "filename"
128
+ t.integer "filesize"
129
+ t.string "url"
130
+ t.string "content_type"
131
+ t.string "title"
132
+ t.string "description"
133
+ t.datetime "created_at", null: false
134
+ t.datetime "updated_at", null: false
135
+ t.boolean "main", default: false, null: false
141
136
  end
142
137
 
143
138
  create_table "leadership_posts", force: :cascade do |t|
144
- t.string "first_name", null: false
145
- t.string "last_name", null: false
146
- t.string "school"
147
- t.string "image_file"
148
- t.string "description", limit: 4096
149
- t.integer "order"
150
- t.datetime "created_at", null: false
151
- t.datetime "updated_at", null: false
139
+ t.string "first_name", null: false
140
+ t.string "last_name", null: false
141
+ t.string "school"
142
+ t.string "image_file"
143
+ t.string "description", limit: 4096
144
+ t.integer "order"
145
+ t.datetime "created_at", null: false
146
+ t.datetime "updated_at", null: false
147
+ t.index ["order", "last_name"], name: "index_leadership_posts_on_order_and_last_name"
152
148
  end
153
149
 
154
- add_index "leadership_posts", ["order", "last_name"], name: "index_leadership_posts_on_order_and_last_name", using: :btree
155
-
156
150
  create_table "materials", force: :cascade do |t|
157
- t.string "file_id", null: false
158
- t.string "identifier"
159
- t.jsonb "metadata", default: {}, null: false
160
- t.string "name"
151
+ t.string "file_id", null: false
152
+ t.string "identifier"
153
+ t.jsonb "metadata", default: {}, null: false
154
+ t.string "name"
161
155
  t.datetime "last_modified_at"
162
- t.string "last_author_email"
163
- t.string "last_author_name"
164
- t.text "original_content"
165
- t.string "version"
166
- t.datetime "created_at", null: false
167
- t.datetime "updated_at", null: false
168
- t.jsonb "preview_links", default: {}
156
+ t.string "last_author_email"
157
+ t.string "last_author_name"
158
+ t.text "original_content"
159
+ t.string "version"
160
+ t.datetime "created_at", null: false
161
+ t.datetime "updated_at", null: false
162
+ t.jsonb "preview_links", default: {}
169
163
  t.datetime "reimported_at"
170
- t.jsonb "links", default: {}
171
- t.text "css_styles"
164
+ t.jsonb "links", default: {}
165
+ t.text "css_styles"
166
+ t.index ["file_id"], name: "index_materials_on_file_id"
167
+ t.index ["identifier"], name: "index_materials_on_identifier"
168
+ t.index ["metadata"], name: "index_materials_on_metadata", using: :gin
172
169
  end
173
170
 
174
- add_index "materials", ["file_id"], name: "index_materials_on_file_id", using: :btree
175
- add_index "materials", ["identifier"], name: "index_materials_on_identifier", using: :btree
176
- add_index "materials", ["metadata"], name: "index_materials_on_metadata", using: :gin
177
-
178
171
  create_table "pages", force: :cascade do |t|
179
- t.text "body", null: false
180
- t.string "title", null: false
172
+ t.text "body", null: false
173
+ t.string "title", null: false
181
174
  t.datetime "created_at", null: false
182
175
  t.datetime "updated_at", null: false
183
- t.string "slug", null: false
176
+ t.string "slug", null: false
184
177
  end
185
178
 
186
179
  create_table "reading_assignment_authors", force: :cascade do |t|
187
- t.string "name", null: false
180
+ t.string "name", null: false
188
181
  t.datetime "created_at"
189
182
  t.datetime "updated_at"
183
+ t.index ["name"], name: "index_reading_assignment_authors_on_name", unique: true
190
184
  end
191
185
 
192
- add_index "reading_assignment_authors", ["name"], name: "index_reading_assignment_authors_on_name", unique: true, using: :btree
193
-
194
186
  create_table "reading_assignment_texts", force: :cascade do |t|
195
- t.string "name", null: false
196
- t.integer "reading_assignment_author_id", null: false
187
+ t.string "name", null: false
188
+ t.integer "reading_assignment_author_id", null: false
197
189
  t.datetime "created_at"
198
190
  t.datetime "updated_at"
191
+ t.index ["name"], name: "index_reading_assignment_texts_on_name"
192
+ t.index ["reading_assignment_author_id"], name: "index_reading_assignment_texts_on_reading_assignment_author_id"
199
193
  end
200
194
 
201
- add_index "reading_assignment_texts", ["name"], name: "index_reading_assignment_texts_on_name", using: :btree
202
- add_index "reading_assignment_texts", ["reading_assignment_author_id"], name: "index_reading_assignment_texts_on_reading_assignment_author_id", using: :btree
203
-
204
195
  create_table "resource_additional_resources", force: :cascade do |t|
205
- t.integer "resource_id", null: false
206
- t.integer "additional_resource_id", null: false
207
- t.integer "position"
208
- t.datetime "created_at", null: false
209
- t.datetime "updated_at", null: false
196
+ t.integer "resource_id", null: false
197
+ t.integer "additional_resource_id", null: false
198
+ t.integer "position"
199
+ t.datetime "created_at", null: false
200
+ t.datetime "updated_at", null: false
201
+ t.index ["additional_resource_id"], name: "index_resource_additional_resources_on_additional_resource_id"
202
+ t.index ["resource_id", "additional_resource_id"], name: "index_resource_additional_resources", unique: true
210
203
  end
211
204
 
212
- add_index "resource_additional_resources", ["additional_resource_id"], name: "index_resource_additional_resources_on_additional_resource_id", using: :btree
213
- add_index "resource_additional_resources", ["resource_id", "additional_resource_id"], name: "index_resource_additional_resources", unique: true, using: :btree
214
-
215
205
  create_table "resource_downloads", force: :cascade do |t|
216
- t.integer "resource_id"
217
- t.integer "download_id"
218
- t.datetime "created_at", null: false
219
- t.datetime "updated_at", null: false
220
- t.boolean "active"
221
- t.integer "download_category_id"
222
- t.text "description"
206
+ t.integer "resource_id"
207
+ t.integer "download_id"
208
+ t.datetime "created_at", null: false
209
+ t.datetime "updated_at", null: false
210
+ t.boolean "active"
211
+ t.integer "download_category_id"
212
+ t.text "description"
213
+ t.index ["download_category_id"], name: "index_resource_downloads_on_download_category_id"
214
+ t.index ["download_id"], name: "index_resource_downloads_on_download_id"
215
+ t.index ["resource_id"], name: "index_resource_downloads_on_resource_id"
223
216
  end
224
217
 
225
- add_index "resource_downloads", ["download_category_id"], name: "index_resource_downloads_on_download_category_id", using: :btree
226
- add_index "resource_downloads", ["download_id"], name: "index_resource_downloads_on_download_id", using: :btree
227
- add_index "resource_downloads", ["resource_id"], name: "index_resource_downloads_on_resource_id", using: :btree
228
-
229
218
  create_table "resource_hierarchies", id: false, force: :cascade do |t|
230
- t.integer "ancestor_id", null: false
219
+ t.integer "ancestor_id", null: false
231
220
  t.integer "descendant_id", null: false
232
- t.integer "generations", null: false
221
+ t.integer "generations", null: false
222
+ t.index ["ancestor_id", "descendant_id", "generations"], name: "resource_anc_desc_idx", unique: true
223
+ t.index ["descendant_id"], name: "resource_desc_idx"
233
224
  end
234
225
 
235
- add_index "resource_hierarchies", ["ancestor_id", "descendant_id", "generations"], name: "resource_anc_desc_idx", unique: true, using: :btree
236
- add_index "resource_hierarchies", ["descendant_id"], name: "resource_desc_idx", using: :btree
237
-
238
226
  create_table "resource_reading_assignments", force: :cascade do |t|
239
- t.integer "resource_id", null: false
227
+ t.integer "resource_id", null: false
240
228
  t.integer "reading_assignment_text_id", null: false
229
+ t.index ["reading_assignment_text_id"], name: "idx_res_rea_asg_rea_asg_txt"
230
+ t.index ["resource_id"], name: "index_resource_reading_assignments_on_resource_id"
241
231
  end
242
232
 
243
- add_index "resource_reading_assignments", ["reading_assignment_text_id"], name: "idx_res_rea_asg_rea_asg_txt", using: :btree
244
- add_index "resource_reading_assignments", ["resource_id"], name: "index_resource_reading_assignments_on_resource_id", using: :btree
245
-
246
233
  create_table "resource_related_resources", force: :cascade do |t|
247
- t.integer "resource_id"
248
- t.integer "related_resource_id"
249
- t.integer "position"
250
- t.datetime "created_at", null: false
251
- t.datetime "updated_at", null: false
234
+ t.integer "resource_id"
235
+ t.integer "related_resource_id"
236
+ t.integer "position"
237
+ t.datetime "created_at", null: false
238
+ t.datetime "updated_at", null: false
239
+ t.index ["related_resource_id"], name: "index_resource_related_resources_on_related_resource_id"
240
+ t.index ["resource_id"], name: "index_resource_related_resources_on_resource_id"
252
241
  end
253
242
 
254
- add_index "resource_related_resources", ["related_resource_id"], name: "index_resource_related_resources_on_related_resource_id", using: :btree
255
- add_index "resource_related_resources", ["resource_id"], name: "index_resource_related_resources_on_resource_id", using: :btree
256
-
257
243
  create_table "resource_standards", force: :cascade do |t|
258
- t.integer "resource_id"
259
- t.integer "standard_id"
244
+ t.integer "resource_id"
245
+ t.integer "standard_id"
260
246
  t.datetime "created_at"
261
247
  t.datetime "updated_at"
248
+ t.index ["resource_id"], name: "index_resource_standards_on_resource_id"
249
+ t.index ["standard_id"], name: "index_resource_standards_on_standard_id"
262
250
  end
263
251
 
264
- add_index "resource_standards", ["resource_id"], name: "index_resource_standards_on_resource_id", using: :btree
265
- add_index "resource_standards", ["standard_id"], name: "index_resource_standards_on_standard_id", using: :btree
266
-
267
252
  create_table "resources", force: :cascade do |t|
268
253
  t.datetime "created_at"
269
254
  t.datetime "updated_at"
270
255
  t.datetime "indexed_at"
271
- t.boolean "hidden", default: false
272
- t.string "engageny_url"
273
- t.string "engageny_title"
274
- t.string "description"
275
- t.string "title"
276
- t.string "short_title"
277
- t.string "subtitle"
278
- t.string "teaser"
279
- t.integer "time_to_teach"
280
- t.boolean "ell_appropriate", default: false, null: false
256
+ t.boolean "hidden", default: false
257
+ t.string "engageny_url"
258
+ t.string "engageny_title"
259
+ t.string "description"
260
+ t.string "title"
261
+ t.string "short_title"
262
+ t.string "subtitle"
263
+ t.string "teaser"
264
+ t.integer "time_to_teach"
265
+ t.boolean "ell_appropriate", default: false, null: false
281
266
  t.datetime "deleted_at"
282
- t.integer "resource_type", default: 1, null: false
283
- t.string "url"
284
- t.string "image_file"
285
- t.string "curriculum_type"
286
- t.string "hierarchical_position"
287
- t.string "slug"
288
- t.integer "parent_id"
289
- t.integer "level_position"
290
- t.boolean "tree", default: false, null: false
291
- t.string "opr_description"
292
- t.jsonb "download_categories_settings", default: {}, null: false
293
- t.jsonb "metadata", default: {}, null: false
294
- t.integer "author_id"
295
- t.integer "curriculum_id"
296
- t.jsonb "links", default: {}
267
+ t.integer "resource_type", default: 1, null: false
268
+ t.string "url"
269
+ t.string "image_file"
270
+ t.string "curriculum_type"
271
+ t.string "hierarchical_position"
272
+ t.string "slug"
273
+ t.integer "parent_id"
274
+ t.integer "level_position"
275
+ t.boolean "tree", default: false, null: false
276
+ t.string "opr_description"
277
+ t.jsonb "download_categories_settings", default: {}, null: false
278
+ t.jsonb "metadata", default: {}, null: false
279
+ t.integer "author_id"
280
+ t.integer "curriculum_id"
281
+ t.jsonb "links", default: {}
282
+ t.index ["author_id"], name: "index_resources_on_author_id"
283
+ t.index ["curriculum_id"], name: "index_resources_on_curriculum_id"
284
+ t.index ["deleted_at"], name: "index_resources_on_deleted_at"
285
+ t.index ["indexed_at"], name: "index_resources_on_indexed_at"
286
+ t.index ["metadata"], name: "index_resources_on_metadata", using: :gin
287
+ t.index ["resource_type"], name: "index_resources_on_resource_type"
297
288
  end
298
289
 
299
- add_index "resources", ["author_id"], name: "index_resources_on_author_id", using: :btree
300
- add_index "resources", ["curriculum_id"], name: "index_resources_on_curriculum_id", using: :btree
301
- add_index "resources", ["deleted_at"], name: "index_resources_on_deleted_at", using: :btree
302
- add_index "resources", ["indexed_at"], name: "index_resources_on_indexed_at", using: :btree
303
- add_index "resources", ["metadata"], name: "index_resources_on_metadata", using: :gin
304
- add_index "resources", ["resource_type"], name: "index_resources_on_resource_type", using: :btree
305
-
306
290
  create_table "sessions", force: :cascade do |t|
307
- t.string "session_id", null: false
308
- t.text "data"
291
+ t.string "session_id", null: false
292
+ t.text "data"
309
293
  t.datetime "created_at"
310
294
  t.datetime "updated_at"
295
+ t.index ["session_id"], name: "index_sessions_on_session_id", unique: true
296
+ t.index ["updated_at"], name: "index_sessions_on_updated_at"
311
297
  end
312
298
 
313
- add_index "sessions", ["session_id"], name: "index_sessions_on_session_id", unique: true, using: :btree
314
- add_index "sessions", ["updated_at"], name: "index_sessions_on_updated_at", using: :btree
315
-
316
299
  create_table "settings", force: :cascade do |t|
317
300
  t.jsonb "data", default: {}, null: false
318
301
  end
319
302
 
320
303
  create_table "social_thumbnails", force: :cascade do |t|
321
- t.integer "target_id", null: false
322
- t.string "target_type", null: false
323
- t.string "image", null: false
324
- t.string "media", null: false
304
+ t.integer "target_id", null: false
305
+ t.string "target_type", null: false
306
+ t.string "image", null: false
307
+ t.string "media", null: false
308
+ t.index ["target_type", "target_id"], name: "index_social_thumbnails_on_target_type_and_target_id"
325
309
  end
326
310
 
327
- add_index "social_thumbnails", ["target_type", "target_id"], name: "index_social_thumbnails_on_target_type_and_target_id", using: :btree
328
-
329
311
  create_table "staff_members", force: :cascade do |t|
330
- t.string "bio", limit: 4096
331
- t.string "position"
332
- t.datetime "created_at", null: false
333
- t.datetime "updated_at", null: false
334
- t.integer "staff_type", default: 1, null: false
335
- t.string "image_file"
336
- t.string "department"
337
- t.string "first_name"
338
- t.string "last_name"
339
- t.integer "order"
312
+ t.string "bio", limit: 4096
313
+ t.string "position"
314
+ t.datetime "created_at", null: false
315
+ t.datetime "updated_at", null: false
316
+ t.integer "staff_type", default: 1, null: false
317
+ t.string "image_file"
318
+ t.string "department"
319
+ t.string "first_name"
320
+ t.string "last_name"
321
+ t.integer "order"
322
+ t.index ["first_name", "last_name"], name: "index_staff_members_on_first_name_and_last_name"
340
323
  end
341
324
 
342
- add_index "staff_members", ["first_name", "last_name"], name: "index_staff_members_on_first_name_and_last_name", using: :btree
343
-
344
325
  create_table "standard_links", force: :cascade do |t|
345
326
  t.integer "standard_begin_id", null: false
346
- t.integer "standard_end_id", null: false
347
- t.string "link_type", null: false
348
- t.string "description"
327
+ t.integer "standard_end_id", null: false
328
+ t.string "link_type", null: false
329
+ t.string "description"
330
+ t.index ["link_type"], name: "index_standard_links_on_link_type"
331
+ t.index ["standard_begin_id"], name: "index_standard_links_on_standard_begin_id"
332
+ t.index ["standard_end_id"], name: "index_standard_links_on_standard_end_id"
349
333
  end
350
334
 
351
- add_index "standard_links", ["link_type"], name: "index_standard_links_on_link_type", using: :btree
352
- add_index "standard_links", ["standard_begin_id"], name: "index_standard_links_on_standard_begin_id", using: :btree
353
- add_index "standard_links", ["standard_end_id"], name: "index_standard_links_on_standard_end_id", using: :btree
354
-
355
335
  create_table "standards", force: :cascade do |t|
356
- t.string "name", null: false
336
+ t.string "name", null: false
357
337
  t.datetime "created_at"
358
338
  t.datetime "updated_at"
359
- t.string "subject"
360
- t.string "description"
361
- t.text "grades", default: [], null: false, array: true
362
- t.string "label"
363
- t.text "alt_names", default: [], null: false, array: true
364
- t.string "course"
365
- t.string "domain"
366
- t.string "emphasis"
367
- t.string "strand"
368
- t.text "synonyms", default: [], array: true
339
+ t.string "subject"
340
+ t.string "description"
341
+ t.text "grades", default: [], null: false, array: true
342
+ t.string "label"
343
+ t.text "alt_names", default: [], null: false, array: true
344
+ t.string "course"
345
+ t.string "domain"
346
+ t.string "emphasis"
347
+ t.string "strand"
348
+ t.text "synonyms", default: [], array: true
349
+ t.index ["name"], name: "index_standards_on_name"
350
+ t.index ["subject"], name: "index_standards_on_subject"
369
351
  end
370
352
 
371
- add_index "standards", ["name"], name: "index_standards_on_name", using: :btree
372
- add_index "standards", ["subject"], name: "index_standards_on_subject", using: :btree
373
-
374
353
  create_table "taggings", force: :cascade do |t|
375
- t.integer "tag_id"
376
- t.integer "taggable_id"
377
- t.string "taggable_type"
378
- t.integer "tagger_id"
379
- t.string "tagger_type"
380
- t.string "context", limit: 128
354
+ t.integer "tag_id"
355
+ t.integer "taggable_id"
356
+ t.string "taggable_type"
357
+ t.integer "tagger_id"
358
+ t.string "tagger_type"
359
+ t.string "context", limit: 128
381
360
  t.datetime "created_at"
361
+ t.index ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], name: "taggings_idx", unique: true
362
+ t.index ["taggable_id", "taggable_type", "context"], name: "index_taggings_on_taggable_id_and_taggable_type_and_context"
382
363
  end
383
364
 
384
- add_index "taggings", ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], name: "taggings_idx", unique: true, using: :btree
385
- add_index "taggings", ["taggable_id", "taggable_type", "context"], name: "index_taggings_on_taggable_id_and_taggable_type_and_context", using: :btree
386
-
387
365
  create_table "tags", force: :cascade do |t|
388
- t.string "name"
366
+ t.string "name"
389
367
  t.integer "taggings_count", default: 0
368
+ t.index ["name"], name: "index_tags_on_name", unique: true
390
369
  end
391
370
 
392
- add_index "tags", ["name"], name: "index_tags_on_name", unique: true, using: :btree
393
-
394
371
  create_table "users", force: :cascade do |t|
395
- t.string "name"
396
- t.datetime "created_at", null: false
397
- t.datetime "updated_at", null: false
398
- t.string "email", default: "", null: false
399
- t.string "encrypted_password", default: "", null: false
400
- t.string "reset_password_token"
372
+ t.string "name"
373
+ t.datetime "created_at", null: false
374
+ t.datetime "updated_at", null: false
375
+ t.string "email", default: "", null: false
376
+ t.string "encrypted_password", default: "", null: false
377
+ t.string "reset_password_token"
401
378
  t.datetime "reset_password_sent_at"
402
379
  t.datetime "remember_created_at"
403
- t.integer "sign_in_count", default: 0, null: false
380
+ t.integer "sign_in_count", default: 0, null: false
404
381
  t.datetime "current_sign_in_at"
405
382
  t.datetime "last_sign_in_at"
406
- t.inet "current_sign_in_ip"
407
- t.inet "last_sign_in_ip"
408
- t.integer "role", default: 0, null: false
409
- t.string "access_code"
410
- t.string "confirmation_token"
383
+ t.inet "current_sign_in_ip"
384
+ t.inet "last_sign_in_ip"
385
+ t.integer "role", default: 0, null: false
386
+ t.string "access_code"
387
+ t.string "confirmation_token"
411
388
  t.datetime "confirmed_at"
412
389
  t.datetime "confirmation_sent_at"
413
- t.string "unconfirmed_email"
414
- t.hstore "survey"
390
+ t.string "unconfirmed_email"
391
+ t.hstore "survey"
392
+ t.index ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true
393
+ t.index ["email"], name: "index_users_on_email", unique: true
394
+ t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
415
395
  end
416
396
 
417
- add_index "users", ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true, using: :btree
418
- add_index "users", ["email"], name: "index_users_on_email", unique: true, using: :btree
419
- add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, using: :btree
420
-
421
397
  add_foreign_key "copyright_attributions", "resources"
422
398
  add_foreign_key "document_bundles", "resources"
423
399
  add_foreign_key "documents_materials", "documents"