project/scipycon/talk/models.py
author Madhusudan.C.S <madhusudancs@gmail.com>
Thu, 15 Jul 2010 00:50:38 +0530
changeset 104 1a83a26756c3
parent 101 61fc4aa7a09a
child 155 a38a60cbc6ab
permissions -rw-r--r--
Renamed Base Model with scope and propogated it to other models.

from django.db import models
from django.contrib.auth.models import User

from tagging import register
from tagging.fields import TagField
from tagging.utils import parse_tag_input

from project.scipycon.base import models as base_models


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'),
    )


class Talk(base_models.ScopedBase):
    """Defines talks at SciPy.in
    """

    slug = models.SlugField()

    speaker = models.ForeignKey(User)

    authors_bio = models.TextField()

    contact = models.EmailField()

    title = models.CharField(max_length=1024)

    abstract = models.TextField()

    topic = 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)

    approved = models.BooleanField(default=False)

    submitted = models.DateTimeField(auto_now_add=True)

    last_mod = models.DateTimeField(auto_now=True)

    def __unicode__(self):
        return self.title

    def get_tag_list(self):
        return parse_tag_input(self.tags)