X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=mediagoblin%2Fmedia_types%2Fblog%2Fmodels.py;h=7c55e359a60342597d32ac2dba1ad3c8ddf69fe5;hb=408aa9cf3b29d778eb7594e4de1720a6bb158024;hp=a9288c00abc53df2c8a86a52ff2b54361d57163a;hpb=a7f02e9514ca9256412d138c9bba89b299431efa;p=mediagoblin.git diff --git a/mediagoblin/media_types/blog/models.py b/mediagoblin/media_types/blog/models.py index a9288c00..7c55e359 100644 --- a/mediagoblin/media_types/blog/models.py +++ b/mediagoblin/media_types/blog/models.py @@ -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"