import os from xml.dom.minidom import parse, parseString from dynastie.generators.generator import DynastieGenerator from dynastie.generators.index import Index from django.db import models class Tag(Index): cur_page = 0 nb_pages = 0 cur_post = 0 posts_per_page = 0 filename = 'index' dirname = '' cur_tag = None def createTag(self, posts, dom, root, node): if node.hasAttribute('name'): self.replaceByText(dom, root, node, self.cur_tag.name) if node.hasAttribute('description'): self.replaceByText(dom, root, node, self.cur_tag.description) return None def generate(self, blog, src, output): from dynastie.models import Post, Blog, Tag self.hooks = {'posts' : self.createPosts, 'navigation' : self.createNavigation, 'tag' : self.createTag, 'tags' : self.createTags, 'replace' : self.createReplace} dom = self.parseTemplate(blog, src, output, 'tag', 'tag') if dom is None: return self.report tags = Tag.objects.all() for tag in tags: self.cur_tag = tag posts = Post.objects.filter(tags__in=[tag.id], published=True).order_by('-creation_date') self.nb_pages = 0 self.cur_page = 0 self.cur_post = 0 self.dirname = '/tag/' + tag.name_slug self.generatePages(dom, posts, src, output, 'tag', 'tag') if not self.somethingWrote: self.addReport('Nothing changed') return self.report