Fix bad merge
[cascardo/ema.git] / eventos / models.py
index 0ed2119..fca045d 100644 (file)
@@ -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,83 @@ 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')
 
-    minicurriculo = models.TextField('Mini currículo')
-    curriculo = models.TextField('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']
 
-    usuario = models.ForeignKey(User)
+    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 TipoTrabalho(models.Model):
+    nome = models.CharField(max_length=100)
+    evento = models.ForeignKey(Evento)
+
+    class Meta:
+        verbose_name = u'Tipo de trabalho'
+        verbose_name_plural = u'Tipos de trabalho'
 
     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)
+
+    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'))