biovision-courses 0.0.180221
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +28 -0
- data/Rakefile +26 -0
- data/app/assets/config/biovision_courses_manifest.js +2 -0
- data/app/assets/javascripts/biovision/courses/application.js +13 -0
- data/app/assets/stylesheets/biovision/courses/application.css +15 -0
- data/app/controllers/admin/course_categories_controller.rb +28 -0
- data/app/controllers/admin/course_tags_controller.rb +28 -0
- data/app/controllers/admin/courses_controller.rb +29 -0
- data/app/controllers/biovision/courses/application_controller.rb +7 -0
- data/app/controllers/course_categories_controller.rb +70 -0
- data/app/controllers/course_tags_controller.rb +66 -0
- data/app/controllers/courses_controller.rb +94 -0
- data/app/helpers/biovision/courses/application_helper.rb +6 -0
- data/app/helpers/biovision_courses_helper.rb +80 -0
- data/app/jobs/biovision/courses/application_job.rb +6 -0
- data/app/mailers/biovision/courses/application_mailer.rb +8 -0
- data/app/models/application_record.rb +3 -0
- data/app/models/biovision/courses/application_record.rb +7 -0
- data/app/models/course.rb +109 -0
- data/app/models/course_category.rb +137 -0
- data/app/models/course_course_tag.rb +13 -0
- data/app/models/course_tag.rb +49 -0
- data/app/uploaders/course_image_uploader.rb +46 -0
- data/app/views/admin/course_categories/_nav_item.html.erb +2 -0
- data/app/views/admin/course_categories/entity/_in_list.html.erb +43 -0
- data/app/views/admin/course_categories/index.html.erb +17 -0
- data/app/views/admin/course_categories/show.html.erb +85 -0
- data/app/views/admin/course_tags/_nav_item.html.erb +2 -0
- data/app/views/admin/course_tags/entity/_in_list.html.erb +21 -0
- data/app/views/admin/course_tags/index.html.erb +19 -0
- data/app/views/admin/course_tags/show.html.erb +39 -0
- data/app/views/admin/courses/_nav_item.html.erb +2 -0
- data/app/views/admin/courses/entity/_in_list.html.erb +40 -0
- data/app/views/admin/courses/index.html.erb +17 -0
- data/app/views/admin/courses/show.html.erb +117 -0
- data/app/views/admin/index/dashboard/_biovision_courses.html.erb +12 -0
- data/app/views/course_categories/_form.html.erb +96 -0
- data/app/views/course_categories/edit.html.erb +22 -0
- data/app/views/course_categories/edit.js.erb +1 -0
- data/app/views/course_categories/new.html.erb +15 -0
- data/app/views/course_categories/new.js.erb +1 -0
- data/app/views/course_tags/_form.html.erb +72 -0
- data/app/views/course_tags/edit.html.erb +17 -0
- data/app/views/course_tags/edit.js.erb +1 -0
- data/app/views/course_tags/new.html.erb +15 -0
- data/app/views/course_tags/new.js.erb +1 -0
- data/app/views/courses/_form.html.erb +244 -0
- data/app/views/courses/edit.html.erb +17 -0
- data/app/views/courses/edit.js.erb +1 -0
- data/app/views/courses/form/_wysiwyg.html.erb +14 -0
- data/app/views/courses/new.html.erb +15 -0
- data/app/views/courses/new.js.erb +1 -0
- data/app/views/layouts/biovision/courses/application.html.erb +14 -0
- data/config/locales/courses-ru.yml +138 -0
- data/config/routes.rb +26 -0
- data/db/migrate/20180218120000_prepare_course_privileges.rb +19 -0
- data/db/migrate/20180218120005_create_course_categories.rb +28 -0
- data/db/migrate/20180218120010_create_course_tags.rb +20 -0
- data/db/migrate/20180218120015_create_courses.rb +42 -0
- data/db/migrate/20180218120020_create_course_course_tags.rb +17 -0
- data/lib/biovision/courses.rb +7 -0
- data/lib/biovision/courses/engine.rb +18 -0
- data/lib/biovision/courses/version.rb +5 -0
- data/lib/tasks/biovision/courses_tasks.rake +4 -0
- metadata +207 -0
@@ -0,0 +1 @@
|
|
1
|
+
<%= render partial: 'shared/forms/list_of_errors', locals: { entity: @entity, form_id: 'course-form' } %>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Biovision courses</title>
|
5
|
+
<%= stylesheet_link_tag "biovision/courses/application", media: "all" %>
|
6
|
+
<%= javascript_include_tag "biovision/courses/application" %>
|
7
|
+
<%= csrf_meta_tags %>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
|
11
|
+
<%= yield %>
|
12
|
+
|
13
|
+
</body>
|
14
|
+
</html>
|
@@ -0,0 +1,138 @@
|
|
1
|
+
ru:
|
2
|
+
course_count:
|
3
|
+
zero: "курсов нет"
|
4
|
+
one: "%{count} курс"
|
5
|
+
few: "%{count} курса"
|
6
|
+
many: "%{count} курсов"
|
7
|
+
other: "%{count} курсов"
|
8
|
+
activerecord:
|
9
|
+
models:
|
10
|
+
course: "Курс"
|
11
|
+
course_category: "Категория курса"
|
12
|
+
attributes:
|
13
|
+
course:
|
14
|
+
course_category: "Категория"
|
15
|
+
course_category_id: "Категория"
|
16
|
+
description: "Описание"
|
17
|
+
duration: "Длительность"
|
18
|
+
highlight: "Продвигать"
|
19
|
+
image: "Изображение"
|
20
|
+
image_alt_text: "Альтернативный текст для изображения"
|
21
|
+
lead: "Аннотация"
|
22
|
+
meta_description: "Описание для метатэга"
|
23
|
+
meta_keywords: "Ключевые слова для метатэга"
|
24
|
+
meta_title: "Название для заголовка окна"
|
25
|
+
metadata: "Метаданные"
|
26
|
+
online: "Онлайн-курс"
|
27
|
+
price: "Цена"
|
28
|
+
priority: "Порядок сортировки"
|
29
|
+
slug: "Идентификатор для URL"
|
30
|
+
special_price: "Специальная цена"
|
31
|
+
special_price_end: "Срок окончания спецпредложения"
|
32
|
+
subtitle: "Подзаголовок"
|
33
|
+
tags_cache: "Метки"
|
34
|
+
title: "Название"
|
35
|
+
visible: "Показывать"
|
36
|
+
course_category:
|
37
|
+
children_cache: "Кеш дочек"
|
38
|
+
course_type: "Тип курса"
|
39
|
+
course_type_id: "Тип курса"
|
40
|
+
image: "Картинка"
|
41
|
+
name: "Название"
|
42
|
+
parent_id: "Родительская категория"
|
43
|
+
parents_cache: "Кеш родителей"
|
44
|
+
priority: "Порядок сортировки"
|
45
|
+
slug: "Идентификатор"
|
46
|
+
visible: "Показывать"
|
47
|
+
course_tag:
|
48
|
+
image: "Картинка"
|
49
|
+
name: "Название"
|
50
|
+
slug: "Идентификатор"
|
51
|
+
visible: "Показывать"
|
52
|
+
admin:
|
53
|
+
course_categories:
|
54
|
+
nav_item:
|
55
|
+
description: "Управление категориями курсов"
|
56
|
+
text: "Категории курсов"
|
57
|
+
index:
|
58
|
+
title: "Категории курсов"
|
59
|
+
heading: "Категории курсов"
|
60
|
+
show:
|
61
|
+
title: "Категория курсов «%{name}»"
|
62
|
+
children: "Дочерние категории"
|
63
|
+
new_child: "Добавить дочернюю категорию"
|
64
|
+
course_tags:
|
65
|
+
nav_item:
|
66
|
+
description: "Управление метками курсов"
|
67
|
+
text: "Метки курсов"
|
68
|
+
index:
|
69
|
+
title: "Метки курсов, страница %{page}"
|
70
|
+
heading: "Метки курсов"
|
71
|
+
show:
|
72
|
+
title: "Метка курсов «%{name}»"
|
73
|
+
courses:
|
74
|
+
nav_item:
|
75
|
+
description: "Управление курсами"
|
76
|
+
text: "Курсы"
|
77
|
+
index:
|
78
|
+
heading: "Курсы"
|
79
|
+
title: "Курсы, страница %{page}"
|
80
|
+
show:
|
81
|
+
title: "Курс «%{name}»"
|
82
|
+
index:
|
83
|
+
dashboard:
|
84
|
+
biovision_courses:
|
85
|
+
heading: "Модуль курсов"
|
86
|
+
course_categories:
|
87
|
+
new:
|
88
|
+
title: "Новая категория курсов"
|
89
|
+
heading: "Добавление категории курсов"
|
90
|
+
edit:
|
91
|
+
title: "Редактирование категории курсов"
|
92
|
+
heading: "Редактирование категории курсов"
|
93
|
+
update:
|
94
|
+
success: "Категория курсов успешно изменена"
|
95
|
+
destroy:
|
96
|
+
success: "Категория курсов успешно удалена"
|
97
|
+
form:
|
98
|
+
guidelines:
|
99
|
+
image: "Максимальный размер — 3000×3000, формат — JPG или PNG."
|
100
|
+
name: "Максимум 50 символов."
|
101
|
+
slug: "Используется в URL. Только латинские буквы, цифры и дефис (кроме первого и последнего символа), максимум 50 символов."
|
102
|
+
course_tags:
|
103
|
+
new:
|
104
|
+
title: "Новая метка курсов"
|
105
|
+
heading: "Добавление метки курсов"
|
106
|
+
edit:
|
107
|
+
title: "Редактирование метки курсов"
|
108
|
+
heading: "Редактирование метки курсов"
|
109
|
+
update:
|
110
|
+
success: "Метка курсов успешно изменена"
|
111
|
+
destroy:
|
112
|
+
success: "Метка курсов успешно удалена"
|
113
|
+
form:
|
114
|
+
guidelines:
|
115
|
+
image: "Максимальный размер — 3000×3000, формат — JPG или PNG."
|
116
|
+
name: "Максимум 50 символов."
|
117
|
+
slug: "Используется в URL. Только латинские буквы, цифры и дефис (кроме первого и последнего символа), максимум 50 символов."
|
118
|
+
courses:
|
119
|
+
edit:
|
120
|
+
title: "Редактирование курса"
|
121
|
+
heading: "Редактирование курса"
|
122
|
+
destroy:
|
123
|
+
success: "Курс успешно удалена"
|
124
|
+
form:
|
125
|
+
guidelines:
|
126
|
+
duration: "Максимум 50 символов"
|
127
|
+
image: "Максимальный размер — 3000×3000, формат — JPG или PNG."
|
128
|
+
image_alt_text: "Краткое описание того, что происходит на картинке. До 250 символов."
|
129
|
+
lead: "Краткая суть, максимум 1000 символов."
|
130
|
+
meta_description: "50–55 слов. Максимум 250 символов."
|
131
|
+
meta_keywords: "Максимум 250 символов."
|
132
|
+
meta_title: "Если указать, будет отображаться в заголовке окна вместо названия. Максимум 250 символов."
|
133
|
+
slug: "Только латинские буквы, цифры, точки, дефисы и подчёркивания. Максимум 250 символов."
|
134
|
+
subtitle: "Максимум 250 символов."
|
135
|
+
title: "Максимум 250 символов."
|
136
|
+
new:
|
137
|
+
title: "Добавление курса"
|
138
|
+
heading: "Новый курс"
|
data/config/routes.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
Rails.application.routes.draw do
|
2
|
+
resources :courses
|
3
|
+
resources :course_categories, :course_tags, except: [:index, :show]
|
4
|
+
|
5
|
+
namespace :admin do
|
6
|
+
resources :course_categories, only: [:index, :show] do
|
7
|
+
member do
|
8
|
+
post 'priority', defaults: { format: :json }
|
9
|
+
post 'toggle', defaults: { format: :json }
|
10
|
+
end
|
11
|
+
end
|
12
|
+
resources :course_tags, only: [:index, :show] do
|
13
|
+
member do
|
14
|
+
post 'toggle', defaults: { format: :json }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
resources :courses, only: [:index, :show] do
|
18
|
+
member do
|
19
|
+
put 'lock', defaults: { format: :json }
|
20
|
+
delete 'lock', action: :unlock, defaults: { format: :json }
|
21
|
+
post 'priority', defaults: { format: :json }
|
22
|
+
post 'toggle', defaults: { format: :json }
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class PrepareCoursePrivileges < ActiveRecord::Migration[5.1]
|
2
|
+
def up
|
3
|
+
Privilege.create(slug: 'chief_course_manager', name: 'Главный управляющий курсами')
|
4
|
+
|
5
|
+
chief = Privilege.find_by!(slug: 'chief_course_manager')
|
6
|
+
Privilege.create(slug: 'course_manager', name: 'Управляющий курсами', parent: chief)
|
7
|
+
PrivilegeGroup.create(slug: 'course_managers', name: 'Управляющие курсами')
|
8
|
+
|
9
|
+
manager = Privilege.find_by!(slug: 'course_manager')
|
10
|
+
group = PrivilegeGroup.find_by!(slug: 'course_managers')
|
11
|
+
|
12
|
+
group.add_privilege(chief)
|
13
|
+
group.add_privilege(manager)
|
14
|
+
end
|
15
|
+
|
16
|
+
def down
|
17
|
+
# No rollback needed
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
class CreateCourseCategories < ActiveRecord::Migration[5.1]
|
2
|
+
def up
|
3
|
+
unless CourseCategory.table_exists?
|
4
|
+
create_table :course_categories do |t|
|
5
|
+
t.timestamps
|
6
|
+
t.integer :parent_id
|
7
|
+
t.boolean :visible, default: true, null: false
|
8
|
+
t.boolean :deleted, default: false, null: false
|
9
|
+
t.integer :priority, limit: 2, default: 1, null: false
|
10
|
+
t.integer :courses_count, default: 0, null: false
|
11
|
+
t.string :name, null: false
|
12
|
+
t.string :slug, null: false
|
13
|
+
t.string :long_slug, null: false
|
14
|
+
t.string :image
|
15
|
+
t.string :parents_cache, default: '', null: false
|
16
|
+
t.integer :children_cache, array: true, default: [], null: false
|
17
|
+
end
|
18
|
+
|
19
|
+
add_foreign_key :course_categories, :course_categories, column: :parent_id, on_update: :cascade, on_delete: :cascade
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def down
|
24
|
+
if CourseCategory.table_exists?
|
25
|
+
drop_table :course_categories
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class CreateCourseTags < ActiveRecord::Migration[5.1]
|
2
|
+
def up
|
3
|
+
unless CourseTag.table_exists?
|
4
|
+
create_table :course_tags do |t|
|
5
|
+
t.timestamps
|
6
|
+
t.boolean :visible, default: true, null: false
|
7
|
+
t.integer :courses_count, default: 0, null: false
|
8
|
+
t.string :name, null: false
|
9
|
+
t.string :slug, null: false
|
10
|
+
t.string :image
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def down
|
16
|
+
if CourseTag.table_exists?
|
17
|
+
drop_table :course_tags
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
class CreateCourses < ActiveRecord::Migration[5.1]
|
2
|
+
def up
|
3
|
+
unless Course.table_exists?
|
4
|
+
create_table :courses do |t|
|
5
|
+
t.timestamps
|
6
|
+
t.references :course_category, foreign_key: { on_update: :cascade, on_delete: :nullify }
|
7
|
+
t.references :user, foreign_key: { on_update: :cascade, on_delete: :nullify }
|
8
|
+
t.references :agent, foreign_key: { on_update: :cascade, on_delete: :nullify }
|
9
|
+
t.inet :ip
|
10
|
+
t.integer :priority, limit: 2, default: 1, null: false
|
11
|
+
t.integer :users_count, default: 0, null: false
|
12
|
+
t.boolean :visible, default: true, null: false
|
13
|
+
t.boolean :highlight, default: false, null: false
|
14
|
+
t.boolean :online, default: true, null: false
|
15
|
+
t.boolean :deleted, default: false, null: false
|
16
|
+
t.boolean :locked, default: false, null: false
|
17
|
+
t.integer :price
|
18
|
+
t.integer :special_price
|
19
|
+
t.date :special_price_end
|
20
|
+
t.string :title, null: false
|
21
|
+
t.string :subtitle
|
22
|
+
t.string :slug, null: false
|
23
|
+
t.string :meta_title
|
24
|
+
t.string :meta_description
|
25
|
+
t.string :meta_keywords
|
26
|
+
t.string :duration
|
27
|
+
t.string :image
|
28
|
+
t.string :image_alt_text
|
29
|
+
t.text :lead
|
30
|
+
t.text :description
|
31
|
+
t.string :tags_cache, array: true, default: [], null: false
|
32
|
+
t.json :metadata
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def down
|
38
|
+
if Course.table_exists?
|
39
|
+
drop_table :courses
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class CreateCourseCourseTags < ActiveRecord::Migration[5.1]
|
2
|
+
def up
|
3
|
+
unless CourseCourseTag.table_exists?
|
4
|
+
create_table :course_course_tags do |t|
|
5
|
+
t.timestamps
|
6
|
+
t.references :course, foreign_key: { on_update: :cascade, on_delete: :cascade }
|
7
|
+
t.references :course_tag, foreign_key: { on_update: :cascade, on_delete: :cascade }
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def down
|
13
|
+
if CourseCourseTag.table_exists?
|
14
|
+
drop_table :course_course_tags
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'biovision/base'
|
2
|
+
require 'carrierwave'
|
3
|
+
require 'carrierwave-bombshelter'
|
4
|
+
require 'mini_magick'
|
5
|
+
|
6
|
+
module Biovision
|
7
|
+
module Courses
|
8
|
+
class Engine < ::Rails::Engine
|
9
|
+
config.generators do |g|
|
10
|
+
g.test_framework :rspec
|
11
|
+
g.fixture_replacement :factory_bot, :dir => 'spec/factories'
|
12
|
+
end
|
13
|
+
|
14
|
+
config.assets.precompile << %w(admin.scss)
|
15
|
+
config.assets.precompile << %w(biovision/base/**/*)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
metadata
ADDED
@@ -0,0 +1,207 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: biovision-courses
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.180221
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Maxim Khan-Magomedov
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-02-21 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '5.1'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '5.1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rails-i18n
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '5.0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '5.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: biovision-base
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: database_cleaner
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: factory_bot_rails
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: pg
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec-rails
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
description: Managing courses and study for biovision-based applications.
|
112
|
+
email:
|
113
|
+
- maxim.km@gmail.com
|
114
|
+
executables: []
|
115
|
+
extensions: []
|
116
|
+
extra_rdoc_files: []
|
117
|
+
files:
|
118
|
+
- MIT-LICENSE
|
119
|
+
- README.md
|
120
|
+
- Rakefile
|
121
|
+
- app/assets/config/biovision_courses_manifest.js
|
122
|
+
- app/assets/javascripts/biovision/courses/application.js
|
123
|
+
- app/assets/stylesheets/biovision/courses/application.css
|
124
|
+
- app/controllers/admin/course_categories_controller.rb
|
125
|
+
- app/controllers/admin/course_tags_controller.rb
|
126
|
+
- app/controllers/admin/courses_controller.rb
|
127
|
+
- app/controllers/biovision/courses/application_controller.rb
|
128
|
+
- app/controllers/course_categories_controller.rb
|
129
|
+
- app/controllers/course_tags_controller.rb
|
130
|
+
- app/controllers/courses_controller.rb
|
131
|
+
- app/helpers/biovision/courses/application_helper.rb
|
132
|
+
- app/helpers/biovision_courses_helper.rb
|
133
|
+
- app/jobs/biovision/courses/application_job.rb
|
134
|
+
- app/mailers/biovision/courses/application_mailer.rb
|
135
|
+
- app/models/application_record.rb
|
136
|
+
- app/models/biovision/courses/application_record.rb
|
137
|
+
- app/models/course.rb
|
138
|
+
- app/models/course_category.rb
|
139
|
+
- app/models/course_course_tag.rb
|
140
|
+
- app/models/course_tag.rb
|
141
|
+
- app/uploaders/course_image_uploader.rb
|
142
|
+
- app/views/admin/course_categories/_nav_item.html.erb
|
143
|
+
- app/views/admin/course_categories/entity/_in_list.html.erb
|
144
|
+
- app/views/admin/course_categories/index.html.erb
|
145
|
+
- app/views/admin/course_categories/show.html.erb
|
146
|
+
- app/views/admin/course_tags/_nav_item.html.erb
|
147
|
+
- app/views/admin/course_tags/entity/_in_list.html.erb
|
148
|
+
- app/views/admin/course_tags/index.html.erb
|
149
|
+
- app/views/admin/course_tags/show.html.erb
|
150
|
+
- app/views/admin/courses/_nav_item.html.erb
|
151
|
+
- app/views/admin/courses/entity/_in_list.html.erb
|
152
|
+
- app/views/admin/courses/index.html.erb
|
153
|
+
- app/views/admin/courses/show.html.erb
|
154
|
+
- app/views/admin/index/dashboard/_biovision_courses.html.erb
|
155
|
+
- app/views/course_categories/_form.html.erb
|
156
|
+
- app/views/course_categories/edit.html.erb
|
157
|
+
- app/views/course_categories/edit.js.erb
|
158
|
+
- app/views/course_categories/new.html.erb
|
159
|
+
- app/views/course_categories/new.js.erb
|
160
|
+
- app/views/course_tags/_form.html.erb
|
161
|
+
- app/views/course_tags/edit.html.erb
|
162
|
+
- app/views/course_tags/edit.js.erb
|
163
|
+
- app/views/course_tags/new.html.erb
|
164
|
+
- app/views/course_tags/new.js.erb
|
165
|
+
- app/views/courses/_form.html.erb
|
166
|
+
- app/views/courses/edit.html.erb
|
167
|
+
- app/views/courses/edit.js.erb
|
168
|
+
- app/views/courses/form/_wysiwyg.html.erb
|
169
|
+
- app/views/courses/new.html.erb
|
170
|
+
- app/views/courses/new.js.erb
|
171
|
+
- app/views/layouts/biovision/courses/application.html.erb
|
172
|
+
- config/locales/courses-ru.yml
|
173
|
+
- config/routes.rb
|
174
|
+
- db/migrate/20180218120000_prepare_course_privileges.rb
|
175
|
+
- db/migrate/20180218120005_create_course_categories.rb
|
176
|
+
- db/migrate/20180218120010_create_course_tags.rb
|
177
|
+
- db/migrate/20180218120015_create_courses.rb
|
178
|
+
- db/migrate/20180218120020_create_course_course_tags.rb
|
179
|
+
- lib/biovision/courses.rb
|
180
|
+
- lib/biovision/courses/engine.rb
|
181
|
+
- lib/biovision/courses/version.rb
|
182
|
+
- lib/tasks/biovision/courses_tasks.rake
|
183
|
+
homepage: https://github.com/Biovision/biovision-courses
|
184
|
+
licenses:
|
185
|
+
- MIT
|
186
|
+
metadata: {}
|
187
|
+
post_install_message:
|
188
|
+
rdoc_options: []
|
189
|
+
require_paths:
|
190
|
+
- lib
|
191
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
192
|
+
requirements:
|
193
|
+
- - ">="
|
194
|
+
- !ruby/object:Gem::Version
|
195
|
+
version: '0'
|
196
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
197
|
+
requirements:
|
198
|
+
- - ">="
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
version: '0'
|
201
|
+
requirements: []
|
202
|
+
rubyforge_project:
|
203
|
+
rubygems_version: 2.7.3
|
204
|
+
signing_key:
|
205
|
+
specification_version: 4
|
206
|
+
summary: Courses for Biovision-based applications
|
207
|
+
test_files: []
|