From e426b1cd2611ca016f597ba3f843f497a43f0d8a Mon Sep 17 00:00:00 2001 From: ercchy Date: Wed, 1 Jul 2015 18:48:16 +0200 Subject: [PATCH 1/3] Fixing email notifications that did not work correctly --- badges/badge/models.py | 2 + badges/badge/notification_helpers.py | 13 ++++++ badges/badge/views.py | 6 ++- .../dashboard/templatetags/projects_tags.py | 17 +++++++- badges/templates/emails/badge_created.html | 17 ++++---- badges/templates/emails/badge_created.txt | 18 ++++---- badges/templates/emails/badge_published.html | 42 +++++++++++++++++++ badges/templates/emails/badge_published.txt | 22 ++++++++++ .../emails/badge_published_subject.txt | 1 + 9 files changed, 117 insertions(+), 21 deletions(-) create mode 100644 badges/templates/emails/badge_published.html create mode 100644 badges/templates/emails/badge_published.txt create mode 100644 badges/templates/emails/badge_published_subject.txt diff --git a/badges/badge/models.py b/badges/badge/models.py index 6ec3486..37873f7 100644 --- a/badges/badge/models.py +++ b/badges/badge/models.py @@ -4,6 +4,7 @@ from .db import Badge from .db import Award from .notification_helpers import send_badge_creation_notification +from .notification_helpers import send_badge_published_notification from .notification_helpers import send_badge_awarded_notification @@ -136,6 +137,7 @@ def publish_badge(uri): badge_db.author_uri, reverse('badge_view', args=(badge_db.pk, )), ) + send_badge_published_notification(_badge2dict(badge_db)) return True diff --git a/badges/badge/notification_helpers.py b/badges/badge/notification_helpers.py index 27c447a..7609111 100644 --- a/badges/badge/notification_helpers.py +++ b/badges/badge/notification_helpers.py @@ -15,6 +15,19 @@ def send_badge_creation_notification(badge): context=context ) +def send_badge_published_notification(badge): + subject_template = 'emails/badge_published_subject.txt' + text_template = 'emails/badge_published.txt' + html_template = 'emails/badge_published.html' + context = {'badge': fetch_badge_resources(badge)} + return send_notification_i18n( + badge['author_uri'], + subject_template, + text_template, + html_template, + context=context + ) + def send_badge_awarded_notification(badge, expert_uri): subject_template = 'emails/badge_awarded_subject.txt' diff --git a/badges/badge/views.py b/badges/badge/views.py index c1093b6..67ee0b6 100644 --- a/badges/badge/views.py +++ b/badges/badge/views.py @@ -1,6 +1,6 @@ from django.core.serializers.json import DjangoJSONEncoder from django import http -from django.http import HttpResponse +from django.http import HttpResponse, HttpResponseRedirect from django.shortcuts import render_to_response from django.template import RequestContext from django.core.urlresolvers import reverse @@ -70,6 +70,10 @@ def create(request): @require_login def preview(request, badge_id): badge = badge_api.get_badge(badge_api.id2uri(badge_id)) + + if badge['published_date']: + return HttpResponseRedirect(reverse('badge_view', args=[badge_id])) + fetch_badge_resources(badge) user = request.session['user'] user['is_author'] = _user_is_author(badge, user) diff --git a/badges/dashboard/templatetags/projects_tags.py b/badges/dashboard/templatetags/projects_tags.py index f37770a..5286906 100644 --- a/badges/dashboard/templatetags/projects_tags.py +++ b/badges/dashboard/templatetags/projects_tags.py @@ -1,9 +1,24 @@ from django import template from django.template.defaultfilters import mark_safe +from subprocess import Popen, PIPE register = template.Library() @register.filter def purge_content(value): - return mark_safe(value.replace('

 

', '')) \ No newline at end of file + return mark_safe(value.replace('

 

', '')) + +@register.filter +def html2text(value): + """ + Pipes given HTML string into the text browser W3M, which renders it. + Rendered text is grabbed from STDOUT and returned. + """ + try: + cmd = "w3m -dump -T text/html -O ascii" + proc = Popen(cmd, shell=True, stdin=PIPE, stdout=PIPE) + return proc.communicate(str(value))[0] + except OSError: + # something bad happened, so just return the input + return value \ No newline at end of file diff --git a/badges/templates/emails/badge_created.html b/badges/templates/emails/badge_created.html index 8879748..a19c776 100644 --- a/badges/templates/emails/badge_created.html +++ b/badges/templates/emails/badge_created.html @@ -7,29 +7,30 @@ Howdy!

-Your badge {{ badge.title }} is published, live, and ready-to-go. +Your badge {{ badge.title }} is created. Woohoo! +

+

+ Your Badge is created, but that doesn't mean that people can apply for it yet. If you haven't already, then you + must publish it and let the world see your creation. Publish it by pressing on the "Publish" button + here.

- +

{{ badge.title }}

{{ badge.description|purge_content }}

-

{{ badge.requirements }}

+

{{ badge.requirements|purge_content }}

-

-Your Badge now exists on badges.p2pu.org and learners can apply for it immediately. As the Badge's creator, this badge will automatically appear on your profile. -

-

-Tell the world about your spiffy Badge! {% include 'emails/social_buttons.html' %} +

As the Badge's creator, this badge will automatically appear on your profile.

diff --git a/badges/templates/emails/badge_created.txt b/badges/templates/emails/badge_created.txt index 70cd9fc..7c79ef7 100644 --- a/badges/templates/emails/badge_created.txt +++ b/badges/templates/emails/badge_created.txt @@ -1,20 +1,16 @@ -{% load projects_tags %}{% load i18n %}{% blocktrans with title=badge.title decription=badge.description|purge_content requirements=badge.requirements%} +{% load projects_tags %}{% load i18n %}{% blocktrans with title=badge.title description=badge.description|purge_content requirements=badge.requirements|html2text %} Howdy! -Your badge {{ title }} is published, live, and ready-to-go. +Your badge {{ badge.title }} is created. Woohoo! -{{ title }} -{{ description }} -{{ requirements }} +* Title: {{ title }} +* Description: {{ description }} +* Requirements: {{ requirements }} {% endblocktrans %} -Your Badge now exists at http://badges.p2pu.org{% url badge_view badge.id %} and learners can apply for it immediately. As the Badge's creator, this badge will automatically appear on your profile. +Your Badge is created, but that doesn't mean that people can apply for it yet. If you haven't already, then you must publish it and let the world see your creation. Publish it by pressing on the "Publish" button at http://badges.p2pu.org{% url badge_preview badge.id %} -Tell the world about your spiffy Badge! - -Google+ - https://plus.google.com/share?url=http://badges.p2pu.org{% url badge_view badge.id %} - -Tweet - http://twitter.com/share?url=http://badges.p2pu.org{% url badge_view badge.id %}&text=Check out the spiffy badge I made!&via=p2pu +As the Badge's creator, this badge will automatically appear on your profile. {% blocktrans %} Yours in the future of learning, diff --git a/badges/templates/emails/badge_published.html b/badges/templates/emails/badge_published.html new file mode 100644 index 0000000..b582640 --- /dev/null +++ b/badges/templates/emails/badge_published.html @@ -0,0 +1,42 @@ +{% extends 'emails/base.html' %} +{% load i18n %} +{% load projects_tags %} + +{% block body %} +

+Howdy! +

+

+Your badge {{ badge.title }} is published, live, and ready-to-go. +

+ + + + + + + +
+ + + + +

{{ badge.title }}

+

{{ badge.description|purge_content }}

+

{{ badge.requirements|purge_content }}

+
+

+Your Badge now exists on badges.p2pu.org and learners can apply for it immediately. +

+

+Tell the world about your spiffy Badge! {% include 'emails/social_buttons.html' %} +

+ +

+ +

+

+Yours in the future of learning,
+- The P2PU team +

+{% endblock %} diff --git a/badges/templates/emails/badge_published.txt b/badges/templates/emails/badge_published.txt new file mode 100644 index 0000000..73fc37a --- /dev/null +++ b/badges/templates/emails/badge_published.txt @@ -0,0 +1,22 @@ +{% load projects_tags %}{% load i18n %}{% blocktrans with title=badge.title description=badge.description|purge_content requirements=badge.requirements|html2text %} +Howdy! + +Your badge {{ title }} is published, live, and ready-to-go. + +* Title: {{ title }} +* Description: {{ description }} +* Requirements: {{ requirements }} +{% endblocktrans %} + +Your Badge now exists at http://badges.p2pu.org{% url badge_view badge.id %} and learners can apply for it immediately. + +Tell the world about your spiffy Badge! + +Google+ - https://plus.google.com/share?url=http://badges.p2pu.org{% url badge_view badge.id %} + +Tweet - http://twitter.com/share?url=http://badges.p2pu.org{% url badge_view badge.id %}&text=Check out the spiffy badge I made!&via=p2pu + +{% blocktrans %} +Yours in the future of learning, +- The P2PU team +{% endblocktrans %} diff --git a/badges/templates/emails/badge_published_subject.txt b/badges/templates/emails/badge_published_subject.txt new file mode 100644 index 0000000..8d6ebe5 --- /dev/null +++ b/badges/templates/emails/badge_published_subject.txt @@ -0,0 +1 @@ +{% load i18n %}{% blocktrans with badge_title=badge.title%}You've just published a {{ badge_title }} Badge. Congrats!{% endblocktrans %} From a30d7c1a944b8fa9d8305da75b13dce67283410d Mon Sep 17 00:00:00 2001 From: ercchy Date: Wed, 1 Jul 2015 18:57:33 +0200 Subject: [PATCH 2/3] Adding a name to "from" email address --- badges/badges/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/badges/badges/settings.py b/badges/badges/settings.py index 99c2247..a87a238 100644 --- a/badges/badges/settings.py +++ b/badges/badges/settings.py @@ -207,4 +207,4 @@ def skip_suspicious_operations(record): ################################################################# MANDRILL_API_KEY = "" EMAIL_BACKEND = "djrill.mail.backends.djrill.DjrillBackend" -DEFAULT_FROM_EMAIL = "badges@p2pu.org" \ No newline at end of file +DEFAULT_FROM_EMAIL = "P2PU Badges Team " \ No newline at end of file From f49e1e788adc0842ac36d862c3254d78cb9d313e Mon Sep 17 00:00:00 2001 From: ercchy Date: Wed, 1 Jul 2015 19:18:24 +0200 Subject: [PATCH 3/3] Adding a name to "from" email address --- badges/badges/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/badges/badges/settings.py b/badges/badges/settings.py index a87a238..656bae0 100644 --- a/badges/badges/settings.py +++ b/badges/badges/settings.py @@ -207,4 +207,4 @@ def skip_suspicious_operations(record): ################################################################# MANDRILL_API_KEY = "" EMAIL_BACKEND = "djrill.mail.backends.djrill.DjrillBackend" -DEFAULT_FROM_EMAIL = "P2PU Badges Team " \ No newline at end of file +DEFAULT_FROM_EMAIL = "P2PU team " \ No newline at end of file