Skip to content

Commit 4ad0297

Browse files
authored
Merge pull request #78 from dalvarez2596/lessons-121-122
Lessons 121 122
2 parents 890425a + 26276ca commit 4ad0297

File tree

4 files changed

+32
-3
lines changed

4 files changed

+32
-3
lines changed

app/controllers/lessons_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,6 @@ def set_lesson
7474
@lesson = Lesson.friendly.find(params[:id])
7575
end
7676
def lesson_params
77-
params.require(:lesson).permit(:title, :content, :row_order_position)
77+
params.require(:lesson).permit(:title, :content, :row_order_position, :video, :video_thumbnail)
7878
end
7979
end

app/models/lesson.rb

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,25 @@ class Lesson < ApplicationRecord
66
has_many :user_lessons, dependent: :destroy
77
# Course.find_each{ |course| Course.reset_counters(course.id, :lessons)}
88
validates :title, :content, :course, presence: true
9-
validates :title, uniqueness:true, length: { maximum: 70 }
9+
validates :title, length: { maximum: 70 }
10+
validates_uniqueness_of :title, scope: :course_id
1011

1112
has_rich_text :content
13+
has_one_attached :video
14+
has_one_attached :video_thumbnail
15+
validates :video,
16+
content_type: [ "video/mp4", "video/quicktime", "video/mpeg" ],
17+
size: { less_than: 50.megabytes, message: "size should be under 50 megabytes" }
18+
19+
validates :video_thumbnail,
20+
content_type: [ "image/png", "image/jpg", "image/jpeg" ],
21+
size: { less_than: 500.kilobytes, message: "size should be under 500 kilobytes" }
22+
23+
# Sirve para validar que existan thumbnail si hay video
24+
# validates :video_thumbnail, presence: true, if: :video_present?
25+
# def video_present?
26+
# self.video.present?
27+
# end
1228

1329
extend FriendlyId
1430
friendly_id :title, use: :slugged

app/views/lessons/_form.html.haml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,20 @@
44
= f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present?
55

66
.form-inputs
7-
= f.input :title
7+
= f.input :title, input_html: { autocomplete: 'off' }
88
= f.label :content
99
= f.rich_text_area :content
1010
%small= f.error :content, class: "text-danger"
1111
%p
12+
13+
- if @lesson.video.attached?
14+
= @lesson.video.filename
15+
= f.input :video
16+
- if @lesson.video_thumbnail.attached?
17+
-# = image_tag @lesson.video_thumbnail, width: "200px"
18+
-# .row
19+
= @lesson.video_thumbnail.filename
20+
= f.input :video_thumbnail
1221
-# como estaba
1322
-# = f.association :course
1423
-# Esto de abajo asigno el input del html por defecto si ya es un lesson o por params. as: :hidden hide the input

app/views/lessons/_lesson.html.haml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
= lesson.title
1212
- if policy(lesson).show?
1313
.card-body
14+
-# = image_tag @lesson.video_thumbnail
15+
-if lesson.video.attached? && lesson.video.persisted?
16+
%video(controls="true" poster="#{ url_for lesson.video_thumbnail if lesson.video_thumbnail.attached? }" width="100%" preload="metadata")
17+
%source{src: rails_blob_url(lesson.video), type: "#{lesson.video.content_type}"}
1418
= lesson.content
1519
- if policy(lesson).edit?
1620
.card-footer

0 commit comments

Comments
 (0)