diff --git a/dynastie/UserProfile.py b/dynastie/UserProfile.py
index 5595d78..949c2ce 100755
--- a/dynastie/UserProfile.py
+++ b/dynastie/UserProfile.py
@@ -19,6 +19,7 @@
"""
from django.contrib.auth.models import User
+from dynastie.models import Language
class UserProfile(models.Model):
# This field is required.
@@ -26,3 +27,6 @@ class UserProfile(models.Model):
# Other fields here
editor = models.CharField(max_length=20, default="TinyMCE")
+
+ default_language = models.ForeignKey(Language, on_delete=models.CASCADE)
+
diff --git a/dynastie/forms.py b/dynastie/forms.py
index 1d256ce..d42382f 100755
--- a/dynastie/forms.py
+++ b/dynastie/forms.py
@@ -38,6 +38,7 @@ class PostForm(ModelForm):
def __init__(self, *args, **kwargs):
super(PostForm, self).__init__(*args, **kwargs)
self.fields['category'].choices = [(cat.id, cat.name) for cat in Category.objects.all()]
+ self.fields['language'].choices = [(lang.id, lang.name) for lang in Language.objects.all()]
class DraftForm(PostForm):
class Meta:
diff --git a/dynastie/generators/index.py b/dynastie/generators/index.py
index 8428a2d..96b789d 100755
--- a/dynastie/generators/index.py
+++ b/dynastie/generators/index.py
@@ -319,6 +319,9 @@ class Index(DynastieGenerator):
except:
pass
+ if post.language != None:
+ post_elem.setAttribute('lang', post.language.abbrev)
+
self.parent_posts = []
post_content = self._loadPostContent(post)
if not post_content: return None
diff --git a/dynastie/generators/post.py b/dynastie/generators/post.py
index 766cfa6..c9f5158 100755
--- a/dynastie/generators/post.py
+++ b/dynastie/generators/post.py
@@ -134,7 +134,13 @@ class Post(Index):
new_elem = self.createMeta(dom, name, post.author.first_name + ' ' + post.author.last_name)
except:
return None
-
+ elif name == 'lang':
+ meta_elem.removeChild(root)
+ # Add attribute lang in tag
+ if post.language != None:
+ meta_elem.parentNode.setAttribute('lang', post.language.abbrev)
+ return None
+
if not new_elem is None:
root.parentNode.replaceChild(new_elem, root)
return new_elem
diff --git a/dynastie/models.py b/dynastie/models.py
index 6562957..282b6be 100755
--- a/dynastie/models.py
+++ b/dynastie/models.py
@@ -41,6 +41,10 @@ def slugify(name):
name = sub('-+', '-', name)
return name
+class Language(models.Model):
+ name = models.CharField(max_length=255, unique=True)
+ abbrev = models.CharField(max_length=4, unique=True)
+
class Blog(models.Model):
name = models.CharField(max_length=255, unique=True)
title = models.CharField(max_length=255)
@@ -281,12 +285,13 @@ class Post(models.Model):
keywords = models.TextField(blank=True)
tags = models.ManyToManyField(Tag, blank=True, null=True)
blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
+ language = models.ForeignKey(Language, null=True, on_delete=models.CASCADE)
CONTENT_HTML = 0
CONTENT_TEXT = 1
CONTENT_FORMAT = (
(CONTENT_HTML, 'HTML'),
(CONTENT_TEXT, 'Text'))
- content_format = models.IntegerField(choices=CONTENT_FORMAT, default=CONTENT_HTML, blank=False, null=False)
+ content_format = models.IntegerField(choices=CONTENT_FORMAT, default=CONTENT_TEXT, blank=False, null=False)
post_type = models.CharField(max_length=1, default='P')
def getPath(self):
@@ -460,7 +465,7 @@ class Comment(models.Model):
def _remove_br(self):
self.the_comment = self.the_comment.replace('
', '\n')
-
+
class FileOutputCache(models.Model):
name = models.CharField(max_length=512)
hash = models.CharField(max_length=512)
diff --git a/dynastie/sites/blog.soutade.fr/_base.html b/dynastie/sites/blog.soutade.fr/_base.html
index 075f7b0..3a990cd 100755
--- a/dynastie/sites/blog.soutade.fr/_base.html
+++ b/dynastie/sites/blog.soutade.fr/_base.html
@@ -1,4 +1,4 @@
-
+