summaryrefslogtreecommitdiff
path: root/project/scipycon/talk/models.py
blob: 82c8f25382fd3991b138328740e9030429dc7dc8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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', 'Beginner 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)