X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=eventos%2Fmodels.py;h=fca045d14239bfba13246287b14a17d55b582b70;hb=HEAD;hp=73aacea683486756e92c5b038d8a0e710b7929bd;hpb=78fc1d06732ed7744faff33e97bf3a7aadc508af;p=cascardo%2Fema.git diff --git a/eventos/models.py b/eventos/models.py index 73aacea..fca045d 100644 --- a/eventos/models.py +++ b/eventos/models.py @@ -18,6 +18,7 @@ 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) @@ -27,23 +28,12 @@ class Evento(models.Model): 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')}), - ) - - search_fields = list_display = 'nome', 'local' + site = models.ForeignKey(Site) def __str__(self): return self.nome @@ -57,9 +47,8 @@ class Palestrante(models.Model): instituicao = models.CharField(u'Instituição', max_length=250, blank=True) - rua = models.CharField(max_length=100) - numero = models.CharField(u'Número', max_length=10) - bairro = models.CharField(max_length=100) + endereco = models.TextField() + cep = models.CharField(max_length=8) cidade = models.CharField(max_length=100) estado = models.CharField(max_length=2, choices=STATE_CHOICES) @@ -70,31 +59,15 @@ class Palestrante(models.Model): 'palestrante a uma conta no sistema para ' 'que ele possa enviar trabalhos e alterar ' 'dados pessoais.') - - class Admin: - fields = ( - (None, {'fields': ('nome', 'email', 'instituicao', - 'minicurriculo', 'curriculo')}), - - (u'Telefones', {'fields': ('telefone', 'celular')}), - - (u'Endereço', {'fields': ('rua', 'numero', - 'bairro', 'cidade', 'estado')}), - - (u'Avançado', {'fields': ('usuario',), - 'classes': 'collapse'}), - ) - - search_fields = list_display = 'nome', 'instituicao', 'email', 'celular' + class Meta: + ordering = ['nome'] def __str__(self): return self.nome class TipoTrabalho(models.Model): nome = models.CharField(max_length=100) - - class Admin: - search_fields = 'nome', + evento = models.ForeignKey(Evento) class Meta: verbose_name = u'Tipo de trabalho' @@ -103,18 +76,52 @@ class TipoTrabalho(models.Model): 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) - palestrante = models.ManyToManyField(Palestrante) + 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) - - class Admin: - list_filter = 'evento', 'tipo' - search_fields = list_display = 'titulo', 'evento', 'tipo' + 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'))