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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +11 -15
- data/Dockerfile +0 -1
- data/README.md +13 -4
- data/app/assets/javascripts/lcms/engine/admin/application.js +2 -6
- data/app/assets/javascripts/lcms/engine/application.js +2 -2
- data/app/assets/javascripts/lcms/engine/initializers/{google_analytics.js → analytics.js} +0 -0
- data/app/assets/javascripts/lcms/engine/initializers/lessons.js +1 -1
- data/app/assets/stylesheets/lcms/engine/admin.scss +1 -1
- data/app/assets/stylesheets/lcms/engine/application.scss +4 -3
- data/app/assets/stylesheets/lcms/engine/components/_curriculum-cards.scss +1 -1
- data/app/assets/stylesheets/lcms/engine/components/_curriculum-map.scss +4 -4
- data/app/assets/stylesheets/lcms/engine/components/_media-resources.scss +1 -1
- data/app/assets/stylesheets/lcms/engine/components/_panel-dsc.scss +1 -1
- data/app/assets/stylesheets/lcms/engine/components/_resource.scss +6 -6
- data/app/assets/stylesheets/lcms/engine/pages/_home.scss +4 -4
- data/app/assets/stylesheets/lcms/engine/pdf.scss +1 -1
- data/app/assets/stylesheets/lcms/engine/themes/_settings.scss +419 -116
- data/app/assets/stylesheets/lcms/engine/utils/_mixins.scss +2 -2
- data/app/assets/stylesheets/lcms/engine/vendors/foundation_and_overrides-pdf.scss +0 -1
- data/app/assets/stylesheets/lcms/engine/vendors/foundation_and_overrides.scss +13 -2
- data/app/controllers/lcms/engine/admin/admin_controller.rb +0 -2
- data/app/controllers/lcms/engine/admin/association_picker_controller.rb +10 -9
- data/app/controllers/lcms/engine/admin/documents_controller.rb +17 -14
- data/app/controllers/lcms/engine/admin/materials_controller.rb +19 -23
- data/app/controllers/lcms/engine/admin/resource_picker_controller.rb +2 -2
- data/app/controllers/lcms/engine/admin/resources_controller.rb +45 -79
- data/app/controllers/lcms/engine/admin/sketch_compilers_controller.rb +2 -2
- data/app/controllers/lcms/engine/application_controller.rb +0 -15
- data/app/entities/lcms/engine/pagination.rb +14 -5
- data/app/forms/lcms/engine/material_form.rb +0 -1
- data/app/helpers/lcms/engine/application_helper.rb +2 -6
- data/app/helpers/lcms/engine/view_helper.rb +1 -3
- data/app/interactors/lcms/engine/explore_curriculum_interactor.rb +1 -1
- data/app/javascript/components/admin/ImportStatus.jsx +1 -1
- data/app/javascript/components/admin/association-picker/AssociationPickerResults.jsx +1 -1
- data/app/javascript/components/admin/picker/pickerWindowWrapper.jsx +0 -1
- data/app/models/lcms/engine/access_code.rb +1 -1
- data/app/models/lcms/engine/application_record.rb +9 -0
- data/app/models/lcms/engine/author.rb +1 -1
- data/app/models/lcms/engine/copyright_attribution.rb +1 -1
- data/app/models/lcms/engine/curriculum.rb +1 -1
- data/app/models/lcms/engine/document.rb +3 -3
- data/app/models/lcms/engine/document_bundle.rb +2 -2
- data/app/models/lcms/engine/document_part.rb +1 -1
- data/app/models/lcms/engine/download.rb +3 -3
- data/app/models/lcms/engine/download_category.rb +1 -1
- data/app/models/lcms/engine/leadership_post.rb +1 -1
- data/app/models/lcms/engine/material.rb +2 -2
- data/app/models/lcms/engine/material_part.rb +1 -1
- data/app/models/lcms/engine/page.rb +1 -1
- data/app/models/lcms/engine/reading_assignment_author.rb +1 -1
- data/app/models/lcms/engine/reading_assignment_text.rb +1 -1
- data/app/models/lcms/engine/resource.rb +4 -12
- data/app/models/lcms/engine/resource_additional_resource.rb +1 -1
- data/app/models/lcms/engine/resource_download.rb +1 -1
- data/app/models/lcms/engine/resource_reading_assignment.rb +1 -1
- data/app/models/lcms/engine/resource_related_resource.rb +1 -1
- data/app/models/lcms/engine/resource_standard.rb +1 -1
- data/app/models/lcms/engine/search/elastic_search_document.rb +1 -1
- data/app/models/lcms/engine/settings.rb +1 -1
- data/app/models/lcms/engine/social_thumbnail.rb +1 -1
- data/app/models/lcms/engine/staff_member.rb +1 -1
- data/app/models/lcms/engine/standard.rb +1 -1
- data/app/models/lcms/engine/standard_link.rb +1 -1
- data/app/models/lcms/engine/user.rb +3 -3
- data/app/presenters/lcms/engine/content_presenter.rb +1 -1
- data/app/queries/lcms/engine/admin_documents_query.rb +1 -1
- data/app/queries/lcms/engine/admin_materials_query.rb +1 -1
- data/app/serializers/lcms/engine/association_item_serializer.rb +0 -1
- data/app/serializers/lcms/engine/curriculum_resource_serializer.rb +0 -2
- data/app/serializers/lcms/engine/document_material_serializer.rb +0 -1
- data/app/serializers/lcms/engine/material_serializer.rb +0 -1
- data/app/serializers/lcms/engine/previews_material_serializer.rb +0 -1
- data/app/serializers/lcms/engine/resource_details_serializer.rb +0 -2
- data/app/serializers/lcms/engine/resource_instruction_serializer.rb +0 -2
- data/app/serializers/lcms/engine/resource_picker_serializer.rb +0 -2
- data/app/serializers/lcms/engine/resource_serializer.rb +0 -2
- data/app/serializers/lcms/engine/search_document_serializer.rb +0 -2
- data/app/services/lcms/engine/document_build_service.rb +1 -0
- data/app/services/lcms/engine/html_sanitizer.rb +2 -2
- data/app/services/lcms/engine/s3_service.rb +1 -1
- data/app/uploaders/social_thumbnail_uploader.rb +0 -4
- data/app/views/layouts/lcms/engine/admin.html.erb +1 -1
- data/app/views/lcms/engine/admin/access_codes/index.html.erb +10 -8
- data/app/views/lcms/engine/admin/documents/index.html.erb +2 -2
- data/app/views/lcms/engine/admin/materials/index.html.erb +2 -2
- data/app/views/lcms/engine/admin/pages/index.html.erb +3 -3
- data/app/views/lcms/engine/admin/standards/index.html.erb +9 -7
- data/app/views/lcms/engine/admin/users/index.html.erb +16 -14
- data/app/views/lcms/engine/resources/_children_list.html.erb +1 -1
- data/app/views/lcms/engine/shared/_social_sharing_menu.html.erb +4 -4
- data/config/initializers/carrier_wave.rb +0 -1
- data/config/locales/admin/en.yml +0 -2
- data/db/migrate/20200422130652_add_reimported_at_to_documents.rb +7 -0
- data/lcms-engine.gemspec +73 -87
- data/lib/doc_template/document.rb +2 -2
- data/lib/doc_template/tables/activity.rb +2 -1
- data/lib/doc_template/tables/base.rb +0 -4
- data/lib/doc_template/tables/section.rb +2 -1
- data/lib/doc_template/tags/link_tag.rb +1 -1
- data/lib/doc_template/xpath_functions.rb +1 -3
- data/lib/document_exporter/base.rb +1 -2
- data/lib/document_exporter/docx.rb +0 -1
- data/lib/generators/lcms/engine/install/install_generator.rb +1 -4
- data/lib/generators/lcms/engine/install/templates/config/lcms.yml +1 -1
- data/lib/lcms/engine/engine.rb +0 -16
- data/lib/lcms/engine/migration.rb +2 -0
- data/lib/lcms/engine/version.rb +1 -1
- data/lib/lt/lcms/metadata/context.rb +7 -5
- data/spec/controllers/admin/admin_controller_spec.rb +1 -1
- data/spec/controllers/admin/association_picker_controller_spec.rb +2 -2
- data/spec/controllers/admin/curriculums_controller_spec.rb +1 -2
- data/spec/controllers/admin/documents_controller_spec.rb +12 -41
- data/spec/controllers/admin/materials_controller_spec.rb +7 -67
- data/spec/controllers/admin/pages_controller_spec.rb +2 -2
- data/spec/controllers/admin/resource_bulk_edit_controller_spec.rb +3 -3
- data/spec/controllers/admin/sketch_compilers_controller_spec.rb +5 -4
- data/spec/controllers/admin/standards_controller_spec.rb +12 -9
- data/spec/controllers/admin/users_controller_spec.rb +2 -2
- data/spec/controllers/admin/welcome_controller_spec.rb +1 -1
- data/spec/controllers/documents_controller_spec.rb +3 -3
- data/spec/controllers/enhance_instruction_controller_spec.rb +1 -1
- data/spec/controllers/explore_curriculum_controller_spec.rb +2 -2
- data/spec/controllers/find_lessons_controller_spec.rb +1 -1
- data/spec/controllers/pages_controller_spec.rb +9 -12
- data/spec/controllers/resources_controller_spec.rb +2 -2
- data/spec/controllers/search_controller_spec.rb +1 -1
- data/spec/dummy/bin/spring +2 -2
- data/spec/dummy/config/application.rb +3 -3
- data/spec/dummy/config/environments/test.rb +2 -5
- data/spec/dummy/config/lcms-admin.yml +3 -3
- data/spec/dummy/config/webpack/development.js +5 -0
- data/spec/dummy/config/webpack/environment.js +3 -0
- data/spec/dummy/config/webpack/production.js +5 -0
- data/spec/dummy/config/webpack/test.js +5 -0
- data/spec/dummy/config/webpacker.yml +96 -0
- data/spec/dummy/db/schema.rb +251 -275
- data/spec/factories/document_bundles.rb +1 -1
- data/spec/factories/standard_links.rb +2 -0
- data/spec/factories/taggings.rb +1 -0
- data/spec/models/document_bundle_spec.rb +0 -6
- data/spec/models/resource_spec.rb +0 -33
- data/spec/rails_helper.rb +0 -1
- data/spec/requests/admin/curriculum_spec.rb +17 -0
- data/spec/services/document_build_service_spec.rb +76 -62
- data/spec/services/html_sanitizer_spec.rb +0 -34
- data/spec/support/capybara.rb +1 -3
- data/spec/support/concerns/searchable.rb +2 -0
- data/spec/support/database_cleaner.rb +5 -16
- data/spec/support/devise.rb +2 -0
- data/yarn.lock +442 -530
- metadata +183 -439
- data/Gemfile.lock +0 -752
- data/config/initializers/active_record.rb +0 -3
- data/spec/controllers/admin/resources_controller_spec.rb +0 -84
- data/spec/fixtures/tables/activity-metadata-3activities.html +0 -1
- data/spec/fixtures/tables/document-metadata-2paragpraphs.html +0 -97
- data/spec/fixtures/tables/document-metadata-2spans.html +0 -96
- data/spec/fixtures/tables/document-metadata.html +0 -96
- data/spec/lib/doc_template/tables/activity_spec.rb +0 -28
- data/spec/lib/doc_template/tables/metadata_spec.rb +0 -40
- data/spec/lib/doc_template/tables/shared_examples/remove_table.rb +0 -11
- 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
|
-
|
14
|
-
|
15
|
-
|
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,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
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -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:
|
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
|
22
|
-
t.boolean
|
23
|
-
t.datetime "created_at",
|
24
|
-
t.datetime "updated_at",
|
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
|
31
|
-
t.string
|
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
|
38
|
-
t.string
|
39
|
-
t.datetime "created_at",
|
40
|
-
t.datetime "updated_at",
|
41
|
-
t.integer
|
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
|
46
|
-
t.string
|
47
|
-
t.datetime "created_at",
|
48
|
-
t.datetime "updated_at",
|
49
|
-
t.boolean
|
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
|
54
|
-
t.string
|
55
|
-
t.integer
|
56
|
-
t.datetime "created_at",
|
57
|
-
t.datetime "updated_at",
|
58
|
-
t.string
|
59
|
-
t.string
|
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
|
66
|
-
t.string
|
67
|
-
t.boolean
|
68
|
-
t.datetime "created_at",
|
69
|
-
t.datetime "updated_at",
|
70
|
-
t.string
|
71
|
-
t.text
|
72
|
-
t.integer
|
73
|
-
t.string
|
74
|
-
t.boolean
|
75
|
-
t.jsonb
|
76
|
-
t.integer
|
77
|
-
t.string
|
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
|
87
|
-
t.string
|
82
|
+
t.string "file_id"
|
83
|
+
t.string "name"
|
88
84
|
t.datetime "last_modified_at"
|
89
|
-
t.string
|
90
|
-
t.string
|
91
|
-
t.text
|
92
|
-
t.string
|
93
|
-
t.datetime "created_at",
|
94
|
-
t.datetime "updated_at",
|
95
|
-
t.jsonb
|
96
|
-
t.jsonb
|
97
|
-
t.integer
|
98
|
-
t.jsonb
|
99
|
-
t.boolean
|
100
|
-
t.hstore
|
101
|
-
t.text
|
102
|
-
t.jsonb
|
103
|
-
t.jsonb
|
104
|
-
t.string
|
105
|
-
t.text
|
106
|
-
t.string
|
107
|
-
t.jsonb
|
108
|
-
t.boolean
|
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
|
125
|
-
t.text
|
119
|
+
t.string "title", null: false
|
120
|
+
t.text "description"
|
126
121
|
t.integer "position"
|
127
|
-
t.text
|
128
|
-
t.boolean "bundle",
|
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
|
133
|
-
t.integer
|
134
|
-
t.string
|
135
|
-
t.string
|
136
|
-
t.string
|
137
|
-
t.string
|
138
|
-
t.datetime "created_at",
|
139
|
-
t.datetime "updated_at",
|
140
|
-
t.boolean
|
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
|
145
|
-
t.string
|
146
|
-
t.string
|
147
|
-
t.string
|
148
|
-
t.string
|
149
|
-
t.integer
|
150
|
-
t.datetime "created_at",
|
151
|
-
t.datetime "updated_at",
|
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
|
158
|
-
t.string
|
159
|
-
t.jsonb
|
160
|
-
t.string
|
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
|
163
|
-
t.string
|
164
|
-
t.text
|
165
|
-
t.string
|
166
|
-
t.datetime "created_at",
|
167
|
-
t.datetime "updated_at",
|
168
|
-
t.jsonb
|
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
|
171
|
-
t.text
|
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
|
180
|
-
t.string
|
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
|
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
|
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
|
196
|
-
t.integer
|
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
|
206
|
-
t.integer
|
207
|
-
t.integer
|
208
|
-
t.datetime "created_at",
|
209
|
-
t.datetime "updated_at",
|
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
|
217
|
-
t.integer
|
218
|
-
t.datetime "created_at",
|
219
|
-
t.datetime "updated_at",
|
220
|
-
t.boolean
|
221
|
-
t.integer
|
222
|
-
t.text
|
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",
|
219
|
+
t.integer "ancestor_id", null: false
|
231
220
|
t.integer "descendant_id", null: false
|
232
|
-
t.integer "generations",
|
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",
|
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
|
248
|
-
t.integer
|
249
|
-
t.integer
|
250
|
-
t.datetime "created_at",
|
251
|
-
t.datetime "updated_at",
|
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
|
259
|
-
t.integer
|
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
|
272
|
-
t.string
|
273
|
-
t.string
|
274
|
-
t.string
|
275
|
-
t.string
|
276
|
-
t.string
|
277
|
-
t.string
|
278
|
-
t.string
|
279
|
-
t.integer
|
280
|
-
t.boolean
|
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
|
283
|
-
t.string
|
284
|
-
t.string
|
285
|
-
t.string
|
286
|
-
t.string
|
287
|
-
t.string
|
288
|
-
t.integer
|
289
|
-
t.integer
|
290
|
-
t.boolean
|
291
|
-
t.string
|
292
|
-
t.jsonb
|
293
|
-
t.jsonb
|
294
|
-
t.integer
|
295
|
-
t.integer
|
296
|
-
t.jsonb
|
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
|
308
|
-
t.text
|
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",
|
322
|
-
t.string
|
323
|
-
t.string
|
324
|
-
t.string
|
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
|
331
|
-
t.string
|
332
|
-
t.datetime "created_at",
|
333
|
-
t.datetime "updated_at",
|
334
|
-
t.integer
|
335
|
-
t.string
|
336
|
-
t.string
|
337
|
-
t.string
|
338
|
-
t.string
|
339
|
-
t.integer
|
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",
|
347
|
-
t.string
|
348
|
-
t.string
|
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
|
336
|
+
t.string "name", null: false
|
357
337
|
t.datetime "created_at"
|
358
338
|
t.datetime "updated_at"
|
359
|
-
t.string
|
360
|
-
t.string
|
361
|
-
t.text
|
362
|
-
t.string
|
363
|
-
t.text
|
364
|
-
t.string
|
365
|
-
t.string
|
366
|
-
t.string
|
367
|
-
t.string
|
368
|
-
t.text
|
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
|
376
|
-
t.integer
|
377
|
-
t.string
|
378
|
-
t.integer
|
379
|
-
t.string
|
380
|
-
t.string
|
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
|
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
|
396
|
-
t.datetime "created_at",
|
397
|
-
t.datetime "updated_at",
|
398
|
-
t.string
|
399
|
-
t.string
|
400
|
-
t.string
|
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
|
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
|
407
|
-
t.inet
|
408
|
-
t.integer
|
409
|
-
t.string
|
410
|
-
t.string
|
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
|
414
|
-
t.hstore
|
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"
|