+
+class Trilha(models.Model):
+ nome = models.CharField(max_length=100)
+ evento = models.ForeignKey(Evento)
+
+ def __str__(self):
+ return self.nome
+
+class DuracaoTrabalho(models.Model):
+ duracao = models.CharField(u'Duração', max_length=100)
+ tipo = models.ForeignKey(TipoTrabalho)
+
+ class Meta:
+ verbose_name = u'Duração do Trabalho'
+ verbose_name_plural = u'Durações do Trabalho'
+
+ def __str__(self):
+ return self.duracao
+
+class Trabalho(models.Model):
+ titulo = models.CharField(max_length=100)
+ evento = models.ForeignKey(Evento)
+ tipo = models.ForeignKey(TipoTrabalho)
+ trilha = models.ForeignKey(Trilha)
+ palestrante = models.ForeignKey(Palestrante)
+ descricao_curta = models.TextField(u'Descrição curta')
+ descricao_longa = models.TextField(u'Descrição longa')
+ recursos = models.TextField(blank=True)
+ duracao = models.ForeignKey(DuracaoTrabalho)
+ pub_date = models.DateTimeField(u'Data de criação', auto_now_add=True)
+ outros_palestrantes = \
+ models.ManyToManyField(Palestrante,
+ related_name='outros_palestrantes',
+ blank=True,
+ null=True)
+
+ def __str__(self):
+ return self.titulo
+
+class Improve(models.Model):
+ trabalho = models.ForeignKey(Trabalho)
+ usuario = models.ForeignKey(User, help_text=u'Este campo associa o '
+ 'palestrante a uma conta no sistema para '
+ 'que ele possa enviar trabalhos e alterar '
+ 'dados pessoais.')
+ comentario = models.TextField(u'Comentário')
+ pub_date = models.DateTimeField(u'Data do Comentário', auto_now_add=True)
+
+ def __unicode__(self):
+ return '"%s" by %s (%s)' % (self.trabalho, self.usuario, self.pub_date.strftime('%x'))