Allow logged in users to comment on blog entries by passing moderation
[sommitrealweird.git] / sommitrealweird / blog / models.py
index 6b0d2544f7630eed51f5f6ef40b1b970399afbcf..f76de3080a29322905960213437ff166333cba37 100644 (file)
@@ -1,5 +1,7 @@
+from django.contrib.comments.moderation import CommentModerator, moderator
 from django.db import models
 from django.conf import settings
+from django.contrib import admin
 
 FORMAT_CHOICES = (
     ('rst', 'reStructuredText'),
@@ -7,11 +9,11 @@ FORMAT_CHOICES = (
 )
 
 class BlogEntry(models.Model):
-    title = models.CharField(maxlength=150)
+    title = models.CharField(max_length=150)
     islive = models.BooleanField()
     sections = models.ManyToManyField('BlogSection')
-    format = models.CharField(maxlength=10, choices=FORMAT_CHOICES)
-    slug = models.SlugField(prepopulate_from=("title",))
+    format = models.CharField(max_length=10, choices=FORMAT_CHOICES)
+    slug = models.SlugField()
     publish_date = models.DateTimeField()
     content = models.TextField()
 
@@ -24,12 +26,23 @@ class BlogEntry(models.Model):
     def get_absolute_url(self):
         return u'%s%04d/%02d/%02d/%s/' %(settings.BLOG_ROOT, self.publish_date.year, self.publish_date.month, self.publish_date.day, self.slug)
 
-    class Admin:
-        pass
+    class Meta:
+        ordering = ['-publish_date']
+
+class BlogEntryCommentModerator(CommentModerator):
+    email_notification = True
+
+    def moderate(self, comment, content_object, request):
+        if request.user.is_authenticated():
+            return False
+        else:
+            return True
+
+moderator.register(BlogEntry, BlogEntryCommentModerator)
 
 class BlogSection(models.Model):
-    title = models.CharField(maxlength=150)
-    slug = models.SlugField(prepopulate_from=("title",))
+    title = models.CharField(max_length=150)
+    slug = models.SlugField()
 
     def __str__(self):
         return self.__unicode__()
@@ -39,6 +52,3 @@ class BlogSection(models.Model):
 
     def get_absolute_url(self):
         return u'%ssection/%s/' %(settings.BLOG_ROOT, self.slug)
-
-    class Admin:
-        pass