Browse Source

Prepara admin de convênios para exportação e relatórios

revisaoSidenav
Sesostris Vieira 3 years ago
parent
commit
fbea6ba28e
  1. 80
      sigi/apps/convenios/admin.py

80
sigi/apps/convenios/admin.py

@ -2,15 +2,28 @@ from django.contrib import admin
from django.http import HttpResponse, HttpResponseRedirect
from django.utils.translation import gettext as _
from django.utils.safestring import mark_safe
from import_export.fields import Field
from sigi.apps.convenios.models import (Projeto, StatusConvenio,
TipoSolicitacao, Convenio,
EquipamentoPrevisto, Anexo, Tramitacao,
Gescon)
# from sigi.apps.convenios.reports import ConvenioReport
# from sigi.apps.convenios.views import adicionar_convenios_carrinho
from sigi.apps.utils import queryset_ascii
from sigi.apps.servidores.models import Servidor
from sigi.apps.casas.admin import GerentesInterlegisFilter
from sigi.apps.utils.mixins import CartExportReportMixin, LabeledResourse
class ConvenioExportResourse(LabeledResourse):
class Meta:
model = Convenio
fields = ('num_processo_sf', 'num_convenio', 'projeto__nome',
'casa_legislativa__nome', 'casa_legislativa__municipio__nome',
'casa_legislativa__municipio__uf__sigla', 'data_sigi',
'data_sigad', 'data_adesao', 'data_retorno_assinatura',
'data_solicitacao', 'atualizacao_gescon', 'observacao_gescon',
'tipo_solicitacao__nome', 'status__nome',
'acompanha__nome_completo', 'servidor_gestao__nome_completo',
'observacao')
export_order = fields
class AnexosInline(admin.TabularInline):
model = Anexo
@ -33,8 +46,7 @@ class AcompanhaFilter(admin.filters.RelatedFieldListFilter):
self.lookup_choices = [(x.id, x) for x in servidores]
@admin.register(Convenio)
class ConvenioAdmin(admin.ModelAdmin):
change_list_template = 'convenios/change_list.html'
class ConvenioAdmin(CartExportReportMixin, admin.ModelAdmin):
fieldsets = (
(None,
{'fields': ('casa_legislativa', 'num_processo_sf', 'num_convenio',
@ -56,7 +68,6 @@ class ConvenioAdmin(admin.ModelAdmin):
)
readonly_fields = ('data_sigi', 'atualizacao_gescon', 'observacao_gescon',
'link_gescon')
# actions = ['adicionar_convenios']
inlines = (AnexosInline,)
list_display = ('num_convenio', 'projeto','casa_legislativa', 'get_uf',
'status_convenio', 'link_sigad', 'data_retorno_assinatura',
@ -72,6 +83,15 @@ class ConvenioAdmin(admin.ModelAdmin):
search_fields = ('id', 'casa_legislativa__search_text',
'casa_legislativa__sigla', 'num_processo_sf',
'num_convenio')
resource_class = ConvenioExportResourse
reports = [
'report_convenios',
'report_convenios_data_aceite',
'report_convenios_camaras',
'report_convenios_camaras_data_aceite',
'report_convenios_assembleia',
'report_convenios_assembleia_data_aceite',
]
def get_uf(self, obj):
return obj.casa_legislativa.municipio.uf.sigla
@ -110,22 +130,36 @@ class ConvenioAdmin(admin.ModelAdmin):
f"{obj.id_contrato_gescon}</a>")
link_gescon.short_description = _("Download MINUTA ASSINADA do Gescon")
def changelist_view(self, request, extra_context=None):
from sigi.apps.convenios.views import normaliza_data
request.GET._mutable = True
normaliza_data(request.GET, 'data_retorno_assinatura__gte')
normaliza_data(request.GET, 'data_retorno_assinatura__lte')
normaliza_data(request.GET, 'data_sigad__gte')
normaliza_data(request.GET, 'data_sigad__lte')
normaliza_data(request.GET, 'data_sigi__gte')
normaliza_data(request.GET, 'data_sigi__lte')
normaliza_data(request.GET, 'data_solicitacao__gte')
normaliza_data(request.GET, 'data_solicitacao__lte')
request.GET._mutable = False
return super(ConvenioAdmin, self).changelist_view(
request,
extra_context={'query_str': '?' + request.META['QUERY_STRING']}
def report_convenios(self, request):
return HttpResponseRedirect('../')
report_convenios.title = _('Todos os convênios')
def report_convenios_data_aceite(self, request):
return HttpResponseRedirect('../')
report_convenios_data_aceite.title = _(
'Todos os convênios com data aceite (equipada)'
)
def report_convenios_camaras(self, request):
return HttpResponseRedirect('../')
report_convenios_camaras.title = _('Convênios das Câmaras Municipais')
def report_convenios_camaras_data_aceite(self, request):
return HttpResponseRedirect('../')
report_convenios_camaras_data_aceite.title = _(
'Convênios das Câmaras Municipais com data aceite (equipada)'
)
def report_convenios_assembleia(self, request):
return HttpResponseRedirect('../')
report_convenios_assembleia.title = _(
'Convênios das Assembléias Legislativas'
)
def report_convenios_assembleia_data_aceite(self, request):
return HttpResponseRedirect('../')
report_convenios_assembleia_data_aceite.title = _(
'Convênios das Assembléias Legislativas com data aceite (equipada)'
)
# def relatorio(self, request, queryset):
@ -157,10 +191,6 @@ class ConvenioAdmin(admin.ModelAdmin):
del actions['delete_selected']
return actions
# def lookup_allowed(self, lookup, value):
# return super(ConvenioAdmin, self).lookup_allowed(lookup, value) or \
# lookup in ['casa_legislativa__municipio__uf__codigo_ibge__exact']
@admin.register(EquipamentoPrevisto)
class EquipamentoPrevistoAdmin(admin.ModelAdmin):
list_display = ('convenio', 'equipamento', 'quantidade')

Loading…
Cancel
Save