mirror of https://github.com/interlegis/sigi.git
Felipe Vieira
13 years ago
14 changed files with 560 additions and 2 deletions
@ -0,0 +1,32 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
from django.contrib import admin |
||||
|
from eav.admin import BaseEntityAdmin, BaseSchemaAdmin |
||||
|
from sigi.apps.diagnosticos.models import Diagnostico, Pergunta, Escolha, Equipe, Anexo |
||||
|
from sigi.apps.diagnosticos.forms import DiagnosticoForm |
||||
|
|
||||
|
class EquipeInline(admin.TabularInline): |
||||
|
model = Equipe |
||||
|
extra = 4 |
||||
|
|
||||
|
class AnexosInline(admin.TabularInline): |
||||
|
model = Anexo |
||||
|
extra = 2 |
||||
|
exclude = ['data_pub',] |
||||
|
|
||||
|
class AnexoAdmin(admin.ModelAdmin): |
||||
|
date_hierarchy = 'data_pub' |
||||
|
exclude = ['data_pub',] |
||||
|
list_display = ('arquivo', 'descricao', 'data_pub', 'diagnostico') |
||||
|
raw_id_fields = ('diagnostico',) |
||||
|
search_fields = ('descricao', 'diagnostico__id', 'arquivo', |
||||
|
'diagnostico__casa_legislativa__nome') |
||||
|
|
||||
|
class DiagnosticoAdmin(BaseEntityAdmin): |
||||
|
form = DiagnosticoForm |
||||
|
inlines = (EquipeInline, AnexosInline) |
||||
|
raw_id_fields = ('casa_legislativa',) |
||||
|
|
||||
|
admin.site.register(Diagnostico, DiagnosticoAdmin) |
||||
|
admin.site.register(Pergunta, BaseSchemaAdmin) |
||||
|
admin.site.register(Escolha) |
||||
|
admin.site.register(Anexo, AnexoAdmin) |
@ -0,0 +1,5 @@ |
|||||
|
from models import Diagnostico |
||||
|
from eav.forms import BaseDynamicEntityForm |
||||
|
|
||||
|
class DiagnosticoForm(BaseDynamicEntityForm): |
||||
|
model = Diagnostico |
@ -0,0 +1,90 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
from datetime import datetime |
||||
|
from django.db import models |
||||
|
from sigi.apps.utils import SearchField |
||||
|
from eav.models import BaseChoice, BaseEntity, BaseSchema, BaseAttribute |
||||
|
|
||||
|
class Diagnostico(BaseEntity): |
||||
|
casa_legislativa = models.ForeignKey( |
||||
|
'casas.CasaLegislativa', |
||||
|
verbose_name='Casa Legislativa' |
||||
|
) |
||||
|
search_text = SearchField(field_names=['casa_legislativa']) |
||||
|
casa_legislativa.convenio_uf_filter = True |
||||
|
casa_legislativa.convenio_cl_tipo_filter = True |
||||
|
data_visita = models.DateField( |
||||
|
'data da visita', |
||||
|
null=True, |
||||
|
blank=True, |
||||
|
) |
||||
|
data_questionario = models.DateField( |
||||
|
'data do questionario', |
||||
|
null=True, |
||||
|
blank=True, |
||||
|
help_text='Convênio firmado.' |
||||
|
) |
||||
|
data_relatorio_questionario = models.DateField( |
||||
|
'data do relatório do questionario', |
||||
|
null=True, |
||||
|
blank=True |
||||
|
) |
||||
|
data_termo_aceite = models.DateField( |
||||
|
'Equipadas', |
||||
|
null=True, |
||||
|
blank=True, |
||||
|
help_text='Equipamentos recebidos.' |
||||
|
) |
||||
|
class Meta: |
||||
|
verbose_name, verbose_name_plural = u'diagnóstico', u'diagnósticos' |
||||
|
|
||||
|
@classmethod |
||||
|
def get_schemata_for_model(self): |
||||
|
return Pergunta.objects.all() |
||||
|
|
||||
|
def __unicode__(self): |
||||
|
return str(self.casa_legislativa) |
||||
|
|
||||
|
class Categoria(models.Model): |
||||
|
nome= models.CharField(max_length=50) |
||||
|
ordem = models.PositiveSmallIntegerField(blank=True, null=True) |
||||
|
|
||||
|
class Pergunta(BaseSchema): |
||||
|
categoria = models.ForeignKey(Categoria) |
||||
|
ordem = models.PositiveSmallIntegerField(blank=True, null=True) |
||||
|
class Meta: |
||||
|
verbose_name, verbose_name_plural = 'pergunta', 'perguntas' |
||||
|
|
||||
|
class Escolha(BaseChoice): |
||||
|
schema = models.ForeignKey(Pergunta, related_name='choices', verbose_name='pergunta') |
||||
|
class Meta: |
||||
|
verbose_name, verbose_name_plural = 'escolha', 'escolhas' |
||||
|
|
||||
|
class Resposta(BaseAttribute): |
||||
|
schema = models.ForeignKey(Pergunta, related_name='attrs', verbose_name='pergunta') |
||||
|
choice = models.ForeignKey(Escolha, verbose_name='escolha', blank=True, null=True) |
||||
|
class Meta: |
||||
|
verbose_name, verbose_name_plural = 'resposta', 'respostas' |
||||
|
|
||||
|
class Equipe(models.Model): |
||||
|
diagnostico = models.ForeignKey(Diagnostico) |
||||
|
membro = models.ForeignKey('servidores.Servidor') |
||||
|
is_chefe = models.BooleanField() |
||||
|
|
||||
|
def __unicode__(self): |
||||
|
return str(self.id) |
||||
|
|
||||
|
class Anexo(models.Model): |
||||
|
diagnostico = models.ForeignKey(Diagnostico, verbose_name=u'diagnóstico') |
||||
|
arquivo = models.FileField(upload_to='apps/diagnostico/anexo/arquivo',) |
||||
|
descricao = models.CharField('descrição', max_length='70') |
||||
|
data_pub = models.DateTimeField( |
||||
|
'data da publicação do anexo', |
||||
|
default=datetime.now |
||||
|
) |
||||
|
|
||||
|
class Meta: |
||||
|
ordering = ('-data_pub',) |
||||
|
|
||||
|
def __unicode__(self): |
||||
|
return unicode(self.arquivo.name) |
||||
|
|
@ -0,0 +1,29 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
from django.contrib import admin |
||||
|
from eav.admin import BaseEntityAdmin, BaseSchemaAdmin |
||||
|
from sigi.apps.ocorrencias.models import Ocorrencia, Comentario, Anexo, Categoria |
||||
|
|
||||
|
class ComentarioInline(admin.TabularInline): |
||||
|
model = Comentario |
||||
|
extra = 1 |
||||
|
|
||||
|
class AnexosInline(admin.TabularInline): |
||||
|
model = Anexo |
||||
|
extra = 2 |
||||
|
exclude = ['data_pub',] |
||||
|
|
||||
|
class AnexoAdmin(admin.ModelAdmin): |
||||
|
date_hierarchy = 'data_pub' |
||||
|
exclude = ['data_pub',] |
||||
|
list_display = ('arquivo', 'descricao', 'data_pub', 'ocorrencia') |
||||
|
raw_id_fields = ('ocorrencia',) |
||||
|
search_fields = ('descricao', 'ocorrencia__id', 'arquivo', |
||||
|
'ocorrencia__casa_legislativa__nome') |
||||
|
|
||||
|
class OcorrenciaAdmin(BaseEntityAdmin): |
||||
|
inlines = (ComentarioInline, AnexosInline) |
||||
|
raw_id_fields = ('casa_legislativa',) |
||||
|
|
||||
|
admin.site.register(Ocorrencia, OcorrenciaAdmin) |
||||
|
admin.site.register(Anexo, AnexoAdmin) |
||||
|
admin.site.register(Categoria) |
@ -0,0 +1,83 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
from django.db import models |
||||
|
from datetime import datetime |
||||
|
from django.db import models |
||||
|
from sigi.apps.utils import SearchField |
||||
|
from eav.models import BaseChoice, BaseEntity, BaseSchema, BaseAttribute |
||||
|
|
||||
|
class Categoria(models.Model): |
||||
|
nome= models.CharField(max_length=50) |
||||
|
descricao = models.TextField('descrição', blank=True, null=True) |
||||
|
|
||||
|
def __unicode__(self): |
||||
|
return str(self.nome) |
||||
|
|
||||
|
class Ocorrencia(models.Model): |
||||
|
casa_legislativa = models.ForeignKey( |
||||
|
'casas.CasaLegislativa', |
||||
|
verbose_name='Casa Legislativa' |
||||
|
) |
||||
|
search_text = SearchField(field_names=['casa_legislativa']) |
||||
|
casa_legislativa.convenio_uf_filter = True |
||||
|
casa_legislativa.convenio_cl_tipo_filter = True |
||||
|
data_criacao = models.DateField( |
||||
|
'data de criacao', |
||||
|
null=True, |
||||
|
blank=True, |
||||
|
) |
||||
|
|
||||
|
data_modificacao = models.DateField( |
||||
|
u'data de modificação', |
||||
|
null=True, |
||||
|
blank=True, |
||||
|
) |
||||
|
|
||||
|
|
||||
|
STATUS_CHOICES = ( |
||||
|
(1, 'Aberto'), |
||||
|
(2, 'Reaberto'), |
||||
|
(3, 'Resolvido'), |
||||
|
(4, 'Fechado'), |
||||
|
(5, 'Duplicado'), |
||||
|
) |
||||
|
|
||||
|
PRIORITY_CHOICES = ( |
||||
|
(1, u'Altíssimo'), |
||||
|
(2, 'Alto'), |
||||
|
(3, 'Normal'), |
||||
|
(4, 'Baixo'), |
||||
|
(5, u'Baixíssimo'), |
||||
|
) |
||||
|
|
||||
|
categoria = models.ForeignKey(Categoria) |
||||
|
assunto = models.CharField(max_length=200) |
||||
|
status = models.IntegerField(choices=STATUS_CHOICES, default=1, blank=1) |
||||
|
prioridade = models.IntegerField(choices=PRIORITY_CHOICES, default=3, blank=3) |
||||
|
descricao = models.TextField(u'descirção', blank=True, null=True) |
||||
|
resolucao = models.TextField(u'resolução', blank=True, null=True) |
||||
|
responsavel = models.ForeignKey('servidores.Servidor', blank=True, null=True, verbose_name=u'responsável') |
||||
|
|
||||
|
class Meta: |
||||
|
verbose_name, verbose_name_plural = u'ocorrência', u'ocorrências' |
||||
|
|
||||
|
class Comentario(models.Model): |
||||
|
ocorrencia = models.ForeignKey(Ocorrencia, verbose_name=u'ocorrência') |
||||
|
data_criacao = models.DateTimeField(u'data de criação', default = datetime.now()) |
||||
|
descricao = models.TextField(u'descirção', blank=True, null=True) |
||||
|
usuario = models.ForeignKey('servidores.Servidor', blank=True, null=True, verbose_name=u'usuário') |
||||
|
|
||||
|
class Anexo(models.Model): |
||||
|
ocorrencia = models.ForeignKey(Ocorrencia, verbose_name=u'ocorrência') |
||||
|
arquivo = models.FileField(upload_to='apps/ocorrencia/anexo/arquivo',) |
||||
|
descricao = models.CharField('descrição', max_length='70') |
||||
|
data_pub = models.DateTimeField( |
||||
|
'data da publicação do anexo', |
||||
|
default=datetime.now |
||||
|
) |
||||
|
|
||||
|
class Meta: |
||||
|
ordering = ('-data_pub',) |
||||
|
|
||||
|
def __unicode__(self): |
||||
|
return unicode(self.arquivo.name) |
||||
|
|
@ -0,0 +1,63 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
from django.contrib import admin |
||||
|
from django.contrib.contenttypes import generic |
||||
|
from sigi.apps.servidores.models import Servidor, Funcao, Licenca, Ferias |
||||
|
from sigi.apps.contatos.models import Endereco, Telefone |
||||
|
|
||||
|
class FuncaoInline(admin.TabularInline): |
||||
|
model = Funcao |
||||
|
extra = 1 |
||||
|
|
||||
|
class FuncaoAdmin(admin.ModelAdmin): |
||||
|
list_display = ('servidor', 'funcao', 'cargo','inicio_funcao', 'fim_funcao') |
||||
|
list_filter = ('inicio_funcao', 'fim_funcao') |
||||
|
search_fields = ('funcao', 'cargo', 'descricao', |
||||
|
'servidor__nome_completo', 'servidor__obs', 'servidor__apontamentos', |
||||
|
'servidor__user__email', 'servidor__user__first_name', |
||||
|
'servidor__user__last_name', 'servidor__user__username') |
||||
|
|
||||
|
class FeriasInline(admin.TabularInline): |
||||
|
model = Ferias |
||||
|
extra = 1 |
||||
|
|
||||
|
class FeriasAdmin(admin.ModelAdmin): |
||||
|
list_display = ('servidor', 'inicio_ferias', 'fim_ferias') |
||||
|
list_filter = ('servidor', 'inicio_ferias', 'fim_ferias') |
||||
|
search_fields = ('obs', |
||||
|
'servidor__nome_completo', 'servidor__obs', 'servidor__apontamentos', |
||||
|
'servidor__user__email', 'servidor__user__first_name', |
||||
|
'servidor__user__last_name', 'servidor__user__username') |
||||
|
|
||||
|
class LicencaInline(admin.TabularInline): |
||||
|
model = Licenca |
||||
|
extra = 1 |
||||
|
|
||||
|
class LicencaAdmin(admin.ModelAdmin): |
||||
|
list_display = ('servidor', 'inicio_licenca', 'fim_licenca') |
||||
|
list_filter = ('servidor', 'inicio_licenca', 'fim_licenca') |
||||
|
search_fields = ('obs', |
||||
|
'servidor__nome_completo', 'servidor__obs', 'servidor__apontamentos', |
||||
|
'servidor__user__email', 'servidor__user__first_name', |
||||
|
'servidor__user__last_name', 'servidor__user__username') |
||||
|
|
||||
|
class EnderecoInline(generic.GenericTabularInline): |
||||
|
model = Endereco |
||||
|
extra = 1 |
||||
|
raw_id_fields = ('municipio',) |
||||
|
|
||||
|
class TelefonesInline(generic.GenericTabularInline): |
||||
|
extra = 1 |
||||
|
model = Telefone |
||||
|
|
||||
|
class ServidorAdmin(admin.ModelAdmin): |
||||
|
list_display = ('nome_completo', 'servico') |
||||
|
list_filter = ('sexo', 'servico') |
||||
|
search_fields = ('nome_completo', 'obs', 'apontamentos', |
||||
|
'user__email', 'user__first_name', |
||||
|
'user__last_name', 'user__username') |
||||
|
inlines= (EnderecoInline, TelefonesInline) |
||||
|
|
||||
|
admin.site.register(Servidor, ServidorAdmin) |
||||
|
admin.site.register(Funcao, FuncaoAdmin) |
||||
|
admin.site.register(Ferias, FeriasAdmin) |
||||
|
admin.site.register(Licenca, LicencaAdmin) |
@ -0,0 +1,141 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
from django.db import models |
||||
|
from django.contrib.contenttypes import generic |
||||
|
from django.contrib.auth.models import User |
||||
|
|
||||
|
class Subsecretaria(models.Model): |
||||
|
nome = models.CharField(max_length=50) |
||||
|
sigla = models.CharField(max_length=10) |
||||
|
#responsavel = models.ForeignKey('servidores.Servidor') |
||||
|
|
||||
|
class Meta: |
||||
|
ordering = ('nome',) |
||||
|
|
||||
|
def __unicode__(self): |
||||
|
return '%s (%s)' % (unicode(self.nome), unicode(self.sigla)) |
||||
|
|
||||
|
class Servico(models.Model): |
||||
|
nome = models.CharField(max_length=50) |
||||
|
sigla = models.CharField(max_length=10) |
||||
|
subsecretaria = models.ForeignKey(Subsecretaria) |
||||
|
#responsavel = models.ForeignKey('servidores.Servidor') |
||||
|
|
||||
|
class Meta: |
||||
|
ordering = ('nome',) |
||||
|
verbose_name = 'serviço' |
||||
|
verbose_name_plural = 'serviços' |
||||
|
|
||||
|
def __unicode__(self): |
||||
|
return '%s (%s)' % (unicode(self.nome), unicode(self.sigla)) |
||||
|
|
||||
|
class Servidor(models.Model): |
||||
|
SEXO_CHOICES = ( |
||||
|
('M', u'Masculino'), |
||||
|
('F', u'Feminino'), |
||||
|
) |
||||
|
TURNO_CHOICES = ( |
||||
|
('M', u'Manhã'), |
||||
|
('T', u'Tarde'), |
||||
|
('N', u'Noite'), |
||||
|
) |
||||
|
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) |
||||
|
foto = models.ImageField( |
||||
|
upload_to='fotos/servidores', |
||||
|
width_field='foto_largura', |
||||
|
height_field='foto_altura', |
||||
|
blank=True |
||||
|
) |
||||
|
foto_largura = models.SmallIntegerField(editable=False, null=True) |
||||
|
foto_altura = models.SmallIntegerField(editable=False, null=True) |
||||
|
sexo = models.CharField( |
||||
|
max_length=1, |
||||
|
choices=SEXO_CHOICES, |
||||
|
blank=True, |
||||
|
null=True, |
||||
|
) |
||||
|
data_nascimento = models.DateField( |
||||
|
'data de nascimento', |
||||
|
blank=True, |
||||
|
null=True, |
||||
|
) |
||||
|
email = models.EmailField('e-mail', blank=True, null=True) |
||||
|
servico = models.ForeignKey(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, |
||||
|
choices=TURNO_CHOICES, |
||||
|
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) |
||||
|
rg = models.CharField('RG', max_length=25, blank=True, null=True) |
||||
|
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) |
||||
|
endereco = generic.GenericRelation('contatos.Endereco') |
||||
|
telefones = generic.GenericRelation('contatos.Telefone') |
||||
|
ramal = models.IntegerField('ramal', blank=True, null=True) |
||||
|
|
||||
|
class Meta: |
||||
|
ordering = ('nome_completo',) |
||||
|
verbose_name_plural = 'servidores' |
||||
|
|
||||
|
def __unicode__(self): |
||||
|
return self.nome_completo |
||||
|
|
||||
|
class Funcao(models.Model): |
||||
|
servidor = models.ForeignKey(Servidor) |
||||
|
funcao = models.CharField(max_length=50) |
||||
|
cargo = models.CharField(max_length=50, blank=True, null=True) |
||||
|
inicio_funcao = models.DateField(u'início da função') |
||||
|
fim_funcao = models.DateField(u'fim da função', blank=True, null=True) |
||||
|
descricao = models.TextField(u'descrição', blank=True, null=True) |
||||
|
|
||||
|
bap_entrada = models.CharField('BAP de entrada',max_length=50, blank=True, null=True) |
||||
|
data_bap_entrada = models.DateField('data BAP de entrada', blank=True, null=True) |
||||
|
|
||||
|
bap_saida = models.CharField(u'BAP de saída',max_length=50, blank=True, null=True) |
||||
|
data_bap_saida = models.DateField(u'data BAP de saída', blank=True, null=True) |
||||
|
|
||||
|
class Meta: |
||||
|
verbose_name = u'função' |
||||
|
verbose_name_plural = u'funções' |
||||
|
|
||||
|
def __unicode__(self): |
||||
|
return str(self.id) |
||||
|
|
||||
|
|
||||
|
class Licenca(models.Model): |
||||
|
servidor = models.ForeignKey(Servidor) |
||||
|
inicio_licenca = models.DateField(u'início da licença') |
||||
|
fim_licenca = models.DateField(u'fim da licença') |
||||
|
obs = models.TextField(u'observação', blank=True, null=True) |
||||
|
|
||||
|
class Meta: |
||||
|
verbose_name = u'licença' |
||||
|
verbose_name_plural = u'licenças' |
||||
|
|
||||
|
def __unicode__(self): |
||||
|
return str(self.id) |
||||
|
|
||||
|
class Ferias(models.Model): |
||||
|
servidor = models.ForeignKey(Servidor) |
||||
|
inicio_ferias = models.DateField(u'início das férias') |
||||
|
fim_ferias = models.DateField(u'fim das férias') |
||||
|
obs = models.TextField(u'observação', blank=True, null=True) |
||||
|
|
||||
|
class Meta: |
||||
|
verbose_name = u'férias' |
||||
|
verbose_name_plural = u'férias' |
||||
|
|
||||
|
def __unicode__(self): |
||||
|
return str(self.id) |
Loading…
Reference in new issue