|
|
@ -4,8 +4,12 @@ from django.contrib.contenttypes import generic |
|
|
|
from django.contrib.auth.models import User |
|
|
|
|
|
|
|
class Subsecretaria(models.Model): |
|
|
|
""" Modelo para representação das Subsecretarias do Interlegis |
|
|
|
""" |
|
|
|
|
|
|
|
nome = models.CharField(max_length=50) |
|
|
|
sigla = models.CharField(max_length=10) |
|
|
|
# servidor responsavel por dirigir a Subsecretaria |
|
|
|
responsavel = models.ForeignKey('servidores.Servidor', related_name='diretor') |
|
|
|
|
|
|
|
class Meta: |
|
|
@ -15,9 +19,13 @@ class Subsecretaria(models.Model): |
|
|
|
return '%s (%s)' % (unicode(self.nome), unicode(self.sigla)) |
|
|
|
|
|
|
|
class Servico(models.Model): |
|
|
|
""" Modelo para representação dos Serviços de uma Subsecretaria |
|
|
|
""" |
|
|
|
|
|
|
|
nome = models.CharField(max_length=50) |
|
|
|
sigla = models.CharField(max_length=10) |
|
|
|
subsecretaria = models.ForeignKey(Subsecretaria) |
|
|
|
# servidor responsavel por chefiar o serviço |
|
|
|
responsavel = models.ForeignKey('servidores.Servidor', related_name='chefe') |
|
|
|
|
|
|
|
class Meta: |
|
|
@ -29,19 +37,29 @@ class Servico(models.Model): |
|
|
|
return '%s (%s)' % (unicode(self.nome), unicode(self.sigla)) |
|
|
|
|
|
|
|
class Servidor(models.Model): |
|
|
|
""" Modelo para representação de um Servidor. |
|
|
|
|
|
|
|
Um servidor pertence a um Serviço e uma Subsecretaria os campos |
|
|
|
deste modelo são referente as informações básicas de cadastro. |
|
|
|
""" |
|
|
|
|
|
|
|
SEXO_CHOICES = ( |
|
|
|
('M', u'Masculino'), |
|
|
|
('F', u'Feminino'), |
|
|
|
) |
|
|
|
|
|
|
|
TURNO_CHOICES = ( |
|
|
|
('M', u'Manhã'), |
|
|
|
('T', u'Tarde'), |
|
|
|
('N', u'Noite'), |
|
|
|
) |
|
|
|
|
|
|
|
# usuario responsavel pela autenticação do servidor no sistema |
|
|
|
user = models.ForeignKey(User, unique=True) |
|
|
|
nome_completo = models.CharField(max_length=128) |
|
|
|
nome_completo.alphabetic_filter = True |
|
|
|
user = models.ForeignKey(User, unique=True) |
|
|
|
apelido = models.CharField(max_length=50, blank=True) |
|
|
|
# caminho no sistema para arquivo com a imagem |
|
|
|
foto = models.ImageField( |
|
|
|
upload_to='fotos/servidores', |
|
|
|
width_field='foto_largura', |
|
|
@ -61,9 +79,7 @@ class Servidor(models.Model): |
|
|
|
blank=True, |
|
|
|
null=True, |
|
|
|
) |
|
|
|
email = models.EmailField('e-mail', blank=True, null=True) |
|
|
|
servico = models.ForeignKey('servidores.Servico', blank=True, null=True) |
|
|
|
is_chefe = models.BooleanField() |
|
|
|
matricula = models.CharField(u'matrícula', max_length=25, blank=True, null=True) |
|
|
|
turno= models.CharField( |
|
|
|
max_length=1, |
|
|
@ -71,8 +87,6 @@ class Servidor(models.Model): |
|
|
|
blank=True, |
|
|
|
null=True, |
|
|
|
) |
|
|
|
data_entrada = models.DateField(u'data de entrada', blank=True, null=True) |
|
|
|
data_saida = models.DateField(u'data de saída', blank=True, null=True) |
|
|
|
data_nomeacao = models.DateField(u'data de nomeação', blank=True, null=True) |
|
|
|
ato_exoneracao = models.CharField(u'ato de exoneração',max_length=150, blank=True, null=True) |
|
|
|
cpf = models.CharField('CPF', max_length=11, blank=True, null=True) |
|
|
@ -80,7 +94,8 @@ class Servidor(models.Model): |
|
|
|
obs = models.TextField(u'observação', blank=True, null=True) |
|
|
|
apontamentos = models.TextField(u'apontamentos', blank=True, null=True) |
|
|
|
|
|
|
|
#endereco = models.ForeignKey('contatos.Endereco', blank=True, null=True) |
|
|
|
# Informações de contato |
|
|
|
email_pessoal = models.EmailField('e-mail pessoal', blank=True, null=True) |
|
|
|
endereco = generic.GenericRelation('contatos.Endereco') |
|
|
|
telefones = generic.GenericRelation('contatos.Telefone') |
|
|
|
ramal = models.IntegerField('ramal', blank=True, null=True) |
|
|
@ -89,10 +104,31 @@ class Servidor(models.Model): |
|
|
|
ordering = ('nome_completo',) |
|
|
|
verbose_name_plural = 'servidores' |
|
|
|
|
|
|
|
def is_chefe(): |
|
|
|
""" Verifica se o servidor é chefe ou diretor |
|
|
|
""" |
|
|
|
pass |
|
|
|
|
|
|
|
def data_entrada(): |
|
|
|
""" Verifica a data de entrada da função mais antiga |
|
|
|
""" |
|
|
|
pass |
|
|
|
|
|
|
|
def data_saida(): |
|
|
|
""" Verifica a data de saída da função mais recente |
|
|
|
de um servidor desativado |
|
|
|
|
|
|
|
Caso o usuário esteja ativo retorna None |
|
|
|
""" |
|
|
|
pass |
|
|
|
|
|
|
|
def __unicode__(self): |
|
|
|
return self.nome_completo |
|
|
|
|
|
|
|
class Funcao(models.Model): |
|
|
|
""" Modelo para guardar o histórico de funções dos |
|
|
|
servidores no Interlegis |
|
|
|
""" |
|
|
|
servidor = models.ForeignKey(Servidor) |
|
|
|
funcao = models.CharField(max_length=50) |
|
|
|
cargo = models.CharField(max_length=50, blank=True, null=True) |
|
|
@ -115,6 +151,8 @@ class Funcao(models.Model): |
|
|
|
|
|
|
|
|
|
|
|
class Licenca(models.Model): |
|
|
|
""" Modelo que representa as licenças tiradas pelos servidores |
|
|
|
""" |
|
|
|
servidor = models.ForeignKey(Servidor) |
|
|
|
inicio_licenca = models.DateField(u'início da licença') |
|
|
|
fim_licenca = models.DateField(u'fim da licença') |
|
|
@ -124,10 +162,17 @@ class Licenca(models.Model): |
|
|
|
verbose_name = u'licença' |
|
|
|
verbose_name_plural = u'licenças' |
|
|
|
|
|
|
|
def days(): |
|
|
|
""" Calcula a quantidade de dias da licença |
|
|
|
""" |
|
|
|
pass |
|
|
|
|
|
|
|
def __unicode__(self): |
|
|
|
return str(self.id) |
|
|
|
|
|
|
|
class Ferias(models.Model): |
|
|
|
""" Modelo que representa as férias tiradas pelos servidores |
|
|
|
""" |
|
|
|
servidor = models.ForeignKey(Servidor) |
|
|
|
inicio_ferias = models.DateField(u'início das férias') |
|
|
|
fim_ferias = models.DateField(u'fim das férias') |
|
|
@ -137,5 +182,10 @@ class Ferias(models.Model): |
|
|
|
verbose_name = u'férias' |
|
|
|
verbose_name_plural = u'férias' |
|
|
|
|
|
|
|
def days(): |
|
|
|
""" Calcula a quantidade de dias das férias |
|
|
|
""" |
|
|
|
pass |
|
|
|
|
|
|
|
def __unicode__(self): |
|
|
|
return str(self.id) |
|
|
|