Commit 140a898b56901cf59cfba29dfe2cc92082d344d1

Authored by Jailson Dias
1 parent f0160434

Resolvendo problema de messagem no relatório de links

Showing 1 changed file with 37 additions and 8 deletions   Show diff stats
links/views.py
@@ -2,7 +2,7 @@ from django.shortcuts import render, get_object_or_404, redirect @@ -2,7 +2,7 @@ from django.shortcuts import render, get_object_or_404, redirect
2 from django.views import generic 2 from django.views import generic
3 from .models import Link 3 from .models import Link
4 from django.utils.translation import ugettext_lazy as _ 4 from django.utils.translation import ugettext_lazy as _
5 -from django.core.urlresolvers import reverse_lazy 5 +from django.core.urlresolvers import reverse_lazy, reverse
6 from django.contrib.auth.mixins import LoginRequiredMixin 6 from django.contrib.auth.mixins import LoginRequiredMixin
7 from .forms import LinkForm 7 from .forms import LinkForm
8 from rolepermissions.mixins import HasRoleMixin 8 from rolepermissions.mixins import HasRoleMixin
@@ -19,13 +19,20 @@ from amadeus.permissions import has_subject_permissions, has_resource_permission @@ -19,13 +19,20 @@ from amadeus.permissions import has_subject_permissions, has_resource_permission
19 from topics.models import Topic 19 from topics.models import Topic
20 20
21 import datetime 21 import datetime
22 -from chat.models import Conversation, TalkMessages 22 +from chat.models import Conversation, TalkMessages, ChatVisualizations
23 from users.models import User 23 from users.models import User
24 from subjects.models import Subject 24 from subjects.models import Subject
25 25
26 from webpage.forms import FormModalMessage 26 from webpage.forms import FormModalMessage
27 from django.http import JsonResponse 27 from django.http import JsonResponse
28 28
  29 +from django.template.loader import render_to_string
  30 +from django.utils import formats
  31 +import textwrap
  32 +from django.utils.html import strip_tags
  33 +import json
  34 +from channels import Group
  35 +
29 # Create your views here. 36 # Create your views here.
30 class CreateLinkView(LoginRequiredMixin, LogMixin, generic.edit.CreateView): 37 class CreateLinkView(LoginRequiredMixin, LogMixin, generic.edit.CreateView):
31 log_component = 'resources' 38 log_component = 'resources'
@@ -379,7 +386,7 @@ class StatisticsView(LoginRequiredMixin, LogMixin, generic.DetailView): @@ -379,7 +386,7 @@ class StatisticsView(LoginRequiredMixin, LogMixin, generic.DetailView):
379 386
380 slug = self.kwargs.get('slug') 387 slug = self.kwargs.get('slug')
381 link = get_object_or_404(Link, slug = slug) 388 link = get_object_or_404(Link, slug = slug)
382 - print (self.request.GET.get('init_date','')) 389 +
383 date_format = "%d/%m/%Y %H:%M" if self.request.GET.get('language','') == 'pt-br' else "%m/%d/%Y %I:%M %p" 390 date_format = "%d/%m/%Y %H:%M" if self.request.GET.get('language','') == 'pt-br' else "%m/%d/%Y %I:%M %p"
384 if self.request.GET.get('language','') == "": 391 if self.request.GET.get('language','') == "":
385 start_date = datetime.datetime.now() - datetime.timedelta(30) 392 start_date = datetime.datetime.now() - datetime.timedelta(30)
@@ -399,15 +406,12 @@ class StatisticsView(LoginRequiredMixin, LogMixin, generic.DetailView): @@ -399,15 +406,12 @@ class StatisticsView(LoginRequiredMixin, LogMixin, generic.DetailView):
399 data_n_did,data_history = [],[] 406 data_n_did,data_history = [],[]
400 json_n_did, json_history = {},{} 407 json_n_did, json_history = {},{}
401 408
402 - from django.db.models import Count, Max  
403 - views_user = vis_ou.values("user_email").annotate(views=Count("user_email"))  
404 - date_last = vis_ou.values("user_email").annotate(last=Max("datetime"))  
405 -  
406 for log_al in vis_ou.order_by("datetime"): 409 for log_al in vis_ou.order_by("datetime"):
407 data_history.append([str(alunos.get(email=log_al.user_email)), 410 data_history.append([str(alunos.get(email=log_al.user_email)),
408 ", ".join([str(x) for x in link.topic.subject.group_subject.filter(participants__email=log_al.user_email)]), 411 ", ".join([str(x) for x in link.topic.subject.group_subject.filter(participants__email=log_al.user_email)]),
409 log_al.action,log_al.datetime]) 412 log_al.action,log_al.datetime])
410 - json_history["data"] = data_history 413 +
  414 + json_history["data"] = data_history
411 415
412 not_view = alunos.exclude(email__in=[log.user_email for log in vis_ou.distinct("user_email")]) 416 not_view = alunos.exclude(email__in=[log.user_email for log in vis_ou.distinct("user_email")])
413 index = 0 417 index = 0
@@ -470,6 +474,31 @@ class SendMessage(LoginRequiredMixin, LogMixin, generic.edit.FormView): @@ -470,6 +474,31 @@ class SendMessage(LoginRequiredMixin, LogMixin, generic.edit.FormView):
470 to_user = User.objects.get(email=u) 474 to_user = User.objects.get(email=u)
471 talk, create = Conversation.objects.get_or_create(user_one=user,user_two=to_user) 475 talk, create = Conversation.objects.get_or_create(user_one=user,user_two=to_user)
472 created = TalkMessages.objects.create(text=message,talk=talk,user=user,subject=subject,image=image) 476 created = TalkMessages.objects.create(text=message,talk=talk,user=user,subject=subject,image=image)
  477 +
  478 + simple_notify = textwrap.shorten(strip_tags(message), width = 30, placeholder = "...")
  479 +
  480 + if image is not '':
  481 + simple_notify += " ".join(_("[Photo]"))
  482 +
  483 + notification = {
  484 + "type": "chat",
  485 + "subtype": "subject",
  486 + "space": subject.slug,
  487 + "user_icon": created.user.image_url,
  488 + "notify_title": str(created.user),
  489 + "simple_notify": simple_notify,
  490 + "view_url": reverse("chat:view_message", args = (created.id, ), kwargs = {}),
  491 + "complete": render_to_string("chat/_message.html", {"talk_msg": created}, self.request),
  492 + "container": "chat-" + str(created.user.id),
  493 + "last_date": _("Last message in %s")%(formats.date_format(created.create_date, "SHORT_DATETIME_FORMAT"))
  494 + }
  495 +
  496 + notification = json.dumps(notification)
  497 +
  498 + Group("user-%s" % to_user.id).send({'text': notification})
  499 +
  500 + ChatVisualizations.objects.create(viewed = False, message = created, user = to_user)
  501 +
473 success = str(_('The message was successfull sent!')) 502 success = str(_('The message was successfull sent!'))
474 return JsonResponse({"message":success}) 503 return JsonResponse({"message":success})
475 erro = HttpResponse(str(_("No user selected!"))) 504 erro = HttpResponse(str(_("No user selected!")))