adicionando metodo que faz o parsing dos participantes de uma caravana.
[cascardo/eventmanager.git] / eventos / models.py
index 2a73e6e..5ab55d8 100644 (file)
@@ -1,4 +1,4 @@
-# -*- coding: utf8; -*-
+# -*- coding: utf-8; -*-
 """
 Copyright (C) 2007 Lincoln de Sousa <lincoln@archlinux-br.org>
 
@@ -41,36 +41,23 @@ class Evento(models.Model):
 
     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.nome
 
 
-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
-
-
 class Palestrante(models.Model):
     nome = models.CharField(maxlength=100)
     email = models.CharField(maxlength=100)
 
-    telefone_residencial = models.CharField(maxlength=11, blank=True)
-    telefone_celular = models.CharField(maxlength=11, blank=True)
-    telefone_comercial = models.CharField(maxlength=11, blank=True)
+    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)
@@ -79,18 +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', 'usuario')}),
-            ('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):
@@ -99,53 +85,104 @@ 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)
+    cep = models.CharField(maxlength=8)
+    usuario = models.ForeignKey(User)
+
+    class Admin:
+        pass
+
+    def __str__(self):
+        return self.nome
+
+
+class Caravana(models.Model):
+    coordenador = models.ForeignKey(Participante)
+    participantes = models.TextField()
+
+    class Admin:
+        pass
+
+    def __str__(self):
+        return str(self.coordenador)
+
+    def parsed_participantes(self):
+        real_data = []
+        for i in self.participantes.split('\n'):
+            if i.strip():
+                nome, email = i.rsplit(' ', 1)
+                real_data.append({'nome': nome, 'email': email})
+        return real_data
+
+class CategoriaTrabalho(models.Model):
+    nome = models.CharField(maxlength=100)
 
     class Admin:
         pass
 
+    class Meta:
+        verbose_name = 'Categoria de trabalho'
+        verbose_name_plural = 'Categorias de trabalhos'
+
     def __str__(self):
         return self.nome
 
 
-class CategoriaPalestra(models.Model):
+class TipoTrabalho(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 = 'Tipo de trabalho'
+        verbose_name_plural = 'Tipos de trabalho'
 
     def __str__(self):
         return self.nome
 
 
-class Palestra(models.Model):
+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