From dea70a8855cebe6d35eb8508ee150a79e87b8f45 Mon Sep 17 00:00:00 2001 From: Mike Crute Date: Fri, 28 Dec 2012 15:43:50 -0500 Subject: Users can submit talk proposals --- proposals/models.py | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 proposals/models.py (limited to 'proposals/models.py') diff --git a/proposals/models.py b/proposals/models.py new file mode 100644 index 0000000..8551659 --- /dev/null +++ b/proposals/models.py @@ -0,0 +1,75 @@ +from django.db import models +from django.contrib.auth.models import User + + +class TimeSlot(models.Model): + + slot = models.DateTimeField() + + def __str__(self): + return self.slot.strftime("%A, %B %d, %Y @ %I:%M %p") + + +class Location(models.Model): + + name = models.CharField(max_length=255) + + def __str__(self): + return self.name + + +class TalkType(models.Model): + + name = models.CharField(max_length=255) + + def __str__(self): + return self.name + + +class AudienceSkillLevel(models.Model): + + name = models.CharField(max_length=255) + + def __str__(self): + return self.name + + +class Category(models.Model): + + name = models.CharField(max_length=255) + + def __str__(self): + return self.name + + class Meta: + verbose_name_plural = "Categories" + + +class ProposalManager(models.Manager): + + def for_user(self, user): + return self.get_query_set().filter(proposers=user) + + +class Proposal(models.Model): + + objects = ProposalManager() + + title = models.CharField(max_length=255) + + type = models.ForeignKey(TalkType) + category = models.ForeignKey(Category) + audience_skill_level = models.ForeignKey(AudienceSkillLevel) + location = models.ForeignKey(Location, blank=True, null=True) + time_slot = models.ForeignKey(TimeSlot, blank=True, null=True) + proposers = models.ManyToManyField(User) + + approved = models.BooleanField(default=False) + recording_release = models.BooleanField(default=False) + + outline = models.TextField(blank=True) + abstract = models.TextField(blank=True) + notes = models.TextField(blank=True) + + def __str__(self): + return self.title -- cgit v1.2.3