diff --git a/forms.py b/forms.py
index 292c3f6..ba62ab2 100644
--- a/forms.py
+++ b/forms.py
@@ -5,13 +5,13 @@ class BlogForm(ModelForm):
class Meta:
model = Blog
-class ArticleForm(ModelForm):
+class PostForm(ModelForm):
class Meta:
- model = Article
+ model = Post
exclude = ('title_slug', 'creation_date', 'author', 'blog', 'tags')
def __init__(self, *args, **kwargs):
- super(ArticleForm, self).__init__(*args, **kwargs)
+ super(PostForm, self).__init__(*args, **kwargs)
self.fields['category'].choices = [(cat.id, cat.name) for cat in Category.objects.all()]
class CategoryForm(ModelForm):
diff --git a/generators/__init__.py b/generators/__init__.py
index 9a1cf8c..bd07e83 100644
--- a/generators/__init__.py
+++ b/generators/__init__.py
@@ -1 +1 @@
-__all__ = ["generator", "index", "article", "category", "archive", "rss", "atom"]
+__all__ = ["generator", "index", "post", "category", "archive", "rss", "atom"]
diff --git a/generators/archive.py b/generators/archive.py
index 5b8d3b0..35621a0 100644
--- a/generators/archive.py
+++ b/generators/archive.py
@@ -9,24 +9,24 @@ class Archive(Index):
cur_page = 0
nb_pages = 0
- cur_article = 0
- articles_per_page = 0
+ cur_post = 0
+ posts_per_page = 0
filename = 'index'
dirname = ''
cur_year = 0
- def createArchive(self, articles, dom, root, node):
+ def createArchive(self, posts, dom, root, node):
if node.hasAttribute('year'):
self.replaceByText(dom, root, node, str(self.cur_year))
- def createArchives(self, src, output, dom, hooks, articles):
+ def createArchives(self, src, output, dom, hooks, posts):
filename = self.filename + '.html'
self.nb_pages = 0
self.cur_page = 0
- self.cur_article = 0
+ self.cur_post = 0
- if len(articles) > self.articles_per_page:
- self.nb_pages = self.computeNbPages(len(articles), self.articles_per_page)
+ if len(posts) > self.posts_per_page:
+ self.nb_pages = self.computeNbPages(len(posts), self.posts_per_page)
self.dirname = '/archive/' + str(self.cur_year)
@@ -36,7 +36,7 @@ class Archive(Index):
while self.cur_page <= self.nb_pages:
#print 'Generate ' + filename
nodes = dom.getElementsByTagName("*")
- nodes[0] = self.parse(src, hooks, articles, dom, nodes[0])
+ nodes[0] = self.parse(src, hooks, posts, dom, nodes[0])
self.writeIfNotTheSame(output + self.dirname + '/' + filename, nodes[0])
self.cur_page = self.cur_page + 1
filename = self.filename + str(self.cur_page) + '.html'
@@ -53,9 +53,9 @@ class Archive(Index):
filename = output + self.dirname + '/' + self.filename + str(self.cur_page) + '.html'
def generate(self, blog, src, output):
- from dynastie.models import Article, Blog
+ from dynastie.models import Post, Blog
- hooks = {'articles' : self.createArticles,
+ hooks = {'posts' : self.createPosts,
'navigation' : self.createNavigation,
'archive' : self.createArchive}
@@ -72,47 +72,47 @@ class Archive(Index):
if not os.path.exists(output + '/archive'):
os.mkdir(output + '/archive')
- article_nodes = dom.getElementsByTagNameNS(self.URI, "articles")
- if not article_nodes is None:
- if article_nodes[0].hasAttribute("limit"):
- self.articles_per_page = int(article_nodes[0].getAttribute("limit"))
+ post_nodes = dom.getElementsByTagNameNS(self.URI, "posts")
+ if not post_nodes is None:
+ if post_nodes[0].hasAttribute("limit"):
+ self.posts_per_page = int(post_nodes[0].getAttribute("limit"))
else:
- self.articles_per_page = 5
+ self.posts_per_page = 5
else:
- self.addError('No tag dyn:articles found')
+ self.addError('No tag dyn:posts found')
- articles = Article.objects.filter(published=True, front_page=True).order_by('creation_date')
+ posts = Post.objects.filter(published=True, front_page=True).order_by('creation_date')
- if articles.count() != 0:
- self.cur_year = int(articles[0].creation_date.year)
+ if posts.count() != 0:
+ self.cur_year = int(posts[0].creation_date.year)
- my_articles = []
+ my_post = []
now = datetime.now()
- nb_articles = len(articles)
- for i in range(0, nb_articles):
+ nb_post = len(posts)
+ for i in range(0, nb_post):
if self.cur_year == now.year:
break
- if i < nb_articles-1:
- if articles[i].creation_date.year != articles[i+1].creation_date.year:
+ if i < nb_post-1:
+ if posts[i].creation_date.year != posts[i+1].creation_date.year:
dom = parse(src + '/_archive.html')
- my_articles.reverse()
- self.createArchives(src, output, dom, hooks, my_articles)
- self.cur_year = int(articles[i+1].creation_date.year)
+ my_post.reverse()
+ self.createArchives(src, output, dom, hooks, my_post)
+ self.cur_year = int(posts[i+1].creation_date.year)
#print 'New year ' + str(self.cur_year)
- my_articles = []
+ my_post = []
if self.cur_year == int(now.year):
break
else:
- my_articles.append(articles[i])
+ my_post.append(posts[i])
else:
- # Last article
- my_articles.append(article)
- if nb_articles != 1 and articles[i].creation_date.year != articles[i-1].creation_date.year:
- self.cur_year = int(articles[i].creation_date.year)
+ # Last post
+ my_post.append(post)
+ 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)
- if len(my_articles) != 0:
- self.createArchives(src, output, dom, hooks, my_articles)
+ if len(my_post) != 0:
+ self.createArchives(src, output, dom, hooks, my_post)
if not self.somethingWrote:
self.addReport('Nothing changed')
diff --git a/generators/article.py b/generators/article.py
deleted file mode 100644
index 1eb59d3..0000000
--- a/generators/article.py
+++ /dev/null
@@ -1,51 +0,0 @@
-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 Article(Index):
-
- def _createArticle(self, article, dom, article_elem, root):
- self.createArticle(article, dom, article_elem, root)
- article_nodes = dom.getElementsByTagNameNS(self.URI, "article")
- article_elem = article_nodes[0]
- article_elem.parentNode.removeChild(article_elem)
-
- def generate(self, blog, src, output):
- from dynastie.models import Article, Blog
-
- hooks = {'article' : self._createArticle}
-
- if not os.path.exists(src + '/_article.html'):
- self.addError('No _article.html found, exiting')
- return self.report
-
- try:
- dom = parse(src + '/_article.html')
- except xml.dom.DOMException as e:
- self.addError('Error parsing _article.html : ' + e)
- return self.report
-
- if not os.path.exists(output + '/article'):
- os.mkdir(output + '/article')
-
- articles = Article.objects.all()
-
- for article in articles:
- #print 'Generate ' + filename
- nodes = dom.getElementsByTagName("*")
- nodes[0] = self.parse(src, hooks, article, dom, nodes[0])
- filename = output + '/article/'
- filename = filename + article.creation_date.strftime("%Y") + '/' + article.creation_date.strftime("%m") + '/'
- if not os.path.exists(filename):
- os.makedirs(filename)
- filename = filename + article.title_slug + '.html'
- self.writeIfNotTheSame(filename, nodes[0])
- dom = parse(src + '/_article.html')
-
- if not self.somethingWrote:
- self.addReport('Nothing changed')
-
- return self.report
-
diff --git a/generators/atom.py b/generators/atom.py
index e81f14f..313f9c2 100644
--- a/generators/atom.py
+++ b/generators/atom.py
@@ -9,7 +9,7 @@ from django.db import models
class Atom(RSS):
def generate(self, blog, src, output):
- from dynastie.models import Article, Blog
+ from dynastie.models import Post, Blog
now = datetime.datetime.now()
@@ -31,35 +31,35 @@ class Atom(RSS):
self.appendElement(dom, root, 'generator', 'The Dynastie project', {'uri':'http://indefero.soutade.fr/p/dynastie', 'version':'0.1'})
self.appendElement(dom, root, 'link', '', {'rel':'self', 'type':'application/atom+xml', 'href':address + '/atom.xml'})
- articles = Article.objects.filter(published=True).order_by('-creation_date')[:10]
+ posts = Post.objects.filter(published=True).order_by('-creation_date')[:10]
- for article in articles:
+ for post in posts:
item = dom.createElement('entry')
- self.appendElement(dom, item, 'title', article.title)
- path = 'http://' + blog.name + article.getPath()
+ self.appendElement(dom, item, 'title', post.title)
+ path = 'http://' + blog.name + post.getPath()
self.appendElement(dom, item, 'link', '', {'rel':'alternate', 'type':'text/html', 'href':path})
- creationDate = article.creation_date.strftime('%Y-%m-%dT%H:%M:%SZ')
+ creationDate = post.creation_date.strftime('%Y-%m-%dT%H:%M:%SZ')
self.appendElement(dom, item, 'published', creationDate)
self.appendElement(dom, item, 'updated', creationDate)
self.appendElement(dom, item, 'id', path)
author = dom.createElement('author')
- self.appendElement(dom, author, 'name', article.author.first_name + ' ' + article.author.last_name)
- self.appendElement(dom, author, 'email', article.author.email)
+ self.appendElement(dom, author, 'name', post.author.first_name + ' ' + post.author.last_name)
+ self.appendElement(dom, author, 'email', post.author.email)
item.appendChild(author)
- filename = blog.src_path + '/_articles/' + str(article.id)
+ filename = blog.src_path + '/_post/' + str(post.id)
if not os.path.exists(filename):
self.addError('File does not exists ' + filename)
return
f = open(filename, 'rb')
- article_content = ''
+ post_content = ''
f.close()
- self.appendElement(dom, item, 'summary', article_content, {'type':'html'})
- self.appendElement(dom, item, 'content', article_content, {'type':'html'})
+ self.appendElement(dom, item, 'summary', post_content, {'type':'html'})
+ self.appendElement(dom, item, 'content', post_content, {'type':'html'})
root.appendChild(item)
diff --git a/generators/category.py b/generators/category.py
index cd61bb6..9bf3e6c 100644
--- a/generators/category.py
+++ b/generators/category.py
@@ -8,22 +8,22 @@ class Category(Index):
cur_page = 0
nb_pages = 0
- cur_article = 0
- articles_per_page = 0
+ cur_post = 0
+ posts_per_page = 0
filename = 'index'
dirname = ''
cur_category = None
- def createCategory(self, articles, dom, root, node):
+ 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)
def generate(self, blog, src, output):
- from dynastie.models import Article, Blog, Category
+ from dynastie.models import Post, Blog, Category
- hooks = {'articles' : self.createArticles,
+ hooks = {'posts' : self.createPosts,
'navigation' : self.createNavigation,
'category' : self.createCategory}
@@ -40,30 +40,30 @@ class Category(Index):
if not os.path.exists(output + '/category'):
os.mkdir(output + '/category')
- article_nodes = dom.getElementsByTagNameNS(self.URI, "articles")
- if not article_nodes is None:
- if article_nodes[0].hasAttribute("limit"):
- self.articles_per_page = int(article_nodes[0].getAttribute("limit"))
+ post_nodes = dom.getElementsByTagNameNS(self.URI, "posts")
+ if not post_nodes is None:
+ if post_nodes[0].hasAttribute("limit"):
+ self.posts_per_page = int(post_nodes[0].getAttribute("limit"))
else:
- self.articles_per_page = 5
+ self.posts_per_page = 5
else:
- self.addError('No tag dyn:articles found')
+ self.addError('No tag dyn:posts found')
categories = Category.objects.all()
for category in categories:
self.cur_category = category
filename = self.filename + '.html'
- articles = Article.objects.filter(category__exact=category, published=True).order_by('-creation_date')
+ posts = Post.objects.filter(category__exact=category, published=True).order_by('-creation_date')
self.nb_pages = 0
self.cur_page = 0
- self.cur_article = 0
+ self.cur_post = 0
self.dirname = '/category/' + category.name_slug
- if articles.count() > self.articles_per_page:
- self.nb_pages = self.computeNbPages(articles.count(), self.articles_per_page)
+ if posts.count() > self.posts_per_page:
+ self.nb_pages = self.computeNbPages(posts.count(), self.posts_per_page)
if not os.path.exists(output + self.dirname):
os.mkdir(output + self.dirname)
@@ -72,7 +72,7 @@ class Category(Index):
while self.cur_page <= self.nb_pages:
#print 'Generate ' + filename
nodes = dom.getElementsByTagName("*")
- nodes[0] = self.parse(src, hooks, articles, dom, nodes[0])
+ nodes[0] = self.parse(src, hooks, posts, dom, nodes[0])
self.writeIfNotTheSame(output + self.dirname + '/' + filename, nodes[0])
self.cur_page = self.cur_page + 1
filename = self.filename + str(self.cur_page) + '.html'
diff --git a/generators/generator.py b/generators/generator.py
index f5130d9..6cde8b8 100644
--- a/generators/generator.py
+++ b/generators/generator.py
@@ -66,8 +66,8 @@ class DynastieGenerator:
def generate(self, blog, src, output):
return
- def computeNbPages(self, nb_articles, nb_articles_per_page):
- res = math.ceil((nb_articles*1.0)/(nb_articles_per_page*1.0))
+ def computeNbPages(self, nb_post, nb_post_per_page):
+ res = math.ceil((nb_post*1.0)/(nb_post_per_page*1.0))
return int(res)
def writeIfNotTheSame(self, filename, node):
@@ -142,20 +142,20 @@ class DynastieGenerator:
new_node = dom.createTextNode(content)
root.replaceChild(new_node, node)
- def _parse(self, hooks, articles, dom, root):
+ def _parse(self, hooks, posts, dom, root):
for node in root.childNodes:
if node.prefix == 'dyn':
if node.localName in hooks:
- hooks[node.localName](articles, dom, root, node)
+ hooks[node.localName](posts, dom, root, node)
if node.hasChildNodes():
- self._parse(hooks, articles, dom, node)
+ self._parse(hooks, posts, dom, node)
return
- def parse(self, src, hooks, articles, dom, root):
+ def parse(self, src, hooks, posts, dom, root):
bases = dom.getElementsByTagNameNS(self.URI, 'base')
if len(bases) == 0:
- self._parse(hooks, articles, dom, root)
+ self._parse(hooks, posts, dom, root)
return root
if len(bases) != 1:
@@ -206,6 +206,6 @@ class DynastieGenerator:
root = dom2.firstChild
- self.parse(src, hooks, articles, dom2, root)
+ self.parse(src, hooks, posts, dom2, root)
return root
diff --git a/generators/index.py b/generators/index.py
index 77ad2b5..fae2b04 100644
--- a/generators/index.py
+++ b/generators/index.py
@@ -10,12 +10,12 @@ class Index(DynastieGenerator):
cur_page = 0
nb_pages = 0
- cur_article = 0
- articles_per_page = 0
+ cur_post = 0
+ posts_per_page = 0
filename = 'index'
dirname = ''
- def createNavigation(self, articles, dom, root, node):
+ def createNavigation(self, posts, dom, root, node):
if self.nb_pages == 0 or self.nb_pages == 1:
return ''
@@ -60,55 +60,55 @@ class Index(DynastieGenerator):
new_node = new_dom.getElementsByTagName('div')[0]
root.replaceChild(new_node.cloneNode(True), node)
- def createArticle(self, article, dom, article_elem, root):
+ def createPost(self, post, dom, post_elem, root):
values = {}
- values['title'] = self.createLinkElem(dom, article.getPath(), article.title)
- values['author'] = article.author.first_name + ' ' + article.author.last_name
- values['date'] = article.creation_date.strftime("%A, %d %B %Y %H:%m")
- values['article_content'] = ''
+ values['title'] = self.createLinkElem(dom, post.getPath(), post.title)
+ values['author'] = post.author.first_name + ' ' + post.author.last_name
+ values['date'] = post.creation_date.strftime("%A, %d %B %Y %H:%m")
+ values['post_content'] = ''
- blog = article.blog
+ blog = post.blog
blog.create_paths()
- filename = blog.src_path + '/_articles/' + str(article.id)
+ filename = blog.src_path + '/_post/' + str(post.id)
if not os.path.exists(filename):
self.addError('File does not exists ' + filename)
return
f = open(filename, 'rb')
- article_content = f.read()
+ post_content = f.read()
f.close()
- self.simpleTransform(values, dom, article_elem, root)
+ self.simpleTransform(values, dom, post_elem, root)
- content_nodes = article_elem.getElementsByTagName("div")
- post_transform = ('article_content')
+ content_nodes = post_elem.getElementsByTagName("div")
+ post_transform = ('post_content')
for content_node in content_nodes:
the_class = content_node.getAttribute('class')
if not the_class in post_transform:
continue
- if the_class == 'article_content':
- new_node = dom.createTextNode(article_content)
+ if the_class == 'post_content':
+ new_node = dom.createTextNode(post_content)
content_node.appendChild(new_node)
- def createArticles(self, articles, dom, root, node):
- articles_elem = self.createElement(dom, 'articles')
- for i in range(0, self.articles_per_page):
- article_elem = self.createElement(dom, 'article')
- if len(articles) > self.cur_article:
- self.createArticle(articles[self.cur_article], dom, article_elem, node)
+ def createPosts(self, posts, dom, root, node):
+ posts_elem = self.createElement(dom, 'posts')
+ for i in range(0, self.posts_per_page):
+ post_elem = self.createElement(dom, 'post')
+ if len(posts) > self.cur_post:
+ self.createPost(posts[self.cur_post], dom, post_elem, node)
else:
- article_elem = self.createElement(dom, '', 'No articles yet ')
- articles_elem.appendChild(article_elem)
+ post_elem = self.createElement(dom, '', 'No posts yet ')
+ posts_elem.appendChild(post_elem)
- self.cur_article = self.cur_article + 1
- if self.cur_article == len(articles):
+ self.cur_post = self.cur_post + 1
+ if self.cur_post == len(posts):
break
- root.replaceChild(articles_elem, node)
+ root.replaceChild(posts_elem, node)
- def createRecents(self, articles, dom, root, node):
- if self.cur_article == len(articles):
+ def createRecents(self, posts, dom, root, node):
+ if self.cur_post == len(posts):
root.removeChild(node)
return
@@ -121,22 +121,22 @@ class Index(DynastieGenerator):
recents_elem.appendChild(child.cloneNode(True))
list_elem = dom.createElement('ul')
for i in range(0, nb_recents):
- article_elem = dom.createElement('li')
- if self.cur_article+i < len(articles):
- article = articles[self.cur_article+i]
- link_elem = self.createLinkElem(dom, article.getPath(), article.title)
- article_elem.appendChild(link_elem)
+ post_elem = dom.createElement('li')
+ if self.cur_post+i < len(posts):
+ post = posts[self.cur_post+i]
+ link_elem = self.createLinkElem(dom, post.getPath(), post.title)
+ post_elem.appendChild(link_elem)
else:
break
- list_elem.appendChild(article_elem)
+ list_elem.appendChild(post_elem)
recents_elem.appendChild(list_elem)
root.replaceChild(recents_elem, node)
def generate(self, blog, src, output):
- from dynastie.models import Article, Blog
+ from dynastie.models import Post, Blog
- hooks = {'articles' : self.createArticles,
+ hooks = {'posts' : self.createPosts,
'navigation' : self.createNavigation,
'recents' : self.createRecents}
@@ -150,31 +150,31 @@ class Index(DynastieGenerator):
self.addError('Error parsing _index.html : ' + e)
return self.report
- article_nodes = dom.getElementsByTagNameNS(self.URI, "articles")
+ post_nodes = dom.getElementsByTagNameNS(self.URI, "posts")
- if not article_nodes is None:
- if article_nodes[0].hasAttribute("limit"):
- self.articles_per_page = int(article_nodes[0].getAttribute("limit"))
+ if not post_nodes is None:
+ if post_nodes[0].hasAttribute("limit"):
+ self.posts_per_page = int(post_nodes[0].getAttribute("limit"))
else:
- self.articles_per_page = 5
+ self.posts_per_page = 5
else:
- self.addError('No tag dyn:articles found')
+ self.addError('No tag dyn:posts found')
now = datetime.datetime.now()
cur_year = now.year
- articles = Article.objects.filter(creation_date__year=cur_year, published=True, front_page=True).order_by('-creation_date')
+ posts = Post.objects.filter(creation_date__year=cur_year, published=True, front_page=True).order_by('-creation_date')
- if articles.count() < self.articles_per_page:
- articles = Article.objects.all()[:self.articles_per_page]
+ if posts.count() < self.posts_per_page:
+ posts = Post.objects.all()[:self.posts_per_page]
- if articles.count() > self.articles_per_page:
- self.nb_pages = self.computeNbPages(articles.count(), self.articles_per_page)
+ if posts.count() > self.posts_per_page:
+ self.nb_pages = self.computeNbPages(posts.count(), self.posts_per_page)
filename = 'index.html'
while self.cur_page <= self.nb_pages:
#print 'Generate ' + filename
nodes = dom.getElementsByTagName("*")
- nodes[0] = self.parse(src, hooks, articles, dom, nodes[0])
+ nodes[0] = self.parse(src, hooks, posts, dom, nodes[0])
self.writeIfNotTheSame(output + '/' + filename, nodes[0])
self.cur_page = self.cur_page + 1
filename = 'index' + str(self.cur_page) + '.html'
diff --git a/generators/post.py b/generators/post.py
new file mode 100644
index 0000000..63a9487
--- /dev/null
+++ b/generators/post.py
@@ -0,0 +1,51 @@
+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 Post(Index):
+
+ def _createPost(self, post, dom, post_elem, root):
+ self.createPost(post, dom, post_elem, root)
+ post_nodes = dom.getElementsByTagNameNS(self.URI, "post")
+ post_elem = post_nodes[0]
+ post_elem.parentNode.removeChild(post_elem)
+
+ def generate(self, blog, src, output):
+ from dynastie.models import Post, Blog
+
+ hooks = {'post' : self._createPost}
+
+ if not os.path.exists(src + '/_post.html'):
+ self.addError('No _post.html found, exiting')
+ return self.report
+
+ try:
+ dom = parse(src + '/_post.html')
+ except xml.dom.DOMException as e:
+ self.addError('Error parsing _post.html : ' + e)
+ return self.report
+
+ if not os.path.exists(output + '/post'):
+ os.mkdir(output + '/post')
+
+ posts = Post.objects.all()
+
+ for post in posts:
+ #print 'Generate ' + filename
+ nodes = dom.getElementsByTagName("*")
+ nodes[0] = self.parse(src, hooks, post, dom, nodes[0])
+ filename = output + '/post/'
+ filename = filename + post.creation_date.strftime("%Y") + '/' + post.creation_date.strftime("%m") + '/'
+ if not os.path.exists(filename):
+ os.makedirs(filename)
+ filename = filename + post.title_slug + '.html'
+ self.writeIfNotTheSame(filename, nodes[0])
+ dom = parse(src + '/_post.html')
+
+ if not self.somethingWrote:
+ self.addReport('Nothing changed')
+
+ return self.report
+
diff --git a/generators/rss.py b/generators/rss.py
index 34b06f2..9576283 100644
--- a/generators/rss.py
+++ b/generators/rss.py
@@ -18,7 +18,7 @@ class RSS(DynastieGenerator):
return elem
def generate(self, blog, src, output):
- from dynastie.models import Article, Blog
+ from dynastie.models import Post, Blog
now = datetime.datetime.now()
@@ -40,33 +40,33 @@ class RSS(DynastieGenerator):
self.appendElement(dom, channel, 'generator', 'Dynastie')
self.appendElement(dom, channel, 'language', 'en-gb')
- articles = Article.objects.filter(published=True).order_by('-creation_date')[:10]
+ posts = Post.objects.filter(published=True).order_by('-creation_date')[:10]
- for article in articles:
+ for post in posts:
item = dom.createElement('item')
- self.appendElement(dom, item, 'title', article.title)
- path = 'http://' + blog.name + article.getPath()
+ self.appendElement(dom, item, 'title', post.title)
+ path = 'http://' + blog.name + post.getPath()
self.appendElement(dom, item, 'link', path)
self.appendElement(dom, item, 'guid', path)
- filename = blog.src_path + '/_articles/' + str(article.id)
+ filename = blog.src_path + '/_post/' + str(post.id)
if not os.path.exists(filename):
self.addError('File does not exists ' + filename)
return
f = open(filename, 'rb')
- article_content = f.read()
+ post_content = f.read()
f.close()
- self.appendElement(dom, item, 'description', '')
+ self.appendElement(dom, item, 'description', '')
- author = article.author.email
- author += ' (' + article.author.first_name + ' ' + article.author.last_name + ')'
+ author = post.author.email
+ author += ' (' + post.author.first_name + ' ' + post.author.last_name + ')'
self.appendElement(dom, item, 'author', author)
- self.appendElement(dom, item, 'category', article.category.name)
+ self.appendElement(dom, item, 'category', post.category.name)
- creationDate = article.creation_date.strftime('%a, %d %b %Y %H:%M:%S')
+ creationDate = post.creation_date.strftime('%a, %d %b %Y %H:%M:%S')
self.appendElement(dom, item, 'pubDate', creationDate)
channel.appendChild(item)
diff --git a/models.py b/models.py
index 5aa0a45..b23f7c7 100644
--- a/models.py
+++ b/models.py
@@ -52,10 +52,13 @@ class Blog(models.Model):
for line in f:
if line.startswith("#"):
continue
- self.engines.append(globals()[line.strip()])
+ engine = line.strip()
+ if not engine in globals():
+ print 'Engine ' + engine + ' doesn\'t exists'
+ self.engines.append(globals()[engine])
f.close()
else:
- self.engines.append(globals()['article'])
+ self.engines.append(globals()['post'])
self.engines.append(globals()['index'])
self.engines.append(globals()['category'])
self.engines.append(globals()['archive'])
@@ -104,7 +107,7 @@ class Blog(models.Model):
exts = ('css', 'html', 'htm', 'xhtml', 'js')
found = False
for ext in exts:
- if srname.endswith(ext):
+ if srcname.endswith(ext):
found = True
break
if found:
@@ -179,7 +182,7 @@ class Category(models.Model):
class Tag(models.Model):
name = models.CharField(max_length=255, unique=True)
-class Article(models.Model):
+class Post(models.Model):
title = models.CharField(max_length=255)
title_slug = models.CharField(max_length=255)
category = models.ForeignKey(Category, blank=True, null=True, on_delete=models.SET_NULL)
@@ -193,7 +196,7 @@ class Article(models.Model):
blog = models.ForeignKey(Blog)
def getPath(self):
- filename = '/article/'
+ filename = '/post/'
filename = filename + self.creation_date.strftime("%Y") + '/' + self.creation_date.strftime("%m") + '/'
filename = filename + self.title_slug + '.html'
return filename
@@ -208,16 +211,16 @@ class Article(models.Model):
def save(self):
self.slugify()
- super(Article, self).save()
+ super(Post, self).save()
- def createArticle(self, content):
+ def createPost(self, content):
b = self.blog
b.create_paths()
output = b.src_path
- if not os.path.exists(output + '/_articles'):
- os.mkdir(output + '/_articles')
+ if not os.path.exists(output + '/_post'):
+ os.mkdir(output + '/_post')
- filename = output + '/_articles/' + str(self.pk)
+ filename = output + '/_post/' + str(self.pk)
if os.path.exists(filename):
os.unlink(filename)
f = open(filename, 'wb')
@@ -229,7 +232,7 @@ class Article(models.Model):
b.create_paths()
output = b.src_path
- filename = output + '/_articles/' + str(self.pk)
+ filename = output + '/_post/' + str(self.pk)
if os.path.exists(filename):
os.unlink(filename)
@@ -240,18 +243,18 @@ class Article(models.Model):
if os.path.exists(filename):
os.unlink(filename)
- filename = output + '/article/'
+ filename = output + '/post/'
filename = filename + self.creation_date.strftime("%Y") + '/' + self.creation_date.strftime("%m") + '/'
if len(os.listdir(filename)) == 0:
os.rmdir(filename)
- filename = output + '/article/'
+ filename = output + '/post/'
filename = filename + self.creation_date.strftime("%Y") + '/'
if len(os.listdir(filename)) == 0:
os.rmdir(filename)
class Comment(models.Model):
- article = models.ForeignKey(Article)
+ post = models.ForeignKey(Post)
parent = models.ForeignKey('Comment')
date = models.DateField(max_length=255)
author = models.CharField(max_length=255)
@@ -266,6 +269,6 @@ def delete_blog_signal(sender, **kwargs):
def delete_blog_signal(sender, **kwargs):
sender.remove()
-@receiver(post_delete, sender=Article)
-def delete_article_signal(sender, **kwargs):
+@receiver(post_delete, sender=Post)
+def delete_post_signal(sender, **kwargs):
sender.remove()
diff --git a/templates/add_article.html b/templates/add_article.html
index e2e6bca..600f0b1 100644
--- a/templates/add_article.html
+++ b/templates/add_article.html
@@ -27,7 +27,7 @@ tinyMCE.init({
{% endblock %}
{% block content %}
-
{% csrf_token %}
+ {% csrf_token %}
{{ form.as_p }}
{{ content }}
diff --git a/templates/generate.html b/templates/generate.html
index 1b0d759..ed6d008 100644
--- a/templates/generate.html
+++ b/templates/generate.html
@@ -9,7 +9,7 @@
{% endif %}
-Add an article Generate blog
+Add an post Generate blog
{% if report|length == 0 %}
Any engine selected
{% else %}
@@ -18,13 +18,13 @@
{% endautoescape %}
{% endif %}
-{% if articles|length == 0 %}
+{% if posts|length == 0 %}
-Any article available
+Any post available
{% else %}
-{% for article in articles %}
- {{ article.id }} {{ article.title }} {{ article.category.name }} {{ article.creation_date }} {{ article.published }} {{ article.front_page }} Delete
+{% for post in posts %}
+ {{ post.id }} {{ post.title }} {{ post.category.name }} {{ post.creation_date }} {{ post.published }} {{ post.front_page }} Delete
{% endfor %}
{% endif %}
diff --git a/templates/view_blog.html b/templates/view_blog.html
index 62efc76..5be985f 100644
--- a/templates/view_blog.html
+++ b/templates/view_blog.html
@@ -9,15 +9,15 @@
{% endif %}
-Add an article Generate blog
+Add an post Generate blog
-{% if articles|length == 0 %}
+{% if posts|length == 0 %}
-Any article available
+Any post available
{% else %}
-{% for article in articles %}
- {{ article.id }} {{ article.title }} {{ article.category.name }} {{ article.creation_date }} {{ article.published }} {{ article.front_page }} Delete
+{% for post in posts %}
+ {{ post.id }} {{ post.title }} {{ post.category.name }} {{ post.creation_date }} {{ post.published }} {{ post.front_page }} Delete
{% endfor %}
{% endif %}
diff --git a/urls.py b/urls.py
index 36c2fa9..6a988c3 100644
--- a/urls.py
+++ b/urls.py
@@ -21,9 +21,9 @@ urlpatterns = patterns('',
url(r'^blog/add$', 'dynastie.views.add_blog', name='add_blog'),
url(r'^blog/(\d+)$', 'dynastie.views.view_blog', name='view_blog'),
url(r'^blog/edit/(\d+)$', 'dynastie.views.edit_blog', name='edit_blog'),
- url(r'^article/add/(\d+)$', 'dynastie.views.add_article', name='add_article'),
- url(r'^article/edit/(\d+)$', 'dynastie.views.edit_article', name='edit_article'),
- url(r'^article/delete/(\d+)$','dynastie.views.delete_article', name='delete_article'),
+ url(r'^post/add/(\d+)$', 'dynastie.views.add_post', name='add_post'),
+ url(r'^post/edit/(\d+)$', 'dynastie.views.edit_post', name='edit_post'),
+ url(r'^post/delete/(\d+)$','dynastie.views.delete_post', name='delete_post'),
url(r'^generate/(\d+)$', 'dynastie.views.generate', name='generate'),
# url(r'^dynastie/', include('dynastie.foo.urls')),
diff --git a/views.py b/views.py
index 1b08d0b..3a5f6b6 100644
--- a/views.py
+++ b/views.py
@@ -209,11 +209,11 @@ def view_blog(request, blog_id):
if b is None:
raise Http404
- articles = Article.objects.filter(blog=b).order_by('-creation_date')
+ posts = Post.objects.filter(blog=b).order_by('-creation_date')
b = Blog.objects.get(pk=blog_id)
form = BlogForm(instance=b)
- c = {'blog' : b, 'articles' : articles, 'form' : form}
+ c = {'blog' : b, 'posts' : posts, 'form' : form}
return render(request, 'templates/view_blog.html', c)
@@ -240,14 +240,14 @@ def edit_blog(request, blog_id):
else:
form = BlogForm(instance=b) # An unbound form
- articles = Article.objects.filter(blog=b).order_by('-creation_date')
+ posts = Post.objects.filter(blog=b).order_by('-creation_date')
- c = {'blog' : b, 'articles' : articles, 'form' : form}
+ c = {'blog' : b, 'posts' : posts, 'form' : form}
return render(request, 'templates/view_blog.html', c)
@login_required
-def add_article(request, blog_id):
+def add_post(request, blog_id):
if not request.user.is_superuser:
b = Blog.objects.filter(id=blog_id).filter(writers=request.user.id)[0]
@@ -256,50 +256,50 @@ def add_article(request, blog_id):
if request.method == 'POST': # If the form has been submitted...
if 'add' in request.POST:
- article = Article(blog=Blog.objects.get(pk=blog_id), author=User.objects.get(pk=request.user.id), creation_date=datetime.now())
+ post = Post(blog=Blog.objects.get(pk=blog_id), author=User.objects.get(pk=request.user.id), creation_date=datetime.now())
content = request.POST['content']
# del request.POST['content']
- form = ArticleForm(request.POST, instance=article) # A form bound to the POST data
+ form = PostForm(request.POST, instance=post) # A form bound to the POST data
if form.is_valid(): # All validation rules pass
form = form.save()
- form.createArticle(content)
+ form.createPost(content)
# Process the data in form.cleaned_data
# ...
return HttpResponseRedirect('/blog/' + blog_id) # Redirect after POST
else:
return HttpResponseRedirect('/blog/' + blog_id) # Redirect after POST
else:
- form = ArticleForm() # An unbound form
+ form = PostForm() # An unbound form
- return render(request, 'add_article.html', {
+ return render(request, 'add_post.html', {
'form': form, 'blog_id' : blog_id
})
@login_required
-def edit_article(request, article_id):
- article = Article.objects.get(pk=article_id)
+def edit_post(request, post_id):
+ post = Post.objects.get(pk=post_id)
- if article is None:
+ if post is None:
raise Http404
- title = article.title
+ title = post.title
- blog_id = article.blog.id
+ blog_id = post.blog.id
if not request.user.is_superuser:
- b = Blog.objects.filter(pk=article.blog.id).filter(writers=request.user.id)[0]
+ b = Blog.objects.filter(pk=post.blog.id).filter(writers=request.user.id)[0]
if b is None:
raise Http404
else:
- b = Blog.objects.get(pk=article.blog.id)
+ b = Blog.objects.get(pk=post.blog.id)
if request.method == 'POST': # If the form has been submitted...
if 'edit' in request.POST:
- form = ArticleForm(request.POST, instance=article) # A form bound to the POST data
+ form = PostForm(request.POST, instance=post) # A form bound to the POST data
if form.is_valid(): # All validation rules pass
if title != form.title:
- article.remove()
+ post.remove()
form.save()
# Process the data in form.cleaned_data
# ...
@@ -308,36 +308,36 @@ def edit_article(request, article_id):
if 'cancel' in request.POST:
return HttpResponseRedirect('/blog/' + str(blog_id)) # Redirect after POST
else:
- form = ArticleForm(instance=article) # An unbound form
+ form = PostForm(instance=post) # An unbound form
b.create_paths()
- filename = b.src_path + '/_articles/' + str(article.pk)
+ filename = b.src_path + '/_post/' + str(post.pk)
if os.path.exists(filename):
f = open(filename, 'rb')
content = f.read()
f.close()
else:
- content = 'Empty article'
+ content = 'Empty post'
- return render(request, 'edit_article.html', {
- 'form': form, 'article_id' : article_id, 'content' : content
+ return render(request, 'edit_post.html', {
+ 'form': form, 'post_id' : post_id, 'content' : content
})
@login_required
-def delete_article(request, article_id):
- article = Article.objects.get(pk=article_id)
+def delete_post(request, post_id):
+ post = Post.objects.get(pk=post_id)
- if article is None:
+ if post is None:
raise Http404
- b = Blog.objects.filter(writers=request.user.id).filter(pk=article.blog.pk)
+ b = Blog.objects.filter(writers=request.user.id).filter(pk=post.blog.pk)
if b is None:
raise Http404
- blog_id = article.blog.pk
+ blog_id = post.blog.pk
- article.delete()
+ post.delete()
return HttpResponseRedirect('/blog/' + str(blog_id))
@@ -354,10 +354,10 @@ def generate(request, blog_id):
b.create_paths()
report = b.generate()
- articles = Article.objects.filter(blog=b).order_by('-creation_date')
+ posts = Post.objects.filter(blog=b).order_by('-creation_date')
b = Blog.objects.get(pk=blog_id)
form = BlogForm(instance=b)
- c = {'blog' : b, 'articles' : articles, 'form' : form, 'report': report}
+ c = {'blog' : b, 'posts' : posts, 'form' : form, 'report': report}
return render(request, 'generate.html', c)