Add __repr__ for Collection and CollectionItem
authorOdin Hørthe Omdal <odin.omdal@gmail.com>
Sun, 7 Sep 2014 10:56:13 +0000 (12:56 +0200)
committerChristopher Allan Webber <cwebber@dustycloud.org>
Sun, 7 Sep 2014 14:42:07 +0000 (09:42 -0500)
mediagoblin/db/models.py

index b910e522658dcf8b0c621176cc9cf68425fe9264..2ff30d22e905dd4497e4ec0782bced456017fdd3 100644 (file)
@@ -20,7 +20,6 @@ TODO: indexes on foreignkeys, where useful.
 
 import logging
 import datetime
-import base64
 
 from sqlalchemy import Column, Integer, Unicode, UnicodeText, DateTime, \
         Boolean, ForeignKey, UniqueConstraint, PrimaryKeyConstraint, \
@@ -727,6 +726,14 @@ class Collection(Base, CollectionMixin):
         return CollectionItem.query.filter_by(
             collection=self.id).order_by(order_col)
 
+    def __repr__(self):
+        safe_title = self.title.encode('ascii', 'replace')
+        return '<{classname} #{id}: {title} by {creator}>'.format(
+            id=self.id,
+            classname=self.__class__.__name__,
+            creator=self.creator,
+            title=safe_title)
+
 
 class CollectionItem(Base, CollectionItemMixin):
     __tablename__ = "core__collection_items"
@@ -756,6 +763,13 @@ class CollectionItem(Base, CollectionItemMixin):
         """A dict like view on this object"""
         return DictReadAttrProxy(self)
 
+    def __repr__(self):
+        return '<{classname} #{id}: Entry {entry} in {collection}>'.format(
+            id=self.id,
+            classname=self.__class__.__name__,
+            collection=self.collection,
+            entry=self.media_entry)
+
 
 class ProcessingMetaData(Base):
     __tablename__ = 'core__processing_metadata'