Browse Source

Ajustes sistema ocorrência

pull/66/head
Sesostris Vieira 4 years ago
parent
commit
a4dc659c82
  1. 12
      sigi/apps/ocorrencias/admin.py
  2. 5
      sigi/apps/ocorrencias/filters.py
  3. 4
      sigi/apps/ocorrencias/models.py
  4. 68
      sigi/apps/servidores/management/commands/mescla_servidor.py

12
sigi/apps/ocorrencias/admin.py

@ -3,11 +3,11 @@ from django.contrib import admin
from django.contrib.admin.views.main import ChangeList from django.contrib.admin.views.main import ChangeList
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from filters import OcorrenciaListFilter from sigi.apps.ocorrencias.filters import OcorrenciaListFilter
from sigi.apps.ocorrencias.models import Ocorrencia, Comentario, Anexo, Categoria, TipoContato from sigi.apps.ocorrencias.models import Ocorrencia, Comentario, Anexo, Categoria, TipoContato
from sigi.apps.servidores.models import Servidor from sigi.apps.servidores.models import Servidor
from sigi.apps.utils.base_admin import BaseModelAdmin from sigi.apps.utils.base_admin import BaseModelAdmin
from sigi.apps.casas.admin import GerentesInterlegisFilter
class ComentarioViewInline(admin.TabularInline): class ComentarioViewInline(admin.TabularInline):
model = Comentario model = Comentario
@ -66,9 +66,11 @@ class OcorrenciaAdmin(BaseModelAdmin):
list_display = ('data_criacao', 'casa_legislativa', 'get_municipio', list_display = ('data_criacao', 'casa_legislativa', 'get_municipio',
'get_uf', 'assunto', 'prioridade', 'status', 'get_uf', 'assunto', 'prioridade', 'status',
'data_modificacao', 'setor_responsavel',) 'data_modificacao', 'setor_responsavel',)
list_filter = (OcorrenciaListFilter, 'status', 'prioridade', list_filter = (
'categoria__nome', 'setor_responsavel__nome', OcorrenciaListFilter, 'status', 'prioridade', 'categoria__nome',
'casa_legislativa__gerentes_interlegis',) 'setor_responsavel__nome',
('casa_legislativa__gerentes_interlegis', GerentesInterlegisFilter),
)
search_fields = ('casa_legislativa__search_text', 'assunto', search_fields = ('casa_legislativa__search_text', 'assunto',
'servidor_registro__nome_completo', 'descricao', 'servidor_registro__nome_completo', 'descricao',
'resolucao', 'ticket',) 'resolucao', 'ticket',)

5
sigi/apps/ocorrencias/filters.py

@ -11,6 +11,8 @@ class OcorrenciaListFilter(admin.SimpleListFilter):
parameter_name = 'minhas' parameter_name = 'minhas'
def lookups(self, request, model_admin): def lookups(self, request, model_admin):
if request.user.servidor is None:
return None
return ( return (
('S', _(u'Atribuídos ao meu setor')), ('S', _(u'Atribuídos ao meu setor')),
('M', _(u'Registrados por mim')), ('M', _(u'Registrados por mim')),
@ -18,7 +20,8 @@ class OcorrenciaListFilter(admin.SimpleListFilter):
) )
def queryset(self, request, queryset): def queryset(self, request, queryset):
servidor = Servidor.objects.get(user=request.user) servidor = request.user.servidor
# servidor = Servidor.objects.get(user=request.user)
if self.value() == 'S': if self.value() == 'S':
return queryset.filter(setor_responsavel=servidor.servico) return queryset.filter(setor_responsavel=servidor.servico)
elif self.value() == 'M': elif self.value() == 'M':

4
sigi/apps/ocorrencias/models.py

@ -60,8 +60,6 @@ class Ocorrencia(models.Model):
on_delete=models.CASCADE, on_delete=models.CASCADE,
verbose_name=_(u'Casa Legislativa') 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_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) data_modificacao = models.DateField(_(u'Data de modificação'), null=True, blank=True, auto_now=True)
categoria = models.ForeignKey( categoria = models.ForeignKey(
@ -75,9 +73,7 @@ class Ocorrencia(models.Model):
verbose_name=_(u"Tipo de contato") verbose_name=_(u"Tipo de contato")
) )
assunto = models.CharField(_(u'Assunto'), max_length=200) assunto = models.CharField(_(u'Assunto'), max_length=200)
assunto.grupo_filter = True
status = models.IntegerField(_(u'Status'), choices=STATUS_CHOICES, default=1,) status = models.IntegerField(_(u'Status'), choices=STATUS_CHOICES, default=1,)
status.multichoice_filter = True
prioridade = models.IntegerField(_(u'Prioridade'), choices=PRIORITY_CHOICES, default=3, ) prioridade = models.IntegerField(_(u'Prioridade'), choices=PRIORITY_CHOICES, default=3, )
descricao = models.TextField(_(u'descrição'), blank=True,) descricao = models.TextField(_(u'descrição'), blank=True,)
resolucao = models.TextField(_(u'resolução'), blank=True,) resolucao = models.TextField(_(u'resolução'), blank=True,)

68
sigi/apps/servidores/management/commands/mescla_servidor.py

@ -0,0 +1,68 @@
# coding: utf-8
from django.contrib.auth.models import User, Group
from sigi.apps.servidores.models import Servidor
from django.core.management.base import BaseCommand
class Command(BaseCommand):
help = u'Transfere os dados do servidor OLD para o servidor NEW.'
args = u'old_id new_id'
def handle(self, *args, **options):
if len(args) != 2:
self.stderr.write(u"Informe old_id e new_id")
return
old_id = args[0]
new_id = args[1]
old = Servidor.objects.get(id=old_id)
new = Servidor.objects.get(id=new_id)
self.stdout.write(self.style.WARNING(
u"Transferir dados de {old_name} para {new_name}".format(
old_name=old.nome_completo,
new_name=new.nome_completo
)
))
self.stdout.write(u"\t* Transferindo a carteira de atendimento...")
for casa in old.casas_que_gerencia.all():
new.casas_que_gerencia.add(casa)
old.casas_que_gerencia.remove(casa)
self.stdout.write(u"\t* Transferindo ocorrências registradas...")
old.ocorrencia_set.all().update(servidor_registro=new)
self.stdout.write(u"\t* Transferindo comentários de ocorrências...")
old.comentario_set.all().update(usuario=new)
self.stdout.write(u"\t* Transferindo convênios geridos...")
old.convenio_set.all().update(servidor_gestao=new)
self.stdout.write(u"\t* Transferindo convênios acompanhados...")
old.convenio_set.all().update(acompanha=new)
self.stdout.write(u"\t* Transferindo participação em eventos...")
old.equipe_evento.all().update(membro=new)
self.stdout.write(u"\t* Transferindo convites para eventos...")
old.convite_set.all().update(servidor=new)
self.stdout.write(u"\t* Transferindo diagnósticos...")
old.diagnostico_set.all().update(responsavel=new)
self.stdout.write(u"\t* Transferindo participação em diagnósticos...")
old.equipe_set.all().update(membro=new)
self.stdout.write(u"\t* Transferindo dados de autenticação...")
if new.user:
old.user.logentry_set.all().update(user=new)
old.user.delete()
else:
new.user = old.user
new.save()
old.user = None
old.save()
self.stdout.write(u"Concluído!")
Loading…
Cancel
Save