Terminando o cadastro de inscrições de caravanas
[cascardo/eventmanager.git] / eventos / models.py
index adcbaa2..3dd623e 100644 (file)
@@ -18,7 +18,12 @@ Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.
 """
 from django.db import models
+from django.contrib.localflavor.br.br_states import STATE_CHOICES as _states
+from django.contrib.auth.models import User
 
+# bad hack!
+STATE_CHOICES = [(x, unicode(y).encode('utf8')) for x, y in _states]
+del _states
 
 class Evento(models.Model):
     nome = models.CharField(maxlength=100)
@@ -29,32 +34,18 @@ class Evento(models.Model):
     nome_contato = models.CharField('Nome do contato', maxlength=100)
     telefone = models.CharField(maxlength=100)
     cidade = models.CharField(maxlength=100)
-    uf = models.CharField(maxlength=100) # TODO: should became a combobox
+    uf = models.CharField(maxlength=2, choices=STATE_CHOICES)
     rua = models.CharField(maxlength=100)
     numero = models.CharField('Número', maxlength=10)
     info_adicional = models.TextField()
 
     class Admin:
         fields = (
-            (None, {'fields': ('nome', 'data_inicio', 'data_final')}),
+            ('Informações do evento', {'fields': ('nome', 'data_inicio', 'data_final')}),
             ('Informações da sede', {'fields': ('nome_local', 'nome_contato',
-                'cidade', 'uf', 'rua', 'numero', 'info_adicional')}),
+                'cidade', 'uf', 'rua', 'numero','telefone', 'info_adicional')}),
         )
 
-    def __str__(self):
-        return self.name
-
-
-class AreaDeInteresse(models.Model):
-    nome = models.CharField(maxlength=100)
-
-    class Meta:
-        verbose_name = 'area de interesse'
-        verbose_name_plural = 'areas de interesse'
-
-    class Admin:
-        pass
-
     def __str__(self):
         return self.nome
 
@@ -63,9 +54,10 @@ class Palestrante(models.Model):
     nome = models.CharField(maxlength=100)
     email = models.CharField(maxlength=100)
 
-    telefone_residencial = models.CharField(maxlength=11)
-    telefone_celular = models.CharField(maxlength=11)
-    telefone_comercial = models.CharField(maxlength=11)
+    telefone = models.CharField(maxlength=100, blank=True)
+    celular = models.CharField(maxlength=100, blank=True)
+
+    instituicao = models.CharField(maxlength=250, blank=True)
 
     rua = models.CharField(maxlength=100)
     numero = models.CharField(maxlength=10)
@@ -74,16 +66,17 @@ class Palestrante(models.Model):
     uf = models.CharField(maxlength=3)
 
     minicurriculo = models.TextField('Mini currículo')
-    area_interesse = models.ManyToManyField(AreaDeInteresse)
+    curriculo = models.TextField('Currículo')
+
+    usuario = models.ForeignKey(User)
 
     class Admin:
         fields = (
-            (None, {'fields': ('nome', 'email', 'minicurriculo')}),
-            ('Telefones', {'fields': ('telefone_residencial',
-                'telefone_celular', 'telefone_comercial')}),
+            (None, {'fields': ('nome', 'email', 'instituicao',
+                'minicurriculo', 'curriculo', 'usuario')}),
+            ('Telefones', {'fields': ('telefone', 'celular')}),
             ('Endereço', {'fields': ('rua', 'numero',
                 'bairro', 'cidade', 'uf')}),
-            (None, {'fields': ('area_interesse',)}),
         )
 
     def __str__(self):
@@ -92,6 +85,17 @@ class Palestrante(models.Model):
 
 class Participante(models.Model):
     nome = models.CharField(maxlength=100)
+    email = models.CharField(maxlength=100)
+    rg = models.CharField(maxlength=100)
+    home_page = models.CharField(maxlength=100, blank=True)
+
+    telefone = models.CharField(maxlength=100, blank=True)
+    rua = models.CharField(maxlength=100)
+    numero = models.CharField(maxlength=10)
+    bairro = models.CharField(maxlength=100)
+    cidade = models.CharField(maxlength=100)
+    uf = models.CharField(maxlength=3)
+    usuario = models.ForeignKey(User)
 
     class Admin:
         pass
@@ -100,45 +104,77 @@ class Participante(models.Model):
         return self.nome
 
 
-class CategoriaPalestra(models.Model):
+class Caravana(models.Model):
+    coordenador = models.ForeignKey(Participante)
+    participantes = models.TextField()
+
+    class Admin:
+        pass
+
+    def __str__(self):
+        return str(self.coordenador)
+
+
+class CategoriaTrabalho(models.Model):
     nome = models.CharField(maxlength=100)
 
     class Admin:
         pass
 
     class Meta:
-        verbose_name = 'Categoria de palestra'
-        verbose_name_plural = 'Categorias de palestra'
+        verbose_name = 'Categoria de trabalho'
+        verbose_name_plural = 'Categorias de trabalhos'
 
     def __str__(self):
         return self.nome
 
 
-class Palestra(models.Model):
+class TipoTrabalho(models.Model):
+    nome = models.CharField(maxlength=100)
+
+    class Admin:
+        pass
+
+    class Meta:
+        verbose_name = 'Tipo de trabalho'
+        verbose_name_plural = 'Tipos de trabalho'
+
+    def __str__(self):
+        return self.nome
+
+
+class Trabalho(models.Model):
     titulo = models.CharField(maxlength=100)
-    tema = models.CharField(maxlength=100)
     evento = models.ForeignKey(Evento)
-    categoria = models.ForeignKey(CategoriaPalestra)
+    tipo = models.ForeignKey(TipoTrabalho)
+    categoria = models.ForeignKey(CategoriaTrabalho)
     palestrante = models.ManyToManyField(Palestrante)
     descricao_curta = models.TextField()
     descricao_longa = models.TextField()
+    recursos = models.TextField()
 
     class Admin:
         fields = (
-            (None, {'fields': ('titulo', 'tema', 'evento', 'categoria',
-                'palestrante', 'descricao_curta', 'descricao_longa')}),
+            (None, {'fields': ('titulo', 'evento', 'categoria',
+                'palestrante', 'descricao_curta', 'descricao_longa',
+                'recursos')}),
         )
 
-
     def __str__(self):
         return self.titulo
 
 
-class MiniCurso(models.Model):
-    titulo = models.CharField(maxlength=100)
+class Avaliacao(models.Model):
+    avaliador = models.ManyToManyField(User)
+    comentario = models.TextField()
+    trabalho = models.ForeignKey(Trabalho)
 
     class Admin:
         pass
 
+    class Meta:
+        verbose_name = 'Avaliação'
+        verbose_name_plural = 'Avaliações'
+
     def __str__(self):
-        return self.titulo
+        return self.nome