From b2b8a9339c7055adc791d58cbf4b1f8ee60e6688 Mon Sep 17 00:00:00 2001 From: Jailson Dias Date: Tue, 14 Mar 2017 22:16:23 -0300 Subject: [PATCH] criado as telas de visualização da web conferencia --- webconference/migrations/0001_initial.py | 32 ++++++++++++++++++++++++++++++++ webconference/templates/webconference/view.html | 23 ++++++++++++++++++++--- webconference/templates/webconference/window_view.html | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- webconference/templatetags/__init__.py | 0 webconference/templatetags/access_conference.py | 12 ++++++++++++ webconference/views.py | 217 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------------------------------------- 6 files changed, 228 insertions(+), 115 deletions(-) create mode 100644 webconference/migrations/0001_initial.py create mode 100644 webconference/templatetags/__init__.py create mode 100644 webconference/templatetags/access_conference.py diff --git a/webconference/migrations/0001_initial.py b/webconference/migrations/0001_initial.py new file mode 100644 index 0000000..e5a3e22 --- /dev/null +++ b/webconference/migrations/0001_initial.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.4 on 2017-03-14 19:18 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('topics', '0007_auto_20170123_1911'), + ] + + operations = [ + migrations.CreateModel( + name='Webconference', + fields=[ + ('resource_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='topics.Resource')), + ('presentation', models.TextField(blank=True, verbose_name='Presentation')), + ('start', models.DateTimeField(verbose_name='Start date/hour')), + ('end', models.DateTimeField(verbose_name='End date/hour')), + ], + options={ + 'verbose_name_plural': 'Web Conferences', + 'verbose_name': 'Web Conference', + }, + bases=('topics.resource',), + ), + ] diff --git a/webconference/templates/webconference/view.html b/webconference/templates/webconference/view.html index fec5e02..d74e988 100644 --- a/webconference/templates/webconference/view.html +++ b/webconference/templates/webconference/view.html @@ -1,6 +1,6 @@ {% extends 'subjects/view.html' %} -{% load static i18n pagination permissions_tags subject_counter %} +{% load static i18n pagination permissions_tags subject_counter access_conference %} {% load django_bootstrap_breadcrumbs %} {% block javascript%} @@ -10,7 +10,7 @@ {% block breadcrumbs %} {{ block.super }} {% breadcrumb topic 'subjects:topic_view' subject.slug topic.slug %} - {% breadcrumb web conference 'webconferences:view' webconference.slug %} + {% breadcrumb webconference 'webconferences:view' webconference.slug %} {% endblock %} {% block content %} @@ -51,8 +51,25 @@
{% autoescape off %} - {{ webconference.content }} + {{ webconference.presentation }} {% endautoescape %} +
+

{% trans "Start date/hour" %}: {{webconference.start}}

+
+
+

{% trans "End date/hour" %}: {{webconference.end}}

+
+ + {% access_conference webconference.start as access %} + {% if access %} + + + {% endif %} +
{% endblock %} diff --git a/webconference/templates/webconference/window_view.html b/webconference/templates/webconference/window_view.html index 74be59c..43567ab 100644 --- a/webconference/templates/webconference/window_view.html +++ b/webconference/templates/webconference/window_view.html @@ -1 +1,58 @@ -{{ webconference.content|safe }} + + +{% load static i18n access_conference%} + + + + {{ title }} | {{ theme.title }} + + + + + + + + + + +
+
+
+
+ {% autoescape off %} + {{ webconference.presentation }} + {% endautoescape %} +
+

{% trans "Start date/hour" %}: {{webconference.start}}

+
+
+

{% trans "End date/hour" %}: {{webconference.end}}

+
+ + {% access_conference webconference.start as access %} + {% if access %} + + + {% endif %} + +
+
+
+ + {##} + {##} + + + diff --git a/webconference/templatetags/__init__.py b/webconference/templatetags/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/webconference/templatetags/__init__.py diff --git a/webconference/templatetags/access_conference.py b/webconference/templatetags/access_conference.py new file mode 100644 index 0000000..b9f2820 --- /dev/null +++ b/webconference/templatetags/access_conference.py @@ -0,0 +1,12 @@ +import datetime +from django import template +from django.utils import timezone +register = template.Library() + +@register.simple_tag +def access_conference(hour_conference): + hour = datetime.datetime.now() + datetime.timedelta(minutes=10) # utilizado para poder começar a seção 10 min antes do tempo marcado + hour_conference = hour_conference - datetime.timedelta(hours=3) # utilizado para converter a hora para UTC-3 + if (hour_conference.timetuple() < hour.timetuple()): + return True + return False diff --git a/webconference/views.py b/webconference/views.py index 446c11e..ce719bd 100644 --- a/webconference/views.py +++ b/webconference/views.py @@ -26,44 +26,44 @@ class NewWindowView(LoginRequiredMixin, # log_resource = 'webpage' # log_context = {} - login_url = reverse_lazy("users:login") - redirect_field_name = 'next' - - template_name = 'webconference/window_view.html' - model = Webconference - context_object_name = 'webconference' - - def dispatch(self, request, *args, **kwargs): - slug = self.kwargs.get('slug', '') - webconference = get_object_or_404(Webconference, slug = slug) - - if not has_resource_permissions(request.user, webconference): - 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) - - # self.log_context['category_id'] = self.object.topic.subject.category.id - # self.log_context['category_name'] = self.object.topic.subject.category.name - # self.log_context['category_slug'] = self.object.topic.subject.category.slug - # self.log_context['subject_id'] = self.object.topic.subject.id - # self.log_context['subject_name'] = self.object.topic.subject.name - # self.log_context['subject_slug'] = self.object.topic.subject.slug - # self.log_context['topic_id'] = self.object.topic.id - # self.log_context['topic_name'] = self.object.topic.name - # self.log_context['topic_slug'] = self.object.topic.slug - # self.log_context['webpage_id'] = self.object.id - # self.log_context['webpage_name'] = self.object.name - # self.log_context['webpage_slug'] = self.object.slug - # self.log_context['timestamp_start'] = str(int(time.time())) - - # super(NewWindowView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) + login_url = reverse_lazy("users:login") + redirect_field_name = 'next' + + template_name = 'webconference/window_view.html' + model = Webconference + context_object_name = 'webconference' + + def dispatch(self, request, *args, **kwargs): + slug = self.kwargs.get('slug', '') + webconference = get_object_or_404(Webconference, slug = slug) + + if not has_resource_permissions(request.user, webconference): + 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 - Web Conference")%(self.object.name) + # self.log_context['category_id'] = self.object.topic.subject.category.id + # self.log_context['category_name'] = self.object.topic.subject.category.name + # self.log_context['category_slug'] = self.object.topic.subject.category.slug + # self.log_context['subject_id'] = self.object.topic.subject.id + # self.log_context['subject_name'] = self.object.topic.subject.name + # self.log_context['subject_slug'] = self.object.topic.subject.slug + # self.log_context['topic_id'] = self.object.topic.id + # self.log_context['topic_name'] = self.object.topic.name + # self.log_context['topic_slug'] = self.object.topic.slug + # self.log_context['webpage_id'] = self.object.id + # self.log_context['webpage_name'] = self.object.name + # self.log_context['webpage_slug'] = self.object.slug + # self.log_context['timestamp_start'] = str(int(time.time())) + + # super(NewWindowView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) # - # self.request.session['log_id'] = Log.objects.latest('id').id + # self.request.session['log_id'] = Log.objects.latest('id').id - return context + return context class InsideView(LoginRequiredMixin, # '''LogMixin,''' @@ -124,83 +124,78 @@ class CreateView(LoginRequiredMixin, # log_action = 'create' # log_resource = 'webpage' # log_context = {} + login_url = reverse_lazy("users:login") + redirect_field_name = 'next' - login_url = reverse_lazy("users:login") - redirect_field_name = 'next' - - template_name = 'webconference/create.html' - form_class = WebconferenceForm - - def dispatch(self, request, *args, **kwargs): - slug = self.kwargs.get('slug', '') - topic = get_object_or_404(Topic, slug = slug) - - if not has_subject_permissions(request.user, topic.subject): - return redirect(reverse_lazy('subjects:home')) - - return super(CreateView, self).dispatch(request, *args, **kwargs) + template_name = 'webconference/create.html' + form_class = WebconferenceForm - def get(self, request, *args, **kwargs): - self.object = None + def dispatch(self, request, *args, **kwargs): + slug = self.kwargs.get('slug', '') + topic = get_object_or_404(Topic, slug = slug) - form_class = self.get_form_class() - form = self.get_form(form_class) + if not has_subject_permissions(request.user, topic.subject): + return redirect(reverse_lazy('subjects:home')) + return super(CreateView, self).dispatch(request, *args, **kwargs) - slug = self.kwargs.get('slug', '') - topic = get_object_or_404(Topic, slug = slug) + def get(self, request, *args, **kwargs): + self.object = None - pendencies_form = PendenciesForm(initial = {'subject': topic.subject.id, 'actions': [("", "-------"),("view", _("Visualize"))]}) + form_class = self.get_form_class() + form = self.get_form(form_class) - return self.render_to_response(self.get_context_data(form = form, pendencies_form = pendencies_form)) + slug = self.kwargs.get('slug', '') + topic = get_object_or_404(Topic, slug = slug) + pendencies_form = PendenciesForm(initial = {'subject': topic.subject.id, 'actions': [("", "-------"),("view", _("Visualize"))]}) + return self.render_to_response(self.get_context_data(form = form, pendencies_form = pendencies_form)) - def post(self, request, *args, **kwargs): - self.object = None + def post(self, request, *args, **kwargs): + self.object = None - form_class = self.get_form_class() - form = self.get_form(form_class) - - slug = self.kwargs.get('slug', '') - topic = get_object_or_404(Topic, slug = slug) + form_class = self.get_form_class() + form = self.get_form(form_class) - pendencies_form = PendenciesForm(self.request.POST, initial = {'subject': topic.subject.id, 'actions': [("", "-------"),("view", _("Visualize"))]}) + slug = self.kwargs.get('slug', '') + topic = get_object_or_404(Topic, slug = slug) - if (form.is_valid() and pendencies_form.is_valid()): - return self.form_valid(form, pendencies_form) - else: - return self.form_invalid(form, pendencies_form) + pendencies_form = PendenciesForm(self.request.POST, initial = {'subject': topic.subject.id, 'actions': [("", "-------"),("view", _("Visualize"))]}) - def get_initial(self): - initial = super(CreateView, self).get_initial() + if (form.is_valid() and pendencies_form.is_valid()): + return self.form_valid(form, pendencies_form) + else: + return self.form_invalid(form, pendencies_form) - slug = self.kwargs.get('slug', '') + def get_initial(self): + initial = super(CreateView, self).get_initial() - topic = get_object_or_404(Topic, slug = slug) - initial['subject'] = topic.subject + slug = self.kwargs.get('slug', '') - return initial + topic = get_object_or_404(Topic, slug = slug) + initial['subject'] = topic.subject - def form_invalid(self, form, pendencies_form): - return self.render_to_response(self.get_context_data(form = form, pendencies_form = pendencies_form)) + return initial - def form_valid(self, form, pendencies_form): - self.object = form.save(commit = False) + def form_invalid(self, form, pendencies_form): + return self.render_to_response(self.get_context_data(form = form, pendencies_form = pendencies_form)) - slug = self.kwargs.get('slug', '') - topic = get_object_or_404(Topic, slug = slug) + def form_valid(self, form, pendencies_form): - self.object.topic = topic - self.object.order = topic.resource_topic.count() + 1 + self.object = form.save(commit = False) + slug = self.kwargs.get('slug', '') + topic = get_object_or_404(Topic, slug = slug) - if not self.object.topic.visible and not self.object.topic.repository: - self.object.visible = False + self.object.topic = topic + self.object.order = topic.resource_topic.count() + 1 - self.object.save() + if not self.object.topic.visible and not self.object.topic.repository: + self.object.visible = False - pend_form = pendencies_form.save(commit = False) - pend_form.resource = self.object + self.object.save() + pend_form = pendencies_form.save(commit = False) + pend_form.resource = self.object - if not pend_form.action == "": - pend_form.save() + if not pend_form.action == "": + pend_form.save() # self.log_context['category_id'] = self.object.topic.subject.category.id # self.log_context['category_name'] = self.object.topic.subject.category.name @@ -217,34 +212,34 @@ class CreateView(LoginRequiredMixin, # # super(CreateView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) - return redirect(self.get_success_url()) + return redirect(self.get_success_url()) - def get_context_data(self, **kwargs): - context = super(CreateView, self).get_context_data(**kwargs) + def get_context_data(self, **kwargs): + context = super(CreateView, self).get_context_data(**kwargs) - context['title'] = _('Create Web Conference') + context['title'] = _('Create Web Conference') - slug = self.kwargs.get('slug', '') - topic = get_object_or_404(Topic, slug = slug) + slug = self.kwargs.get('slug', '') + topic = get_object_or_404(Topic, slug = slug) - context['topic'] = topic - context['subject'] = topic.subject + context['topic'] = topic + context['subject'] = topic.subject - return context + return context - def get_success_url(self): - messages.success(self.request, _('The Web conference "%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)) + def get_success_url(self): + messages.success(self.request, _('The Web conference "%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('webconference:view', kwargs = {'slug': self.object.slug}) + success_url = reverse_lazy('webconferences: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('webconference: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('webconferences: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 + return success_url class UpdateView(LoginRequiredMixin, # ''' LogMixin,''' @@ -359,12 +354,12 @@ generic.UpdateView): def get_success_url(self): messages.success(self.request, _('The Web conference "%s" was updated successfully!')%(self.object.name)) - success_url = reverse_lazy('webconference:view', kwargs = {'slug': self.object.slug}) + success_url = reverse_lazy('webconferences: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('webconference:window_view', kwargs = {'slug': self.object.slug}) + self.request.session['resources']['new_page_url'] = reverse('webconferences:window_view', kwargs = {'slug': self.object.slug}) success_url = reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug}) -- libgit2 0.21.2