X-Git-Url: http://git.cascardo.info/?a=blobdiff_plain;f=eventos%2Fmodels.py;h=4b34e2725a5c990f3c0a4aa0c76d44c7f37ec7fe;hb=09b315dd54c30bf619793401084c7f58c3dcc60f;hp=f1378f42fa7f0f088251d506eda025668a406e27;hpb=dba30d749f678328c1aded3e7d2813bf27646152;p=cascardo%2Fema.git diff --git a/eventos/models.py b/eventos/models.py index f1378f4..4b34e27 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,23 +76,40 @@ 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) + 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) - class Admin: - list_filter = 'evento', 'tipo' - search_fields = list_display = 'titulo', 'evento', 'tipo' - def __str__(self): return self.titulo