uploaded by works, and now you can view art on its own page.
[zzz-floof.git] / floof / model / art.py
index 8cfcd5a..1df10cc 100644 (file)
@@ -1,12 +1,33 @@
-from sqlalchemy import Column, ForeignKey
-from sqlalchemy.orm import relation
-from sqlalchemy.types import Integer, Unicode
+#
+#   floof/floof/model/art.py
+#
+#   Copyright (c) 2009 Scribblr
+#
 
-from floof.model import meta
+# from elixir import Entity, Field, Integer, Unicode
+from elixir import *
 
-__all__ = ['Art']
+from pylons import config
 
-class Art(meta.TableBase):
-    __tablename__ = 'art'
-    id = Column(Integer, primary_key=True)
-    title = Column(Unicode(length=120), nullable=False)
+from floof.lib.file_storage import get_path, save_file
+
+class Art(Entity):
+    title = Field(Unicode(120))
+    original_filename = Field(Unicode(120))
+    hash = Field(String)
+    uploaded_by = ManyToOne('User')
+
+    def __init__(self, **kwargs):
+        # I wanted to check for the existence of the file, but...
+        # for some reason this FieldStorage object always conditions as falsey.
+        self.hash = save_file("art", kwargs.pop('file'))
+        super(Art, self).__init__(**kwargs)
+        # this is what super is doing, pretty much.
+        # for key, value in kwargs.items():
+        #     setattr(self, key, value)
+        
+
+
+    def get_path(self):
+        if self.hash:
+            return get_path("art", self.hash)