Files
@ 82754d23426c
Branch filter:
Location: symposion_app/symposion/schedule/models.py - annotation
82754d23426c
1.8 KiB
text/x-python
enable proposal acceptance
143dbbce2891 143dbbce2891 143dbbce2891 143dbbce2891 7324d0303162 7324d0303162 143dbbce2891 143dbbce2891 143dbbce2891 143dbbce2891 0a4e626dfe9b 143dbbce2891 143dbbce2891 143dbbce2891 143dbbce2891 77dc781e0d8b 143dbbce2891 77dc781e0d8b 77dc781e0d8b 77dc781e0d8b 143dbbce2891 143dbbce2891 77dc781e0d8b 143dbbce2891 77dc781e0d8b 143dbbce2891 77dc781e0d8b 77dc781e0d8b 77dc781e0d8b 77dc781e0d8b 77dc781e0d8b 77dc781e0d8b 77dc781e0d8b 77dc781e0d8b 77dc781e0d8b 77dc781e0d8b 77dc781e0d8b 143dbbce2891 143dbbce2891 143dbbce2891 143dbbce2891 143dbbce2891 77dc781e0d8b 143dbbce2891 143dbbce2891 2c954c3a055b 2c954c3a055b 2c954c3a055b 2c954c3a055b 2c954c3a055b 2c954c3a055b 2c954c3a055b 2c954c3a055b 2c954c3a055b 143dbbce2891 2c954c3a055b 2c954c3a055b 7324d0303162 7324d0303162 7324d0303162 7324d0303162 7324d0303162 7324d0303162 7324d0303162 7324d0303162 7324d0303162 7324d0303162 7324d0303162 7324d0303162 7324d0303162 7324d0303162 7324d0303162 7324d0303162 7324d0303162 7324d0303162 7324d0303162 7324d0303162 7324d0303162 7324d0303162 | from django.db import models
from symposion.conference.models import Section
from markitup.fields import MarkupField
class Schedule(models.Model):
section = models.OneToOneField(Section)
slug = models.SlugField(unique=True)
class Day(models.Model):
schedule = models.ForeignKey(Schedule)
date = models.DateField()
class Meta:
unique_together = [("schedule", "date")]
class Room(models.Model):
schedule = models.ForeignKey(Schedule)
name = models.CharField(max_length=65)
order = models.PositiveIntegerField()
class SlotKind(models.Model):
"""
A slot kind represents what kind a slot is. For example, a slot can be a
break, lunch, or X-minute talk.
"""
schedule = models.ForeignKey(Schedule)
label = models.CharField(max_length=50)
class Slot(models.Model):
day = models.ForeignKey(Day)
kind = models.ForeignKey(SlotKind)
start = models.TimeField()
end = models.TimeField()
class SlotRoom(models.Model):
"""
Links a slot with a room.
"""
slot = models.ForeignKey(Slot)
room = models.ForeignKey(Room)
class Meta:
unique_together = [("slot", "room")]
class Presentation(models.Model):
slot = models.OneToOneField(Slot, null=True, blank=True, related_name="presentation")
title = models.CharField(max_length=100)
description = models.MarkupField()
abstract = models.MarkupField()
speaker = models.ForeignKey("speakers.Speaker", related_name="presentations")
additional_speakers = models.ManyToManyField("speakers.Speaker", blank=True)
cancelled = models.BooleanField(default=False)
def speakers(self):
yield self.speaker
for speaker in self.additional_speakers.all():
yield speaker
def __unicode__(self):
return self.title
|