From 94740a101678944e44f4b29d9805e85c3cf50d45 Mon Sep 17 00:00:00 2001 From: Dusty Phillips Date: Tue, 1 Jul 2008 18:43:37 -0400 Subject: add reminder e-mails to todo lists --- templates/todolists/addedtotodolist | 16 ++++++++++++++++ todolists/views.py | 27 +++++++++++++++++++++++++-- 2 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 templates/todolists/addedtotodolist diff --git a/templates/todolists/addedtotodolist b/templates/todolists/addedtotodolist new file mode 100644 index 00000000..55ba8ea2 --- /dev/null +++ b/templates/todolists/addedtotodolist @@ -0,0 +1,16 @@ + +* Note: this is an automated message + +The following package: + + Package Name: {{ pkg.pkgname }} + Architecture: {{ pkg.arch.name }} + Repository: {{ pkg.repo.name }} + ({{ weburl }}) + +has been added to this to-do list: + +Creator: {{todolist.creator.get_full_name}} +Name: {{todolist.name}} +Description: +{{description|wordwrap:69}} diff --git a/todolists/views.py b/todolists/views.py index 2931d9bb..e06478ad 100644 --- a/todolists/views.py +++ b/todolists/views.py @@ -5,6 +5,7 @@ from django.shortcuts import get_object_or_404 from django.contrib.auth.decorators import permission_required from django.contrib.auth.models import User +from django.template import Context, loader from archweb_dev.main.utils import render_response from archweb_dev.main.models import Todolist, TodolistPkg, Package from archweb_dev.main.models import Arch, Repo @@ -62,7 +63,8 @@ def add(request): name = form.clean_data['name'], description = form.clean_data['description']) for pkg in form.clean_data['packages']: - TodolistPkg.objects.create(list = todo, pkg = pkg) + todo = TodolistPkg.objects.create(list = todo, pkg = pkg) + send_todolist_email(todo) return HttpResponseRedirect('/todo/') else: form = TodoListForm() @@ -94,7 +96,9 @@ def edit(request, list_id): # now add any packages not in the old list for pkg in form.clean_data['packages']: if pkg not in packages: - TodolistPkg.objects.create(list = todo_list, pkg = pkg) + todo = TodolistPkg.objects.create( + list = todo_list, pkg = pkg) + send_todolist_email(todo) return HttpResponseRedirect('/todo/%d/' % todo_list.id) else: @@ -111,6 +115,25 @@ def edit(request, list_id): return render_response(request, 'general_form.html', page_dict) +def send_todolist_email(todo): + '''Sends an e-mail to the maintainer of a package notifying them that the + package has been added to a to-do list''' + if todo.pkg.maintainer_id == 0: + return + page_dict = { + 'pkg': todo.pkg, + 'todolist': todo.list, + 'weburl': 'http://www.archlinux.org/packages/%s/' % (todo.pkg.id) + } + t = loader.get_template('todolists/addedtotodolist') + c = Context(page_dict) + send_mail('arch: Package [%s] added to Todolist' % todo.pkg.pkgname, + t.render(c), + 'Arch Website Notification ', + [pkg.maintainer.email], + fail_silently=True) + + # vim: set ts=4 sw=4 et: -- cgit v1.2.3-54-g00ecf