Add a todolist package details link template tag
Given the way we retrieve certain related objects, it makes more sense to use a custom tag here rather than our generic package details link tag. When viewing a large todolist, this saves significantly on the number of queries we need to build the page. Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
parent
20b64e4267
commit
ee507a5b81
@ -2,6 +2,7 @@
|
||||
{% load static from staticfiles %}
|
||||
{% load cache %}
|
||||
{% load package_extras %}
|
||||
{% load todolists %}
|
||||
|
||||
{% block title %}Arch Linux - Developer Dashboard{% endblock %}
|
||||
|
||||
@ -61,7 +62,7 @@ <h3>My Incomplete Todo List Packages</h3>
|
||||
<tr class="{% cycle 'odd' 'even' %}">
|
||||
<td><a href="{{ todopkg.todolist.get_absolute_url }}"
|
||||
title="View todo list: {{ todopkg.todolist.name }}">{{ todopkg.todolist.name }}</a></td>
|
||||
<td>{% pkg_details_link todopkg.pkg %}</td>
|
||||
<td>{% todopkg_details_link todopkg %}</td>
|
||||
<td>{{ todopkg.repo.name }}</td>
|
||||
<td>{{ todopkg.arch.name }}</td>
|
||||
<td>{{ todopkg.pkg.maintainers|join:', ' }}</td>
|
||||
|
@ -1,6 +1,6 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static from staticfiles %}
|
||||
{% load package_extras %}
|
||||
{% load todolists %}
|
||||
|
||||
{% block title %}Arch Linux - Todo Lists{% endblock %}
|
||||
|
||||
@ -45,7 +45,7 @@ <h4>{{ list.name }}</h4>
|
||||
<tbody>
|
||||
{% for pkg in list.packages %}
|
||||
<tr class="{% cycle 'odd' 'even' %}">
|
||||
<td>{% pkg_details_link pkg.pkg pkg.pkgname %}</td>
|
||||
<td>{% todopkg_details_link pkg %}</td>
|
||||
<td>{{ pkg.arch.name }}</td>
|
||||
<td>{{ pkg.repo.name|capfirst }}</td>
|
||||
<td>{{ pkg.maintainers|join:', ' }}</td>
|
||||
|
@ -1,6 +1,6 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static from staticfiles %}
|
||||
{% load package_extras %}
|
||||
{% load todolists %}
|
||||
|
||||
{% block title %}Arch Linux - Todo: {{ list.name }}{% endblock %}
|
||||
|
||||
@ -71,7 +71,7 @@ <h3>Filter Todo List Packages</h3>
|
||||
<tr class="{% cycle 'odd' 'even' %}{% if user in pkg.maintainers %} mine{% endif %} {{ pkg.arch.name }} {{ pkg.repo.name|lower }}">
|
||||
<td>{{ pkg.arch.name }}</td>
|
||||
<td>{{ pkg.repo.name|capfirst }}</td>
|
||||
<td>{% pkg_details_link pkg.pkg pkg.pkgname %}</td>
|
||||
<td>{% todopkg_details_link pkg %}</td>
|
||||
{% if pkg.pkg.flag_date %}
|
||||
<td><span class="flagged">{{ pkg.pkg.full_version }}</span></td>
|
||||
{% else %}
|
||||
|
0
todolists/templatetags/__init__.py
Normal file
0
todolists/templatetags/__init__.py
Normal file
19
todolists/templatetags/todolists.py
Normal file
19
todolists/templatetags/todolists.py
Normal file
@ -0,0 +1,19 @@
|
||||
from django import template
|
||||
|
||||
register = template.Library()
|
||||
|
||||
|
||||
def pkg_absolute_url(repo, arch, pkgname):
|
||||
return '/packages/%s/%s/%s/' % (repo.name.lower(), arch.name, pkgname)
|
||||
|
||||
|
||||
@register.simple_tag
|
||||
def todopkg_details_link(todopkg):
|
||||
pkg = todopkg.pkg
|
||||
if not pkg:
|
||||
return todopkg.pkgname
|
||||
link = '<a href="%s" title="View package details for %s">%s</a>'
|
||||
url = pkg_absolute_url(todopkg.repo, todopkg.arch, pkg.pkgname)
|
||||
return link % (url, pkg.pkgname, pkg.pkgname)
|
||||
|
||||
# vim: set ts=4 sw=4 et:
|
Loading…
Reference in New Issue
Block a user