Commit 140a898b56901cf59cfba29dfe2cc92082d344d1
1 parent
f0160434
Exists in
master
and in
2 other branches
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!"))) |