41 lines
1.4 KiB
Python
41 lines
1.4 KiB
Python
import datetime #<- will be used to set default dates on models
|
|
from ctp_blogr.models.meta import Base #<- we need to import our sqlalchemy metadata from which model classes will inherit
|
|
from sqlalchemy import (
|
|
Column,
|
|
Integer,
|
|
Unicode, #<- will provide Unicode field
|
|
UnicodeText, #<- will provide Unicode text field
|
|
DateTime, #<- time abstraction field
|
|
)
|
|
from webhelpers2.text import urlify #<- will generate slugs
|
|
from webhelpers2.date import distance_of_time_in_words #<- human friendly dates
|
|
|
|
|
|
class BlogRecord(Base):
|
|
__tablename__ = 'entries'
|
|
id = Column(Integer, primary_key=True)
|
|
title = Column(Unicode(255), unique=True, nullable=False)
|
|
body = Column(UnicodeText, default='')
|
|
created = Column(DateTime, default=datetime.datetime.now)
|
|
creator = Column(Unicode(50), default='')
|
|
edited = Column(DateTime, default=datetime.datetime.now)
|
|
editor = Column(Unicode(50), default='')
|
|
tag = Column(Unicode(25))
|
|
status = Column(Unicode(50), default='brouillon')
|
|
|
|
@property
|
|
def slug(self):
|
|
return urlify(self.title)
|
|
|
|
@property
|
|
def created_in_words(self):
|
|
return distance_of_time_in_words(self.created,
|
|
datetime.datetime.utcnow())
|
|
|
|
|
|
class Tags(Base):
|
|
__tablename__ = 'tags'
|
|
id = Column(Integer, primary_key=True)
|
|
tag = Column(Unicode(25))
|
|
|