Commit 71c243c01f344841ab5c2ecc5a385a4d9129fada
1 parent
ac365a54
Exists in
master
and in
2 other branches
Resolvendo problema de messagem no relatório de youtube
Showing
1 changed file
with
35 additions
and
8 deletions
Show diff stats
youtube_video/views.py
@@ -20,13 +20,19 @@ from .models import YTVideo | @@ -20,13 +20,19 @@ from .models import YTVideo | ||
20 | 20 | ||
21 | import datetime | 21 | import datetime |
22 | from log.models import Log | 22 | from log.models import Log |
23 | -from chat.models import Conversation, TalkMessages | 23 | +from chat.models import Conversation, TalkMessages, ChatVisualizations |
24 | from users.models import User | 24 | from users.models import User |
25 | from subjects.models import Subject | 25 | from subjects.models import Subject |
26 | 26 | ||
27 | from webpage.forms import FormModalMessage | 27 | from webpage.forms import FormModalMessage |
28 | 28 | ||
29 | from django.db.models import Q | 29 | from django.db.models import Q |
30 | +from django.template.loader import render_to_string | ||
31 | +from django.utils import formats | ||
32 | +import textwrap | ||
33 | +from django.utils.html import strip_tags | ||
34 | +import json | ||
35 | +from channels import Group | ||
30 | 36 | ||
31 | class NewWindowView(LoginRequiredMixin, LogMixin, generic.DetailView): | 37 | class NewWindowView(LoginRequiredMixin, LogMixin, generic.DetailView): |
32 | log_component = 'resources' | 38 | log_component = 'resources' |
@@ -516,7 +522,7 @@ class StatisticsView(LoginRequiredMixin, LogMixin, generic.DetailView): | @@ -516,7 +522,7 @@ class StatisticsView(LoginRequiredMixin, LogMixin, generic.DetailView): | ||
516 | 522 | ||
517 | slug = self.kwargs.get('slug') | 523 | slug = self.kwargs.get('slug') |
518 | ytvideo = get_object_or_404(YTVideo, slug = slug) | 524 | ytvideo = get_object_or_404(YTVideo, slug = slug) |
519 | - print (self.request.GET.get('init_date','')) | 525 | + |
520 | date_format = "%d/%m/%Y %H:%M" if self.request.GET.get('language','') == 'pt-br' else "%m/%d/%Y %I:%M %p" | 526 | date_format = "%d/%m/%Y %H:%M" if self.request.GET.get('language','') == 'pt-br' else "%m/%d/%Y %I:%M %p" |
521 | if self.request.GET.get('language','') == "": | 527 | if self.request.GET.get('language','') == "": |
522 | start_date = datetime.datetime.now() - datetime.timedelta(30) | 528 | start_date = datetime.datetime.now() - datetime.timedelta(30) |
@@ -536,15 +542,12 @@ class StatisticsView(LoginRequiredMixin, LogMixin, generic.DetailView): | @@ -536,15 +542,12 @@ class StatisticsView(LoginRequiredMixin, LogMixin, generic.DetailView): | ||
536 | data_n_did,data_history = [],[] | 542 | data_n_did,data_history = [],[] |
537 | json_n_did, json_history = {},{} | 543 | json_n_did, json_history = {},{} |
538 | 544 | ||
539 | - from django.db.models import Count, Max | ||
540 | - views_user = vis_ou.values("user_email").annotate(views=Count("user_email")) | ||
541 | - date_last = vis_ou.values("user_email").annotate(last=Max("datetime")) | ||
542 | - | ||
543 | for log_al in vis_ou.order_by("datetime"): | 545 | for log_al in vis_ou.order_by("datetime"): |
544 | data_history.append([str(alunos.get(email=log_al.user_email)), | 546 | data_history.append([str(alunos.get(email=log_al.user_email)), |
545 | ", ".join([str(x) for x in ytvideo.topic.subject.group_subject.filter(participants__email=log_al.user_email)]), | 547 | ", ".join([str(x) for x in ytvideo.topic.subject.group_subject.filter(participants__email=log_al.user_email)]), |
546 | log_al.action,log_al.datetime]) | 548 | log_al.action,log_al.datetime]) |
547 | - json_history["data"] = data_history | 549 | + |
550 | + json_history["data"] = data_history | ||
548 | 551 | ||
549 | column_view,column_watch,column_finish = str(_('View')),str(_('Watch')),str(_('Finish')) | 552 | column_view,column_watch,column_finish = str(_('View')),str(_('Watch')),str(_('Finish')) |
550 | 553 | ||
@@ -619,7 +622,7 @@ class SendMessage(LoginRequiredMixin, LogMixin, generic.edit.FormView): | @@ -619,7 +622,7 @@ class SendMessage(LoginRequiredMixin, LogMixin, generic.edit.FormView): | ||
619 | 622 | ||
620 | def form_valid(self, form): | 623 | def form_valid(self, form): |
621 | message = form.cleaned_data.get('comment') | 624 | message = form.cleaned_data.get('comment') |
622 | - image = form.cleaned_data.get("image") | 625 | + image = form.cleaned_data.get("image",'') |
623 | users = (self.request.POST.get('users[]','')).split(",") | 626 | users = (self.request.POST.get('users[]','')).split(",") |
624 | user = self.request.user | 627 | user = self.request.user |
625 | subject = self.ytvideo.topic.subject | 628 | subject = self.ytvideo.topic.subject |
@@ -629,6 +632,30 @@ class SendMessage(LoginRequiredMixin, LogMixin, generic.edit.FormView): | @@ -629,6 +632,30 @@ class SendMessage(LoginRequiredMixin, LogMixin, generic.edit.FormView): | ||
629 | to_user = User.objects.get(email=u) | 632 | to_user = User.objects.get(email=u) |
630 | talk, create = Conversation.objects.get_or_create(user_one=user,user_two=to_user) | 633 | talk, create = Conversation.objects.get_or_create(user_one=user,user_two=to_user) |
631 | created = TalkMessages.objects.create(text=message,talk=talk,user=user,subject=subject,image=image) | 634 | created = TalkMessages.objects.create(text=message,talk=talk,user=user,subject=subject,image=image) |
635 | + | ||
636 | + simple_notify = textwrap.shorten(strip_tags(message), width = 30, placeholder = "...") | ||
637 | + | ||
638 | + if image is not '': | ||
639 | + simple_notify += " ".join(_("[Photo]")) | ||
640 | + | ||
641 | + notification = { | ||
642 | + "type": "chat", | ||
643 | + "subtype": "subject", | ||
644 | + "space": subject.slug, | ||
645 | + "user_icon": created.user.image_url, | ||
646 | + "notify_title": str(created.user), | ||
647 | + "simple_notify": simple_notify, | ||
648 | + "view_url": reverse("chat:view_message", args = (created.id, ), kwargs = {}), | ||
649 | + "complete": render_to_string("chat/_message.html", {"talk_msg": created}, self.request), | ||
650 | + "container": "chat-" + str(created.user.id), | ||
651 | + "last_date": _("Last message in %s")%(formats.date_format(created.create_date, "SHORT_DATETIME_FORMAT")) | ||
652 | + } | ||
653 | + | ||
654 | + notification = json.dumps(notification) | ||
655 | + | ||
656 | + Group("user-%s" % to_user.id).send({'text': notification}) | ||
657 | + | ||
658 | + ChatVisualizations.objects.create(viewed = False, message = created, user = to_user) | ||
632 | success = str(_('The message was successfull sent!')) | 659 | success = str(_('The message was successfull sent!')) |
633 | return JsonResponse({"message":success}) | 660 | return JsonResponse({"message":success}) |
634 | erro = HttpResponse(str(_("No user selected!"))) | 661 | erro = HttpResponse(str(_("No user selected!"))) |