From 2ff7c11e76f5c1471d579c59685fc9272595adb7 Mon Sep 17 00:00:00 2001 From: Zambom Date: Wed, 13 Sep 2017 22:46:25 -0300 Subject: [PATCH] Fixing bug of changing breadcrumb when error on update subject/resource --- bulletin/templates/bulletin/update.html | 4 ++-- bulletin/views.py | 1 + file_link/templates/file_links/update.html | 4 ++-- file_link/views.py | 1 + links/forms.py | 10 +--------- links/templates/links/_form.html | 13 ------------- links/templates/links/update.html | 4 ++-- links/views.py | 1 + pdf_file/templates/pdf_file/update.html | 4 ++-- pdf_file/views.py | 1 + subjects/templates/subjects/update.html | 6 +++--- subjects/views.py | 7 ++++--- topics/templates/topics/update.html | 14 +++++++------- webconference/templates/webconference/update.html | 4 ++-- webconference/views.py | 1013 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- webpage/templates/webpages/update.html | 4 ++-- webpage/views.py | 1 + youtube_video/templates/youtube/update.html | 4 ++-- youtube_video/views.py | 1 + 19 files changed, 542 insertions(+), 555 deletions(-) diff --git a/bulletin/templates/bulletin/update.html b/bulletin/templates/bulletin/update.html index 186939a..1a4d050 100644 --- a/bulletin/templates/bulletin/update.html +++ b/bulletin/templates/bulletin/update.html @@ -18,8 +18,8 @@ {% breadcrumb topic 'subjects:topic_view' topic.subject.slug topic.slug %} {% trans 'Edit: ' as bread %} - {% with bread|add:bulletin.name as bread_slug %} - {% breadcrumb bread_slug 'bulletin:update' topic.slug bulletin.slug %} + {% with bread|add:resource.name as bread_slug %} + {% breadcrumb bread_slug 'bulletin:update' topic.slug resource.slug %} {% endwith %} {% endblock %} diff --git a/bulletin/views.py b/bulletin/views.py index a98deef..28814c7 100644 --- a/bulletin/views.py +++ b/bulletin/views.py @@ -789,6 +789,7 @@ class UpdateView(LoginRequiredMixin, LogMixin, generic.UpdateView): create_excel_file(alunos, itens_da_meta,meta_geral) context['goal_file'] = str(meta_geral.slug) context['mimeTypes'] = valid_formats + context['resource'] = get_object_or_404(Bulletin, slug = self.kwargs.get('slug', '')) return context diff --git a/file_link/templates/file_links/update.html b/file_link/templates/file_links/update.html index 6da1ef9..be6017c 100644 --- a/file_link/templates/file_links/update.html +++ b/file_link/templates/file_links/update.html @@ -18,8 +18,8 @@ {% breadcrumb topic 'subjects:topic_view' topic.subject.slug topic.slug %} {% trans 'Edit: ' as bread %} - {% with bread|add:file_link.name as bread_slug %} - {% breadcrumb bread_slug 'file_links:update' topic.slug file_link.slug %} + {% with bread|add:resource.name as bread_slug %} + {% breadcrumb bread_slug 'file_links:update' topic.slug resource.slug %} {% endwith %} {% endblock %} diff --git a/file_link/views.py b/file_link/views.py index b3bf464..1ab1ec8 100644 --- a/file_link/views.py +++ b/file_link/views.py @@ -314,6 +314,7 @@ class UpdateView(LoginRequiredMixin, LogMixin, generic.UpdateView): context['topic'] = topic context['subject'] = topic.subject context['mimeTypes'] = valid_formats + context['resource'] = get_object_or_404(FileLink, slug = self.kwargs.get('slug', '')) return context diff --git a/links/forms.py b/links/forms.py index ae8f7c0..36f436f 100644 --- a/links/forms.py +++ b/links/forms.py @@ -46,15 +46,7 @@ class LinkForm(forms.ModelForm): 'students': forms.SelectMultiple, 'groups': forms.SelectMultiple, } - - def clean(self): - - cleaned_data = self.cleaned_data - - - return cleaned_data - - + def clean_name(self): name = self.cleaned_data.get('name', '') diff --git a/links/templates/links/_form.html b/links/templates/links/_form.html index 6a91db4..d22e21c 100644 --- a/links/templates/links/_form.html +++ b/links/templates/links/_form.html @@ -4,19 +4,6 @@
{% csrf_token %} - {% if form.errors %} - - {% endif %} - {% render_field form.control_subject %}
diff --git a/links/templates/links/update.html b/links/templates/links/update.html index 7104b04..0212da8 100644 --- a/links/templates/links/update.html +++ b/links/templates/links/update.html @@ -18,8 +18,8 @@ {% breadcrumb topic 'subjects:topic_view' topic.subject.slug topic.slug %} {% trans 'Edit: ' as bread %} - {% with bread|add:link.name as bread_slug %} - {% breadcrumb bread_slug 'links:update' topic.slug link.slug %} + {% with bread|add:resource.name as bread_slug %} + {% breadcrumb bread_slug 'links:update' topic.slug resource.slug %} {% endwith %} {% endblock %} diff --git a/links/views.py b/links/views.py index a367efe..929f3cc 100644 --- a/links/views.py +++ b/links/views.py @@ -334,6 +334,7 @@ class UpdateLinkView(LoginRequiredMixin, LogMixin, generic.edit.UpdateView): context['topic'] = topic context['subject'] = topic.subject + context['resource'] = get_object_or_404(Link, slug = self.kwargs.get('slug', '')) return context diff --git a/pdf_file/templates/pdf_file/update.html b/pdf_file/templates/pdf_file/update.html index 59f6ab9..9afeb22 100644 --- a/pdf_file/templates/pdf_file/update.html +++ b/pdf_file/templates/pdf_file/update.html @@ -18,8 +18,8 @@ {% breadcrumb topic 'subjects:topic_view' topic.subject.slug topic.slug %} {% trans 'Edit: ' as bread %} - {% with bread|add:pdf_file.name as bread_slug %} - {% breadcrumb bread_slug 'pdf_file:update' topic.slug pdf_file.slug %} + {% with bread|add:resource.name as bread_slug %} + {% breadcrumb bread_slug 'pdf_file:update' topic.slug resource.slug %} {% endwith %} {% endblock %} diff --git a/pdf_file/views.py b/pdf_file/views.py index 35ff3bc..e459301 100644 --- a/pdf_file/views.py +++ b/pdf_file/views.py @@ -321,6 +321,7 @@ class UpdateView(LoginRequiredMixin, LogMixin, generic.UpdateView): context['topic'] = topic context['subject'] = topic.subject context['mimeTypes'] = valid_formats + context['resource'] = get_object_or_404(PDFFile, slug = self.kwargs.get('slug', '')) return context diff --git a/subjects/templates/subjects/update.html b/subjects/templates/subjects/update.html index c0400b6..67383ff 100644 --- a/subjects/templates/subjects/update.html +++ b/subjects/templates/subjects/update.html @@ -16,11 +16,11 @@ {% block breadcrumbs %} {{ block.super }} - {% breadcrumb subject.category 'subjects:cat_view' subject.category.slug %} - {% breadcrumb subject 'subjects:view' subject.slug %} + {% breadcrumb subject_data.category 'subjects:cat_view' subject_data.category.slug %} + {% breadcrumb subject_data 'subjects:view' subject_data.slug %} {% trans 'Update: ' as bread %} - {% with bread|add:object.name as bread_slug %} + {% with bread|add:subject_data.name as bread_slug %} {% breadcrumb bread_slug 'subjects:update' %} {% endwith %} {% endblock %} diff --git a/subjects/views.py b/subjects/views.py index f5c7d28..0f6df75 100644 --- a/subjects/views.py +++ b/subjects/views.py @@ -385,9 +385,9 @@ class SubjectUpdateView(LoginRequiredMixin, LogMixin, UpdateView): redirect_field_name = 'next' def dispatch(self, request, *args, **kwargs): - subject = get_object_or_404(Subject, slug = kwargs.get('slug', '')) - self.subject = subject - if not has_subject_permissions(request.user, subject): + self.subject = get_object_or_404(Subject, slug = kwargs.get('slug', '')) + + if not has_subject_permissions(request.user, self.subject): return redirect(reverse_lazy('subjects:home')) return super(SubjectUpdateView, self).dispatch(request, *args, **kwargs) @@ -406,6 +406,7 @@ class SubjectUpdateView(LoginRequiredMixin, LogMixin, UpdateView): context['title'] = _('Update Subject') context['template_extends'] = 'categories/home.html' context['subjects_menu_active'] = 'subjects_menu_active' + context['subject_data'] = get_object_or_404(Subject, slug = self.kwargs.get('slug', '')) return context diff --git a/topics/templates/topics/update.html b/topics/templates/topics/update.html index fc9c50e..00b9976 100644 --- a/topics/templates/topics/update.html +++ b/topics/templates/topics/update.html @@ -3,10 +3,10 @@ {% load i18n django_bootstrap_breadcrumbs %} {% block breadcrumbs %} - {{ block.super }} - - {% trans 'Update Topic' as bread %} - {% breadcrumb bread 'topics:update' subject.slug topic.slug %} + {{ block.super }} + + {% trans 'Update Topic' as bread %} + {% breadcrumb bread 'topics:update' subject.slug topic.slug %} {% endblock %} {% block content %} @@ -16,7 +16,7 @@ {% include 'topics/_form.html' %}
- -
-
+ +
+
{% endblock %} diff --git a/webconference/templates/webconference/update.html b/webconference/templates/webconference/update.html index b8d3e86..24ff153 100644 --- a/webconference/templates/webconference/update.html +++ b/webconference/templates/webconference/update.html @@ -19,8 +19,8 @@ {% breadcrumb topic 'subjects:topic_view' topic.subject.slug topic.slug %} {% trans 'Edit: ' as bread %} - {% with bread|add:webconference.name as bread_slug %} - {% breadcrumb bread_slug 'webconfrences:update' topic.slug webconference.slug %} + {% with bread|add:resource.name as bread_slug %} + {% breadcrumb bread_slug 'webconfrences:update' topic.slug resource.slug %} {% endwith %} {% endblock %} diff --git a/webconference/views.py b/webconference/views.py index 75dfd43..d470876 100644 --- a/webconference/views.py +++ b/webconference/views.py @@ -35,149 +35,149 @@ from .forms import WebconferenceForm, SettingsForm, InlinePendenciesFormset, Web from .models import Webconference, ConferenceSettings as Settings class NewWindowView(LoginRequiredMixin,LogMixin, generic.DetailView): - log_component = 'resources' - log_action = 'view' - log_resource = 'webconference' - 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['webconference_id'] = self.object.id - self.log_context['webconference_name'] = self.object.name - self.log_context['webconference_slug'] = self.object.slug - self.log_context['webconference_view'] = 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 - - return context + log_component = 'resources' + log_action = 'view' + log_resource = 'webconference' + 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['webconference_id'] = self.object.id + self.log_context['webconference_name'] = self.object.name + self.log_context['webconference_slug'] = self.object.slug + self.log_context['webconference_view'] = 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 + + return context class Conference(LoginRequiredMixin,LogMixin,generic.TemplateView): - log_component = 'resources' - log_action = 'initwebconference' - log_resource = 'webconference' - log_context = {} - - login_url = reverse_lazy("users:login") - redirect_field_name = 'next' - - template_name = 'webconference/jitsi.html' - - def dispatch(self, request, *args, **kwargs): - slug = self.kwargs.get('slug', '') - conference = get_object_or_404(Webconference, slug = slug) - - if not has_resource_permissions(request.user, conference): - return redirect(reverse_lazy('subjects:home')) - - return super(Conference, self).dispatch(request, *args, **kwargs) - - def get_context_data(self, **kwargs): - context = super(Conference, self).get_context_data(**kwargs) - conference = get_object_or_404(Webconference, slug = kwargs.get('slug')) - context['title'] = _("%s - Web Conference")%(conference) - context['webconference'] = conference - context['topic'] = conference.topic - context['subject'] = conference.topic.subject - context['name_room'] = kwargs.get('slug') - context['user_image'] = 'http://localhost:8000'+str(self.request.user.image.url) - try: - context['domain'] = Settings.objects.last().domain - except AttributeError: - context['domain'] = 'meet.jit.si' - - - self.log_context['category_id'] = conference.topic.subject.category.id - self.log_context['category_name'] = conference.topic.subject.category.name - self.log_context['category_slug'] = conference.topic.subject.category.slug - self.log_context['subject_id'] = conference.topic.subject.id - self.log_context['subject_name'] = conference.topic.subject.name - self.log_context['subject_slug'] = conference.topic.subject.slug - self.log_context['topic_id'] = conference.topic.id - self.log_context['topic_name'] = conference.topic.name - self.log_context['topic_slug'] = conference.topic.slug - self.log_context['webconference_id'] = conference.id - self.log_context['webconference_name'] = conference.name - self.log_context['webconference_slug'] = conference.slug - self.log_context['webconference_init'] = str(int(time.time())) - - super(Conference, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) - - return context + log_component = 'resources' + log_action = 'initwebconference' + log_resource = 'webconference' + log_context = {} + + login_url = reverse_lazy("users:login") + redirect_field_name = 'next' + + template_name = 'webconference/jitsi.html' + + def dispatch(self, request, *args, **kwargs): + slug = self.kwargs.get('slug', '') + conference = get_object_or_404(Webconference, slug = slug) + + if not has_resource_permissions(request.user, conference): + return redirect(reverse_lazy('subjects:home')) + + return super(Conference, self).dispatch(request, *args, **kwargs) + + def get_context_data(self, **kwargs): + context = super(Conference, self).get_context_data(**kwargs) + conference = get_object_or_404(Webconference, slug = kwargs.get('slug')) + context['title'] = _("%s - Web Conference")%(conference) + context['webconference'] = conference + context['topic'] = conference.topic + context['subject'] = conference.topic.subject + context['name_room'] = kwargs.get('slug') + context['user_image'] = 'http://localhost:8000'+str(self.request.user.image.url) + try: + context['domain'] = Settings.objects.last().domain + except AttributeError: + context['domain'] = 'meet.jit.si' + + + self.log_context['category_id'] = conference.topic.subject.category.id + self.log_context['category_name'] = conference.topic.subject.category.name + self.log_context['category_slug'] = conference.topic.subject.category.slug + self.log_context['subject_id'] = conference.topic.subject.id + self.log_context['subject_name'] = conference.topic.subject.name + self.log_context['subject_slug'] = conference.topic.subject.slug + self.log_context['topic_id'] = conference.topic.id + self.log_context['topic_name'] = conference.topic.name + self.log_context['topic_slug'] = conference.topic.slug + self.log_context['webconference_id'] = conference.id + self.log_context['webconference_name'] = conference.name + self.log_context['webconference_slug'] = conference.slug + self.log_context['webconference_init'] = str(int(time.time())) + + super(Conference, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) + + return context @log_decorator('resources', 'participating', 'webconference') def participating(request): - webconference = get_object_or_404(Webconference, slug = request.GET['slug']) - log_context = {} - log_context['category_id'] = webconference.topic.subject.category.id - log_context['category_name'] = webconference.topic.subject.category.name - log_context['category_slug'] = webconference.topic.subject.category.slug - log_context['subject_id'] = webconference.topic.subject.id - log_context['subject_name'] = webconference.topic.subject.name - log_context['subject_slug'] = webconference.topic.subject.slug - log_context['topic_id'] = webconference.topic.id - log_context['topic_name'] = webconference.topic.name - log_context['topic_slug'] = webconference.topic.slug - log_context['webconference_id'] = webconference.id - log_context['webconference_name'] = webconference.name - log_context['webconference_slug'] = webconference.slug - log_context['webconference_online'] = str(int(time.time())) - - request.log_context = log_context - - return JsonResponse({'message':'ok'}) + webconference = get_object_or_404(Webconference, slug = request.GET['slug']) + log_context = {} + log_context['category_id'] = webconference.topic.subject.category.id + log_context['category_name'] = webconference.topic.subject.category.name + log_context['category_slug'] = webconference.topic.subject.category.slug + log_context['subject_id'] = webconference.topic.subject.id + log_context['subject_name'] = webconference.topic.subject.name + log_context['subject_slug'] = webconference.topic.subject.slug + log_context['topic_id'] = webconference.topic.id + log_context['topic_name'] = webconference.topic.name + log_context['topic_slug'] = webconference.topic.slug + log_context['webconference_id'] = webconference.id + log_context['webconference_name'] = webconference.name + log_context['webconference_slug'] = webconference.slug + log_context['webconference_online'] = str(int(time.time())) + + request.log_context = log_context + + return JsonResponse({'message':'ok'}) @log_decorator('resources', 'participate', 'webconference') def finish(request): - webconference = get_object_or_404(Webconference, slug = request.GET['roomName']) - log_context = {} - log_context['category_id'] = webconference.topic.subject.category.id - log_context['category_name'] = webconference.topic.subject.category.name - log_context['category_slug'] = webconference.topic.subject.category.slug - log_context['subject_id'] = webconference.topic.subject.id - log_context['subject_name'] = webconference.topic.subject.name - log_context['subject_slug'] = webconference.topic.subject.slug - log_context['topic_id'] = webconference.topic.id - log_context['topic_name'] = webconference.topic.name - log_context['topic_slug'] = webconference.topic.slug - log_context['webconference_id'] = webconference.id - log_context['webconference_name'] = webconference.name - log_context['webconference_slug'] = webconference.slug - log_context['webconference_finish'] = str(int(time.time())) - - request.log_context = log_context - - url = {'url': str(reverse_lazy('webconferences:view', kwargs = {'slug': request.GET['roomName']}))} - return JsonResponse(url, safe=False) + webconference = get_object_or_404(Webconference, slug = request.GET['roomName']) + log_context = {} + log_context['category_id'] = webconference.topic.subject.category.id + log_context['category_name'] = webconference.topic.subject.category.name + log_context['category_slug'] = webconference.topic.subject.category.slug + log_context['subject_id'] = webconference.topic.subject.id + log_context['subject_name'] = webconference.topic.subject.name + log_context['subject_slug'] = webconference.topic.subject.slug + log_context['topic_id'] = webconference.topic.id + log_context['topic_name'] = webconference.topic.name + log_context['topic_slug'] = webconference.topic.slug + log_context['webconference_id'] = webconference.id + log_context['webconference_name'] = webconference.name + log_context['webconference_slug'] = webconference.slug + log_context['webconference_finish'] = str(int(time.time())) + + request.log_context = log_context + + url = {'url': str(reverse_lazy('webconferences:view', kwargs = {'slug': request.GET['roomName']}))} + return JsonResponse(url, safe=False) class InsideView(LoginRequiredMixin, LogMixin, generic.DetailView): @@ -231,253 +231,254 @@ class InsideView(LoginRequiredMixin, LogMixin, generic.DetailView): return context class CreateView(LoginRequiredMixin, LogMixin, generic.edit.CreateView): - log_component = 'resources' - log_action = 'create' - log_resource = 'webconference' - log_context = {} - login_url = reverse_lazy("users:login") - redirect_field_name = 'next' + log_component = 'resources' + log_action = 'create' + log_resource = 'webconference' + log_context = {} + login_url = reverse_lazy("users:login") + redirect_field_name = 'next' - template_name = 'webconference/create.html' - form_class = WebconferenceForm + 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) + 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) + if not has_subject_permissions(request.user, topic.subject): + return redirect(reverse_lazy('subjects:home')) + return super(CreateView, self).dispatch(request, *args, **kwargs) - def get(self, request, *args, **kwargs): - self.object = None + def get(self, request, *args, **kwargs): + self.object = None - form_class = self.get_form_class() - form = self.get_form(form_class) + 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) - pendencies_form = InlinePendenciesFormset(initial = [{'subject': topic.subject.id, 'actions': [("", "-------"),("view", _("Visualize")), ("participate", _("Participate"))]}]) - print (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) + pendencies_form = InlinePendenciesFormset(initial = [{'subject': topic.subject.id, 'actions': [("", "-------"),("view", _("Visualize")), ("participate", _("Participate"))]}]) + print (pendencies_form) + 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) + 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) + slug = self.kwargs.get('slug', '') + topic = get_object_or_404(Topic, slug = slug) - pendencies_form = InlinePendenciesFormset(self.request.POST, initial = [{'subject': topic.subject.id, 'actions': [("", "-------"),("view", _("Visualize")), ("participate", _("Participate"))]}]) + pendencies_form = InlinePendenciesFormset(self.request.POST, initial = [{'subject': topic.subject.id, 'actions': [("", "-------"),("view", _("Visualize")), ("participate", _("Participate"))]}]) - if (form.is_valid() and pendencies_form.is_valid()): - return self.form_valid(form, pendencies_form) - else: - return self.form_invalid(form, pendencies_form) + if (form.is_valid() and pendencies_form.is_valid()): + return self.form_valid(form, pendencies_form) + else: + return self.form_invalid(form, pendencies_form) - def get_initial(self): - initial = super(CreateView, self).get_initial() + def get_initial(self): + initial = super(CreateView, self).get_initial() - slug = self.kwargs.get('slug', '') + slug = self.kwargs.get('slug', '') - topic = get_object_or_404(Topic, slug = slug) - initial['subject'] = topic.subject + topic = get_object_or_404(Topic, slug = slug) + initial['subject'] = topic.subject - return initial + return initial - def form_invalid(self, form, pendencies_form): - # print (form," Form") - # print (pendencies_form, " Penden") - for p_form in pendencies_form.forms: - p_form.fields['action'].choices = [("", "-------"),("view", _("Visualize")), ("participate", _("Participate"))] - print ("Invalid") - return self.render_to_response(self.get_context_data(form = form, pendencies_form = pendencies_form)) + def form_invalid(self, form, pendencies_form): + # print (form," Form") + # print (pendencies_form, " Penden") + for p_form in pendencies_form.forms: + p_form.fields['action'].choices = [("", "-------"),("view", _("Visualize")), ("participate", _("Participate"))] + print ("Invalid") + return self.render_to_response(self.get_context_data(form = form, pendencies_form = pendencies_form)) - def form_valid(self, form, pendencies_form): + def form_valid(self, form, pendencies_form): - self.object = form.save(commit = False) - slug = self.kwargs.get('slug', '') - topic = get_object_or_404(Topic, slug = slug) + self.object = form.save(commit = False) + slug = self.kwargs.get('slug', '') + topic = get_object_or_404(Topic, slug = slug) - self.object.topic = topic - self.object.order = topic.resource_topic.count() + 1 + self.object.topic = topic + self.object.order = topic.resource_topic.count() + 1 - if not self.object.topic.visible and not self.object.topic.repository: - self.object.visible = False + if not self.object.topic.visible and not self.object.topic.repository: + self.object.visible = False - self.object.save() - pendencies_form.instance = self.object - pendencies_form.save(commit = False) + self.object.save() + pendencies_form.instance = self.object + pendencies_form.save(commit = False) - for pform in pendencies_form.forms: - pend_form = pform.save(commit = False) + for pform in pendencies_form.forms: + pend_form = pform.save(commit = False) - if not pend_form.action == "": - pend_form.save() - print ("Valid") - 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['webconference_id'] = self.object.id - self.log_context['webconference_name'] = self.object.name - self.log_context['webconference_slug'] = self.object.slug + if not pend_form.action == "": + pend_form.save() + print ("Valid") + 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['webconference_id'] = self.object.id + self.log_context['webconference_name'] = self.object.name + self.log_context['webconference_slug'] = self.object.slug - super(CreateView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) + 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('webconferences: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('webconferences: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, generic.UpdateView): - log_component = 'resources' - log_action = 'update' - log_resource = 'webconference' - log_context = {} + log_component = 'resources' + log_action = 'update' + log_resource = 'webconference' + 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/update.html' - model = Webconference - form_class = WebConferenceUpdateForm + template_name = 'webconference/update.html' + model = Webconference + form_class = WebConferenceUpdateForm - def dispatch(self, request, *args, **kwargs): - slug = self.kwargs.get('topic_slug', '') - topic = get_object_or_404(Topic, slug = slug) + def dispatch(self, request, *args, **kwargs): + slug = self.kwargs.get('topic_slug', '') + topic = get_object_or_404(Topic, slug = slug) - if not has_subject_permissions(request.user, topic.subject): - return redirect(reverse_lazy('subjects:home')) + if not has_subject_permissions(request.user, topic.subject): + return redirect(reverse_lazy('subjects:home')) - return super(UpdateView, self).dispatch(request, *args, **kwargs) + return super(UpdateView, self).dispatch(request, *args, **kwargs) - def get(self, request, *args, **kwargs): - self.object = self.get_object() + def get(self, request, *args, **kwargs): + self.object = self.get_object() - form_class = self.get_form_class() - form = self.get_form(form_class) + form_class = self.get_form_class() + form = self.get_form(form_class) - slug = self.kwargs.get('topic_slug', '') - topic = get_object_or_404(Topic, slug = slug) + slug = self.kwargs.get('topic_slug', '') + topic = get_object_or_404(Topic, slug = slug) - pendencies_form = InlinePendenciesFormset(instance=self.object, initial = [{'subject': topic.subject.id, 'actions': [("", "-------"),("view", _("Visualize")), ("participate", _("Participate"))]}]) + pendencies_form = InlinePendenciesFormset(instance=self.object, initial = [{'subject': topic.subject.id, 'actions': [("", "-------"),("view", _("Visualize")), ("participate", _("Participate"))]}]) - return self.render_to_response(self.get_context_data(form = form, pendencies_form = pendencies_form)) + return self.render_to_response(self.get_context_data(form = form, pendencies_form = pendencies_form)) - def post(self, request, *args, **kwargs): - self.object = self.get_object() + def post(self, request, *args, **kwargs): + self.object = self.get_object() - form_class = self.get_form_class() - form = self.get_form(form_class) + form_class = self.get_form_class() + form = self.get_form(form_class) - slug = self.kwargs.get('topic_slug', '') - topic = get_object_or_404(Topic, slug = slug) + slug = self.kwargs.get('topic_slug', '') + topic = get_object_or_404(Topic, slug = slug) - pendencies_form = InlinePendenciesFormset(self.request.POST, instance = self.object, initial = [{'subject': topic.subject.id, 'actions': [("", "-------"),("view", _("Visualize")), ("participate", _("Participate"))]}]) + pendencies_form = InlinePendenciesFormset(self.request.POST, instance = self.object, initial = [{'subject': topic.subject.id, 'actions': [("", "-------"),("view", _("Visualize")), ("participate", _("Participate"))]}]) - if (form.is_valid() and pendencies_form.is_valid()): - return self.form_valid(form, pendencies_form) - else: - return self.form_invalid(form, pendencies_form) + if (form.is_valid() and pendencies_form.is_valid()): + return self.form_valid(form, pendencies_form) + else: + 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")), ("participate", _("Participate"))] + def form_invalid(self, form, pendencies_form): + for p_form in pendencies_form.forms: + p_form.fields['action'].choices = [("", "-------"),("view", _("Visualize")), ("participate", _("Participate"))] - return self.render_to_response(self.get_context_data(form = form, pendencies_form = pendencies_form)) + return self.render_to_response(self.get_context_data(form = form, pendencies_form = pendencies_form)) - def form_valid(self, form, pendencies_form): - self.object = form.save(commit = False) + def form_valid(self, form, pendencies_form): + self.object = form.save(commit = False) - if not self.object.topic.visible and not self.object.topic.repository: - self.object.visible = False + if not self.object.topic.visible and not self.object.topic.repository: + self.object.visible = False - self.object.save() + self.object.save() - pendencies_form.instance = self.object - pendencies_form.save(commit = False) + pendencies_form.instance = self.object + pendencies_form.save(commit = False) - for form in pendencies_form.forms: - pend_form = form.save(commit = False) + for form in pendencies_form.forms: + pend_form = form.save(commit = False) - 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 - 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['webconference_id'] = self.object.id - self.log_context['webconference_name'] = self.object.name - self.log_context['webconference_slug'] = self.object.slug + 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['webconference_id'] = self.object.id + self.log_context['webconference_name'] = self.object.name + self.log_context['webconference_slug'] = self.object.slug - super(UpdateView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) + super(UpdateView, 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(UpdateView, self).get_context_data(**kwargs) + def get_context_data(self, **kwargs): + context = super(UpdateView, self).get_context_data(**kwargs) - context['title'] = _('Update Web Conference') + context['title'] = _('Update Web Conference') - slug = self.kwargs.get('topic_slug', '') - topic = get_object_or_404(Topic, slug = slug) + slug = self.kwargs.get('topic_slug', '') + topic = get_object_or_404(Topic, slug = slug) - context['topic'] = topic - context['subject'] = topic.subject + context['topic'] = topic + context['subject'] = topic.subject + context['resource'] = get_object_or_404(Webconference, slug = self.kwargs.get('slug', '')) - return context + return context - def get_success_url(self): - messages.success(self.request, _('The Web conference "%s" was updated successfully!')%(self.object.name)) + def get_success_url(self): + messages.success(self.request, _('The Web conference "%s" was updated successfully!')%(self.object.name)) - success_url = reverse_lazy('webconferences: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('webconferences: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 DeleteView(LoginRequiredMixin, LogMixin, generic.DeleteView): log_component = 'resources' @@ -522,216 +523,216 @@ class DeleteView(LoginRequiredMixin, LogMixin, generic.DeleteView): return reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug}) class ConferenceSettings(braces_mixins.LoginRequiredMixin, braces_mixins.StaffuserRequiredMixin, generic.UpdateView): - login_url = reverse_lazy("users:login") - redirect_field_name = 'next' + login_url = reverse_lazy("users:login") + redirect_field_name = 'next' - template_name = 'webconference/config.html' - model = Settings - form_class = SettingsForm - success_url = reverse_lazy("subjects:home") + template_name = 'webconference/config.html' + model = Settings + form_class = SettingsForm + success_url = reverse_lazy("subjects:home") - def get_object(self, queryset = None): - return Settings.objects.last() + def get_object(self, queryset = None): + return Settings.objects.last() - def form_valid(self, form): - form.save() + def form_valid(self, form): + form.save() - messages.success(self.request, _("Conference settings updated successfully!")) + messages.success(self.request, _("Conference settings updated successfully!")) - return super(ConferenceSettings, self).form_valid(form) + return super(ConferenceSettings, self).form_valid(form) - def get_context_data(self, **kwargs): - context = super(ConferenceSettings, self).get_context_data(**kwargs) + def get_context_data(self, **kwargs): + context = super(ConferenceSettings, self).get_context_data(**kwargs) - context['title'] = _('Web Conference Settings') + context['title'] = _('Web Conference Settings') - return context + return context class StatisticsView(LoginRequiredMixin, LogMixin, generic.DetailView): - log_component = 'resources' - log_action = 'view_statistics' - log_resource = 'webconference' - log_context = {} - - login_url = reverse_lazy("users:login") - redirect_field_name = 'next' - model = Webconference - template_name = 'webconference/relatorios.html' - - def dispatch(self, request, *args, **kwargs): - slug = self.kwargs.get('slug', '') - webconference = get_object_or_404(Webconference, slug = slug) - - if not has_subject_permissions(request.user, webconference.topic.subject): - return redirect(reverse_lazy('subjects:home')) - - return super(StatisticsView, self).dispatch(request, *args, **kwargs) - - def get_context_data(self, **kwargs): - context = super(StatisticsView, 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['webconference_id'] = self.object.id - self.log_context['webconference_name'] = self.object.name - self.log_context['webconference_slug'] = self.object.slug - - super(StatisticsView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) - - - context['title'] = _('Youtube Video Reports') - - slug = self.kwargs.get('slug') - webconference = get_object_or_404(Webconference, slug = slug) - - date_format = "%d/%m/%Y %H:%M" if self.request.GET.get('language','') == 'pt-br' else "%m/%d/%Y %I:%M %p" - if self.request.GET.get('language','') == "": - start_date = datetime.datetime.now() - datetime.timedelta(30) - end_date = datetime.datetime.now() - else : - start_date = datetime.datetime.strptime(self.request.GET.get('init_date',''),date_format) - end_date = datetime.datetime.strptime(self.request.GET.get('end_date',''),date_format) - context["init_date"] = start_date - context["end_date"] = end_date - alunos = webconference.students.all() - if webconference.all_students : - alunos = webconference.topic.subject.students.all() - - vis_ou = Log.objects.filter(context__contains={'webconference_id':webconference.id},resource="webconference",user_email__in=(aluno.email for aluno in alunos), datetime__range=(start_date,end_date + datetime.timedelta(minutes = 1))).filter(Q(action="view") | Q(action="initwebconference") | Q(action="participating")) - did,n_did,history = str(_("Realized")),str(_("Unrealized")),str(_("Historic")) - re = [] - data_n_did,data_history = [],[] - json_n_did, json_history = {},{} - - for log_al in vis_ou.order_by("datetime"): - data_history.append([str(alunos.get(email=log_al.user_email)), - ", ".join([str(x) for x in webconference.topic.subject.group_subject.filter(participants__email=log_al.user_email)]), - log_al.action,log_al.datetime]) - - json_history["data"] = data_history - - column_view,column_initwebconference,column_participate = str(_('View')),str(_('Enter')),str(_('Participate')) - - not_view = alunos.exclude(email__in=[log.user_email for log in vis_ou.filter(action="view").distinct("user_email")]) - index = 0 - for alun in not_view: - data_n_did.append([index,str(alun),", ".join([str(x) for x in webconference.topic.subject.group_subject.filter(participants__email=alun.email)]),column_view, str(alun.email)]) - index += 1 - - not_initwebconference = alunos.exclude(email__in=[log.user_email for log in vis_ou.filter(action="initwebconference").distinct("user_email")]) - for alun in not_initwebconference: - data_n_did.append([index,str(alun),", ".join([str(x) for x in webconference.topic.subject.group_subject.filter(participants__email=alun.email)]),column_initwebconference, str(alun.email)]) - index += 1 - - not_participate = alunos.exclude(email__in=[log.user_email for log in vis_ou.filter(action="participating").distinct("user_email")]) - for alun in not_participate: - data_n_did.append([index,str(alun),", ".join([str(x) for x in webconference.topic.subject.group_subject.filter(participants__email=alun.email)]),column_participate, str(alun.email)]) - index += 1 - - json_n_did["data"] = data_n_did - - - context["json_n_did"] = json_n_did - context["json_history"] = json_history - c_visualizou = vis_ou.filter(action="view").distinct("user_email").count() - c_initwebconference = vis_ou.filter(action="initwebconference").distinct("user_email").count() - c_participate = vis_ou.filter(action="participating").distinct("user_email").count() - re.append([str(_('Webconference')),did,n_did]) - - re.append([column_view,c_visualizou, alunos.count() - c_visualizou]) - re.append([column_initwebconference,c_initwebconference, alunos.count() - c_initwebconference]) - re.append([column_participate,c_participate, alunos.count() - c_participate]) - - context['view'] = column_view - context['initwebconference'] = column_initwebconference - context['participate'] = column_participate - context['topic'] = webconference.topic - context['subject'] = webconference.topic.subject - context['webconference'] = webconference - context['db_data'] = re - context['title_chart'] = _('Actions about resource') - context['title_vAxis'] = _('Quantity') - - context["n_did_table"] = n_did - context["did_table"] = did - context["history_table"] = history - return context + log_component = 'resources' + log_action = 'view_statistics' + log_resource = 'webconference' + log_context = {} + + login_url = reverse_lazy("users:login") + redirect_field_name = 'next' + model = Webconference + template_name = 'webconference/relatorios.html' + + def dispatch(self, request, *args, **kwargs): + slug = self.kwargs.get('slug', '') + webconference = get_object_or_404(Webconference, slug = slug) + + if not has_subject_permissions(request.user, webconference.topic.subject): + return redirect(reverse_lazy('subjects:home')) + + return super(StatisticsView, self).dispatch(request, *args, **kwargs) + + def get_context_data(self, **kwargs): + context = super(StatisticsView, 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['webconference_id'] = self.object.id + self.log_context['webconference_name'] = self.object.name + self.log_context['webconference_slug'] = self.object.slug + + super(StatisticsView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) + + + context['title'] = _('Youtube Video Reports') + + slug = self.kwargs.get('slug') + webconference = get_object_or_404(Webconference, slug = slug) + + date_format = "%d/%m/%Y %H:%M" if self.request.GET.get('language','') == 'pt-br' else "%m/%d/%Y %I:%M %p" + if self.request.GET.get('language','') == "": + start_date = datetime.datetime.now() - datetime.timedelta(30) + end_date = datetime.datetime.now() + else : + start_date = datetime.datetime.strptime(self.request.GET.get('init_date',''),date_format) + end_date = datetime.datetime.strptime(self.request.GET.get('end_date',''),date_format) + context["init_date"] = start_date + context["end_date"] = end_date + alunos = webconference.students.all() + if webconference.all_students : + alunos = webconference.topic.subject.students.all() + + vis_ou = Log.objects.filter(context__contains={'webconference_id':webconference.id},resource="webconference",user_email__in=(aluno.email for aluno in alunos), datetime__range=(start_date,end_date + datetime.timedelta(minutes = 1))).filter(Q(action="view") | Q(action="initwebconference") | Q(action="participating")) + did,n_did,history = str(_("Realized")),str(_("Unrealized")),str(_("Historic")) + re = [] + data_n_did,data_history = [],[] + json_n_did, json_history = {},{} + + for log_al in vis_ou.order_by("datetime"): + data_history.append([str(alunos.get(email=log_al.user_email)), + ", ".join([str(x) for x in webconference.topic.subject.group_subject.filter(participants__email=log_al.user_email)]), + log_al.action,log_al.datetime]) + + json_history["data"] = data_history + + column_view,column_initwebconference,column_participate = str(_('View')),str(_('Enter')),str(_('Participate')) + + not_view = alunos.exclude(email__in=[log.user_email for log in vis_ou.filter(action="view").distinct("user_email")]) + index = 0 + for alun in not_view: + data_n_did.append([index,str(alun),", ".join([str(x) for x in webconference.topic.subject.group_subject.filter(participants__email=alun.email)]),column_view, str(alun.email)]) + index += 1 + + not_initwebconference = alunos.exclude(email__in=[log.user_email for log in vis_ou.filter(action="initwebconference").distinct("user_email")]) + for alun in not_initwebconference: + data_n_did.append([index,str(alun),", ".join([str(x) for x in webconference.topic.subject.group_subject.filter(participants__email=alun.email)]),column_initwebconference, str(alun.email)]) + index += 1 + + not_participate = alunos.exclude(email__in=[log.user_email for log in vis_ou.filter(action="participating").distinct("user_email")]) + for alun in not_participate: + data_n_did.append([index,str(alun),", ".join([str(x) for x in webconference.topic.subject.group_subject.filter(participants__email=alun.email)]),column_participate, str(alun.email)]) + index += 1 + + json_n_did["data"] = data_n_did + + + context["json_n_did"] = json_n_did + context["json_history"] = json_history + c_visualizou = vis_ou.filter(action="view").distinct("user_email").count() + c_initwebconference = vis_ou.filter(action="initwebconference").distinct("user_email").count() + c_participate = vis_ou.filter(action="participating").distinct("user_email").count() + re.append([str(_('Webconference')),did,n_did]) + + re.append([column_view,c_visualizou, alunos.count() - c_visualizou]) + re.append([column_initwebconference,c_initwebconference, alunos.count() - c_initwebconference]) + re.append([column_participate,c_participate, alunos.count() - c_participate]) + + context['view'] = column_view + context['initwebconference'] = column_initwebconference + context['participate'] = column_participate + context['topic'] = webconference.topic + context['subject'] = webconference.topic.subject + context['webconference'] = webconference + context['db_data'] = re + context['title_chart'] = _('Actions about resource') + context['title_vAxis'] = _('Quantity') + + context["n_did_table"] = n_did + context["did_table"] = did + context["history_table"] = history + return context from django.http import HttpResponse #used to send HTTP 404 error to ajax class SendMessage(LoginRequiredMixin, LogMixin, generic.edit.FormView): - log_component = 'resources' - log_action = 'send' - log_resource = 'webconference' - log_context = {} - - login_url = reverse_lazy("users:login") - redirect_field_name = 'next' - - template_name = 'webconference/send_message.html' - form_class = FormModalMessage - - def dispatch(self, request, *args, **kwargs): - slug = self.kwargs.get('slug', '') - webconference = get_object_or_404(Webconference, slug = slug) - self.webconference = webconference - - if not has_subject_permissions(request.user, webconference.topic.subject): - return redirect(reverse_lazy('subjects:home')) - - return super(SendMessage, self).dispatch(request, *args, **kwargs) - - def form_valid(self, form): - message = form.cleaned_data.get('comment') - image = form.cleaned_data.get("image") - users = (self.request.POST.get('users[]','')).split(",") - user = self.request.user - subject = self.webconference.topic.subject - - if (users[0] is not ''): - for u in users: - to_user = User.objects.get(email=u) - talk, create = Conversation.objects.get_or_create(user_one=user,user_two=to_user) - created = TalkMessages.objects.create(text=message,talk=talk,user=user,subject=subject,image=image) - - simple_notify = textwrap.shorten(strip_tags(message), width = 30, placeholder = "...") - - if image is not '': - simple_notify += " ".join(_("[Photo]")) - - notification = { - "type": "chat", - "subtype": "subject", - "space": subject.slug, - "user_icon": created.user.image_url, - "notify_title": str(created.user), - "simple_notify": simple_notify, - "view_url": reverse("chat:view_message", args = (created.id, ), kwargs = {}), - "complete": render_to_string("chat/_message.html", {"talk_msg": created}, self.request), - "container": "chat-" + str(created.user.id), - "last_date": _("Last message in %s")%(formats.date_format(created.create_date, "SHORT_DATETIME_FORMAT")) - } - - notification = json.dumps(notification) - - Group("user-%s" % to_user.id).send({'text': notification}) - - ChatVisualizations.objects.create(viewed = False, message = created, user = to_user) - - success = str(_('The message was successfull sent!')) - return JsonResponse({"message":success}) - erro = HttpResponse(str(_("No user selected!"))) - erro.status_code = 404 - return erro - - def get_context_data(self, **kwargs): - context = super(SendMessage,self).get_context_data() - context["webconference"] = get_object_or_404(Webconference, slug=self.kwargs.get('slug', '')) - return context + log_component = 'resources' + log_action = 'send' + log_resource = 'webconference' + log_context = {} + + login_url = reverse_lazy("users:login") + redirect_field_name = 'next' + + template_name = 'webconference/send_message.html' + form_class = FormModalMessage + + def dispatch(self, request, *args, **kwargs): + slug = self.kwargs.get('slug', '') + webconference = get_object_or_404(Webconference, slug = slug) + self.webconference = webconference + + if not has_subject_permissions(request.user, webconference.topic.subject): + return redirect(reverse_lazy('subjects:home')) + + return super(SendMessage, self).dispatch(request, *args, **kwargs) + + def form_valid(self, form): + message = form.cleaned_data.get('comment') + image = form.cleaned_data.get("image") + users = (self.request.POST.get('users[]','')).split(",") + user = self.request.user + subject = self.webconference.topic.subject + + if (users[0] is not ''): + for u in users: + to_user = User.objects.get(email=u) + talk, create = Conversation.objects.get_or_create(user_one=user,user_two=to_user) + created = TalkMessages.objects.create(text=message,talk=talk,user=user,subject=subject,image=image) + + simple_notify = textwrap.shorten(strip_tags(message), width = 30, placeholder = "...") + + if image is not '': + simple_notify += " ".join(_("[Photo]")) + + notification = { + "type": "chat", + "subtype": "subject", + "space": subject.slug, + "user_icon": created.user.image_url, + "notify_title": str(created.user), + "simple_notify": simple_notify, + "view_url": reverse("chat:view_message", args = (created.id, ), kwargs = {}), + "complete": render_to_string("chat/_message.html", {"talk_msg": created}, self.request), + "container": "chat-" + str(created.user.id), + "last_date": _("Last message in %s")%(formats.date_format(created.create_date, "SHORT_DATETIME_FORMAT")) + } + + notification = json.dumps(notification) + + Group("user-%s" % to_user.id).send({'text': notification}) + + ChatVisualizations.objects.create(viewed = False, message = created, user = to_user) + + success = str(_('The message was successfull sent!')) + return JsonResponse({"message":success}) + erro = HttpResponse(str(_("No user selected!"))) + erro.status_code = 404 + return erro + + def get_context_data(self, **kwargs): + context = super(SendMessage,self).get_context_data() + context["webconference"] = get_object_or_404(Webconference, slug=self.kwargs.get('slug', '')) + return context diff --git a/webpage/templates/webpages/update.html b/webpage/templates/webpages/update.html index 3b66aa9..578efc8 100644 --- a/webpage/templates/webpages/update.html +++ b/webpage/templates/webpages/update.html @@ -18,8 +18,8 @@ {% breadcrumb topic 'subjects:topic_view' topic.subject.slug topic.slug %} {% trans 'Edit: ' as bread %} - {% with bread|add:webpage.name as bread_slug %} - {% breadcrumb bread_slug 'webpages:update' topic.slug webpage.slug %} + {% with bread|add:resource.name as bread_slug %} + {% breadcrumb bread_slug 'webpages:update' topic.slug resource.slug %} {% endwith %} {% endblock %} diff --git a/webpage/views.py b/webpage/views.py index 8a43c7b..7f357c1 100644 --- a/webpage/views.py +++ b/webpage/views.py @@ -360,6 +360,7 @@ class UpdateView(LoginRequiredMixin, LogMixin, generic.UpdateView): context['topic'] = topic context['subject'] = topic.subject + context['resource'] = get_object_or_404(Webpage, slug = self.kwargs.get('slug', '')) return context diff --git a/youtube_video/templates/youtube/update.html b/youtube_video/templates/youtube/update.html index 6fcb12d..a21f92f 100644 --- a/youtube_video/templates/youtube/update.html +++ b/youtube_video/templates/youtube/update.html @@ -19,8 +19,8 @@ {% breadcrumb topic 'subjects:topic_view' topic.subject.slug topic.slug %} {% trans 'Edit: ' as bread %} - {% with bread|add:youtube.name as bread_slug %} - {% breadcrumb bread_slug 'youtube:update' topic.slug youtube.slug %} + {% with bread|add:resource.name as bread_slug %} + {% breadcrumb bread_slug 'youtube:update' topic.slug resource.slug %} {% endwith %} {% endblock %} diff --git a/youtube_video/views.py b/youtube_video/views.py index 3b2b63b..11b879f 100644 --- a/youtube_video/views.py +++ b/youtube_video/views.py @@ -366,6 +366,7 @@ class UpdateView(LoginRequiredMixin, LogMixin, generic.UpdateView): context['topic'] = topic context['subject'] = topic.subject + context['resource'] = get_object_or_404(YTVideo, slug = self.kwargs.get('slug', '')) return context -- libgit2 0.21.2