Commit a85b2dec22dbbbad87b376ec5a5ff82c7a51930b
1 parent
be2f58b7
Exists in
master
and in
3 other branches
Adding youtube video deletion
Showing
4 changed files
with
27 additions
and
4 deletions
Show diff stats
amadeus/static/js/ytvideo.js
@@ -3,9 +3,9 @@ var tag = document.createElement('script'); | @@ -3,9 +3,9 @@ var tag = document.createElement('script'); | ||
3 | tag.src = "https://www.youtube.com/player_api"; | 3 | tag.src = "https://www.youtube.com/player_api"; |
4 | var firstScriptTag = document.getElementsByTagName('script')[0]; | 4 | var firstScriptTag = document.getElementsByTagName('script')[0]; |
5 | firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); | 5 | firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); |
6 | + | ||
6 | var keepAlive; | 7 | var keepAlive; |
7 | - // Replace the 'ytplayer' element with an <iframe> and | ||
8 | - // YouTube player after the API code downloads. | 8 | + |
9 | var player; | 9 | var player; |
10 | function onYouTubePlayerAPIReady() { | 10 | function onYouTubePlayerAPIReady() { |
11 | player = new YT.Player('video'); | 11 | player = new YT.Player('video'); |
youtube_video/models.py
@@ -23,7 +23,7 @@ class YTVideo(Resource): | @@ -23,7 +23,7 @@ class YTVideo(Resource): | ||
23 | return 'youtube:update' | 23 | return 'youtube:update' |
24 | 24 | ||
25 | def delete_link(self): | 25 | def delete_link(self): |
26 | - return 'webpages:delete' | 26 | + return 'youtube:delete' |
27 | 27 | ||
28 | def delete_message(self): | 28 | def delete_message(self): |
29 | return _('Are you sure you want delete the YouTube Video') | 29 | return _('Are you sure you want delete the YouTube Video') |
youtube_video/urls.py
@@ -6,6 +6,7 @@ from . import views | @@ -6,6 +6,7 @@ from . import views | ||
6 | urlpatterns = [ | 6 | urlpatterns = [ |
7 | url(r'^create/(?P<slug>[\w_-]+)/$', views.CreateView.as_view(), name = 'create'), | 7 | url(r'^create/(?P<slug>[\w_-]+)/$', views.CreateView.as_view(), name = 'create'), |
8 | url(r'^update/(?P<topic_slug>[\w_-]+)/(?P<slug>[\w_-]+)/$', views.UpdateView.as_view(), name = 'update'), | 8 | url(r'^update/(?P<topic_slug>[\w_-]+)/(?P<slug>[\w_-]+)/$', views.UpdateView.as_view(), name = 'update'), |
9 | + url(r'^delete/(?P<slug>[\w_-]+)/$', views.DeleteView.as_view(), name = 'delete'), | ||
9 | url(r'^window_view/(?P<slug>[\w_-]+)/$', views.NewWindowView.as_view(), name = 'window_view'), | 10 | url(r'^window_view/(?P<slug>[\w_-]+)/$', views.NewWindowView.as_view(), name = 'window_view'), |
10 | url(r'^view/(?P<slug>[\w_-]+)/$', views.InsideView.as_view(), name = 'view'), | 11 | url(r'^view/(?P<slug>[\w_-]+)/$', views.InsideView.as_view(), name = 'view'), |
11 | ] | 12 | ] |
youtube_video/views.py
@@ -273,4 +273,26 @@ class UpdateView(LoginRequiredMixin, generic.UpdateView): | @@ -273,4 +273,26 @@ class UpdateView(LoginRequiredMixin, generic.UpdateView): | ||
273 | 273 | ||
274 | success_url = reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug}) | 274 | success_url = reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug}) |
275 | 275 | ||
276 | - return success_url | ||
277 | \ No newline at end of file | 276 | \ No newline at end of file |
277 | + return success_url | ||
278 | + | ||
279 | +class DeleteView(LoginRequiredMixin, generic.DeleteView): | ||
280 | + login_url = reverse_lazy("users:login") | ||
281 | + redirect_field_name = 'next' | ||
282 | + | ||
283 | + template_name = 'resources/delete.html' | ||
284 | + model = YTVideo | ||
285 | + context_object_name = 'resource' | ||
286 | + | ||
287 | + def dispatch(self, request, *args, **kwargs): | ||
288 | + slug = self.kwargs.get('slug', '') | ||
289 | + youtube = get_object_or_404(YTVideo, slug = slug) | ||
290 | + | ||
291 | + if not has_subject_permissions(request.user, youtube.topic.subject): | ||
292 | + return redirect(reverse_lazy('subjects:home')) | ||
293 | + | ||
294 | + return super(DeleteView, self).dispatch(request, *args, **kwargs) | ||
295 | + | ||
296 | + def get_success_url(self): | ||
297 | + messages.success(self.request, _('The YouTube Video "%s" was removed successfully from virtual environment "%s"!')%(self.object.name, self.object.topic.subject.name)) | ||
298 | + | ||
299 | + return reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug}) | ||
278 | \ No newline at end of file | 300 | \ No newline at end of file |