Simplify archive generation code

This commit is contained in:
Grégory Soutadé 2013-02-17 08:57:37 +01:00
parent cce2361b75
commit 0e60732f26
1 changed files with 14 additions and 26 deletions

View File

@ -48,39 +48,27 @@ class Archive(Index):
dom = self.parseTemplate(blog, src, output, 'archive', 'archive')
if dom is None: return self.report
posts = Post.objects.filter(published=True, front_page=True).order_by('creation_date')
first_post = Post.objects.filter(published=True, front_page=True).order_by('creation_date')[0]
last_post = Post.objects.filter(published=True, front_page=True).order_by('-creation_date')[0]
if posts.count() != 0:
self.cur_year = int(posts[0].creation_date.year)
start_year = first_post.creation_date.year
end_year = last_post.creation_date.year
my_post = []
now = datetime.now()
nb_post = len(posts)
for i in range(0, nb_post):
if self.cur_year == now.year:
break
for i in range(start_year, end_year):
if i == now.year: continue
if i < nb_post-1:
if posts[i].creation_date.year != posts[i+1].creation_date.year:
my_post.reverse()
self.cur_year = i
self.nb_pages = 0
self.cur_page = 0
self.cur_post = 0
posts = Post.objects.filter(published=True, front_page=True, creation_date__gt=datetime(i, 1, 1), creation_date__lt=datetime(i+1, 1, 1)).order_by('-creation_date')
self.dirname = '/archive/' + str(self.cur_year)
self.nb_pages = 0
self.cur_page = 0
self.cur_post = 0
self.dirname = '/archive/' + str(i)
self.generatePages(dom, my_post, src, output, 'archive')
self.cur_year = int(posts[i+1].creation_date.year)
#print 'New year ' + str(self.cur_year)
my_post = []
else:
my_post.append(posts[i])
else:
# Last post
my_post.append(posts[i])
if nb_post != 1 and posts[i].creation_date.year != posts[i-1].creation_date.year:
self.cur_year = int(posts[i].creation_date.year)
self.generatePages(dom, posts, src, output, 'archive')
if not self.somethingWrote:
self.addReport('Nothing changed')