project/kiwipycon/talk/models.py
changeset 1 fda1c66b25f9
child 8 bffb109e23c1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/kiwipycon/talk/models.py	Fri Oct 30 15:09:12 2009 +0530
@@ -0,0 +1,73 @@
+# -*- coding: utf-8 -*-
+from __future__ import absolute_import
+
+#django
+from django.db import models
+from django.contrib.auth.models import User
+
+#tagging
+from tagging import register
+from tagging.fields import TagField
+from tagging.utils import parse_tag_input
+
+DURATION_CHOICES = (
+    ('10', 'Lightning Talk (10 mins)'),
+    ('20', 'Short Talk (20 mins)'),
+    ('30', 'Standard Talk (30 mins)'),
+    )
+
+AUDIENCE_CHOICES = (
+    ('nonprogrammers', 'non-programmer'),
+    ('beginers', 'beginning programmer'),
+    ('intermediate', 'intermediate programmer'),
+    ('advanced', 'advanced programmer'),
+    )
+
+#TOPIC_CHOICES = (
+#    ('Core Python', 'Core Python'),
+#    ('Other implementations: Jython, IronPython, PyPy, and Stackless', 'Other implementations: Jython, IronPython, PyPy, and Stackless'),
+#    ('Python libraries and extensions', 'Python libraries and extensions'),
+#    ('Python 3k', 'Python 3k'),
+#    ('Databases', 'Databases'),
+#    ('Documentation', 'Documentation'),
+#    ('GUI Programming', 'GUI Programming'),
+#    ('Game Programming', 'Game Programming'),
+#    ('Network Programming', 'Network Programming'),
+#    ('Open Source Python projects', 'Open Source Python projects'),
+#    ('Packaging Issues', 'Packaging Issues'),
+#    ('Programming Tools', 'Programming Tools'),
+#    ('Project Best Practices', 'Project Best Practices'),
+#    ('Embedding and Extending', 'Embedding and Extending'),
+#    ('Science and Maths', 'Science and Maths'),
+#    ('Web-based Systems', 'Web-based Systems'),
+#)
+
+class Talk(models.Model):
+    """Defines talks at *PyCon"""
+    slug = models.SlugField()
+    speaker = models.ForeignKey(User)
+    authors_bio = models.TextField()
+    contact = models.EmailField()
+    title = models.CharField(max_length=1024)
+    abstract = models.TextField()
+#    outline = models.TextField()
+    topic = models.CharField(max_length=255, 
+                             #choices=TOPIC_CHOICES,
+                             blank=True)
+    #topic_other = models.CharField(max_length=255, blank=True)
+    duration = models.CharField(max_length=3, choices=DURATION_CHOICES)
+    audience = models.CharField(max_length=32, choices=AUDIENCE_CHOICES, blank=True)
+#    audience_other = models.CharField(max_length=128, blank=True)
+    approved = models.BooleanField(default=False)
+    submitted = models.DateTimeField(auto_now_add=True)
+    last_mod = models.DateTimeField(auto_now=True)
+#    tags = TagField(blank=True)
+
+    def __unicode__(self):
+        return self.title
+
+    def get_tag_list(self):
+        return parse_tag_input(self.tags)
+
+# register(Talk) # saving talk failed - see:
+# http://code.google.com/p/django-tagging/issues/detail?id=152