Revisando campos da entidade Palestrante e adicionando as entidades TipoTrabalho...
authorLincoln de Sousa <lincoln@minaslivre.org>
Tue, 1 Jul 2008 00:29:42 +0000 (21:29 -0300)
committerLincoln de Sousa <lincoln@minaslivre.org>
Tue, 1 Jul 2008 00:29:42 +0000 (21:29 -0300)
eventos/models.py

index 0ed2119..73aacea 100644 (file)
@@ -43,6 +43,8 @@ class Evento(models.Model):
                          'estado', 'telefone', 'info_adicional')}),
         )
 
+        search_fields = list_display = 'nome', 'local'
+
     def __str__(self):
         return self.nome
 
@@ -53,27 +55,66 @@ 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)
+    numero = models.CharField(u'Número', max_length=10)
     bairro = models.CharField(max_length=100)
     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': ('rua', 'numero',
+                                      'bairro', '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.ManyToManyField(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'
+
+    def __str__(self):
+        return self.titulo