Code Monkey home page Code Monkey logo

wagtail-embedvideos's Introduction

wagtail-embedvideos

https://app.travis-ci.com/bashu/wagtail-embedvideos.svg?branch=develop

Simple app that works similar to wagtailimages, but for embedding YouTube and Vimeo videos and music from SoundCloud.

The current version is tested for compatiblily with the following:

  • Wagtail versions 2.7 to 2.15
  • Django versions 2.2 to 3.2
  • Python versions 3.6 and 3.9

Maintained by Basil Shubin, and some great contributors.

Installation

First install the module, preferably in a virtual environment. It can be installed from PyPI:

pip install wagtail-embedvideos

Requirements

You must have django-embed-video installed and configured, see the django-embed-video documentation for details and setup instructions.

Setup

Make sure the project is configured for django-embed-video.

Then add the following settings:

INSTALLED_APPS += (
    "wagtail_embed_videos",
)

Then run ./manage.py migrate to create the required database tables.

Usage

In models, implement as a ForeignKey relation, same as wagtailimages.

# models.py

from wagtail.core.models import Page, PageBase

from wagtail_embed_videos import get_embed_video_model_string
from wagtail_embed_videos.edit_handlers import EmbedVideoChooserPanel

class CustomPage(Page):
    video = models.ForeignKey(
        get_embed_video_model_string(),
        null=True, blank=True,
        on_delete=models.SET_NULL,
        related_name='+'
    )

    # ...

    content_panels = [
            EmbedVideoChooserPanel('video'),
    ]

In templates, load the embed_video_tags library in every template where you want to use it:

<!-- custom_page.html -->

{% load embed_video_tags %}

{% video self.video.url as my_video %}
    {% video my_video 'small' %}
{% endvideo %}

Check django-embed-video documentation for more details.

Contributing

If you like this module, forked it, or would like to improve it, please let us know! Pull requests are welcome too. :-)

Credits

wagtail-embedvideos was originally started by InfoPortugal, S.A. who has now unfortunately abandoned the project.

License

wagtail-embedvideos is released under the BSD license.

wagtail-embedvideos's People

Contributors

bashu avatar diogomarques29 avatar drwlrsn avatar eduardonogueira avatar julzhk avatar kaedroho avatar salahaddin avatar saragpires avatar snj avatar stasshk avatar tiagofmc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wagtail-embedvideos's Issues

Migration's problem with new version

Hi man

I test the new release version and i have a problem with migrations:
django.db.utils.ProgrammingError: «wagtail_embed_videos_embedvideo» relation already exits

Yes, exists, i have this relation because i are using wagtail embed videos since many months, then, wha can i do ?

Thanks.

Wagtail 1.8 warning message

With new 1.7 version i get this message:

/home/salahaddin/Proyectos/uzman/lib/python3.5/site-packages/wagtail_embed_videos/models.py:21: RemovedInWagtail18Warning: The wagtail.wagtailadmin.taggable module is deprecated.
  from wagtail.wagtailadmin.taggable import TagSearchable
/home/salahaddin/Proyectos/uzman/lib/python3.5/site-packages/wagtail_embed_videos/models.py:21: RemovedInWagtail18Warning: The wagtail.wagtailadmin.taggable module is deprecated.
  from wagtail.wagtailadmin.taggable import TagSearchable

Updating from a previous version to the latest fails - migrations missing

When updating my Wagtail installation from 1.6.2 to 1.9, I can no longer run migrations - causing the update to fail.

The reason for the failure is that the migrations (like 0003_auto_20150817_1256) are removed in the latest release, which causes problems because my models depend on these migrations.

Error with 'SearchForm' when updating to Wagtail 2.5

I tried to update from Wagtail 2.4 to 2.5 and got the following error:

