summaryrefslogtreecommitdiff
path: root/todolists/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'todolists/views.py')
-rw-r--r--todolists/views.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/todolists/views.py b/todolists/views.py
index d6a25463..233102cf 100644
--- a/todolists/views.py
+++ b/todolists/views.py
@@ -12,6 +12,7 @@ from django.template import Context, loader
from django.utils import simplejson
from main.models import Todolist, TodolistPkg, Package
+from packages.utils import attach_maintainers
from .utils import get_annotated_todolists
class TodoListForm(forms.ModelForm):
@@ -23,8 +24,8 @@ class TodoListForm(forms.ModelForm):
package_names = [s.strip() for s in
self.cleaned_data['packages'].split("\n")]
package_names = set(package_names)
- packages = Package.objects.filter(pkgname__in=package_names).exclude(
- repo__testing=True).select_related(
+ packages = Package.objects.filter(pkgname__in=package_names).filter(
+ repo__testing=False, repo__staging=False).select_related(
'arch', 'repo').order_by('arch')
return packages
@@ -49,6 +50,9 @@ def flag(request, listid, pkgid):
@never_cache
def view(request, listid):
todolist = get_object_or_404(Todolist, id=listid)
+ # we don't hold onto the result, but the objects are the same here,
+ # so accessing maintainers in the template is now cheap
+ attach_maintainers(tp.pkg for tp in todolist.packages)
return direct_to_template(request, 'todolists/view.html', {'list': todolist})
@login_required
@@ -157,14 +161,16 @@ def send_todolist_emails(todo_list, new_packages):
template = loader.get_template('todolists/email_notification.txt')
send_mail('Packages added to todo list \'%s\'' % todo_list.name,
template.render(ctx),
- 'Parabola <packages@list.parabolagnulinux.org>',
+ 'Parabola <dev@lists.parabolagnulinux.org>',
[maint],
fail_silently=True)
def public_list(request):
todo_lists = Todolist.objects.incomplete()
+ # total hackjob, but it makes this a lot less query-intensive.
+ all_pkgs = [tp for tl in todo_lists for tp in tl.packages]
+ attach_maintainers([tp.pkg for tp in all_pkgs])
return direct_to_template(request, "todolists/public_list.html",
{"todo_lists": todo_lists})
-
# vim: set ts=4 sw=4 et: