Commit 95a331b9 authored by Liam Brenner's avatar Liam Brenner
Browse files

WIP

parent 6af62859
......@@ -12,7 +12,7 @@ A wagtail module for uploading and displaying videos in various codecs.
Installing
==========
**This package is not on PyPI yet**
**This package is not on PyPI yet**yayyy
Install using pip::
pip install wagtailvideos
......
from __future__ import absolute_import, unicode_literals
from wagtail.wagtailadmin.edit_handlers import BaseChooserPanel
from .widgets import AdminVideoChooser
class BaseVideoChooserPanel(BaseChooserPanel):
object_type_name = "video"
@classmethod
def widget_overrides(cls):
return {cls.field_name: AdminVideoChooser}
class VideoChooserPanel(object):
def __init__(self, field_name):
self.field_name = field_name
def bind_to_model(self, model):
return type(str('_VideoChooserPanel'), (BaseVideoChooserPanel,), {
'model': model,
'field_name': self.field_name,
})
......@@ -31,7 +31,7 @@
</ul>
</form>
<div id="image-results">
{% include "wagtailimages/chooser/results.html" %}
{% include "wagtailvideos/chooser/results.html" %}
</div>
</section>
{% if uploadform %}
......
......@@ -16,8 +16,8 @@
<ul class="listing horiz images chooser">
{% for video in videos %}
<li>
<a class="image-choice" href="{% if will_select_format %}{% url 'wagtailimages:chooser_select_format' image.id %}{% else %}{% url 'wagtailimages:image_chosen' image.id %}{% endif %}">
<div class="image">{% image image max-165x165 class="show-transparency" %}</div>
<a class="image-choice" href="{% if will_select_format %}{% url 'wagtailvideos:chooser_select_format' video.id %}{% else %}{% url 'wagtailvideos:video_chosen' video.id %}{% endif %}">
<div class="image"><img src='{{video.thumbnail.url}}' width="165" height="165" class="show-transparency"></div>
<h3>{{ video.title|ellipsistrim:60 }}</h3>
</a>
</li>
......
function(modal) {
modal.respond('imageChosen', {{ image_json|safe }});
modal.respond('videoChosen', {{ video_json|safe }});
modal.close();
}
......@@ -5,12 +5,12 @@
{% block chosen_state_view %}
<div class="preview-image">
{% if image %}
{% image image max-165x165 class="show-transparency" %}
{% if video %}
<img src='{{video.thumbnail.url}}' width="165" height="165" class="show-transparency">
{% else %}
<img>
{% endif %}
</div>
{% endblock %}
{% block edit_chosen_item_url %}{% if image %}{% url 'wagtailimages:edit' image.id %}{% endif %}{% endblock %}
{% block edit_chosen_item_url %}{% if video %}{% url 'wagtailvideos:edit' video.id %}{% endif %}{% endblock %}
......@@ -12,21 +12,18 @@ from wagtailvideos.forms import VideoInsertionForm, get_video_form
from wagtailvideos.models import get_video_model
def get_video_json(image):
def get_video_json(video):
"""
helper function: given an image, return the json to pass back to the
image chooser panel
"""
preview_image = image.get_rendition('max-165x165')
return json.dumps({
'id': image.id,
'edit_link': reverse('wagtailimages:edit', args=(image.id,)),
'title': image.title,
'id': video.id,
'edit_link': reverse('wagtailvideos:edit', args=(video.id,)),
'title': video.title,
'preview': {
'url': preview_image.url,
'width': preview_image.width,
'height': preview_image.height,
'url': video.thumbnail.url,
}
})
......@@ -97,7 +94,7 @@ def video_chosen(request, video_id):
video = get_object_or_404(get_video_model(), id=video_id)
return render_modal_workflow(
request, None, 'wagtailvideos/chooser/image_chosen.js',
request, None, 'wagtailvideos/chooser/video_chosen.js',
{'video_json': get_video_json(video)}
)
......
from __future__ import absolute_import, unicode_literals
import json
from django.template.loader import render_to_string
from django.utils.translation import ugettext_lazy as _
from wagtail.wagtailadmin.widgets import AdminChooser
from wagtailvideos.models import get_video_model
class AdminVideoChooser(AdminChooser):
choose_one_text = _('Choose a video')
choose_another_text = _('Choose another video')
link_to_chosen_text = _('Edit this video')
def __init__(self, **kwargs):
super(AdminVideoChooser, self).__init__(**kwargs)
self.video_model = get_video_model()
def render_html(self, name, value, attrs):
instance, value = self.get_instance_and_id(self.video_model, value)
original_field_html = super(AdminVideoChooser, self).render_html(name, value, attrs)
return render_to_string("wagtailvideos/widgets/video_chooser.html", {
'widget': self,
'original_field_html': original_field_html,
'attrs': attrs,
'value': value,
'video': instance,
})
def render_js_init(self, id_, name, value):
return "createVideoChooser({0});".format(json.dumps(id_))
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