Traceback (most recent call last):
  File ".\manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "venv\lib\site-packages\django\core\management\__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "venv\lib\site-packages\django\core\management\__init__.py", line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "venv\lib\site-packages\django\core\management\base.py", line 323, in run_from_argv
    self.execute(*args, **cmd_options)
  File "venv\lib\site-packages\django\core\management\base.py", line 361, in execute
    self.check()
  File "venv\lib\site-packages\django\core\management\base.py", line 390, in check
    include_deployment_checks=include_deployment_checks,
  File "venv\lib\site-packages\django\core\management\base.py", line 377, in _run_checks
    return checks.run_checks(**kwargs)
  File "venv\lib\site-packages\django\core\checks\registry.py", line 72, in run_checks
    new_errors = check(app_configs=app_configs)
  File "venv\lib\site-packages\django\core\checks\urls.py", line 13, in check_url_config
    return check_resolver(resolver)
  File "venv\lib\site-packages\django\core\checks\urls.py", line 23, in check_resolver
    return check_method()
  File "venv\lib\site-packages\django\urls\resolvers.py", line 398, in check
    for pattern in self.url_patterns:
  File "venv\lib\site-packages\django\utils\functional.py", line 80, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "venv\lib\site-packages\django\urls\resolvers.py", line 571, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "venv\lib\site-packages\django\utils\functional.py", line 80, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "venv\lib\site-packages\django\urls\resolvers.py", line 564, in urlconf_module
    return import_module(self.urlconf_name)
  File "venv\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "KickIt\urls.py", line 5, in <module>
    from wagtail.admin import urls as wagtailadmin_urls
  File "venv\lib\site-packages\wagtail\admin\urls\__init__.py", line 13, in <module>
    from wagtail.admin.api import urls as api_urls
  File "venv\lib\site-packages\wagtail\admin\api\urls.py", line 11, in <module>
    for fn in hooks.get_hooks('construct_admin_api'):
  File "venv\lib\site-packages\wagtail\core\hooks.py", line 47, in get_hooks
    search_for_hooks()
  File "venv\lib\site-packages\wagtail\core\hooks.py", line 41, in search_for_hooks
    list(get_app_submodules('wagtail_hooks'))
  File "venv\lib\site-packages\wagtail\utils\apps.py", line 23, in get_app_submodules
    yield name, import_module('%s.%s' % (name, submodule_name))
  File "venv\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "venv\lib\site-packages\wagtail_embed_videos\wagtail_hooks.py", line 12, in <module>
    from wagtail_embed_videos import admin_urls
  File "venv\lib\site-packages\wagtail_embed_videos\admin_urls.py", line 3, in <module>
    from wagtail_embed_videos.views import embed_videos, chooser
  File "venv\lib\site-packages\wagtail_embed_videos\views\embed_videos.py", line 12, in <module>
    from wagtail.admin.forms import SearchForm
ImportError: cannot import name 'SearchForm' from 'wagtail.admin.forms' (venv\lib\site-packages\wagtail\admin\forms\__init__.py)

Breaking change in wagtail 2.4

The following error is thrown when trying to choose an embedded video in an inline video chooser panel

Internal Server Error: /cms/embed_videos/chooser/
Traceback (most recent call last):
  File "/home/chickenf622/vscodeprojects/mywebsite/venv/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/home/chickenf622/vscodeprojects/mywebsite/venv/lib/python3.6/site-packages/django/core/handlers/base.py", line 126, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/home/chickenf622/vscodeprojects/mywebsite/venv/lib/python3.6/site-packages/django/core/handlers/base.py", line 124, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/chickenf622/vscodeprojects/mywebsite/venv/lib/python3.6/site-packages/django/views/decorators/cache.py", line 44, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "/home/chickenf622/vscodeprojects/mywebsite/venv/lib/python3.6/site-packages/wagtail/admin/urls/__init__.py", line 102, in wrapper
    return view_func(request, *args, **kwargs)
  File "/home/chickenf622/vscodeprojects/mywebsite/venv/lib/python3.6/site-packages/wagtail/admin/decorators.py", line 34, in decorated_view
    return view_func(request, *args, **kwargs)
  File "/home/chickenf622/vscodeprojects/mywebsite/venv/lib/python3.6/site-packages/wagtail_embed_videos/views/chooser.py", line 82, in chooser
    'popular_tags': popular_tags_for_model(EmbedVideo),
  File "/home/chickenf622/vscodeprojects/mywebsite/venv/lib/python3.6/site-packages/wagtail/admin/modal_workflow.py", line 11, in render_modal_workflow
    raise TypeError("Passing a js_template argument to render_modal_workflow is no longer supported")
TypeError: Passing a js_template argument to render_modal_workflow is no longer supported

Document urllib3 as a requirement for python3

When using python 3, I get the following error:

wagtail_embed_videos/models.py",
 line 7, in <module>
    import urllib3
