Commit 5a809ce4 authored by seb-b's avatar seb-b Committed by GitHub
Browse files

Merge pull request #2 from takeflight/poster

Poster attribute + bug fix
parents e00a361c e9db3e97
...@@ -2,12 +2,13 @@ from __future__ import absolute_import, print_function, unicode_literals ...@@ -2,12 +2,13 @@ from __future__ import absolute_import, print_function, unicode_literals
from django import forms from django import forms
from django.forms.models import modelform_factory from django.forms.models import modelform_factory
from django.forms.widgets import FileInput
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from enumchoicefield.forms import EnumField
from wagtail.wagtailadmin import widgets from wagtail.wagtailadmin import widgets
from wagtail.wagtailadmin.forms import (BaseCollectionMemberForm, from wagtail.wagtailadmin.forms import (BaseCollectionMemberForm,
collection_member_permission_formset_factory) collection_member_permission_formset_factory)
from enumchoicefield.forms import EnumField
from wagtailvideos.fields import WagtailVideoField from wagtailvideos.fields import WagtailVideoField
from wagtailvideos.models import MediaFormats, Video from wagtailvideos.models import MediaFormats, Video
from wagtailvideos.permissions import \ from wagtailvideos.permissions import \
...@@ -48,6 +49,7 @@ def get_video_form(model): ...@@ -48,6 +49,7 @@ def get_video_form(model):
widgets={ widgets={
'tags': widgets.AdminTagWidget, 'tags': widgets.AdminTagWidget,
'file': forms.FileInput(), 'file': forms.FileInput(),
'thumbnail': forms.FileInput(),
}) })
...@@ -55,7 +57,7 @@ class VideoTranscodeAdminForm(forms.Form): ...@@ -55,7 +57,7 @@ class VideoTranscodeAdminForm(forms.Form):
media_format = EnumField(MediaFormats) media_format = EnumField(MediaFormats)
def __init__(self, video, data=None, **kwargs): def __init__(self, video, data=None, **kwargs):
super(VideoTranscodeAdminForm, self).__init__(data=None, **kwargs) super(VideoTranscodeAdminForm, self).__init__(data=data, **kwargs)
self.video = video self.video = video
def save(self): def save(self):
......
...@@ -204,7 +204,6 @@ class AbstractVideo(CollectionMember, TagSearchable): ...@@ -204,7 +204,6 @@ class AbstractVideo(CollectionMember, TagSearchable):
transcode, created = self.transcodes.get_or_create( transcode, created = self.transcodes.get_or_create(
media_format=media_format, media_format=media_format,
) )
if transcode.processing is False: if transcode.processing is False:
transcode.processing = True transcode.processing = True
transcode.error_messages = '' transcode.error_messages = ''
...@@ -222,6 +221,7 @@ class Video(AbstractVideo): ...@@ -222,6 +221,7 @@ class Video(AbstractVideo):
'title', 'title',
'file', 'file',
'collection', 'collection',
'thumbnail',
'tags', 'tags',
) )
......
from __future__ import absolute_import, print_function, unicode_literals from __future__ import absolute_import, print_function, unicode_literals
import mimetypes
from django import template from django import template
from django.forms.widgets import flatatt from django.forms.widgets import flatatt
from django.template import resolve_variable from django.template import resolve_variable
...@@ -28,7 +30,6 @@ def video(parser, token): ...@@ -28,7 +30,6 @@ def video(parser, token):
extra_attrs[param] = '' # attributes without values e.g. autoplay, controls extra_attrs[param] = '' # attributes without values e.g. autoplay, controls
return VideoNode(video_expr, extra_attrs) return VideoNode(video_expr, extra_attrs)
class VideoNode(template.Node): class VideoNode(template.Node):
def __init__(self, video, attrs={}): def __init__(self, video, attrs={}):
self.video = template.Variable(video) self.video = template.Variable(video)
...@@ -40,8 +41,11 @@ class VideoNode(template.Node): ...@@ -40,8 +41,11 @@ class VideoNode(template.Node):
if not video: if not video:
raise template.TemplateSyntaxError("video tag requires a Video object as the first parameter") raise template.TemplateSyntaxError("video tag requires a Video object as the first parameter")
sources = ["<source src='{0}' type='video/{1}'>" self.attrs['poster'] = video.thumbnail.url
.format(video.url, video.file_ext)] # TODO get mimetype properly (extension is not always reliable)
mime = mimetypes.MimeTypes()
sources = ["<source src='{0}' type='{1}'>"
.format(video.url, mime.guess_type(video.url)[0])]
transcodes = video.transcodes.exclude(processing=True).filter(error_message__exact='') transcodes = video.transcodes.exclude(processing=True).filter(error_message__exact='')
for transcode in transcodes: for transcode in transcodes:
......
...@@ -126,7 +126,6 @@ def edit(request, video_id): ...@@ -126,7 +126,6 @@ def edit(request, video_id):
def create_transcode(request, video_id): def create_transcode(request, video_id):
if request.method != 'POST': if request.method != 'POST':
return HttpResponseNotAllowed(['POST']) return HttpResponseNotAllowed(['POST'])
video = get_object_or_404(Video, id=video_id) video = get_object_or_404(Video, id=video_id)
transcode_form = VideoTranscodeAdminForm(data=request.POST, video=video) transcode_form = VideoTranscodeAdminForm(data=request.POST, video=video)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment