From 6d59a8ddad58e0b2bad57fac3300fd5ceddb619e Mon Sep 17 00:00:00 2001 From: Zambom Date: Thu, 2 Feb 2017 17:52:17 -0200 Subject: [PATCH] Adding ytvideo video and adjusting it's crud --- amadeus/static/js/ytvideo.js | 38 ++++++++++++++++++++++++++++++++++++++ file_link/models.py | 3 +++ file_link/templates/file_links/delete.html | 22 ---------------------- file_link/views.py | 4 ++-- webpage/models.py | 3 +++ webpage/templates/webpages/delete.html | 22 ---------------------- webpage/views.py | 4 ++-- youtube_video/forms.py | 12 +++++++++++- youtube_video/models.py | 7 +++++-- youtube_video/templates/youtube/_form.html | 36 +++++++++++++++++++++++------------- youtube_video/templates/youtube/view.html | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ youtube_video/templates/youtube/window_view.html | 37 +++++++++++++++++++++++++++++++++++++ youtube_video/urls.py | 2 ++ youtube_video/views.py | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------ 14 files changed, 260 insertions(+), 76 deletions(-) create mode 100644 amadeus/static/js/ytvideo.js delete mode 100644 file_link/templates/file_links/delete.html delete mode 100644 webpage/templates/webpages/delete.html create mode 100644 youtube_video/templates/youtube/view.html create mode 100644 youtube_video/templates/youtube/window_view.html diff --git a/amadeus/static/js/ytvideo.js b/amadeus/static/js/ytvideo.js new file mode 100644 index 0000000..fdc8533 --- /dev/null +++ b/amadeus/static/js/ytvideo.js @@ -0,0 +1,38 @@ +// Load the IFrame Player API code asynchronously. +var tag = document.createElement('script'); +tag.src = "https://www.youtube.com/player_api"; +var firstScriptTag = document.getElementsByTagName('script')[0]; +firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); + + // Replace the 'ytplayer' element with an + + + + + +{% endblock %} diff --git a/youtube_video/templates/youtube/window_view.html b/youtube_video/templates/youtube/window_view.html new file mode 100644 index 0000000..750c23e --- /dev/null +++ b/youtube_video/templates/youtube/window_view.html @@ -0,0 +1,37 @@ + + +{% load static i18n %} + + + + {{ title }} | {{ theme.title }} + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/youtube_video/urls.py b/youtube_video/urls.py index 76882fb..9bbfa3b 100644 --- a/youtube_video/urls.py +++ b/youtube_video/urls.py @@ -6,4 +6,6 @@ from . import views urlpatterns = [ url(r'^create/(?P[\w_-]+)/$', views.CreateView.as_view(), name = 'create'), url(r'^update/(?P[\w_-]+)/(?P[\w_-]+)/$', views.UpdateView.as_view(), name = 'update'), + url(r'^window_view/(?P[\w_-]+)/$', views.NewWindowView.as_view(), name = 'window_view'), + url(r'^view/(?P[\w_-]+)/$', views.InsideView.as_view(), name = 'view'), ] diff --git a/youtube_video/views.py b/youtube_video/views.py index 80743e5..34f83a2 100644 --- a/youtube_video/views.py +++ b/youtube_video/views.py @@ -12,6 +12,57 @@ from topics.models import Topic from .forms import YTVideoForm, InlinePendenciesFormset from .models import YTVideo +class NewWindowView(LoginRequiredMixin, generic.DetailView): + login_url = reverse_lazy("users:login") + redirect_field_name = 'next' + + template_name = 'youtube/window_view.html' + model = YTVideo + context_object_name = 'youtube' + + def dispatch(self, request, *args, **kwargs): + slug = self.kwargs.get('slug', '') + youtube = get_object_or_404(YTVideo, slug = slug) + + if not has_resource_permissions(request.user, youtube): + return redirect(reverse_lazy('subjects:home')) + + return super(NewWindowView, self).dispatch(request, *args, **kwargs) + + def get_context_data(self, **kwargs): + context = super(NewWindowView, self).get_context_data(**kwargs) + + context['title'] = _("%s - Video")%(self.object.name) + + return context + +class InsideView(LoginRequiredMixin, generic.DetailView): + login_url = reverse_lazy("users:login") + redirect_field_name = 'next' + + template_name = 'youtube/view.html' + model = YTVideo + context_object_name = 'youtube' + + def dispatch(self, request, *args, **kwargs): + slug = self.kwargs.get('slug', '') + youtube = get_object_or_404(YTVideo, slug = slug) + + if not has_resource_permissions(request.user, youtube): + return redirect(reverse_lazy('subjects:home')) + + return super(InsideView, self).dispatch(request, *args, **kwargs) + + def get_context_data(self, **kwargs): + context = super(InsideView, self).get_context_data(**kwargs) + + context['title'] = self.object.name + + context['topic'] = self.object.topic + context['subject'] = self.object.topic.subject + + return context + class CreateView(LoginRequiredMixin, generic.edit.CreateView): login_url = reverse_lazy("users:login") redirect_field_name = 'next' @@ -68,6 +119,9 @@ class CreateView(LoginRequiredMixin, generic.edit.CreateView): return initial def form_invalid(self, form, pendencies_form): + for p_form in pendencies_form.forms: + p_form.fields['action'].choices = [("", "-------"),("view", _("Visualize")), ("finish", _("Finish"))] + return self.render_to_response(self.get_context_data(form = form, pendencies_form = pendencies_form)) def form_valid(self, form, pendencies_form): @@ -111,14 +165,14 @@ class CreateView(LoginRequiredMixin, generic.edit.CreateView): def get_success_url(self): messages.success(self.request, _('The Youtube Video "%s" was added to the Topic "%s" of the virtual environment "%s" successfully!')%(self.object.name, self.object.topic.name, self.object.topic.subject.name)) - #success_url = reverse_lazy('webpages:view', kwargs = {'slug': self.object.slug}) + success_url = reverse_lazy('youtube:view', kwargs = {'slug': self.object.slug}) - #if self.object.show_window: - # self.request.session['resources'] = {} - # self.request.session['resources']['new_page'] = True - # self.request.session['resources']['new_page_url'] = reverse('webpages:window_view', kwargs = {'slug': self.object.slug}) + if self.object.show_window: + self.request.session['resources'] = {} + self.request.session['resources']['new_page'] = True + self.request.session['resources']['new_page_url'] = reverse('youtube:window_view', kwargs = {'slug': self.object.slug}) - success_url = reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug}) + success_url = reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug}) return success_url @@ -170,6 +224,9 @@ class UpdateView(LoginRequiredMixin, generic.UpdateView): return self.form_invalid(form, pendencies_form) def form_invalid(self, form, pendencies_form): + for p_form in pendencies_form.forms: + p_form.fields['action'].choices = [("", "-------"),("view", _("Visualize")), ("finish", _("Finish"))] + return self.render_to_response(self.get_context_data(form = form, pendencies_form = pendencies_form)) def form_valid(self, form, pendencies_form): @@ -207,13 +264,13 @@ class UpdateView(LoginRequiredMixin, generic.UpdateView): def get_success_url(self): messages.success(self.request, _('The YouTube Video "%s" was updated successfully!')%(self.object.name)) - #success_url = reverse_lazy('webpages:view', kwargs = {'slug': self.object.slug}) + success_url = reverse_lazy('youtube:view', kwargs = {'slug': self.object.slug}) - #if self.object.show_window: - # self.request.session['resources'] = {} - # self.request.session['resources']['new_page'] = True - # self.request.session['resources']['new_page_url'] = reverse('webpages:window_view', kwargs = {'slug': self.object.slug}) + if self.object.show_window: + self.request.session['resources'] = {} + self.request.session['resources']['new_page'] = True + self.request.session['resources']['new_page_url'] = reverse('youtube:window_view', kwargs = {'slug': self.object.slug}) - success_url = reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug}) + success_url = reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug}) return success_url \ No newline at end of file -- libgit2 0.21.2