ImportError: No module named 'urllib3'

which goes away if the third-party package urllib3 is installed.

Perhaps it should be mentioned in the installation instructions that urllib3 is a requirement if you are using python3.

Breaking changes in wagtail 1.1

After updating Wagtail to version 1.1 wagtail-embedvideos component not working because all wagtailimages urls moved into a namespace.

Solution:

in file wagtail_embed_videos/templates/wagtail_embed_videos/embed_videos/add.html
replace line 19
window.chooserUrls.imageChooser = "{% url 'wagtailimages_chooser' %}";
with
window.chooserUrls.imageChooser = "{% url 'wagtailimages:chooser' %}";

in file wagtail_embed_videos/templates/wagtail_embed_videos/embed_videos/edit.html
replace line 20
window.chooserUrls.imageChooser = "{% url 'wagtailimages_chooser' %}";
with
window.chooserUrls.imageChooser = "{% url 'wagtailimages:chooser' %}";

however after this changes wagtail-embedvideos not compatible with Wagtail 1.0

Add Wagtail collections support and Django po files

I'm testing Wagtail Collections, these have Image and Document support, but will be great add Video support.

And, Wagtail embed video haven't localization support, but, i don't know if it's a django-embed-videos or wagtail-embedvideos problem.

Support for custom image

I noticed that right now if one uses a custom image model, uploading a thumbnail image will fail. I have made some changes here: drwlrsn/wagtail-embedvideos@82e4ee881dc4bdd9098097f0c46e2e4acbe53fad.

If that looks good, I can submit a pull request.

Create tags for releases

It would be very useful to be able to see the code corresponding to a given release as found on PyPI.

Expected UI issues with Wagtail 3.0 release

Hi there! The Wagtail 3.0 first release candidate is out. There are large UI changes in this release, for which we have reviewed expected breakage in third-party UI customisations.

This is beyond what we do with our normal breaking changes policy, since the majority of those changes are on parts of Wagtail that haven’t been publicly supported / documented in any way. To make sure this goes smoothly anyway, I’m here to provide an advance notice of what we’re aware of with this specific package 🙂

In the case of wagtail-embedvideos, here are the changes we’re expecting to require rework for Wagtail 3.0.

Uppercase text

The majority of the Wagtail admin UI no longer uses uppercase text, to improve readability. The exception is the page status (live, draft, etc.). Suggested actions:

  • Remove all usage of uppercase text in the CMS, except for page status.
  • Aside from CSS, the utility classes u-text-transform-uppercase and label-uppercase no longer exist and shouldn’t be used anymore.

Here is the one match in this repository. label-uppercase can likely be removed.

wagtail/bashu/wagtail-embedvideos/wagtail_embed_videos/templates/wagtail_embed_videos/embed_videos/edit.html
39:                            {% include "wagtailadmin/shared/field_as_li.html" with li_classes="label-above label-uppercase" %}

Legacy utility classes

Wagtail’s CSS utilities have never been intended for reuse. Some have been removed, and should be removed from existing code or replaced with alternatives. Here are classes that have been removed. Only one has a replacement currently.

-u-hidden
+w-hidden
# No alternatives:
-u-hidden@sm
-u-hidden@xs
-u-inline@sm
-u-inline@xs
-u-block@sm
-u-block@xs

And where they are used in this package:

wagtail/bashu/wagtail-embedvideos/wagtail_embed_videos/templates/wagtail_embed_videos/embed_videos/edit.html
43:                <div class="u-hidden@xs">
67:        <div class="row row-flush nice-padding u-hidden@sm">

Bootstrap tabs

wagtail/bashu/wagtail-embedvideos/wagtail_embed_videos/templates/wagtail_embed_videos/chooser/chooser.html
10:    <ul class="tab-nav merged" data-tab-nav>

Here is our guidance on replacing Bootstrap tabs, and our proposal for a tabs component API.

Core templates reuse

We’ve made quite a lot of changes to our base styles and templates, which require case-by-case review. Here are places where wagtail-embedvideos reuses Wagtail templates, and we’d recommend visual checking:

