X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fema.git;a=blobdiff_plain;f=eventos%2Fmodels.py;h=85e32438d5005da76c63495f85f499faed6d0e4d;hp=0ed21197b3d078e927f468cb6e86156ff0e6f81e;hb=78c975853ce26b799e053a2c00be3d918ef06427;hpb=bf6bad4ef390aa77063475102824fd16202b72b3 diff --git a/eventos/models.py b/eventos/models.py index 0ed2119..85e3243 100644 --- a/eventos/models.py +++ b/eventos/models.py @@ -27,10 +27,9 @@ 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: @@ -39,10 +38,12 @@ class Evento(models.Model): {'fields': ('nome', 'data_inicio', 'data_final')}), (u'Informações da sede', - {'fields': ('local', 'nome_contato', 'rua', 'numero', 'cidade', + {'fields': ('local', 'nome_contato', 'endereco', 'cidade', 'estado', 'telefone', 'info_adicional')}), ) + search_fields = list_display = 'nome', 'local' + def __str__(self): return self.nome @@ -53,27 +54,69 @@ 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=5) cidade = models.CharField(max_length=100) - uf = models.CharField(max_length=3) + estado = models.CharField(max_length=2, choices=STATE_CHOICES) - minicurriculo = models.TextField('Mini currículo') - curriculo = models.TextField('Currículo') + minicurriculo = models.TextField(u'Mini currículo') + curriculo = models.TextField(u'Currículo') - usuario = models.ForeignKey(User) + 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 Admin: fields = ( (None, {'fields': ('nome', 'email', 'instituicao', - 'minicurriculo', 'curriculo')}), - ('Telefones', {'fields': ('telefone', 'celular')}), - ('Endereço', {'fields': ('rua', 'numero', - 'bairro', 'cidade', 'uf')}), + 'minicurriculo', 'curriculo')}), + + (u'Telefones', {'fields': ('telefone', 'celular')}), + + (u'Endereço', {'fields': ('endereco', 'cep', 'cidade', 'estado')}), + + (u'Avançado', {'fields': ('usuario',), + 'classes': 'collapse'}), ) + search_fields = list_display = 'nome', 'instituicao', 'email', 'celular' + def __str__(self): return self.nome + +class TipoTrabalho(models.Model): + nome = models.CharField(max_length=100) + + class Admin: + search_fields = 'nome', + + class Meta: + verbose_name = u'Tipo de trabalho' + verbose_name_plural = u'Tipos de trabalho' + + def __str__(self): + return self.nome + +class Trabalho(models.Model): + titulo = models.CharField(max_length=100) + evento = models.ForeignKey(Evento) + tipo = models.ForeignKey(TipoTrabalho) + 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) + 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