From 8bc53a3b4569701e815bc925ef8219a7dd778644 Mon Sep 17 00:00:00 2001 From: Őry Máté <ory.mate@cloud.bme.hu> Date: Mon, 9 Jun 2014 13:59:30 +0200 Subject: [PATCH] dashboard: add better identifierts --- circle/dashboard/tasks/local_periodic_tasks.py | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/circle/dashboard/tasks/local_periodic_tasks.py b/circle/dashboard/tasks/local_periodic_tasks.py index a7cff6b..ec2b88c 100644 --- a/circle/dashboard/tasks/local_periodic_tasks.py +++ b/circle/dashboard/tasks/local_periodic_tasks.py @@ -32,28 +32,27 @@ logger = logging.getLogger(__name__) @celery.task(ignore_result=True) def send_email_notifications(): - msgs = {} q = Q(status=Notification.STATUS.new) & ( Q(valid_until__lt=timezone.now()) | Q(valid_until=None)) - for i in Notification.objects.filter(q): - if i.to not in msgs: - msgs[i.to] = [] - msgs[i.to].append(i) - from_email = settings.DEFAULT_FROM_EMAIL - for user, i in msgs.iteritems(): + recipients = {} + for i in Notification.objects.filter(q): + recipients.setdefault(i.to, []) + recipients[i.to].append(i) + + for user, msgs in recipients.iteritems(): if (not user.profile or not user.email or not user.profile.email_notifications): logger.debug("%s gets no notifications", unicode(user)) continue with override(user.profile.preferred_language): - context = {'user': user.profile, 'messages': i, + context = {'user': user.profile, 'messages': msgs, 'url': (settings.DJANGO_URL.rstrip("/") + reverse("dashboard.views.notifications")), 'site': settings.COMPANY_NAME} subject = ungettext("%d new notification", - "%d new notifications", len(i)) % len(i) + "%d new notifications", len(msgs)) % len(msgs) body = render_to_string('dashboard/notifications/email.txt', context) try: @@ -62,7 +61,7 @@ def send_email_notifications(): logger.error("Failed to send mail to %s", user, exc_info=True) else: logger.info("Delivered notifications %s", - " ".join(unicode(j.pk) for j in i)) - for j in i: - j.status = j.STATUS.delivered - j.save() + " ".join(unicode(i.pk) for i in msgs)) + for i in msgs: + i.status = i.STATUS.delivered + i.save() -- libgit2 0.26.0