wagtail/bashu/wagtail-embedvideos/wagtail_embed_videos/templates/wagtail_embed_videos/embed_videos/index.html
1:{% extends "wagtailadmin/base.html" %}
33:        {% include "wagtailadmin/shared/header.html" with title=ev_str action_url=add_link icon="media" action_text=add_ev_str search_url="wagtail_embed_videos:index" %}
35:        {% include "wagtailadmin/shared/header.html" with title=ev_str icon="media" search_url="wagtal_embed_videos:index" %}
42:                    {% include "wagtailadmin/shared/collection_chooser.html" %}
71:        {% include 'wagtailadmin/bulk_actions/footer.html' with select_all_obj_text=select_all_text app_label=app_label model_name=model_name objects=embed_videos parent=current_collection.id %}

wagtail/bashu/wagtail-embedvideos/wagtail_embed_videos/templates/wagtail_embed_videos/embed_videos/add.html
1:{% extends "wagtailadmin/base.html" %}
7:    {% include "wagtailadmin/pages/_editor_js.html" %}
23:    {% include "wagtailadmin/pages/_editor_css.html" %}
29:    {% include "wagtailadmin/shared/header.html" with title=add_str icon="media" %}
32:        {% include "wagtailadmin/shared/non_field_errors.html" %}
41:                        {% include "wagtailadmin/shared/field_as_li.html" with field=field %}

wagtail/bashu/wagtail-embedvideos/wagtail_embed_videos/templates/wagtail_embed_videos/embed_videos/confirm_delete.html
1:{% extends "wagtailadmin/base.html" %}
7:    {% include "wagtailadmin/shared/header.html" with title=del_str icon="media" %}

wagtail/bashu/wagtail-embedvideos/wagtail_embed_videos/templates/wagtail_embed_videos/embed_videos/edit.html
1:{% extends "wagtailadmin/base.html" %}
6:    {% include "wagtailadmin/pages/_editor_css.html" %}
12:    {% include "wagtailadmin/pages/_editor_js.html" %}
27:    {% include "wagtailadmin/shared/header.html" with title=editing_str subtitle=embed_video.title icon="media" usage_object=embed_video %}
28:    {% include "wagtailadmin/shared/non_field_errors.html" %}
39:                            {% include "wagtailadmin/shared/field_as_li.html" with li_classes="label-above label-uppercase" %}

wagtail/bashu/wagtail-embedvideos/wagtail_embed_videos/templates/wagtail_embed_videos/bulk_actions/confirm_bulk_add_tags.html
1:{% extends 'wagtailadmin/bulk_actions/confirmation/base.html' %}
20:    {% include "wagtailadmin/shared/header.html" with title=add_str icon="doc-full-inverse" %}
53:        {% include 'wagtailadmin/bulk_actions/confirmation/form_with_fields.html' %}
55:        {% include 'wagtailadmin/bulk_actions/confirmation/go_back.html' %}

wagtail/bashu/wagtail-embedvideos/wagtail_embed_videos/templates/wagtail_embed_videos/embed_videos/usage.html
1:{% extends "wagtailadmin/base.html" %}
6:    {% include "wagtailadmin/shared/header.html" with title=usage_str subtitle=embed_video.title %}
37:                            {% include "wagtailadmin/shared/page_status_tag.html" with page=page %}
44:    {% include "wagtailadmin/shared/pagination_nav.html" with items=used_by %}

wagtail/bashu/wagtail-embedvideos/wagtail_embed_videos/templates/wagtail_embed_videos/chooser/results.html
35:    {% include "wagtailadmin/shared/pagination_nav.html" with items=embed_videos linkurl='wagtail_embed_videos:chooser_results' %}

wagtail/bashu/wagtail-embedvideos/wagtail_embed_videos/templates/wagtail_embed_videos/chooser/upload_form.html
4:    {% include "wagtailadmin/shared/non_field_errors.html" with form=form %}
12:                    {% include "wagtailadmin/shared/field_as_li.html" with field=field %}

wagtail/bashu/wagtail-embedvideos/wagtail_embed_videos/templates/wagtail_embed_videos/edit_handlers/embed_video_chooser_panel.html
1:{% include "wagtailadmin/shared/field.html" %}

wagtail/bashu/wagtail-embedvideos/wagtail_embed_videos/templates/wagtail_embed_videos/bulk_actions/confirm_bulk_add_to_collection.html
1:{% extends 'wagtailadmin/bulk_actions/confirmation/base.html' %}
8:    {% include "wagtailadmin/shared/header.html" with title=add_str icon="doc-full-inverse" %}
41:        {% include 'wagtailadmin/bulk_actions/confirmation/form_with_fields.html' %}
43:        {% include 'wagtailadmin/bulk_actions/confirmation/go_back.html' %}

