Browse Source

Merge pull request #78 from interlegis/new_mysigi

Alteração no "Relatório de Convênios"
local_sigi
Sesostris Vieira 3 years ago
committed by GitHub
parent
commit
38022afa5b
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 13
      sigi/apps/casas/admin.py
  2. 8
      sigi/apps/convenios/admin.py
  3. 20
      sigi/apps/convenios/migrations/0010_auto_20210819_0833.py
  4. 2
      sigi/apps/convenios/models.py
  5. 128
      sigi/apps/convenios/reports.py
  6. 2
      sigi/apps/convenios/views.py
  7. 14
      sigi/apps/ocorrencias/admin.py

13
sigi/apps/casas/admin.py

@ -77,7 +77,9 @@ class FuncionariosInline(admin.StackedInline):
def get_queryset(self, request): def get_queryset(self, request):
return (self.model.objects.exclude( return (self.model.objects.exclude(
cargo='Presidente').exclude(desativado=True) cargo='Presidente').exclude(desativado=True).order_by('-ult_alteracao')
.extra(select={'ult_null': 'ult_alteracao is null'}).extra(order_by=['ult_null'])
# A função extra foi usada para quando existir um registro com o campo igual a null não aparecer na frente dos mais novos
) )
@ -87,9 +89,7 @@ class ConveniosInline(admin.TabularInline):
(None, {'fields': ( (None, {'fields': (
('link_sigad', 'status_convenio', 'num_convenio', ('link_sigad', 'status_convenio', 'num_convenio',
'projeto', 'observacao'), 'projeto', 'observacao'),
('data_adesao', 'data_retorno_assinatura', 'data_termo_aceite', ('data_retorno_assinatura', 'data_pub_diario',),
'data_pub_diario', 'data_devolucao_via', 'data_postagem_correio'),
('data_devolucao_sem_assinatura', 'data_retorno_sem_assinatura',),
('get_anexos',), ('get_anexos',),
('link_convenio',), ('link_convenio',),
)}), )}),
@ -103,6 +103,7 @@ class ConveniosInline(admin.TabularInline):
extra = 0 extra = 0
can_delete = False can_delete = False
template = 'admin/casas/convenios_inline.html' template = 'admin/casas/convenios_inline.html'
ordering = ('-data_retorno_assinatura',)
def has_add_permission(self, request): def has_add_permission(self, request):
return False return False
@ -225,6 +226,8 @@ class ServicoInline(admin.TabularInline):
link_url.short_description = _(u'URL do serviço') link_url.short_description = _(u'URL do serviço')
link_url.allow_tags = True link_url.allow_tags = True
ordering = ('-data_alteracao',)
# class PlanoDiretorInline(admin.TabularInline): # class PlanoDiretorInline(admin.TabularInline):
# model = PlanoDiretor # model = PlanoDiretor
@ -237,6 +240,8 @@ class OcorrenciaInline(admin.TabularInline):
can_delete = False can_delete = False
template = 'admin/casas/ocorrencia_inline.html' template = 'admin/casas/ocorrencia_inline.html'
ordering = ('-data_modificacao',)
def link_editar(self, obj): def link_editar(self, obj):
if obj.pk is None: if obj.pk is None:
return "" return ""

8
sigi/apps/convenios/admin.py

