From ab4f6331ba2828ec1ad928f08f0be37fe119c060 Mon Sep 17 00:00:00 2001 From: Zambom Date: Mon, 23 Jan 2017 16:12:03 -0200 Subject: [PATCH] Adding webpage render after creation --- subjects/templates/subjects/view.html | 6 ++++++ subjects/views.py | 9 ++++++++- webpage/templates/webpages/list.html | 0 webpage/templates/webpages/view.html | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ webpage/templates/webpages/window_view.html | 1 + webpage/urls.py | 2 ++ webpage/views.py | 37 ++++++++++++++++++++++++++++++++++++- 7 files changed, 119 insertions(+), 2 deletions(-) create mode 100644 webpage/templates/webpages/list.html create mode 100644 webpage/templates/webpages/view.html create mode 100644 webpage/templates/webpages/window_view.html diff --git a/subjects/templates/subjects/view.html b/subjects/templates/subjects/view.html index b9ed8f9..633ed88 100644 --- a/subjects/templates/subjects/view.html +++ b/subjects/templates/subjects/view.html @@ -88,4 +88,10 @@ {% include 'topics/list.html' with subject=subject %} + + {% endblock content %} \ No newline at end of file diff --git a/subjects/views.py b/subjects/views.py index 07aa354..483263c 100644 --- a/subjects/views.py +++ b/subjects/views.py @@ -38,7 +38,6 @@ class HomeView(LoginRequiredMixin, ListView): paginate_by = 10 total = 0 - def get_queryset(self): if self.request.user.is_staff: subjects = Subject.objects.all().order_by("name") @@ -338,6 +337,14 @@ class SubjectDetailView(LoginRequiredMixin, DetailView): context = super(SubjectDetailView, self).get_context_data(**kwargs) context['title'] = self.object.name + resources = self.request.session.get('resources', None) + + if resources: + context['resource_new_page'] = resources['new_page'] + context['resource_new_page_url'] = resources['new_page_url'] + + self.request.session['resources'] = None + return context diff --git a/webpage/templates/webpages/list.html b/webpage/templates/webpages/list.html new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/webpage/templates/webpages/list.html diff --git a/webpage/templates/webpages/view.html b/webpage/templates/webpages/view.html new file mode 100644 index 0000000..4b70ce7 --- /dev/null +++ b/webpage/templates/webpages/view.html @@ -0,0 +1,66 @@ +{% extends 'subjects/view.html' %} + +{% load static i18n pagination permissions_tags %} +{% load django_bootstrap_breadcrumbs %} + +{% block javascript%} + {{ block.super }} +{% endblock%} + +{% block breadcrumbs %} + {{ block.super }} + {% breadcrumb topic 'subjects:view' subject.slug %} + {% breadcrumb webpage 'webpages:view' webpage.slug %} +{% endblock %} + +{% block content %} + {% if messages %} + {% for message in messages %} + + {% endfor %} + {% endif %} + + {% subject_permissions request.user subject as has_subject_permissions %} + + {% if subject.visible %} +
+
+ {% elif has_subject_permissions %} +
+
+ {% endif %} +
+
+

+ {{subject.name}} +

+ +
+ {% if request.user in subject.professor.all or request.user in subject.category.coordinators.all or request.user.is_staff %} + + + {% endif %} + + + + +
+
+
+
+
+ {{ webpage.content }} +
+{% endblock %} diff --git a/webpage/templates/webpages/window_view.html b/webpage/templates/webpages/window_view.html new file mode 100644 index 0000000..ba04427 --- /dev/null +++ b/webpage/templates/webpages/window_view.html @@ -0,0 +1 @@ +{{ webpage.content }} \ No newline at end of file diff --git a/webpage/urls.py b/webpage/urls.py index 67e6698..bc7999f 100644 --- a/webpage/urls.py +++ b/webpage/urls.py @@ -5,4 +5,6 @@ from . import views urlpatterns = [ url(r'^create/(?P[\w_-]+)/$', views.CreateView.as_view(), name = 'create'), + 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/webpage/views.py b/webpage/views.py index 29360a4..68d352e 100644 --- a/webpage/views.py +++ b/webpage/views.py @@ -12,6 +12,32 @@ from topics.models import Topic from .forms import WebpageForm, InlinePendenciesFormset from .models import Webpage +class NewWindowView(LoginRequiredMixin, generic.DetailView): + login_url = reverse_lazy("users:login") + redirect_field_name = 'next' + + template_name = 'webpages/window_view.html' + model = Webpage + context_object_name = 'webpage' + +class InsideView(LoginRequiredMixin, generic.DetailView): + login_url = reverse_lazy("users:login") + redirect_field_name = 'next' + + template_name = 'webpages/view.html' + model = Webpage + context_object_name = 'webpage' + + 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' @@ -102,4 +128,13 @@ class CreateView(LoginRequiredMixin, generic.edit.CreateView): def get_success_url(self): messages.success(self.request, _('The Webpage "%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)) - return reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug}) \ No newline at end of file + success_url = reverse_lazy('webpages: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}) + + 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