wagtail/bashu/wagtail-embedvideos/wagtail_embed_videos/templates/wagtail_embed_videos/embed_videos/results.html
24:                {% include "wagtailadmin/bulk_actions/listing_checkbox_cell.html" with obj_type="embed_video" obj=embed_video aria_labelledby_prefix="select-embed_video-label embed_video_" aria_labelledby=embed_video.pk|unlocalize aria_labelledby_suffix="_title" %}
37:    {% include "wagtailadmin/shared/pagination_nav.html" with items=embed_videos is_searching=is_searching query_string=query_string %}

wagtail/bashu/wagtail-embedvideos/wagtail_embed_videos/templates/wagtail_embed_videos/bulk_actions/list_items_with_no_access.html
1:{% extends 'wagtailadmin/bulk_actions/confirmation/list_items_with_no_access.html' %}

wagtail/bashu/wagtail-embedvideos/wagtail_embed_videos/templates/wagtail_embed_videos/bulk_actions/confirm_bulk_delete.html
1:{% extends 'wagtailadmin/bulk_actions/confirmation/base.html' %}
7:    {% include "wagtailadmin/shared/header.html" with title=del_str icon="doc-full-inverse" %}
44:        {% include 'wagtailadmin/bulk_actions/confirmation/form.html' with action_button_class="serious" %}
46:        {% include 'wagtailadmin/bulk_actions/confirmation/go_back.html' %}

wagtail/bashu/wagtail-embedvideos/wagtail_embed_videos/templates/wagtail_embed_videos/permissions/includes/embedvideo_permissions_formset.html
1:{% extends "wagtailadmin/permissions/includes/collection_member_permissions_formset.html" %}

wagtail/bashu/wagtail-embedvideos/wagtail_embed_videos/templates/wagtail_embed_videos/chooser/chooser.html
4:{% include "wagtailadmin/shared/header.html" with title=choose_str merged=1 tabbed=1 icon="media" %}
21:                    {% include "wagtailadmin/shared/field_as_li.html" with field=field %}
24:                    {% include "wagtailadmin/shared/collection_chooser.html" %}

wagtail/bashu/wagtail-embedvideos/wagtail_embed_videos/templates/wagtail_embed_videos/widgets/embed_video_chooser.html
1:{% extends "wagtailadmin/widgets/chooser.html" %}

I hope this all makes sense. We’ve made a lot of other styling and template changes that are hard to track down, and for which it’s unclear whether any breakage might be expected or not. As you go through the Wagtail 3.0 compatibility work, please let me know if there are other compatibility issues you come across so we can consider those customisations in Wagtail development in the future, and let others know about those breakages.

Getting a 500 error in the admin when using the chooser

My Setup

  • Ubunutu 16.04
  • Jquery 3.2.0
  • Django 1.11
  • Wagtail 1.10
  • Jinja2 for front facing templates, but Django Templates for admin. (as per the wagtail guide)

My Model Definition:

class SomePage(Page):
    video= models.ForeignKey( ... stuff from example ... )

    content_panels = Page.content_panels + [
        EmbedVideoChooserPanel('video),
    ]

When I click on the Chooser I get a 500 error in the console:
jquery-2.2.1.min.js:4 GET http://localhost:5000/admin/embed_videos/chooser/ 500 (INTERNAL SERVER ERROR)

And it does not open up the chooser at all.

Things I've tried

I tried bringing back my version of Jquery to 2.2.1 - That didn't work

Any help is appreciated.

Can't reliably create multiple word tags

Using most recent version of wagtail-embedvideos 0.3.2 and wagtail 1.10.1.

Recently Wagtail allowed for multiple word tags. This is a feature that isn't achievable in the tagging of embedded videos. However, if I put the tag in quotes it will work. I have noticed, however, that often times it will look like it worked and register the full tag as "Keepin it Real" but after saving, it splits them into seperate tags: "Keepin", "it", and "Real". I have been able to reliably make it work if I also add another multiple word tag after the first one. So "Keepin it Real" and "Other Tag" allows both tags to be saved correctly.

Adding http://vimeo.com/nonexistantpage breaks database

After page editor adds video with url to non-existant movie on vimeo, it's impossible to list videos and images.

Manually removing such video and image from wagtail_embed_videos_embedvideo and wagtailimages_image fixes it.

It should be more fool-proof.

Can not add video from youtube

Environment:


Request Method: POST
Request URL: http://localhost:8000/blog_admin/embed_videos/add/

Django Version: 2.2.24
Python Version: 3.8.12
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'embed_video',
 'wagtail_embed_videos',
 'wagtail.core',
 'wagtail.admin',
 'wagtail.documents',
 'wagtail.snippets',
 'wagtail.users',
 'wagtail.images',
 'wagtail.embeds',
 'wagtail.search',
 'wagtail.sites',
 'wagtail.contrib.redirects',
 'wagtail.contrib.forms',
 'wagtail.contrib.sitemaps',
 'wagtail.contrib.routable_page',
 'taggit',
 'modelcluster',
 'django_social_share',
 'puput']
