Replaced class Admin with admin.py in Eventos
[cascardo/ema.git] / eventos / models.py
1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2008 Lincoln de Sousa <lincoln@minaslivre.org>
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License as
6 # published by the Free Software Foundation; either version 2 of the
7 # License, or (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 # General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public
15 # License along with this program; if not, write to the
16 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 # Boston, MA 02111-1307, USA.
18 from django.db import models
19 from django.contrib.localflavor.br.br_states import STATE_CHOICES
20 from django.contrib.auth.models import User
21 from django.contrib.sites.models import Site
22
23 class Evento(models.Model):
24     nome = models.CharField(max_length=100)
25     data_inicio = models.DateField(u'Data de início')
26     data_final = models.DateField()
27
28     local = models.CharField(max_length=100)
29     nome_contato = models.CharField(u'Nome do contato', max_length=100)
30     telefone = models.CharField(max_length=100)
31     endereco = models.TextField()
32     cidade = models.CharField(max_length=100)
33     estado = models.CharField(max_length=2, choices=STATE_CHOICES)
34     info_adicional = models.TextField(blank=True)
35
36     site = models.ForeignKey(Site)
37
38     def __str__(self):
39         return self.nome
40
41 class Palestrante(models.Model):
42     nome = models.CharField(max_length=100)
43     email = models.CharField(max_length=100)
44
45     telefone = models.CharField(max_length=100, blank=True)
46     celular = models.CharField(max_length=100, blank=True)
47
48     instituicao = models.CharField(u'Instituição', max_length=250, blank=True)
49
50     endereco = models.TextField()
51     cep = models.CharField(max_length=8)
52     cidade = models.CharField(max_length=100)
53     estado = models.CharField(max_length=2, choices=STATE_CHOICES)
54
55     minicurriculo = models.TextField(u'Mini currículo')
56     curriculo = models.TextField(u'Currículo')
57
58     usuario = models.ForeignKey(User, help_text=u'Este campo associa o '
59                                 'palestrante a uma conta no sistema para '
60                                 'que ele possa enviar trabalhos e alterar '
61                                 'dados pessoais.')
62
63     def __str__(self):
64         return self.nome
65
66 class TipoTrabalho(models.Model):
67     nome = models.CharField(max_length=100)
68     evento = models.ForeignKey(Evento)
69
70     class Meta:
71         verbose_name = u'Tipo de trabalho'
72         verbose_name_plural = u'Tipos de trabalho'
73
74     def __str__(self):
75         return self.nome
76
77 class Trilha(models.Model):
78     nome = models.CharField(max_length=100)
79     evento = models.ForeignKey(Evento)
80
81     def __str__(self):
82         return self.nome
83
84 class Trabalho(models.Model):
85     titulo = models.CharField(max_length=100)
86     evento = models.ForeignKey(Evento)
87     tipo = models.ForeignKey(TipoTrabalho)
88     trilha = models.ForeignKey(Trilha)
89     palestrante = models.ForeignKey(Palestrante)
90     descricao_curta = models.TextField(u'Descrição curta')
91     descricao_longa = models.TextField(u'Descrição longa')
92     recursos = models.TextField(blank=True)
93     outros_palestrantes = \
94         models.ManyToManyField(Palestrante,
95                                related_name='outros_palestrantes',
96                                blank=True,
97                                null=True)
98
99     def __str__(self):
100         return self.titulo