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 Category(Index): cur_page = 0 nb_pages = 0 cur_post = 0 posts_per_page = 0 filename = 'index' dirname = '' cur_category = None def createCategory(self, posts, dom, root, node): if node.hasAttribute('name'): self.replaceByText(dom, root, node, self.cur_category.name) if node.hasAttribute('description'): self.replaceByText(dom, root, node, self.cur_category.description) return None def generate(self, blog, src, output): from dynastie.models import Post, Blog, Category self.hooks['category'] = self.createCategory dom = self.parseTemplate(blog, src, output, 'category', 'category') if dom is None: return self.report categories = Category.objects.all() for category in categories: self.cur_category = category posts = Post.objects.filter(category__exact=category, published=True).order_by('-creation_date') self.nb_pages = 0 self.cur_page = 0 self.cur_post = 0 self.dirname = '/category/' + category.name_slug self.generatePages(dom, posts, src, output, 'category', 'category') if not self.somethingWrote: self.addReport('Nothing changed') return self.report