Change the per-month archive URL.
1 "Module to define some objects in for use in the archive pages"
5 "An archive for a queryset of objects"
6 def __init__(self, queryset):
7 "Build an Archive object out of the passed queryset"
8 self.queryset = queryset
11 return iter(self.years)
15 if not hasattr(self, "_years"):
17 return sorted(self._years.values(), key=lambda y: -y.year)
19 def build_years(self):
21 for entry in self.queryset:
22 year = entry.pub_date.year
23 month = entry.pub_date.month
25 if year not in self._years:
26 self._years[year] = Year(year)
27 yearobj = self._years[year]
29 if month not in yearobj.months:
30 yearobj.months[month] = Month(year, month)
31 monthobj = yearobj.months[month]
33 monthobj.entries.append(entry)
37 def __init__(self, year):
41 def __unicode__(self):
42 return unicode(self.year)
45 return iter(sorted(self.months.values(), key=lambda m: m.month))
49 return sum([month.count for month in self])
53 def __init__(self, year, month):
60 return len(self.entries)
63 return iter(sorted(self.entries, key=lambda x: x.pub_date))
65 def __unicode__(self):
66 from datetime import date
67 return "%s %s" % (date(2000, self.month, 1).strftime("%B"), unicode(self.year))
71 from datetime import date
72 return date(2000, self.month, 1).strftime("%b").lower()
76 from django.core.urlresolvers import reverse
78 return reverse("blog-archive-month", args=[self.year, self.abbrev])