Browse Source

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

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

82
sigi/apps/convenios/admin.py

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

Loading…
Cancel
Save