Merge remote-tracking branch 'remotes/jiyda/220_rtl_language_support'
[mediagoblin.git] / mediagoblin / media_types / blog / models.py
index a9288c00abc53df2c8a86a52ff2b54361d57163a..7c55e359a60342597d32ac2dba1ad3c8ddf69fe5 100644 (file)
@@ -17,6 +17,7 @@
 import datetime
 
 from mediagoblin.db.base import Base
+from mediagoblin.db.base import Session
 from mediagoblin.db.models import Collection, User, MediaEntry
 from mediagoblin.db.mixin import GenerateSlugMixin
 
@@ -41,7 +42,25 @@ class Blog(Base, BlogMixin):
     author = Column(Integer, ForeignKey(User.id), nullable=False, index=True) #similar to uploader
     created = Column(DateTime, nullable=False, default=datetime.datetime.now, index=True)
     slug = Column(Unicode)
-
+    
+    def get_all_blog_posts(self, state=None):
+        blog_posts = Session.query(MediaEntry).join(BlogPostData)\
+        .filter(BlogPostData.blog == self.id)
+        if state is not None:
+            blog_posts = blog_posts.filter(MediaEntry.state==state)
+        return blog_posts
+    
+    def delete(self, **kwargs):
+        all_posts = self.get_all_blog_posts()
+        for post in all_posts:
+            post.delete(del_orphan_tags=False, commit=False)
+        from mediagoblin.db.util import clean_orphan_tags
+        clean_orphan_tags(commit=False)
+        super(Blog, self).delete(**kwargs)
+        
+        
+    
     
 BACKREF_NAME = "blogpost__media_data"