From a3015ba8429a09878ed6c35d7c7c76a882de7dcf Mon Sep 17 00:00:00 2001
From: Dan McGee
Date: Sat, 8 Nov 2014 15:52:18 -0600
Subject: Override default sitemap.xml template
The Django one uses the spaceless tag, which isn't all that useful when
we are gzipping the response anyway. Remove it to make generation a tad
faster.
Signed-off-by: Dan McGee
---
templates/sitemaps/sitemap.xml | 9 +++++++++
urls.py | 2 +-
2 files changed, 10 insertions(+), 1 deletion(-)
create mode 100644 templates/sitemaps/sitemap.xml
diff --git a/templates/sitemaps/sitemap.xml b/templates/sitemaps/sitemap.xml
new file mode 100644
index 00000000..50a95237
--- /dev/null
+++ b/templates/sitemaps/sitemap.xml
@@ -0,0 +1,9 @@
+
+
+{% for url in urlset %}
+{{ url.location }}
+{% if url.lastmod %}{{ url.lastmod|date:"Y-m-d" }}{% endif %}
+{% if url.changefreq %}{{ url.changefreq }}{% endif %}
+{% if url.priority %}{{ url.priority }}{% endif %}
+{% endfor %}
+
diff --git a/urls.py b/urls.py
index 518e88e7..2d174012 100644
--- a/urls.py
+++ b/urls.py
@@ -81,7 +81,7 @@ urlpatterns += patterns('',
{'sitemaps': our_sitemaps, 'sitemap_url_name': 'sitemaps'}),
(r'^sitemap-(?P.+)\.xml$',
cache_page(1831)(sitemap_views.sitemap),
- {'sitemaps': our_sitemaps}, 'sitemaps'),
+ {'sitemaps': our_sitemaps, 'template_name': 'sitemaps/sitemap.xml'}, 'sitemaps'),
)
# Authentication / Admin
--
cgit v1.2.3
From 4c5b478543184ea395e0e692d3bcf666fb7513ad Mon Sep 17 00:00:00 2001
From: Dan McGee
Date: Sat, 8 Nov 2014 15:58:26 -0600
Subject: Convert sitemap.xml template to Jinja2
Signed-off-by: Dan McGee
---
templates/sitemaps/sitemap.xml | 9 ---------
templates/sitemaps/sitemap.xml.jinja | 9 +++++++++
urls.py | 2 +-
3 files changed, 10 insertions(+), 10 deletions(-)
delete mode 100644 templates/sitemaps/sitemap.xml
create mode 100644 templates/sitemaps/sitemap.xml.jinja
diff --git a/templates/sitemaps/sitemap.xml b/templates/sitemaps/sitemap.xml
deleted file mode 100644
index 50a95237..00000000
--- a/templates/sitemaps/sitemap.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-{% for url in urlset %}
-{{ url.location }}
-{% if url.lastmod %}{{ url.lastmod|date:"Y-m-d" }}{% endif %}
-{% if url.changefreq %}{{ url.changefreq }}{% endif %}
-{% if url.priority %}{{ url.priority }}{% endif %}
-{% endfor %}
-
diff --git a/templates/sitemaps/sitemap.xml.jinja b/templates/sitemaps/sitemap.xml.jinja
new file mode 100644
index 00000000..0808a7de
--- /dev/null
+++ b/templates/sitemaps/sitemap.xml.jinja
@@ -0,0 +1,9 @@
+
+
+{% for url in urlset %}
+{{ url.location }}
+{% if url.lastmod %}{{ url.lastmod|date("Y-m-d") }}{% endif %}
+{% if url.changefreq %}{{ url.changefreq }}{% endif %}
+{% if url.priority %}{{ url.priority }}{% endif %}
+{% endfor %}
+
diff --git a/urls.py b/urls.py
index 2d174012..6d896b3c 100644
--- a/urls.py
+++ b/urls.py
@@ -81,7 +81,7 @@ urlpatterns += patterns('',
{'sitemaps': our_sitemaps, 'sitemap_url_name': 'sitemaps'}),
(r'^sitemap-(?P.+)\.xml$',
cache_page(1831)(sitemap_views.sitemap),
- {'sitemaps': our_sitemaps, 'template_name': 'sitemaps/sitemap.xml'}, 'sitemaps'),
+ {'sitemaps': our_sitemaps, 'template_name': 'sitemaps/sitemap.xml.jinja'}, 'sitemaps'),
)
# Authentication / Admin
--
cgit v1.2.3
From 96a7614285325b693434f3fd011238000d75926d Mon Sep 17 00:00:00 2001
From: Dan McGee
Date: Sat, 8 Nov 2014 16:31:38 -0600
Subject: Add a news-specific sitemap
This follows the spec at
https://support.google.com/news/publisher/answer/74288?hl=en#tagdefinitions
Signed-off-by: Dan McGee
---
sitemaps.py | 7 +++++++
templates/sitemaps/news_sitemap.xml.jinja | 14 ++++++++++++++
urls.py | 9 ++++++++-
3 files changed, 29 insertions(+), 1 deletion(-)
create mode 100644 templates/sitemaps/news_sitemap.xml.jinja
diff --git a/sitemaps.py b/sitemaps.py
index eb4e05d9..fb81357e 100644
--- a/sitemaps.py
+++ b/sitemaps.py
@@ -98,6 +98,13 @@ class NewsSitemap(Sitemap):
return 'yearly'
+class RecentNewsSitemap(NewsSitemap):
+ def items(self):
+ now = datetime.utcnow().replace(tzinfo=utc)
+ cutoff = now - timedelta(days=30)
+ return super(RecentNewsSitemap, self).items().filter(postdate__gte=cutoff)
+
+
class ReleasesSitemap(Sitemap):
changefreq = "monthly"
diff --git a/templates/sitemaps/news_sitemap.xml.jinja b/templates/sitemaps/news_sitemap.xml.jinja
new file mode 100644
index 00000000..97dd17b5
--- /dev/null
+++ b/templates/sitemaps/news_sitemap.xml.jinja
@@ -0,0 +1,14 @@
+
+
+{% for url in urlset %}
+{{ url.location }}
+{% if url.lastmod %}{{ url.lastmod|date("Y-m-d") }}{% endif %}
+{% if url.changefreq %}{{ url.changefreq }}{% endif %}
+{% if url.priority %}{{ url.priority }}{% endif %}
+
+ Arch Linux Newsen
+ {% if url.item.postdate %}{{ url.item.postdate|date("c") }}{% endif %}
+ {% if url.item.title %}{{ url.item.title }}{% endif %}
+
+{% endfor %}
+
diff --git a/urls.py b/urls.py
index 6d896b3c..c35baedf 100644
--- a/urls.py
+++ b/urls.py
@@ -18,6 +18,8 @@ our_sitemaps = {
'releases': sitemaps.ReleasesSitemap,
}
+news_sitemaps = { 'news': sitemaps.RecentNewsSitemap }
+
urlpatterns = []
# Public pages
@@ -81,7 +83,12 @@ urlpatterns += patterns('',
{'sitemaps': our_sitemaps, 'sitemap_url_name': 'sitemaps'}),
(r'^sitemap-(?P.+)\.xml$',
cache_page(1831)(sitemap_views.sitemap),
- {'sitemaps': our_sitemaps, 'template_name': 'sitemaps/sitemap.xml.jinja'}, 'sitemaps'),
+ {'sitemaps': our_sitemaps, 'template_name': 'sitemaps/sitemap.xml.jinja'},
+ 'sitemaps'),
+ (r'^news-sitemap\.xml$',
+ cache_page(1831)(sitemap_views.sitemap),
+ {'sitemaps': news_sitemaps, 'template_name': 'sitemaps/news_sitemap.xml.jinja'},
+ 'news-sitemap'),
)
# Authentication / Admin
--
cgit v1.2.3
From 88a457f1c8ae057278f1a7cadb6c163183484019 Mon Sep 17 00:00:00 2001
From: Dan McGee
Date: Sat, 8 Nov 2014 19:14:32 -0600
Subject: Minor news listing tweaks
Signed-off-by: Dan McGee
---
news/urls.py | 3 +--
templates/news/list.html | 3 +--
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/news/urls.py b/news/urls.py
index 0eec6d86..c13722d4 100644
--- a/news/urls.py
+++ b/news/urls.py
@@ -5,8 +5,7 @@ from .views import (NewsDetailView, NewsListView,
urlpatterns = patterns('news.views',
- (r'^$',
- NewsListView.as_view(), {}, 'news-list'),
+ (r'^$', NewsListView.as_view(), {}, 'news-list'),
(r'^preview/$', 'preview'),
# old news URLs, permanent redirect view so we don't break all links
diff --git a/templates/news/list.html b/templates/news/list.html
index 4acbc7e9..71cd3d02 100644
--- a/templates/news/list.html
+++ b/templates/news/list.html
@@ -10,7 +10,7 @@
{% block content %}
-
News Archives
+
Arch Linux News Archives
{% if perms.news.add_news %}
@@ -54,6 +54,5 @@
{% include "news/paginator.html" %}
-
{% endblock %}
--
cgit v1.2.3
From 327bd4cfc599dbeddd501afd5221a1d2ff7eee08 Mon Sep 17 00:00:00 2001
From: Dan McGee
Date: Sat, 8 Nov 2014 19:15:35 -0600
Subject: Paginate the todolist listing page
Signed-off-by: Dan McGee
---
sitestatic/archweb.css | 11 +++++++++++
templates/todolists/list.html | 7 ++++++-
todolists/urls.py | 6 +++---
todolists/views.py | 13 ++++++++-----
4 files changed, 28 insertions(+), 9 deletions(-)
diff --git a/sitestatic/archweb.css b/sitestatic/archweb.css
index edabcfb7..cd46e4c0 100644
--- a/sitestatic/archweb.css
+++ b/sitestatic/archweb.css
@@ -655,6 +655,17 @@ div.news-article .article-info {
width: 75%;
}
+/* todolists: list */
+.todolist-nav {
+ float: right;
+ margin-top: -2.2em;
+}
+
+ .todolist-nav .prev,
+ .todolist-nav .next {
+ margin: 0 1em;
+ }
+
/* donate: donor list */
#donor-list ul {
width: 100%;
diff --git a/templates/todolists/list.html b/templates/todolists/list.html
index 7f0368de..983a49f0 100644
--- a/templates/todolists/list.html
+++ b/templates/todolists/list.html
@@ -16,7 +16,10 @@
Todo lists are used by the developers when a rebuild of a set of
packages is needed. This is common when a library has a version bump,
during a toolchain rebuild, or a general cleanup of packages in the
- repositories. The progress can be tracked here.
+ repositories. The progress can be tracked here, and completed todo lists
+ can be browsed as well.
+
+ {% include "todolists/paginator.html" %}
@@ -46,6 +49,8 @@
{% endfor %}
+
+ {% include "todolists/paginator.html" %}
{% endblock %}
diff --git a/todolists/urls.py b/todolists/urls.py
index 6617d7dd..ed065f50 100644
--- a/todolists/urls.py
+++ b/todolists/urls.py
@@ -1,11 +1,11 @@
from django.conf.urls import patterns
from django.contrib.auth.decorators import permission_required
-from .views import (view_redirect, view, todolist_list, add, edit, flag,
- list_pkgbases, DeleteTodolist)
+from .views import (view_redirect, view, add, edit, flag,
+ list_pkgbases, DeleteTodolist, TodolistListView)
urlpatterns = patterns('',
- (r'^$', todolist_list),
+ (r'^$', TodolistListView.as_view(), {}, 'todolist-list'),
# old todolists URLs, permanent redirect view so we don't break all links
(r'^(?P\d+)/$', view_redirect),
diff --git a/todolists/views.py b/todolists/views.py
index c37c13f5..c781a562 100644
--- a/todolists/views.py
+++ b/todolists/views.py
@@ -7,7 +7,7 @@ from django.shortcuts import (get_list_or_404, get_object_or_404,
redirect, render)
from django.db import transaction
from django.views.decorators.cache import never_cache
-from django.views.generic import DeleteView
+from django.views.generic import DeleteView, ListView
from django.template import Context, loader
from django.utils.timezone import now
@@ -91,10 +91,13 @@ def list_pkgbases(request, slug, svn_root):
return HttpResponse('\n'.join(pkgbases), content_type='text/plain')
-def todolist_list(request):
- incomplete_only = request.user.is_anonymous()
- lists = get_annotated_todolists(incomplete_only)
- return render(request, 'todolists/list.html', {'lists': lists})
+class TodolistListView(ListView):
+ context_object_name = "lists"
+ template_name = "todolists/list.html"
+ paginate_by = 50
+
+ def get_queryset(self):
+ return get_annotated_todolists()
@never_cache
--
cgit v1.2.3
From b1aa075652f89efa4f1af9d62c214e93fd453001 Mon Sep 17 00:00:00 2001
From: Dan McGee
Date: Sat, 8 Nov 2014 19:26:51 -0600
Subject: Add a todolists sitemap
Signed-off-by: Dan McGee
---
sitemaps.py | 22 +++++++++++++++++++++-
urls.py | 1 +
2 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/sitemaps.py b/sitemaps.py
index fb81357e..03ad9254 100644
--- a/sitemaps.py
+++ b/sitemaps.py
@@ -8,6 +8,7 @@ from main.models import Package
from news.models import News
from packages.utils import get_group_info, get_split_packages_info
from releng.models import Release
+from todolists.models import Todolist
class PackagesSitemap(Sitemap):
@@ -112,7 +113,7 @@ class ReleasesSitemap(Sitemap):
return Release.objects.all().defer('info', 'torrent_data').order_by()
def lastmod(self, obj):
- return obj.created
+ return obj.last_modified
def priority(self, obj):
if obj.available:
@@ -120,6 +121,25 @@ class ReleasesSitemap(Sitemap):
return "0.2"
+class TodolistSitemap(Sitemap):
+ priority = "0.4"
+
+ def __init__(self):
+ now = datetime.utcnow().replace(tzinfo=utc)
+ self.two_weeks_ago = now - timedelta(days=14)
+
+ def items(self):
+ return Todolist.objects.all().defer('raw').order_by()
+
+ def lastmod(self, obj):
+ return obj.last_modified
+
+ def changefreq(self, obj):
+ if obj.last_modified > self.two_weeks_ago:
+ return 'weekly'
+ return 'monthly'
+
+
class BaseSitemap(Sitemap):
DEFAULT_PRIORITY = 0.7
diff --git a/urls.py b/urls.py
index c35baedf..36e3fef1 100644
--- a/urls.py
+++ b/urls.py
@@ -16,6 +16,7 @@ our_sitemaps = {
'package-groups': sitemaps.PackageGroupsSitemap,
'split-packages': sitemaps.SplitPackagesSitemap,
'releases': sitemaps.ReleasesSitemap,
+ 'todolists': sitemaps.TodolistSitemap,
}
news_sitemaps = { 'news': sitemaps.RecentNewsSitemap }
--
cgit v1.2.3
From e5fc7cd53f6082f2911bc6c8cf8ea4f4ca4addc8 Mon Sep 17 00:00:00 2001
From: Dan McGee
Date: Sat, 8 Nov 2014 19:41:21 -0600
Subject: Add paginator template for todolists
Signed-off-by: Dan McGee
---
templates/todolists/paginator.html | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
create mode 100644 templates/todolists/paginator.html
diff --git a/templates/todolists/paginator.html b/templates/todolists/paginator.html
new file mode 100644
index 00000000..3b077419
--- /dev/null
+++ b/templates/todolists/paginator.html
@@ -0,0 +1,22 @@
+{% if is_paginated %}
+
+{% endif %}
--
cgit v1.2.3