Unverified Commit 45b438da authored by seb-b's avatar seb-b Committed by GitHub
Browse files

Merge pull request #23 from takeflight/wagtail2

Convert to wagtail 2
parents acb2eb87 c1ff2812
*.pyc *.pyc
*.egg-info *.egg-info
.*.swp
dist/ dist/
./settings.py ./settings.py
venv/ venv/
......
...@@ -10,14 +10,15 @@ env: ...@@ -10,14 +10,15 @@ env:
python: python:
- 2.7
- 3.4 - 3.4
- 3.5 - 3.5
- 3.6
env: env:
- DJANGO='110' WAGTAIL='19' - DJANGO='111' WAGTAIL='20'
- DJANGO='110' WAGTAIL='110' - DJANGO='111' WAGTAIL='21'
- DJANGO='111' WAGTAIL='110' - DJANGO='20' WAGTAIL='20'
- DJANGO='20' WAGTAIL='21'
matrix: matrix:
...@@ -26,9 +27,10 @@ matrix: ...@@ -26,9 +27,10 @@ matrix:
python: 3.5 python: 3.5
before_install: before_install:
# - sudo add-apt-repository ppa:mc3man/trusty-media -y // Inlcudes all multimedia options but 404s currently :( - sudo add-apt-repository ppa:mc3man/trusty-media -y
- sudo apt-get update -qq - sudo apt-get update -qq
- sudo apt-get install ffmpeg -y # The install of ffmpeg fails at random with 'There were unauthenticated packages' 🤷‍♂️
- sudo apt-get install ffmpeg --allow-unauthenticated -y
install: install:
- pip install --upgrade pip wheel tox - pip install --upgrade pip wheel tox
......
CHANGELOG CHANGELOG
========= =========
2.0.0
-----
- Dropped python2
- Updated wagtail dependency to 2.0
0.4.0 0.4.0
----- -----
......
...@@ -8,7 +8,7 @@ html5 compliant codec using ffmpeg. ...@@ -8,7 +8,7 @@ html5 compliant codec using ffmpeg.
Requirements Requirements
------------ ------------
- Wagtail > 1.7 - Wagtail >= 2.0
- `ffmpeg <https://ffmpeg.org/>`__ - `ffmpeg <https://ffmpeg.org/>`__
Installing Installing
......
...@@ -10,7 +10,7 @@ from setuptools import find_packages, setup ...@@ -10,7 +10,7 @@ from setuptools import find_packages, setup
setup( setup(
name='wagtailvideos', name='wagtailvideos',
version='0.4.0', version='2.0.0',
description="A wagtail module for uploading and displaying videos in various codecs.", description="A wagtail module for uploading and displaying videos in various codecs.",
long_description=readme, long_description=readme,
author='Takeflight', author='Takeflight',
...@@ -18,9 +18,9 @@ setup( ...@@ -18,9 +18,9 @@ setup(
url='https://github.com/takeflight/wagtailvideos', url='https://github.com/takeflight/wagtailvideos',
install_requires=[ install_requires=[
'wagtail>=1.7', 'wagtail>=2.0',
'Django>=1.9', 'Django>=1.11',
'django-enumchoicefield==0.6.0', 'django-enumchoicefield==1.0.0',
], ],
extras_require={ extras_require={
'testing': [ 'testing': [
...@@ -42,11 +42,10 @@ setup( ...@@ -42,11 +42,10 @@ setup(
'Intended Audience :: Developers', 'Intended Audience :: Developers',
'Operating System :: OS Independent', 'Operating System :: OS Independent',
'Programming Language :: Python', 'Programming Language :: Python',
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Framework :: Django', 'Framework :: Django',
'License :: OSI Approved :: BSD License', 'License :: OSI Approved :: BSD License',
], ],
......
from __future__ import unicode_literals from __future__ import unicode_literals
from django.db import models from django.db import models
from wagtail.wagtailcore.models import Page from wagtail.core.models import Page
from wagtailvideos.edit_handlers import VideoChooserPanel from wagtailvideos.edit_handlers import VideoChooserPanel
......
...@@ -9,12 +9,13 @@ INSTALLED_APPS = [ ...@@ -9,12 +9,13 @@ INSTALLED_APPS = [
'taggit', 'taggit',
'modelcluster', 'modelcluster',
'wagtail.wagtailcore', 'wagtail.core',
'wagtail.wagtailadmin', 'wagtail.admin',
'wagtail.wagtailusers', 'wagtail.users',
'wagtail.wagtailsites', 'wagtail.sites',
'wagtail.wagtailsnippets', 'wagtail.snippets',
'wagtail.wagtailimages', 'wagtail.images',
'wagtail.documents',
'django.contrib.admin', 'django.contrib.admin',
'django.contrib.auth', 'django.contrib.auth',
...@@ -41,7 +42,7 @@ DEBUG = True ...@@ -41,7 +42,7 @@ DEBUG = True
USE_TZ = True USE_TZ = True
TIME_ZONE = 'Australia/Hobart' TIME_ZONE = 'Australia/Hobart'
MIDDLEWARE_CLASSES = [ MIDDLEWARE = [
'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware', 'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware', 'django.middleware.csrf.CsrfViewMiddleware',
...@@ -49,7 +50,7 @@ MIDDLEWARE_CLASSES = [ ...@@ -49,7 +50,7 @@ MIDDLEWARE_CLASSES = [
'django.contrib.messages.middleware.MessageMiddleware', 'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware',
'wagtail.wagtailcore.middleware.SiteMiddleware', 'wagtail.core.middleware.SiteMiddleware',
] ]
TEMPLATES = [ TEMPLATES = [
......
...@@ -5,8 +5,8 @@ import re ...@@ -5,8 +5,8 @@ import re
from django.conf import settings from django.conf import settings
from django.conf.urls import include, url from django.conf.urls import include, url
from django.views.static import serve from django.views.static import serve
from wagtail.wagtailadmin import urls as wagtailadmin_urls from wagtail.admin import urls as wagtailadmin_urls
from wagtail.wagtailcore import urls as wagtail_urls from wagtail.core import urls as wagtail_urls
urlpatterns = [ urlpatterns = [
url(r'^admin/', include(wagtailadmin_urls)), url(r'^admin/', include(wagtailadmin_urls)),
......
import errno import errno
import os import os
import warnings
from datetime import datetime from datetime import datetime
from django.conf import settings from django.conf import settings
...@@ -10,7 +9,6 @@ from django.core.files.storage import FileSystemStorage ...@@ -10,7 +9,6 @@ from django.core.files.storage import FileSystemStorage
from django.utils import timezone from django.utils import timezone
from django.utils._os import safe_join from django.utils._os import safe_join
from django.utils.deconstruct import deconstructible from django.utils.deconstruct import deconstructible
from django.utils.deprecation import RemovedInDjango20Warning
from django.utils.encoding import filepath_to_uri, force_text from django.utils.encoding import filepath_to_uri, force_text
from django.utils.six.moves.urllib.parse import urljoin from django.utils.six.moves.urllib.parse import urljoin
...@@ -145,33 +143,6 @@ class RemoteStorage(FileSystemStorage): ...@@ -145,33 +143,6 @@ class RemoteStorage(FileSystemStorage):
url = url.lstrip('/') url = url.lstrip('/')
return urljoin(self.base_url, url) return urljoin(self.base_url, url)
def accessed_time(self, name):
warnings.warn(
'FileSystemStorage.accessed_time() is deprecated in favor of '
'get_accessed_time().',
RemovedInDjango20Warning,
stacklevel=2,
)
return datetime.fromtimestamp(os.path.getatime(self.path(name)))
def created_time(self, name):
warnings.warn(
'FileSystemStorage.created_time() is deprecated in favor of '
'get_created_time().',
RemovedInDjango20Warning,
stacklevel=2,
)
return datetime.fromtimestamp(os.path.getctime(self.path(name)))
def modified_time(self, name):
warnings.warn(
'FileSystemStorage.modified_time() is deprecated in favor of '
'get_modified_time().',
RemovedInDjango20Warning,
stacklevel=2,
)
return datetime.fromtimestamp(os.path.getmtime(self.path(name)))
def _datetime_from_timestamp(self, ts): def _datetime_from_timestamp(self, ts):
""" """
If timezone support is enabled, make an aware datetime object in UTC; If timezone support is enabled, make an aware datetime object in UTC;
......
...@@ -5,12 +5,12 @@ import json ...@@ -5,12 +5,12 @@ import json
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from django.contrib.auth.models import Group, Permission from django.contrib.auth.models import Group, Permission
from django.core.files.uploadedfile import SimpleUploadedFile from django.core.files.uploadedfile import SimpleUploadedFile
from django.core.urlresolvers import reverse
from django.template.defaultfilters import filesizeformat from django.template.defaultfilters import filesizeformat
from django.test import TestCase, override_settings from django.test import TestCase, override_settings
from django.urls import reverse
from mock import patch from mock import patch
from wagtail.core.models import Collection, GroupCollectionPermission
from wagtail.tests.utils import WagtailTestUtils from wagtail.tests.utils import WagtailTestUtils
from wagtail.wagtailcore.models import Collection, GroupCollectionPermission
from tests.utils import create_test_video_file from tests.utils import create_test_video_file
from wagtailvideos.models import Video from wagtailvideos.models import Video
......
...@@ -2,8 +2,7 @@ ...@@ -2,8 +2,7 @@
skip_missing_interpreters = True skip_missing_interpreters = True
envlist = envlist =
py{27,34,35}-dj{110}-wt{19} py{34,35,36}-dj{110,20}-wt{20,21}
py{27,34,35}-dj{110,111}-wt{110}
# Enforce good style # Enforce good style
flake8,isort flake8,isort
...@@ -16,14 +15,10 @@ pip_pre = True ...@@ -16,14 +15,10 @@ pip_pre = True
deps = deps =
{[base]deps} {[base]deps}
dj18: Django~=1.8.0
dj19: Django~=1.9.0
dj110: Django~=1.10.0
dj111: Django~=1.11.0 dj111: Django~=1.11.0
wt17: wagtail~=1.7.0 dj20: Django~=2.0.0
wt18: wagtail~=1.8.0 wt20: wagtail~=2.0.0
wt19: wagtail~=1.9.0 wt21: wagtail~=2.1.0
wt110: wagtail~=1.10.0
[testenv:flake8] [testenv:flake8]
deps = flake8 deps = flake8
...@@ -34,6 +29,6 @@ commands = flake8 wagtailvideos/ tests/ ...@@ -34,6 +29,6 @@ commands = flake8 wagtailvideos/ tests/
usedevelop = True usedevelop = True
deps = deps =
{[base]deps} {[base]deps}
isort==4.2.2 isort==4.3.4
basepython = python3.5 basepython = python3.5
commands = isort --recursive --diff --check-only wagtailvideos/ tests/ commands = isort --recursive --diff --check-only wagtailvideos/ tests/
from __future__ import absolute_import, print_function, unicode_literals
from django.apps import AppConfig from django.apps import AppConfig
from django.core.checks import Warning, register from django.core.checks import Warning, register
......
from __future__ import absolute_import, print_function, unicode_literals from wagtail.admin.edit_handlers import BaseChooserPanel
from wagtail.wagtailadmin.edit_handlers import BaseChooserPanel
from .widgets import AdminVideoChooser from .widgets import AdminVideoChooser
class BaseVideoChooserPanel(BaseChooserPanel): class VideoChooserPanel(BaseChooserPanel):
object_type_name = "video" model = None
field_name = None
@classmethod _target_model = None
def widget_overrides(cls):
return {cls.field_name: AdminVideoChooser}
object_type_name = "video"
class VideoChooserPanel(object): def widget_overrides(self):
def __init__(self, field_name): return {self.field_name: AdminVideoChooser}
self.field_name = field_name
def bind_to_model(self, model):
return type(str('_VideoChooserPanel'), (BaseVideoChooserPanel,), {
'model': model,
'field_name': self.field_name,
})
from __future__ import absolute_import, print_function, unicode_literals
import datetime import datetime
import logging import logging
import os import os
......
from __future__ import absolute_import, print_function, unicode_literals
from django.conf import settings from django.conf import settings
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from django.forms.fields import FileField from django.forms.fields import FileField
......
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.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from enumchoicefield.forms import EnumField from enumchoicefield.forms import EnumField
from wagtail.wagtailadmin import widgets from wagtail.admin import widgets
from wagtail.wagtailadmin.forms import ( from wagtail.admin.forms import (
BaseCollectionMemberForm, collection_member_permission_formset_factory) BaseCollectionMemberForm, collection_member_permission_formset_factory)
from wagtailvideos.fields import WagtailVideoField from wagtailvideos.fields import WagtailVideoField
......
from __future__ import absolute_import, unicode_literals
from jinja2.ext import Extension from jinja2.ext import Extension
from .models import Video from .models import Video
......
...@@ -4,8 +4,8 @@ from __future__ import absolute_import, print_function, unicode_literals ...@@ -4,8 +4,8 @@ from __future__ import absolute_import, print_function, unicode_literals
import django.db.models.deletion import django.db.models.deletion
import taggit.managers import taggit.managers
import wagtail.wagtailcore.models import wagtail.core.models
import wagtail.wagtailsearch.index import wagtail.search.index
from django.conf import settings from django.conf import settings
from django.db import migrations, models from django.db import migrations, models
...@@ -31,7 +31,7 @@ class Migration(migrations.Migration): ...@@ -31,7 +31,7 @@ class Migration(migrations.Migration):
('file', models.ImageField(height_field='height', upload_to=wagtailvideos.models.get_upload_to, verbose_name='file', width_field='width')), ('file', models.ImageField(height_field='height', upload_to=wagtailvideos.models.get_upload_to, verbose_name='file', width_field='width')),
('created_at', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='created at')), ('created_at', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='created at')),
('file_size', models.PositiveIntegerField(editable=False, null=True)), ('file_size', models.PositiveIntegerField(editable=False, null=True)),
('collection', models.ForeignKey(default=wagtail.wagtailcore.models.get_root_collection_id, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='wagtailcore.Collection', verbose_name='collection')), ('collection', models.ForeignKey(default=wagtail.core.models.get_root_collection_id, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='wagtailcore.Collection', verbose_name='collection')),
('tags', taggit.managers.TaggableManager(blank=True, help_text=None, through='taggit.TaggedItem', to='taggit.Tag', verbose_name='tags')), ('tags', taggit.managers.TaggableManager(blank=True, help_text=None, through='taggit.TaggedItem', to='taggit.Tag', verbose_name='tags')),
('uploaded_by_user', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='uploaded by user')), ('uploaded_by_user', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='uploaded by user')),
], ],
......
from __future__ import absolute_import, print_function, unicode_literals
import logging import logging
import mimetypes import mimetypes
import os import os
...@@ -14,20 +12,20 @@ from django.conf import settings ...@@ -14,20 +12,20 @@ from django.conf import settings
from django.core.exceptions import SuspiciousFileOperation from django.core.exceptions import SuspiciousFileOperation
from django.core.files.base import ContentFile from django.core.files.base import ContentFile
from django.core.files.temp import NamedTemporaryFile from django.core.files.temp import NamedTemporaryFile
from django.core.urlresolvers import reverse
from django.db import models from django.db import models
from django.db.models.signals import post_save, pre_delete from django.db.models.signals import post_save, pre_delete
from django.dispatch.dispatcher import receiver from django.dispatch.dispatcher import receiver
from django.forms.utils import flatatt from django.forms.utils import flatatt
from django.urls import reverse
from django.utils.encoding import python_2_unicode_compatible from django.utils.encoding import python_2_unicode_compatible
from django.utils.text import mark_safe from django.utils.text import mark_safe
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from enumchoicefield import ChoiceEnum, EnumChoiceField from enumchoicefield import ChoiceEnum, EnumChoiceField
from taggit.managers import TaggableManager from taggit.managers import TaggableManager
from wagtail.wagtailadmin.utils import get_object_usage from wagtail.admin.utils import get_object_usage
from wagtail.wagtailcore.models import CollectionMember from wagtail.core.models import CollectionMember
from wagtail.wagtailsearch import index from wagtail.search import index
from wagtail.wagtailsearch.queryset import SearchableQuerySetMixin from wagtail.search.queryset import SearchableQuerySetMixin
from wagtailvideos import ffmpeg from wagtailvideos import ffmpeg
...@@ -367,7 +365,7 @@ class AbstractVideoTranscode(models.Model): ...@@ -367,7 +365,7 @@ class AbstractVideoTranscode(models.Model):
class VideoTranscode(AbstractVideoTranscode): class VideoTranscode(AbstractVideoTranscode):
video = models.ForeignKey(Video, related_name='transcodes') video = models.ForeignKey(Video, related_name='transcodes', on_delete=models.CASCADE)
class Meta: class Meta:
unique_together = ( unique_together = (
......
from __future__ import absolute_import, print_function, unicode_literals from wagtail.core.permission_policies.collections import (
CollectionOwnershipPermissionPolicy)
from wagtail.wagtailcore.permission_policies.collections import \
CollectionOwnershipPermissionPolicy
from wagtailvideos.models import Video from wagtailvideos.models import 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