diff --git a/dynastie/forms.py b/dynastie/forms.py index 94e2447..1d256ce 100755 --- a/dynastie/forms.py +++ b/dynastie/forms.py @@ -33,7 +33,7 @@ class PostForm(ModelForm): class Meta: model = Post - exclude = ('title_slug', 'creation_date', 'modification_date', 'author', 'blog', 'tags', 'content_format') + exclude = ('title_slug', 'creation_date', 'modification_date', 'author', 'blog', 'tags', 'content_format', 'post_type') def __init__(self, *args, **kwargs): super(PostForm, self).__init__(*args, **kwargs) @@ -42,7 +42,7 @@ class PostForm(ModelForm): class DraftForm(PostForm): class Meta: model = Draft - exclude = ('title_slug', 'creation_date', 'modification_date', 'author', 'blog', 'tags', 'content_format', 'published') + exclude = ('title_slug', 'creation_date', 'modification_date', 'author', 'blog', 'tags', 'content_format', 'published', 'post_type') class CategoryForm(ModelForm): class Meta: diff --git a/dynastie/generators/generator.py b/dynastie/generators/generator.py index 2bb18b5..d843a9c 100755 --- a/dynastie/generators/generator.py +++ b/dynastie/generators/generator.py @@ -105,6 +105,10 @@ class DynastieGenerator: else: cache_obj = cache_objs[0] + if cache_obj and not os.path.exists(filename): + cache_obj.delete() + cache_obj = None + if cache_obj or os.path.exists(filename): if not cache_obj: src_md5 = hashlib.md5() @@ -262,7 +266,7 @@ class DynastieGenerator: continue for child in target_block.childNodes: - block.parentNode.appendChild(child.cloneNode(True)) + block.parentNode.insertBefore(child.cloneNode(True),block) block_found = True break block.parentNode.removeChild(block) diff --git a/dynastie/generators/index.py b/dynastie/generators/index.py index cd87e62..11ea322 100755 --- a/dynastie/generators/index.py +++ b/dynastie/generators/index.py @@ -240,10 +240,11 @@ class Index(DynastieGenerator): if not user: user = post.author # Markdown replace if not post or (post and post.content_format == Post.CONTENT_TEXT): - internal_posts = re.search('\[\[([0-9]+)\]\]', text) + internal_posts = re.finditer('\[\[([0-9]+)\]\]', text) if internal_posts: - for post_id in internal_posts.groups(): - post_id = int(post_id) + for post in internal_posts: + post_id = post.groups() + post_id = int(post_id[0]) if post_id in self.parent_posts: continue _,post = self._have_I_right(user, post_id) if not post: continue @@ -308,7 +309,7 @@ class Index(DynastieGenerator): from dynastie.models import Post post = self.cur_post_obj - if post.id in self.hash_posts and not self.first_try: + if post.id > 0 and post.id in self.hash_posts.keys() and not self.first_try: node,_ = self.hash_posts[post.id] return node.cloneNode(0) @@ -334,27 +335,28 @@ class Index(DynastieGenerator): continue new_node = dom.createTextNode(post_content) content_node.appendChild(new_node) - - writer = StrictUTF8Writer() - post_elem.writexml(writer) - content = writer.getvalue().encode('utf-8') - - md5 = hashlib.md5() - md5.update(content) - if post.id in self.hash_posts: - # Here, we are in first_try, check that computed - # post has the same result than the one in cache - self.first_try = False - - _,md5_2 = self.hash_posts[post.id] + # Disable this cache + # writer = StrictUTF8Writer() + # post_elem.writexml(writer) + # content = writer.getvalue().encode('utf-8') - # If not, clear cache - if md5.digest() != md5_2: - self.hash_posts = {} - self.hash_posts[post.id] = (post_elem.cloneNode(0), md5.digest()) - else: - self.hash_posts[post.id] = (post_elem.cloneNode(0), md5.digest()) + # md5 = hashlib.md5() + # md5.update(content) + + # if post.id in self.hash_posts: + # # Here, we are in first_try, check that computed + # # post has the same result than the one in cache + # self.first_try = False + + # _,md5_2 = self.hash_posts[post.id] + + # # If not, clear cache + # if md5.digest() != md5_2: + # self.hash_posts = {} + # self.hash_posts[post.id] = (post_elem.cloneNode(0), md5.digest()) + # else: + # self.hash_posts[post.id] = (post_elem.cloneNode(0), md5.digest()) return post_elem @@ -363,10 +365,9 @@ class Index(DynastieGenerator): create_link = (node.getAttribute('link') == '1') for i in range(0, self.posts_per_page): post_elem = self.createElement(dom, 'post') - if len(posts) > self.cur_post: + if self.cur_post < len(posts): self.cur_post_obj = posts[self.cur_post] post_elem = self.createPost(posts, dom, post_elem, node) - if post_elem is None: continue else: post_elem = self.createElement(dom, '', 'No posts yet') self.cur_post_obj = None @@ -554,8 +555,6 @@ class Index(DynastieGenerator): self.cur_page = self.cur_page + 1 filename = self.dirname + '/' + self.filename + str(self.cur_page) + '.html' - filename = output + filename - while os.path.exists(filename): self.addReport('Removing unused ' + filename) os.unlink(filename) @@ -565,7 +564,6 @@ class Index(DynastieGenerator): os.unlink(filename) self.cur_page = self.cur_page + 1 filename = self.dirname + '/' + self.filename + str(self.cur_page) + '.html' - filename = output + filename def generate(self, blog, src, output): from dynastie.models import Post, Blog