Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Websites UFRPE
Wagtail Videos
Commits
b2d3a929
Commit
b2d3a929
authored
Jul 05, 2016
by
Seb
Browse files
Deleting videos working
parent
ead24890
Changes
7
Hide whitespace changes
Inline
Side-by-side
wagtailvideos/models.py
View file @
b2d3a929
...
...
@@ -13,6 +13,8 @@ from django.core.exceptions import ImproperlyConfigured
from
django.core.files.base
import
ContentFile
from
django.core.urlresolvers
import
reverse
from
django.db
import
models
from
django.db.models.signals
import
pre_delete
from
django.dispatch.dispatcher
import
receiver
from
django.utils.encoding
import
python_2_unicode_compatible
from
django.utils.translation
import
ugettext_lazy
as
_
from
enum
import
Enum
...
...
@@ -244,6 +246,13 @@ class Video(AbstractVideo):
)
# Delete files when model is deleted
@
receiver
(
pre_delete
,
sender
=
Video
)
def
video_delete
(
sender
,
instance
,
**
kwargs
):
print
(
'Video pre delete received'
)
instance
.
file
.
delete
(
False
)
def
get_video_model
():
from
django.conf
import
settings
from
django.apps
import
apps
...
...
@@ -290,3 +299,8 @@ class VideoTranscode(AbstractVideoTranscode):
unique_together
=
(
(
'video'
,
'media_format'
)
)
# Delete files when model is deleted
@
receiver
(
pre_delete
,
sender
=
VideoTranscode
)
def
transcode_delete
(
sender
,
instance
,
**
kwargs
):
instance
.
file
.
delete
(
False
)
wagtailvideos/templates/wagtailvideos/videos/confirm_delete.html
View file @
b2d3a929
{% extends "wagtailadmin/base.html" %}
{% load wagtail
image
s_tags %}
{% load wagtail
video
s_tags %}
{% load i18n %}
{% block titletag %}{% trans "Delete image" %}{% endblock %}
...
...
@@ -9,11 +9,11 @@
<div
class=
"row row-flush nice-padding"
>
<div
class=
"col6"
>
{%
image image max-800x600
%}
{%
video video controls
%}
</div>
<div
class=
"col6"
>
<p>
{% trans "Are you sure you want to delete this
image
?" %}
</p>
<form
action=
"{% url 'wagtail
image
s:delete'
image
.id %}"
method=
"POST"
>
<p>
{% trans "Are you sure you want to delete this
video
?" %}
</p>
<form
action=
"{% url 'wagtail
video
s:delete'
video
.id %}"
method=
"POST"
>
{% csrf_token %}
<input
type=
"submit"
value=
"{% trans 'Yes, delete' %}"
class=
"serious"
/>
</form>
...
...
wagtailvideos/templates/wagtailvideos/videos/edit.html
View file @
b2d3a929
{% extends "wagtailadmin/base.html" %}
{% load
wagtailimages_tags
staticfiles i18n wagtailvideos_tags %}
{% load staticfiles i18n wagtailvideos_tags %}
{% block titletag %}{% blocktrans with title=video.title %}Editing video {{ title }}{% endblocktrans %}{% endblock %}
{% block extra_js %}
...
...
@@ -66,11 +66,6 @@
{% endif %}
</div>
<div
class=
"col2 "
>
{% if url_generator_enabled %}
<a
href=
"{% url 'wagtailvideos:url_generator' video.id %}"
class=
"button bicolor icon icon-link"
>
{% trans "URL Generator" %}
</a>
<hr
/>
{% endif %}
<img
src=
'{{video.thumbnail.url}}'
/>
<dl>
...
...
wagtailvideos/urls.py
View file @
b2d3a929
...
...
@@ -6,12 +6,8 @@ urlpatterns = [
url
(
r
'^$'
,
videos
.
index
,
name
=
'index'
),
url
(
r
'^(\d+)/$'
,
videos
.
edit
,
name
=
'edit'
),
url
(
r
'^(\d+)/delete/$'
,
videos
.
delete
,
name
=
'delete'
),
url
(
r
'^(\d+)/generate_url/$'
,
videos
.
url_generator
,
name
=
'url_generator'
),
url
(
r
'^(\d+)/generate_url/(.*)/$'
,
videos
.
generate_url
,
name
=
'generate_url'
),
url
(
r
'^(\d+)/create_transcode/$'
,
videos
.
create_transcode
,
name
=
'create_transcode'
),
#url(r'^(\d+)/preview/(.*)/$', videos.preview, name='preview'),
url
(
r
'^add/$'
,
videos
.
add
,
name
=
'add'
),
url
(
r
'^usage/(\d+)/$'
,
videos
.
usage
,
name
=
'video_usage'
),
...
...
wagtailvideos/views/multiple.py
View file @
b2d3a929
...
...
@@ -6,6 +6,7 @@ from django.views.decorators.http import require_POST
from
django.views.decorators.vary
import
vary_on_headers
from
wagtail.wagtailadmin.utils
import
PermissionPolicyChecker
from
wagtail.wagtailsearch.backends
import
get_search_backends
from
wagtailvideos.fields
import
ALLOWED_EXTENSIONS
from
wagtailvideos.forms
import
get_video_form
from
wagtailvideos.models
import
get_video_model
...
...
@@ -62,14 +63,14 @@ def add(request):
video
.
file_size
=
video
.
file
.
size
video
.
save
()
# Success! Send back an edit form
for this image to the user
# Success! Send back an edit form
return
JsonResponse
({
'success'
:
True
,
'video_id'
:
int
(
video
.
id
),
'form'
:
render_to_string
(
'wagtailvideos/multiple/edit_form.html'
,
{
'video'
:
video
,
'form'
:
get_video_edit_form
(
Video
)(
instance
=
video
,
prefix
=
'
image
-%d'
%
video
.
id
),
instance
=
video
,
prefix
=
'
video
-%d'
%
video
.
id
),
},
request
=
request
),
})
else
:
...
...
wagtailvideos/views/videos.py
View file @
b2d3a929
...
...
@@ -8,14 +8,18 @@ from django.views.decorators.vary import vary_on_headers
from
wagtail.utils.pagination
import
paginate
from
wagtail.wagtailadmin
import
messages
from
wagtail.wagtailadmin.forms
import
SearchForm
from
wagtail.wagtailadmin.utils
import
PermissionPolicyChecker
from
wagtail.wagtailcore.models
import
Collection
,
Site
from
wagtail.wagtailsearch.backends
import
get_search_backends
from
wagtailvideos.forms
import
(
URLGeneratorForm
,
VideoTranscodeAdminForm
,
get_video_form
)
from
wagtailvideos.models
import
get_video_model
from
wagtailvideos.permissions
import
permission_policy
permission_checker
=
PermissionPolicyChecker
(
permission_policy
)
@
permission_checker
.
require_any
(
'add'
,
'change'
,
'delete'
)
@
vary_on_headers
(
'X-Requested-With'
)
def
index
(
request
):
Video
=
get_video_model
()
...
...
@@ -66,7 +70,7 @@ def index(request):
})
return
response
@
permission_checker
.
require
(
'change'
)
def
edit
(
request
,
video_id
):
Video
=
get_video_model
()
VideoForm
=
get_video_form
(
Video
)
...
...
@@ -103,13 +107,6 @@ def edit(request, video_id):
else
:
form
=
VideoForm
(
instance
=
video
)
# Check if we should enable the frontend url generator
try
:
reverse
(
'wagtailvideos_serve'
,
args
=
(
'foo'
,
'1'
,
'bar'
))
url_generator_enabled
=
True
except
NoReverseMatch
:
url_generator_enabled
=
False
if
video
.
is_stored_locally
():
# Give error if image file doesn't exist
if
not
os
.
path
.
isfile
(
video
.
file
.
path
):
...
...
@@ -122,10 +119,10 @@ def edit(request, video_id):
return
render
(
request
,
"wagtailvideos/videos/edit.html"
,
{
'video'
:
video
,
'form'
:
form
,
'url_generator_enabled'
:
url_generator_enabled
,
'filesize'
:
video
.
get_file_size
(),
'transcodes'
:
video
.
transcodes
.
all
(),
'transcode_form'
:
VideoTranscodeAdminForm
(
video
=
video
)
'transcode_form'
:
VideoTranscodeAdminForm
(
video
=
video
),
'user_can_delete'
:
permission_policy
.
user_has_permission_for_instance
(
request
.
user
,
'delete'
,
video
)
})
...
...
@@ -141,63 +138,20 @@ def create_transcode(request, video_id):
transcode_form
.
save
()
return
redirect
(
'wagtailvideos:edit'
,
video_id
)
# TODO was dis?
def
url_generator
(
request
,
image_id
):
image
=
get_object_or_404
(
get_video_model
(),
id
=
image_id
)
form
=
URLGeneratorForm
(
initial
=
{
'filter_method'
:
'original'
,
'width'
:
image
.
width
,
'height'
:
image
.
height
,
})
return
render
(
request
,
"wagtailvideos/images/url_generator.html"
,
{
'image'
:
image
,
'form'
:
form
,
})
def
generate_url
(
request
,
image_id
,
filter_spec
):
# Get the image
Image
=
get_video_model
()
try
:
Image
.
objects
.
get
(
id
=
image_id
)
except
Image
.
DoesNotExist
:
return
JsonResponse
({
'error'
:
"Cannot find image."
},
status
=
404
)
# Check if this user has edit permission on this image
# Generate url
url
=
reverse
(
'wagtailvideos_serve'
,
args
=
(
image_id
,
filter_spec
))
# Get site root url
try
:
site_root_url
=
Site
.
objects
.
get
(
is_default_site
=
True
).
root_url
except
Site
.
DoesNotExist
:
site_root_url
=
Site
.
objects
.
first
().
root_url
# Generate preview url
preview_url
=
reverse
(
'wagtailvideos:preview'
,
args
=
(
image_id
,
filter_spec
))
return
JsonResponse
({
'url'
:
site_root_url
+
url
,
'preview_url'
:
preview_url
},
status
=
200
)
def
delete
(
request
,
image_id
):
image
=
get_object_or_404
(
get_video_model
(),
id
=
image_id
)
@
permission_checker
.
require
(
'delete'
)
def
delete
(
request
,
video_id
):
video
=
get_object_or_404
(
get_video_model
(),
id
=
video_id
)
if
request
.
POST
:
image
.
delete
()
messages
.
success
(
request
,
_
(
"
Image
'{0}' deleted."
).
format
(
image
.
title
))
video
.
delete
()
messages
.
success
(
request
,
_
(
"
Video
'{0}' deleted."
).
format
(
video
.
title
))
return
redirect
(
'wagtailvideos:index'
)
return
render
(
request
,
"wagtailvideos/
image
s/confirm_delete.html"
,
{
'
image'
:
image
,
return
render
(
request
,
"wagtailvideos/
video
s/confirm_delete.html"
,
{
'
video'
:
video
,
})
@
permission_checker
.
require
(
'add'
)
def
add
(
request
):
ImageModel
=
get_video_model
()
ImageForm
=
get_video_form
(
ImageModel
)
...
...
wagtailvideos/wagtail_hooks.py
View file @
b2d3a929
...
...
@@ -43,5 +43,5 @@ def editor_js():
def
register_images_menu_item
():
return
MenuItem
(
_
(
'Videos'
),
urlresolvers
.
reverse
(
'wagtailvideos:index'
),
name
=
'videos'
,
classnames
=
'icon icon-
video
'
,
order
=
300
name
=
'videos'
,
classnames
=
'icon icon-
media
'
,
order
=
300
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment