X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fema.git;a=blobdiff_plain;f=eventos%2Fmodels.py;h=4b76cc67d646ff9ea7222057b35c3dbd27df7ea7;hp=0ed21197b3d078e927f468cb6e86156ff0e6f81e;hb=7e5a22f9ccc92ccb1ff7ec878073a51fa38d4a17;hpb=bf6bad4ef390aa77063475102824fd16202b72b3 diff --git a/eventos/models.py b/eventos/models.py index 0ed2119..4b76cc6 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,21 +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')}), - ) + site = models.ForeignKey(Site) def __str__(self): return self.nome @@ -53,27 +45,80 @@ class Palestrante(models.Model): 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') + + 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'] + + def __str__(self): + return self.nome - minicurriculo = models.TextField('Mini currículo') - curriculo = models.TextField('Currículo') +class TipoTrabalho(models.Model): + nome = models.CharField(max_length=100) + evento = models.ForeignKey(Evento) - usuario = models.ForeignKey(User) + class Meta: + verbose_name = u'Tipo de trabalho' + verbose_name_plural = u'Tipos de trabalho' + + 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 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)