From 8ab67da4aebd2231c12fc033084c4abf1bd26710 Mon Sep 17 00:00:00 2001 From: Aditi Date: Fri, 19 Jul 2013 16:47:27 +0530 Subject: [PATCH] Add class BlogMixin. --- mediagoblin/media_types/blog/models.py | 38 +++++++++++++++++--------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/mediagoblin/media_types/blog/models.py b/mediagoblin/media_types/blog/models.py index e5c93d00..f7e907a5 100644 --- a/mediagoblin/media_types/blog/models.py +++ b/mediagoblin/media_types/blog/models.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by @@ -17,21 +17,34 @@ import datetime from mediagoblin.db.base import Base -from mediagoblin.db.models import Collection, User +from mediagoblin.db.models import Collection, User, MediaEntry +from mediagoblin.db.mixin import GenerateSlugMixin + +from mediagoblin.media_types.blog.lib import check_blog_slug_used + +from mediagoblin.tools.text import cleaned_markdown_conversion from sqlalchemy import ( Column, Integer, ForeignKey, Unicode, UnicodeText, DateTime) from sqlalchemy.orm import relationship, backref -class Blog(Base): - __tablename__ = "core__blogs" - id = Column(Integer, primary_key=True) - title = Column(Unicode) - description = Column(UnicodeText) - author = Column(Integer, ForeignKey(User.id), nullable=False, index=True) - created = Column(DateTime, nullable=False, default=datetime.datetime.now, - index=True) + +class BlogMixin(GenerateSlugMixin): + def check_slug_used(self, slug): + return check_blog_slug_used(self.author, slug, self.id) + +class Blog(Base, BlogMixin): + __tablename__ = "mediatype__blogs" + id = Column(Integer, primary_key=True) + title = Column(Unicode) + description = Column(UnicodeText) + 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) +#class BlogPost(MediaEntry): + #__tablename__ = "mediatype__blog_blogposts" + #blog = Column(Integer, ForeignKey(Blog.id), nullable=False) BACKREF_NAME = "blogpost__media_data" @@ -40,12 +53,11 @@ class BlogpostData(Base): __tablename__ = "blogpost__mediadata" # The primary key *and* reference to the main media_entry - media_entry = Column(Integer, ForeignKey('core__media_entries.id'), - primary_key=True) + media_entry = Column(Integer, ForeignKey('core__media_entries.id'), primary_key=True) get_media_entry = relationship("MediaEntry", backref=backref(BACKREF_NAME, uselist=False, cascade="all, delete-orphan")) DATA_MODEL = BlogpostData -MODELS = [BlogpostData] +MODELS = [BlogpostData, Blog] -- 2.25.1