Some small SQL model improvements

- Add default for User.email_verified
- Add default for MediaEntry.state
- Let PathTupleWithSlashes store [] as "NULL",
  but not handling the reverse properly yet!
- Add _id alias field to MediaEntry and MediaComment
This commit is contained in:
Elrond 2012-01-28 00:33:23 +01:00
parent 8a9aa07583
commit 51fba99125
2 changed files with 11 additions and 4 deletions

View File

@ -25,7 +25,9 @@ class PathTupleWithSlashes(TypeDecorator):
def process_bind_param(self, value, dialect): def process_bind_param(self, value, dialect):
if value is not None: if value is not None:
assert len(value), "Does not support empty lists" if len(value) == 0:
value = None
else:
value = '/'.join(value) value = '/'.join(value)
return value return value

View File

@ -50,7 +50,7 @@ class User(Base, UserMixin):
email = Column(Unicode, nullable=False) email = Column(Unicode, nullable=False)
created = Column(DateTime, nullable=False, default=datetime.datetime.now) created = Column(DateTime, nullable=False, default=datetime.datetime.now)
pw_hash = Column(Unicode, nullable=False) pw_hash = Column(Unicode, nullable=False)
email_verified = Column(Boolean) email_verified = Column(Boolean, default=False)
status = Column(Unicode, default=u"needs_email_verification", nullable=False) status = Column(Unicode, default=u"needs_email_verification", nullable=False)
verification_key = Column(Unicode) verification_key = Column(Unicode)
is_admin = Column(Boolean, default=False, nullable=False) is_admin = Column(Boolean, default=False, nullable=False)
@ -77,7 +77,8 @@ class MediaEntry(Base, MediaEntryMixin):
description = Column(UnicodeText) # ?? description = Column(UnicodeText) # ??
description_html = Column(UnicodeText) # ?? description_html = Column(UnicodeText) # ??
media_type = Column(Unicode, nullable=False) media_type = Column(Unicode, nullable=False)
state = Column(Unicode, nullable=False) # or use sqlalchemy.types.Enum? state = Column(Unicode, default=u'unprocessed', nullable=False)
# or use sqlalchemy.types.Enum?
license = Column(Unicode) license = Column(Unicode)
fail_error = Column(Unicode) fail_error = Column(Unicode)
@ -113,6 +114,8 @@ class MediaEntry(Base, MediaEntryMixin):
# attachment_files # attachment_files
# fail_error # fail_error
_id = SimpleFieldAlias("id")
def get_comments(self, ascending=False): def get_comments(self, ascending=False):
order_col = MediaComment.created order_col = MediaComment.created
if not ascending: if not ascending:
@ -215,6 +218,8 @@ class MediaComment(Base):
get_author = relationship(User) get_author = relationship(User)
_id = SimpleFieldAlias("id")
def show_table_init(): def show_table_init():
from sqlalchemy import create_engine from sqlalchemy import create_engine