Installed Middleware:
['django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'wagtail.core.middleware.SiteMiddleware',
 'wagtail.contrib.redirects.middleware.RedirectMiddleware']



Traceback:

File "/Users/bashu/Projects/wagtail-embedvideos/wagtail_embed_videos/models.py" in create_thumbnail
  69.         img_temp.write(urllib2.urlopen(thumbnail_url).read())

During handling of the above exception (name 'urllib2' is not defined), another exception occurred:

File "/Users/bashu/.virtualenvs/wagtail-embedvideos/lib/python3.8/site-packages/urllib3/connectionpool.py" in urlopen
  699.             httplib_response = self._make_request(

File "/Users/bashu/.virtualenvs/wagtail-embedvideos/lib/python3.8/site-packages/urllib3/connectionpool.py" in _make_request
  382.             self._validate_conn(conn)

File "/Users/bashu/.virtualenvs/wagtail-embedvideos/lib/python3.8/site-packages/urllib3/connectionpool.py" in _validate_conn
  1010.             conn.connect()

File "/Users/bashu/.virtualenvs/wagtail-embedvideos/lib/python3.8/site-packages/urllib3/connection.py" in connect
  416.         self.sock = ssl_wrap_socket(

File "/Users/bashu/.virtualenvs/wagtail-embedvideos/lib/python3.8/site-packages/urllib3/util/ssl_.py" in ssl_wrap_socket
  449.         ssl_sock = _ssl_wrap_socket_impl(

File "/Users/bashu/.virtualenvs/wagtail-embedvideos/lib/python3.8/site-packages/urllib3/util/ssl_.py" in _ssl_wrap_socket_impl
  493.         return ssl_context.wrap_socket(sock, server_hostname=server_hostname)

File "/opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/ssl.py" in wrap_socket
  500.         return self.sslsocket_class._create(

File "/opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/ssl.py" in _create
  1040.                     self.do_handshake()

File "/opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/ssl.py" in do_handshake
  1309.             self._sslobj.do_handshake()

During handling of the above exception ([SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)), another exception occurred:

File "/Users/bashu/.virtualenvs/wagtail-embedvideos/lib/python3.8/site-packages/django/core/handlers/exception.py" in inner
  34.             response = get_response(request)

File "/Users/bashu/.virtualenvs/wagtail-embedvideos/lib/python3.8/site-packages/django/core/handlers/base.py" in _get_response
  115.                 response = self.process_exception_by_middleware(e, request)

File "/Users/bashu/.virtualenvs/wagtail-embedvideos/lib/python3.8/site-packages/django/core/handlers/base.py" in _get_response
  113.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/Users/bashu/.virtualenvs/wagtail-embedvideos/lib/python3.8/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
  44.         response = view_func(request, *args, **kwargs)

File "/Users/bashu/.virtualenvs/wagtail-embedvideos/lib/python3.8/site-packages/wagtail/admin/urls/__init__.py" in wrapper
  105.             return view_func(request, *args, **kwargs)

File "/Users/bashu/.virtualenvs/wagtail-embedvideos/lib/python3.8/site-packages/wagtail/admin/auth.py" in decorated_view
  167.                 return view_func(request, *args, **kwargs)

File "/Users/bashu/.virtualenvs/wagtail-embedvideos/lib/python3.8/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
  21.                 return view_func(request, *args, **kwargs)

File "/Users/bashu/Projects/wagtail-embedvideos/wagtail_embed_videos/views/embed_videos.py" in add
  158.             form.save()

File "/Users/bashu/.virtualenvs/wagtail-embedvideos/lib/python3.8/site-packages/django/forms/models.py" in save
  458.             self.instance.save()

File "/Users/bashu/Projects/wagtail-embedvideos/wagtail_embed_videos/models.py" in save
  136.             create_thumbnail(self)

File "/Users/bashu/Projects/wagtail-embedvideos/wagtail_embed_videos/models.py" in create_thumbnail
  72.         img_temp.write(http.request('GET', thumbnail_url).data)

File "/Users/bashu/.virtualenvs/wagtail-embedvideos/lib/python3.8/site-packages/urllib3/request.py" in request
  74.             return self.request_encode_url(

File "/Users/bashu/.virtualenvs/wagtail-embedvideos/lib/python3.8/site-packages/urllib3/request.py" in request_encode_url
  96.         return self.urlopen(method, url, **extra_kw)

File "/Users/bashu/.virtualenvs/wagtail-embedvideos/lib/python3.8/site-packages/urllib3/poolmanager.py" in urlopen
  375.             response = conn.urlopen(method, u.request_uri, **kw)

File "/Users/bashu/.virtualenvs/wagtail-embedvideos/lib/python3.8/site-packages/urllib3/connectionpool.py" in urlopen
  783.             return self.urlopen(

File "/Users/bashu/.virtualenvs/wagtail-embedvideos/lib/python3.8/site-packages/urllib3/connectionpool.py" in urlopen
  783.             return self.urlopen(

File "/Users/bashu/.virtualenvs/wagtail-embedvideos/lib/python3.8/site-packages/urllib3/connectionpool.py" in urlopen
  783.             return self.urlopen(

File "/Users/bashu/.virtualenvs/wagtail-embedvideos/lib/python3.8/site-packages/urllib3/connectionpool.py" in urlopen
  755.             retries = retries.increment(

File "/Users/bashu/.virtualenvs/wagtail-embedvideos/lib/python3.8/site-packages/urllib3/util/retry.py" in increment
  574.             raise MaxRetryError(_pool, url, error or ResponseError(cause))

Exception Type: MaxRetryError at /blog_admin/embed_videos/add/
Exception Value: HTTPSConnectionPool(host='img.youtube.com', port=443): Max retries exceeded with url: /vi/ZTidn2dBYbY/maxresdefault.jpg (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)')))

can only concatenate list (not "tuple") to list

I just updated all my packages this morning and came across this error - TypeError: can only concatenate list (not "tuple") to list at wagtail_embed_videos/models.py, line 104

search_fields = TagSearchable.search_fields + (
index.FilterField('uploaded_by_user'),
)

I needed to change to the below for it to fix.

search_fields = TagSearchable.search_fields + [
index.FilterField('uploaded_by_user'),
]

search_fields warning

wagtail_embed_videos/models.py:104: RemovedInWagtail17Warning: Using a tuple for search_fields on TagSearchable subclasses is deprecated, use a list instead
  index.FilterField('uploaded_by_user'),

Wagtail 1.6.2
Python 2.7
Django 1.10.1

[Featured]Ability to reproduce a embed video in wagtail admin

Will be great can play the embed videos in wagtail admin to ensure that is the video we want to embed, like we can do with django-embed-video using AdminVideoMixin.

We could take advantage of the big thumbnail video and put in his place a video player.
reproducirvideo
And, maybe you will want put locale files for dinamic language translation.

Problem with Wagtail 1.4

Hi, again, i'm testing Wagtail 1.4 and i have the next problem when i try add a new video:
templatedoesnotexist at -admin-embed_videos-add- - chromium_049
templatedoesnotexist at -admin-embed_videos-add- - chromium_050
Here are the traceback:

Internal Server Error: /admin/embed_videos/add/
Traceback (most recent call last):
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/backends/django.py", line 95, in render
    return self.template.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 206, in render
    return self._render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 197, in _render
    return self.nodelist.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 992, in render
    bit = node.render_annotated(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 959, in render_annotated
    return self.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/loader_tags.py", line 173, in render
    return compiled_parent._render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 197, in _render
    return self.nodelist.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 992, in render
    bit = node.render_annotated(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 959, in render_annotated
    return self.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/loader_tags.py", line 173, in render
    return compiled_parent._render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 197, in _render
    return self.nodelist.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 992, in render
    bit = node.render_annotated(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 959, in render_annotated
    return self.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/loader_tags.py", line 173, in render
    return compiled_parent._render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 197, in _render
    return self.nodelist.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 992, in render
    bit = node.render_annotated(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 959, in render_annotated
    return self.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/loader_tags.py", line 173, in render
    return compiled_parent._render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 197, in _render
    return self.nodelist.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 992, in render
    bit = node.render_annotated(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 959, in render_annotated
    return self.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/loader_tags.py", line 69, in render
    result = block.nodelist.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 992, in render
    bit = node.render_annotated(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 959, in render_annotated
    return self.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/loader_tags.py", line 69, in render
    result = block.nodelist.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 992, in render
    bit = node.render_annotated(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 959, in render_annotated
    return self.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/loader_tags.py", line 200, in render
    template = context.template.engine.get_template(template_name)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/engine.py", line 190, in get_template
    template, origin = self.find_template(template_name, dirs)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/engine.py", line 169, in find_template
    raise TemplateDoesNotExist(name, tried=tried)
django.template.exceptions.TemplateDoesNotExist: wagtailadmin/shared/tag_field_css.html

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/core/handlers/base.py", line 149, in get_response
    response = self.process_exception_by_middleware(e, request)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/core/handlers/base.py", line 147, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/views/decorators/cache.py", line 43, in _cache_controlled
    response = viewfunc(request, *args, **kw)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/wagtail/wagtailadmin/decorators.py", line 22, in decorated_view
    return view_func(request, *args, **kwargs)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/contrib/auth/decorators.py", line 23, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/wagtail_embed_videos/views/embed_videos.py", line 173, in add
    'form': form,
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/shortcuts.py", line 67, in render
    template_name, context, request=request, using=using)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/loader.py", line 97, in render_to_string
    return template.render(context, request)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/backends/django.py", line 97, in render
    reraise(exc, self.backend)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/backends/django.py", line 107, in reraise
    six.reraise(exc.__class__, new, sys.exc_info()[2])
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/utils/six.py", line 685, in reraise
    raise value.with_traceback(tb)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/backends/django.py", line 95, in render
    return self.template.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 206, in render
    return self._render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 197, in _render
    return self.nodelist.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 992, in render
    bit = node.render_annotated(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 959, in render_annotated
    return self.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/loader_tags.py", line 173, in render
    return compiled_parent._render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 197, in _render
    return self.nodelist.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 992, in render
    bit = node.render_annotated(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 959, in render_annotated
    return self.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/loader_tags.py", line 173, in render
    return compiled_parent._render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 197, in _render
    return self.nodelist.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 992, in render
    bit = node.render_annotated(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 959, in render_annotated
    return self.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/loader_tags.py", line 173, in render
    return compiled_parent._render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 197, in _render
    return self.nodelist.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 992, in render
    bit = node.render_annotated(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 959, in render_annotated
    return self.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/loader_tags.py", line 173, in render
    return compiled_parent._render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 197, in _render
    return self.nodelist.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 992, in render
    bit = node.render_annotated(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 959, in render_annotated
    return self.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/loader_tags.py", line 69, in render
    result = block.nodelist.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 992, in render
    bit = node.render_annotated(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 959, in render_annotated
    return self.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/loader_tags.py", line 69, in render
    result = block.nodelist.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 992, in render
    bit = node.render_annotated(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/base.py", line 959, in render_annotated
    return self.render(context)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/loader_tags.py", line 200, in render
    template = context.template.engine.get_template(template_name)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/engine.py", line 190, in get_template
    template, origin = self.find_template(template_name, dirs)
  File "/run/media/salahaddin/Datos/Proyectos/Trabajo/adkm/lib/python3.5/site-packages/django/template/engine.py", line 169, in find_template
    raise TemplateDoesNotExist(name, tried=tried)
django.template.exceptions.TemplateDoesNotExist: wagtailadmin/shared/tag_field_css.html
[13/Mar/2016 21:55:42] "GET /admin/embed_videos/add/ HTTP/1.1" 500 558978

What's the problem?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.