diff --git a/generators/archive.py b/generators/archive.py index 076d1d9..db21b10 100644 --- a/generators/archive.py +++ b/generators/archive.py @@ -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')