Browse Source

Novos filtros para serviços e convênios

pull/66/head
Sesostris Vieira 4 years ago
parent
commit
107de2ce36
  1. 5
      sigi/apps/convenios/admin.py
  2. 50
      sigi/apps/servicos/admin.py
  3. 4
      sigi/apps/servidores/models.py

5
sigi/apps/convenios/admin.py

@ -12,6 +12,7 @@ from sigi.apps.convenios.views import adicionar_convenios_carrinho
from sigi.apps.utils import queryset_ascii from sigi.apps.utils import queryset_ascii
from sigi.apps.utils.base_admin import BaseModelAdmin from sigi.apps.utils.base_admin import BaseModelAdmin
from sigi.apps.servidores.models import Servidor from sigi.apps.servidores.models import Servidor
from sigi.apps.casas.admin import GerentesInterlegisFilter
# class TramitacaoInline(admin.TabularInline): # class TramitacaoInline(admin.TabularInline):
# model = Tramitacao # model = Tramitacao
@ -68,7 +69,9 @@ class ConvenioAdmin(BaseModelAdmin):
'status_convenio', 'link_sigad', 'data_retorno_assinatura', 'status_convenio', 'link_sigad', 'data_retorno_assinatura',
'duracao', 'projeto', 'status', 'acompanha',) 'duracao', 'projeto', 'status', 'acompanha',)
list_display_links = ('num_convenio', 'casa_legislativa',) list_display_links = ('num_convenio', 'casa_legislativa',)
list_filter = ('status', ('acompanha', AcompanhaFilter), 'projeto', list_filter = ('status', ('acompanha', AcompanhaFilter),
('casa_legislativa__gerentes_interlegis',
GerentesInterlegisFilter), 'projeto',
'casa_legislativa__tipo', 'conveniada','equipada', 'casa_legislativa__tipo', 'conveniada','equipada',
'casa_legislativa__municipio__uf',) 'casa_legislativa__municipio__uf',)
#date_hierarchy = 'data_adesao' #date_hierarchy = 'data_adesao'

50
sigi/apps/servicos/admin.py

@ -1,4 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from datetime import date
from dateutil.relativedelta import relativedelta
from django.contrib import admin from django.contrib import admin
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.forms.models import ModelForm from django.forms.models import ModelForm
@ -50,6 +52,49 @@ class TipoServicoAdmin(BaseModelAdmin):
list_display = ('id', 'sigla', 'nome', 'qtde_casas_atendidas', ) list_display = ('id', 'sigla', 'nome', 'qtde_casas_atendidas', )
ordering = ['id'] ordering = ['id']
class DataUtimoUsoFilter(admin.SimpleListFilter):
title = _(u"Atualização")
parameter_name = 'atualizacao'
def lookups(self, request, model_admin):
return (
('err', _(u"Erro na verificação")),
('year', _(u"Sem atualização há um ano ou mais")),
('semester', _(u"Sem atualização de seis meses a um ano")),
('quarter', _(u"Sem atualização de três a seis meses")),
('month', _(u"Sem atualização de um a três meses")),
('week', _(u"Sem atualização de uma semana a um mês")),
('updated', _(u"Atualizado na última semana")),
)
def queryset(self, request, queryset):
if self.value() is not None:
queryset = queryset.exclude(tipo_servico__string_pesquisa="")
if self.value() == 'err':
queryset = queryset.exclude(erro_atualizacao="")
elif self.value() == 'year':
limite = date.today() - relativedelta(years=1)
queryset = queryset.filter(data_ultimo_uso__lte=limite)
else:
de = date.today() - (
relativedelta(months=6) if self.value() == 'semester' else
relativedelta(months=3) if self.value() == 'quarter' else
relativedelta(months=1) if self.value() == 'month' else
relativedelta(days=7) if self.value() == 'week' else
relativedelta(days=0)
)
ate = date.today() - (
relativedelta(years=1) if self.value() == 'semester' else
relativedelta(months=6) if self.value() == 'quarter' else
relativedelta(months=3) if self.value() == 'month' else
relativedelta(months=1) if self.value() == 'week' else
relativedelta(days=0)
)
print (de, ate)
queryset = queryset.filter(data_ultimo_uso__range=(de, ate))
return queryset
class ServicoAdmin(BaseModelAdmin): class ServicoAdmin(BaseModelAdmin):
form = ServicoFormAdmin form = ServicoFormAdmin
@ -69,7 +114,7 @@ class ServicoAdmin(BaseModelAdmin):
'fields': ('data_alteracao', 'data_desativacao', 'motivo_desativacao',) 'fields': ('data_alteracao', 'data_desativacao', 'motivo_desativacao',)
})) }))
readonly_fields = ('casa_legislativa', 'data_ativacao', 'data_alteracao') readonly_fields = ('casa_legislativa', 'data_ativacao', 'data_alteracao')
list_filter = ('tipo_servico', 'hospedagem_interlegis', 'data_ultimo_uso', 'casa_legislativa__municipio__uf', ) list_filter = ('tipo_servico', 'hospedagem_interlegis', DataUtimoUsoFilter, 'casa_legislativa__municipio__uf', )
list_display_links = [] list_display_links = []
ordering = ('casa_legislativa__municipio__uf', 'casa_legislativa', 'tipo_servico',) ordering = ('casa_legislativa__municipio__uf', 'casa_legislativa', 'tipo_servico',)
inlines = (LogServicoInline,) inlines = (LogServicoInline,)
@ -96,7 +141,8 @@ class ServicoAdmin(BaseModelAdmin):
url = obj.url url = obj.url
if url[-1] != '/': if url[-1] != '/':
url += '/' url += '/'
url += obj.tipo_servico.string_pesquisa if obj.tipo_servico.string_pesquisa:
url += obj.tipo_servico.string_pesquisa.splitlines()[0].split(" ")[0]
return u'<a href="%s" target="_blank">%s</a>' % (url, obj.erro_atualizacao) return u'<a href="%s" target="_blank">%s</a>' % (url, obj.erro_atualizacao)
get_link_erro.allow_tags = True get_link_erro.allow_tags = True
get_link_erro.short_description = _(u"Erro na atualização") get_link_erro.short_description = _(u"Erro na atualização")

4
sigi/apps/servidores/models.py

@ -76,7 +76,9 @@ class Servidor(models.Model):
# Soluçao alternativa para extender o usuário do django # Soluçao alternativa para extender o usuário do django
# Acessa do servidor de um objeto user criando um profile # Acessa do servidor de um objeto user criando um profile
# baseado nos dados do LDAP # baseado nos dados do LDAP
User.servidor = property(lambda user: Servidor.objects.get(user=user)) User.servidor = property(lambda user: Servidor.objects.get(user=user)
if Servidor.objects.filter(user=user).exists()
else None)
# Sinal para ao criar um usuário criar um servidor # Sinal para ao criar um usuário criar um servidor
# baseado no nome contino no LDAP # baseado no nome contino no LDAP

Loading…
Cancel
Save