@ -51,8 +51,7 @@ class ConvenioAdmin(BaseModelAdmin):
'projeto', 'data_sigi',)} 'projeto', 'data_sigi',)}
), ),
(_(u"Acompanhamento no gabinete"), (_(u"Acompanhamento no gabinete"),
{'fields': ('data_solicitacao', 'data_sigad', 'tipo_solicitacao', {'fields': ('data_solicitacao', 'data_sigad', 'observacao',)}
'status', 'acompanha', 'observacao',)}
), ),
(_(u"Gestão do convênio"), (_(u"Gestão do convênio"),
{'fields': ('servico_gestao', 'servidor_gestao',)} {'fields': ('servico_gestao', 'servidor_gestao',)}
@ -67,10 +66,9 @@ class ConvenioAdmin(BaseModelAdmin):
inlines = (AnexosInline,) inlines = (AnexosInline,)
list_display = ('num_convenio', 'casa_legislativa', 'get_uf', list_display = ('num_convenio', 'casa_legislativa', 'get_uf',
'status_convenio', 'link_sigad', 'data_retorno_assinatura', 'status_convenio', 'link_sigad', 'data_retorno_assinatura',
'duracao', 'projeto', 'status', 'acompanha',) 'duracao', 'projeto',)
list_display_links = ('num_convenio', 'casa_legislativa',) list_display_links = ('num_convenio', 'casa_legislativa',)
list_filter = ('status', ('acompanha', AcompanhaFilter), list_filter = (('casa_legislativa__gerentes_interlegis',
('casa_legislativa__gerentes_interlegis',
GerentesInterlegisFilter), 'projeto', GerentesInterlegisFilter), 'projeto',
'casa_legislativa__tipo', 'conveniada','equipada', 'casa_legislativa__tipo', 'conveniada','equipada',
'casa_legislativa__municipio__uf',) 'casa_legislativa__municipio__uf',)

20
sigi/apps/convenios/migrations/0010_auto_20210819_0833.py

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
class Migration(migrations.Migration):
dependencies = [
('convenios', '0009_auto_20210611_0946'),
]
operations = [
migrations.AlterField(
model_name='convenio',
name='data_retorno_assinatura',
field=models.DateField(help_text='Conv\xeanio firmado.', null=True, verbose_name='data in\xedcio vig\xeancia', blank=True),
preserve_default=True,
),
]

2
sigi/apps/convenios/models.py

@ -130,7 +130,7 @@ class Convenio(models.Model):
blank=True, blank=True,
) )
data_retorno_assinatura = models.DateField( data_retorno_assinatura = models.DateField(
_(u'conveniadas'), _(u'data início vigência'),
null=True, null=True,
blank=True, blank=True,
help_text=_(u'Convênio firmado.') help_text=_(u'Convênio firmado.')

128
sigi/apps/convenios/reports.py

@ -26,12 +26,12 @@ class SemEquipamentosReport(object):
class ConvenioReport(ReportDefault): class ConvenioReport(ReportDefault):
title = _(u'Relatório de Convênios') title = _(u'Relatório de Parcerias')
class band_page_header(ReportDefault.band_page_header): class band_page_header(ReportDefault.band_page_header):
label_top = ReportDefault.band_page_header.label_top label_top = ReportDefault.band_page_header.label_top
label_left = [0, 1.5, 7, 9, 11, 13, 15, 17] label_left = [0, 2.5, 6, 8, 10, 12, 14, 16]
elements = list(ReportDefault.band_page_header.elements) elements = list(ReportDefault.band_page_header.elements)
height = 4.7 * cm height = 4.7 * cm
@ -47,38 +47,32 @@ class ConvenioReport(ReportDefault):
top=label_top + 0.4 * cm, top=label_top + 0.4 * cm,
), ),
Label( Label(
text=_(u"Data de Adesão"), text=_(u"Número do Convênio"),
left=label_left[2] * cm, left=label_left[2] * cm,
top=label_top, top=label_top,
width=2 * cm, width=2 * cm,
), ),
Label( Label(
text=_(u"Número do Convênio"), text=_(u"Data do Convênio"),
left=label_left[3] * cm, left=label_left[3] * cm,
top=label_top, top=label_top,
width=2 * cm, width=2 * cm,
), ),
Label( Label(
text=_(u"Data do Convênio"), text=_(u"Data de Publicação"),
left=label_left[4] * cm, left=label_left[4] * cm,
top=label_top, top=label_top,
width=2 * cm, width=2 * cm,
), ),
Label( Label(
text=_(u"Data de Publicação"), text=_(u"Projeto"),
left=label_left[5] * cm, left=label_left[5] * cm,
top=label_top, top=label_top + 0.4 * cm,
width=2 * cm, width=2 * cm,
), ),
Label( Label(
text=_(u"Data de Aceite"), text=_(u"Orgão"),
left=label_left[6] * cm, left=label_left[6] * cm,
top=label_top,
width=2 * cm,
),
Label(
text=_(u"Projeto"),
left=label_left[7] * cm,
top=label_top + 0.4 * cm, top=label_top + 0.4 * cm,
width=2 * cm, width=2 * cm,
), ),
@ -89,7 +83,7 @@ class ConvenioReport(ReportDefault):
class band_detail(ReportDefault.band_detail): class band_detail(ReportDefault.band_detail):
label_left = [0, 1.5, 7, 9, 11, 13, 15, 17] label_left = [0, 2.5, 6, 8, 10, 12, 14, 16]
elements = [ elements = [
ObjectValue( ObjectValue(
@ -100,53 +94,45 @@ class ConvenioReport(ReportDefault):
attribute_name='casa_legislativa.municipio.nome', attribute_name='casa_legislativa.municipio.nome',
left=label_left[1] * cm left=label_left[1] * cm
), ),
ObjectValue(
attribute_name='data_adesao',
left=label_left[2] * cm,
get_value=lambda instance:
instance.data_adesao.strftime('%d/%m/%Y') if instance.data_adesao is not None else '-'
),
ObjectValue( ObjectValue(
attribute_name='num_convenio', attribute_name='num_convenio',
left=label_left[3] * cm left=label_left[2] * cm
), ),
ObjectValue( ObjectValue(
attribute_name='data_retorno_assinatura', attribute_name='data_retorno_assinatura',
left=label_left[4] * cm, left=label_left[3] * cm,
get_value=lambda instance: get_value=lambda instance:
instance.data_retorno_assinatura.strftime('%d/%m/%Y') if instance.data_retorno_assinatura is not None else '-' instance.data_retorno_assinatura.strftime('%d/%m/%Y') if instance.data_retorno_assinatura is not None else '-'
), ),
ObjectValue( ObjectValue(
attribute_name='data_pub_diario', attribute_name='data_pub_diario',
left=label_left[5] * cm, left=label_left[4] * cm,
get_value=lambda instance: get_value=lambda instance:
instance.data_pub_diario.strftime('%d/%m/%Y') if instance.data_pub_diario is not None else '-' instance.data_pub_diario.strftime('%d/%m/%Y') if instance.data_pub_diario is not None else '-'
), ),
ObjectValue( ObjectValue(
attribute_name='data_termo_aceite', attribute_name='projeto.sigla',
left=label_left[6] * cm, left=label_left[5] * cm
get_value=lambda instance:
instance.data_termo_aceite.strftime('%d/%m/%Y') if instance.data_termo_aceite is not None else '-'
), ),
ObjectValue( ObjectValue(
attribute_name='projeto.sigla', attribute_name='casa_legislativa.nome',
left=label_left[7] * cm left=label_left[6] * cm
), ),
] ]
groups = [ #groups = [
ReportGroup(attribute_name='casa_legislativa.municipio.uf', # ReportGroup(attribute_name='casa_legislativa.municipio.uf',
band_header=ReportBand( # band_header=ReportBand(
height=0.7 * cm, # height=0.7 * cm,
elements=[ # elements=[
ObjectValue(attribute_name='casa_legislativa.municipio.uf', # ObjectValue(attribute_name='casa_legislativa.municipio.uf',
get_Value=lambda instance: '%s: %s' % (_(u'Casa Legislativa'), instance.casa_legislativa.uf) # get_Value=lambda instance: '%s: %s' % (_(u'Casa Legislativa'), instance.casa_legislativa.uf)
) # )
], # ],
borders={'top': True}, # borders={'top': True},
) # )
) # )
] #]
class ConvenioReportSemAceite(ConvenioReport): class ConvenioReportSemAceite(ConvenioReport):
@ -154,7 +140,7 @@ class ConvenioReportSemAceite(ConvenioReport):
class band_page_header(ReportDefault.band_page_header): class band_page_header(ReportDefault.band_page_header):
label_top = ReportDefault.band_page_header.label_top label_top = ReportDefault.band_page_header.label_top
label_left = [0, 1.5, 7, 9, 11, 13, 15, 17] label_left = [0, 2.5, 6, 8, 10, 12, 14, 16]
elements = list(ReportDefault.band_page_header.elements) elements = list(ReportDefault.band_page_header.elements)
height = 4.7 * cm height = 4.7 * cm
@ -169,33 +155,27 @@ class ConvenioReportSemAceite(ConvenioReport):
left=label_left[1] * cm, left=label_left[1] * cm,
top=label_top + 0.4 * cm, top=label_top + 0.4 * cm,
), ),
Label(
text=_(u"Data de Adesão"),
left=label_left[3] * cm,
top=label_top,
width=2 * cm,
),
Label( Label(
text=_(u"Número do Convênio"), text=_(u"Número do Convênio"),
left=label_left[4] * cm, left=label_left[2] * cm,
top=label_top, top=label_top,
width=2 * cm, width=2 * cm,
), ),
Label( Label(
text=_(u"Data do Convênio"), text=_(u"Data do Convênio"),
left=label_left[5] * cm, left=label_left[3] * cm,
top=label_top, top=label_top,
width=2 * cm, width=2 * cm,
), ),
Label( Label(
text=_(u"Data de Publicação"), text=_(u"Projeto"),
left=label_left[6] * cm, left=label_left[4] * cm,
top=label_top, top=label_top,
width=2 * cm, width=2 * cm,
), ),
Label( Label(
text=_(u"Projeto"), text=_(u"Orgão"),
left=label_left[7] * cm, left=label_left[5] * cm,
top=label_top + 0.4 * cm, top=label_top + 0.4 * cm,
width=2 * cm, width=2 * cm,
), ),
@ -203,7 +183,7 @@ class ConvenioReportSemAceite(ConvenioReport):
class band_detail(ReportDefault.band_detail): class band_detail(ReportDefault.band_detail):
label_left = [0, 1.5, 7, 9, 11, 13, 15, 17] label_left = [0, 2.5, 6, 8, 10, 12, 14, 16]
elements = [ elements = [
ObjectValue( ObjectValue(
@ -214,31 +194,23 @@ class ConvenioReportSemAceite(ConvenioReport):
attribute_name='casa_legislativa.municipio.nome', attribute_name='casa_legislativa.municipio.nome',
left=label_left[1] * cm left=label_left[1] * cm
), ),
ObjectValue(
attribute_name='data_adesao',
left=label_left[3] * cm,
get_value=lambda instance:
instance.data_adesao.strftime('%d/%m/%Y') if instance.data_adesao is not None else '-'
),
ObjectValue( ObjectValue(
attribute_name='num_convenio', attribute_name='num_convenio',
left=label_left[4] * cm left=label_left[2] * cm
), ),
ObjectValue( ObjectValue(
attribute_name='data_retorno_assinatura', attribute_name='data_retorno_assinatura',
left=label_left[5] * cm, left=label_left[3] * cm,
get_value=lambda instance: get_value=lambda instance:
instance.data_retorno_assinatura.strftime('%d/%m/%Y') if instance.data_retorno_assinatura is not None else '-' instance.data_retorno_assinatura.strftime('%d/%m/%Y') if instance.data_retorno_assinatura is not None else '-'
), ),
ObjectValue( ObjectValue(
attribute_name='data_pub_diario', attribute_name='projeto.sigla',
left=label_left[6] * cm, left=label_left[4],
get_value=lambda instance:
instance.data_pub_diario.strftime('%d/%m/%Y') if instance.data_pub_diario is not None else '-'
), ),
ObjectValue( ObjectValue(
attribute_name='projeto.sigla', attribute_name='casa_legislativa.nome',
left=label_left[7] * cm left=label_left[5] * cm
), ),
] ]
@ -247,7 +219,7 @@ float_duas_casas = lambda instance: '%.2f' % (instance)
class ConvenioReportRegiao(ReportDefault): class ConvenioReportRegiao(ReportDefault):
title = _(u'Relatório de Convênios por Região') title = _(u'Relatório de Parcerias por Região')
class band_page_header(ReportDefault.band_page_header): class band_page_header(ReportDefault.band_page_header):
label_top = ReportDefault.band_page_header.label_top label_top = ReportDefault.band_page_header.label_top
@ -298,16 +270,16 @@ class ConvenioReportRegiao(ReportDefault):
class ConvenioPorCMReport(ConvenioReport): class ConvenioPorCMReport(ConvenioReport):
title = _(u'Relatório de Convênios por Câmara Municipal') title = _(u'Relatório de Parcerias por Câmara Municipal')
class ConvenioPorALReport(ConvenioReport): class ConvenioPorALReport(ConvenioReport):
title = _(u'Relatório de Convênios por Assembléia Legislativa') title = _(u'Relatório de Parcerias por Assembléia Legislativa')
class ConvenioReportSemAceiteCM(ConvenioReportSemAceite): class ConvenioReportSemAceiteCM(ConvenioReportSemAceite):
title = _(u'Relatório de Convênios por Câmara Municipal') title = _(u'Relatório de Parcerias por Câmara Municipal')
class ConvenioReportSemAceiteAL(ConvenioReportSemAceite): class ConvenioReportSemAceiteAL(ConvenioReportSemAceite):
title = _(u'Relatório de Convênios por Assembléia Legislativa') title = _(u'Relatório de Parcerias por Assembléia Legislativa')

