Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/persistence/jokebook.py
diff options
context:
space:
mode:
authorAntoine van Gelder <antoine@g7.org.za>2007-10-28 09:45:28 (GMT)
committer Antoine van Gelder <antoine@g7.org.za>2007-10-28 09:45:28 (GMT)
commit800e3caabcd9c85b0b2ae9299217ea31d0309545 (patch)
tree130af075b9cbc72eba462c58166c771739ded092 /persistence/jokebook.py
parent49eb6ebd4760b4bfcf009f7e887a3ef9a547061d (diff)
Initial import
Diffstat (limited to 'persistence/jokebook.py')
-rw-r--r--persistence/jokebook.py85
1 files changed, 85 insertions, 0 deletions
diff --git a/persistence/jokebook.py b/persistence/jokebook.py
new file mode 100644
index 0000000..acadf04
--- /dev/null
+++ b/persistence/jokebook.py
@@ -0,0 +1,85 @@
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+
+from util.persistence import Persistent, PersistentProperty
+
+
+class Jokebook(object):
+ __metaclass__ = Persistent
+
+ @PersistentProperty
+ def id():
+ '''object id'''
+ def default(self): return 0
+ def get(self): return self.__id
+ def set(self, value): self.__id = value
+
+ @PersistentProperty
+ def title():
+ '''the title of this jokebook'''
+ def get(self): return self.__title
+ def set(self, value): self.__title = value
+
+ @PersistentProperty
+ def image():
+ '''the cover image of this jokebook'''
+ def get(self): return self.__image
+ def set(self, value): self.__image = value
+
+ @PersistentProperty
+ def image_blob():
+ '''raw image data'''
+ def get(self): return self.__image_blob
+ def set(self, value): self.__image_blob = value
+
+ @PersistentProperty
+ def sound():
+ '''the sound we must play on punchline'''
+ def get(self): return self.__sound
+ def set(self, value): self.__sound = value
+
+ @PersistentProperty
+ def sound_blob():
+ '''raw data for the sound'''
+ def get(self): return self.__sound_blob
+ def set(self, value): self.__sound_blob = value
+
+ @PersistentProperty
+ def owner():
+ '''the owner of this jokebook'''
+ def get(self): return self.__owner
+ def set(self, value): self.__owner = value
+
+ @PersistentProperty
+ def jokes():
+ '''the jokes in the jokebook'''
+ def default(self): return []
+ def get(self): return self.__jokes
+
+ @PersistentProperty
+ def submissions():
+ '''jokes submitted to this jokebook pending approval'''
+ def default(self): return []
+ def get(self): return self.__submissions
+
+
+ # TODO - this should really be transparent
+ @property
+ def next_joke_id(self):
+ if len(self.jokes) == 0:
+ return 1
+ return max([joke.id for joke in self.jokes]) + 1
+
+ \ No newline at end of file