from django.db import models
from django.contrib.localflavor.br.br_states import STATE_CHOICES
from django.contrib.auth.models import User
+from django.contrib.sites.models import Site
class Evento(models.Model):
nome = models.CharField(max_length=100)
local = models.CharField(max_length=100)
nome_contato = models.CharField(u'Nome do contato', max_length=100)
telefone = models.CharField(max_length=100)
+ endereco = models.TextField()
cidade = models.CharField(max_length=100)
estado = models.CharField(max_length=2, choices=STATE_CHOICES)
- rua = models.CharField(max_length=100)
- numero = models.CharField(u'Número', max_length=10)
info_adicional = models.TextField(blank=True)
- class Admin:
- fields = (
- (u'Informações do evento',
- {'fields': ('nome', 'data_inicio', 'data_final')}),
-
- (u'Informações da sede',
- {'fields': ('local', 'nome_contato', 'rua', 'numero', 'cidade',
- 'estado', 'telefone', 'info_adicional')}),
- )
+ site = models.ForeignKey(Site)
def __str__(self):
return self.nome
telefone = models.CharField(max_length=100, blank=True)
celular = models.CharField(max_length=100, blank=True)
- instituicao = models.CharField(max_length=250, blank=True)
+ instituicao = models.CharField(u'Instituição', max_length=250, blank=True)
- rua = models.CharField(max_length=100)
- numero = models.CharField(max_length=10)
- bairro = models.CharField(max_length=100)
+ endereco = models.TextField()
+ cep = models.CharField(max_length=8)
cidade = models.CharField(max_length=100)
- uf = models.CharField(max_length=3)
+ estado = models.CharField(max_length=2, choices=STATE_CHOICES)
+
+ minicurriculo = models.TextField(u'Mini currículo')
+ curriculo = models.TextField(u'Currículo')
- minicurriculo = models.TextField('Mini currículo')
- curriculo = models.TextField('Currículo')
+ 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.')
+ class Meta:
+ ordering = ['nome']
- usuario = models.ForeignKey(User)
+ def __str__(self):
+ return self.nome
- class Admin:
- fields = (
- (None, {'fields': ('nome', 'email', 'instituicao',
- 'minicurriculo', 'curriculo')}),
- ('Telefones', {'fields': ('telefone', 'celular')}),
- ('Endereço', {'fields': ('rua', 'numero',
- 'bairro', 'cidade', 'uf')}),
- )
+class TipoTrabalho(models.Model):
+ nome = models.CharField(max_length=100)
+ evento = models.ForeignKey(Evento)
+
+ class Meta:
+ verbose_name = u'Tipo de trabalho'
+ verbose_name_plural = u'Tipos de trabalho'
def __str__(self):
return self.nome
+
+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'))