Sistema de Informações Gerenciais do Interlegis
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

93 lines
3.9 KiB

# -*- 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(u"Nome", max_length=50)
descricao = models.TextField(u'descrição', blank=True, null=True)
setor_responsavel = models.ForeignKey('servidores.Servico', verbose_name=u"Setor responsável")
class Meta:
verbose_name, verbose_name_plural = u'Categoria', u'Categorias'
def __unicode__(self):
return self.nome
class TipoContato(models.Model):
descricao = models.CharField(u"Descrição", max_length=50)
class Meta:
verbose_name, verbose_name_plural = u"Tipo de contato", u"Tipos de contato"
def __unicode__(self):
return self.descricao
class Ocorrencia(models.Model):
STATUS_CHOICES = (
(1, u'Aberto'),
(2, u'Reaberto'),
(3, u'Resolvido'),
(4, u'Fechado'),
(5, u'Duplicado'),
)
PRIORITY_CHOICES = (
(1, u'Altíssimo'),
(2, u'Alto'),
(3, u'Normal'),
(4, u'Baixo'),
(5, u'Baixíssimo'),
)
casa_legislativa = models.ForeignKey('casas.CasaLegislativa', verbose_name=u'Casa Legislativa')
casa_legislativa.convenio_uf_filter = True
casa_legislativa.convenio_cl_tipo_filter = True
data_criacao = models.DateField(u'Data de criação', null=True, blank=True, auto_now_add=True)
data_modificacao = models.DateField(u'Data de modificação', null=True, blank=True, auto_now=True)
categoria = models.ForeignKey(Categoria, verbose_name=u'Categoria')
tipo_contato = models.ForeignKey(TipoContato, verbose_name=u"Tipo de contato")
assunto = models.CharField(u'Assunto', max_length=200)
assunto.grupo_filter = True
status = models.IntegerField(u'Status', choices=STATUS_CHOICES, default=1,)
status.multichoice_filter = True
prioridade = models.IntegerField(u'Prioridade', choices=PRIORITY_CHOICES, default=3, )
descricao = models.TextField(u'descrição', blank=True,)
resolucao = models.TextField(u'resolução', blank=True,)
servidor_registro = models.ForeignKey('servidores.Servidor', verbose_name=u"Servidor que registrou a ocorrência")
setor_responsavel = models.ForeignKey('servidores.Servico', verbose_name=u"Setor responsável")
class Meta:
verbose_name, verbose_name_plural = u'ocorrência', u'ocorrências'
ordering = ['prioridade', 'data_modificacao', 'data_criacao', ]
def __unicode__(self):
return u"%(casa_legislativa)s: %(assunto)s" % {'assunto': self.assunto, 'casa_legislativa': self.casa_legislativa}
class Comentario(models.Model):
ocorrencia = models.ForeignKey(Ocorrencia, verbose_name=u'Ocorrência')
data_criacao = models.DateTimeField(u'Data de criação', null=True, blank=True, auto_now_add=True)
descricao = models.TextField(u'Descrição', blank=True, null=True)
usuario = models.ForeignKey('servidores.Servidor', verbose_name=u'Usuário')
novo_status = models.IntegerField(u'Novo status', choices=Ocorrencia.STATUS_CHOICES, blank=True, null=True)
encaminhar_setor = models.ForeignKey('servidores.Servico', verbose_name=u'Encaminhar para setor', blank=True, null=True)
class Anexo(models.Model):
ocorrencia = models.ForeignKey(Ocorrencia, verbose_name=u'ocorrência')
arquivo = models.FileField(u'Arquivo anexado', upload_to='apps/ocorrencia/anexo/arquivo',)
descricao = models.CharField(u'descrição do anexo', max_length='70')
data_pub = models.DateTimeField( u'data da publicação do anexo', null=True, blank=True, auto_now_add=True)
class Meta:
ordering = ('-data_pub',)
verbose_name, verbose_name_plural = u'Anexo', u'Anexos'
def __unicode__(self):
return u"%(arquivo_name)s: %(descricao)s" % {'arquivo_name': self.arquivo.name, 'descricao': self.descricao}