2
sigi/apps/convenios/views.py

@ -86,6 +86,8 @@ def carrinhoOrGet_for_qs(request):
if 'carrinho_convenios' in request.session: if 'carrinho_convenios' in request.session:
ids = request.session['carrinho_convenios'] ids = request.session['carrinho_convenios']
qs = Convenio.objects.filter(pk__in=ids) qs = Convenio.objects.filter(pk__in=ids)
qs = qs.order_by("casa_legislativa__municipio__uf", "casa_legislativa__municipio")
qs = get_for_qs(request.GET, qs)
else: else:
qs = Convenio.objects.all() qs = Convenio.objects.all()
if request.GET: if request.GET:

14
sigi/apps/ocorrencias/admin.py

@ -85,13 +85,13 @@ class OcorrenciaAdmin(BaseModelAdmin):
def get_changelist(self, request, **kwargs): def get_changelist(self, request, **kwargs):
return OcorrenciaChangeList return OcorrenciaChangeList
def get_readonly_fields(self, request, obj=None): # def get_readonly_fields(self, request, obj=None):
fields = list(self.readonly_fields) # fields = list(self.readonly_fields)
if obj is not None: # if obj is not None:
fields.extend(['casa_legislativa', 'categoria', 'tipo_contato', 'assunto', 'status', 'descricao', ]) # fields.extend(['casa_legislativa', 'categoria', 'tipo_contato', 'assunto', 'status', 'descricao', ])
if obj.status in [Ocorrencia.STATUS_RESOLVIDO, Ocorrencia.STATUS_FECHADO, Ocorrencia.STATUS_DUPLICADO]: # Fechados # if obj.status in [Ocorrencia.STATUS_RESOLVIDO, Ocorrencia.STATUS_FECHADO, Ocorrencia.STATUS_DUPLICADO]: # Fechados
fields.append('prioridade') # fields.append('prioridade')
return fields # return fields
def get_fieldsets(self, request, obj=None): def get_fieldsets(self, request, obj=None):
if obj is None: if obj is None:

Loading…
Cancel
Save