Browse Source

Merge pull request #95 from interlegis/new_sigi

New sigi
pull/108/head
Sesostris Vieira 3 years ago
committed by GitHub
parent
commit
48164cabd3
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 34
      sigi/apps/casas/admin.py
  2. 8
      sigi/apps/convenios/models.py
  3. 7
      sigi/apps/servicos/admin.py

34
sigi/apps/casas/admin.py

@ -217,10 +217,10 @@ class ServicoInline(admin.TabularInline):
model = Servico model = Servico
fields = ('link_url', 'contato_tecnico', 'contato_administrativo', fields = ('link_url', 'contato_tecnico', 'contato_administrativo',
'hospedagem_interlegis', 'data_ativacao', 'data_alteracao', 'hospedagem_interlegis', 'data_ativacao', 'data_alteracao',
'data_desativacao') 'data_desativacao', 'link_servico')
readonly_fields = ['link_url', 'contato_tecnico', 'contato_administrativo', readonly_fields = ['link_url', 'contato_tecnico', 'contato_administrativo',
'hospedagem_interlegis', 'data_ativacao', 'hospedagem_interlegis', 'data_ativacao',
'data_alteracao', 'data_desativacao'] 'data_alteracao', 'data_desativacao', 'link_servico']
extra = 0 extra = 0
max_num = 0 max_num = 0
can_delete = False can_delete = False
@ -234,6 +234,22 @@ class ServicoInline(admin.TabularInline):
ordering = ('-data_alteracao',) ordering = ('-data_alteracao',)
def link_servico(self, obj):
if obj.pk is None:
return ""
url = reverse('admin:%s_%s_change' % (obj._meta.app_label, obj._meta.module_name), args=[obj.pk])
url = url + '?_popup=1'
return """<input id="edit_convenio-%s" type="hidden"/>
<a id="lookup_edit_convenio-%s" href="%s" class="changelink" onclick="return showRelatedObjectLookupPopup(this)">
Editar
</a>""" % (obj.pk, obj.pk, url)
link_servico.short_description = _(u'Editar Serviço')
link_servico.allow_tags = True
def has_add_permission(self, request):
return False
# class PlanoDiretorInline(admin.TabularInline): # class PlanoDiretorInline(admin.TabularInline):
# model = PlanoDiretor # model = PlanoDiretor
@ -275,7 +291,7 @@ class ConvenioFilter(admin.SimpleListFilter):
def lookups(self, request, model_admin): def lookups(self, request, model_admin):
return ( return (
('SC', _(u"Sem nenhum convênio")), ('SC', _(u"Sem nenhum convênio")),
('CC', _(u"Com algum convênio")) ('CC', _(u"Com algum convênio")),
) + tuple([(p.pk, p.sigla) for p in Projeto.objects.all()]) ) + tuple([(p.pk, p.sigla) for p in Projeto.objects.all()])
def queryset(self, request, queryset): def queryset(self, request, queryset):
@ -289,6 +305,16 @@ class ConvenioFilter(admin.SimpleListFilter):
return queryset.distinct('municipio__uf__nome', 'nome') return queryset.distinct('municipio__uf__nome', 'nome')
class ExcluirConvenioFilter(admin.SimpleListFilter):
title=_(u"Excluir convênio da pesquisa")
parameter_name = 'excluir_convenio'
def lookups(self, request, model_admin):
return tuple([(p.pk, p.sigla) for p in Projeto.objects.all()])
def queryset(self, request, queryset):
queryset = queryset.exclude(convenio__projeto_id=self.value())
return queryset.distinct('municipio__uf__nome', 'nome')
class ServicoFilter(admin.SimpleListFilter): class ServicoFilter(admin.SimpleListFilter):
title = _(u"Serviço") title = _(u"Serviço")
@ -334,7 +360,7 @@ class OrgaoAdmin(ImageCroppingMixin, BaseModelAdmin):
'get_servicos') 'get_servicos')
list_display_links = ('sigla', 'nome',) list_display_links = ('sigla', 'nome',)
list_filter = ('tipo', ('gerentes_interlegis', GerentesInterlegisFilter), list_filter = ('tipo', ('gerentes_interlegis', GerentesInterlegisFilter),
'municipio__uf__nome', ConvenioFilter, ServicoFilter, 'municipio__uf__nome', ConvenioFilter, ExcluirConvenioFilter, ServicoFilter,
'inclusao_digital',) 'inclusao_digital',)
ordering = ('municipio__uf__nome', 'nome') ordering = ('municipio__uf__nome', 'nome')
queryset = queryset_ascii queryset = queryset_ascii

8
sigi/apps/convenios/models.py

@ -249,18 +249,18 @@ class Convenio(models.Model):
if ((self.data_retorno_assinatura is None) and if ((self.data_retorno_assinatura is None) and
(self.equipada and self.data_termo_aceite is not None)): (self.equipada and self.data_termo_aceite is not None)):
return _(u"Convênio{number} - equipada em {date} pelo {project}" return _(u"{project}{number} - equipada em {date}"
).format(number=self.num_convenio, ).format(number=self.num_convenio,
date=self.data_termo_aceite.strftime('%d/%m/%Y'), date=self.data_termo_aceite.strftime('%d/%m/%Y'),
project=self.projeto.sigla) project=self.projeto.sigla)
elif self.data_retorno_assinatura is None: elif self.data_retorno_assinatura is None:
return _(u"Convênio nº {number} - adesão ao projeto {project}, " return _(u"{project}, nº {number}, início "
u"em {date}").format(number=self.num_convenio, u"em {date}").format(number=self.num_convenio,
project=self.projeto.sigla, project=self.projeto.sigla,
date=self.data_adesao) date=self.data_adesao)
if ((self.data_retorno_assinatura is not None) and not if ((self.data_retorno_assinatura is not None) and not
(self.equipada and self.data_termo_aceite is not None)): (self.equipada and self.data_termo_aceite is not None)):
return _(u"Convênio nº {number} - conveniada ao {project} em " return _(u"{project}, nº {number}, inicio em "
u"{date}. Status: {status}").format( u"{date}. Status: {status}").format(
number=self.num_convenio, number=self.num_convenio,
project=self.projeto.sigla, project=self.projeto.sigla,
@ -268,7 +268,7 @@ class Convenio(models.Model):
status=self.get_status()) status=self.get_status())
if ((self.data_retorno_assinatura is not None) and if ((self.data_retorno_assinatura is not None) and
(self.equipada and self.data_termo_aceite is not None)): (self.equipada and self.data_termo_aceite is not None)):
return _(u"Convẽnio nº {number} - conveniada ao {project} em {date}" return _(u"{project}, nº {number}, início em {date}"
u" e equipada em {equipped_date}. Status: {status}" u" e equipada em {equipped_date}. Status: {status}"
).format(number=self.num_convenio, ).format(number=self.num_convenio,
project=self.projeto.sigla, project=self.projeto.sigla,

7
sigi/apps/servicos/admin.py

@ -226,6 +226,13 @@ class ContatosInline(FuncionariosInline):
def get_queryset(self, request): def get_queryset(self, request):
return self.model.objects.all() return self.model.objects.all()
def get_queryset(self, request):
return (self.model.objects.exclude(desativado=True)
.extra(select={'ult_null': 'ult_alteracao is null'})
.order_by('ult_null', '-ult_alteracao')
# 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
)
class CasaAtendidaAdmin(BaseModelAdmin): class CasaAtendidaAdmin(BaseModelAdmin):
actions = None actions = None
list_display = ('codigo_interlegis', 'nome', 'get_servicos',) list_display = ('codigo_interlegis', 'nome', 'get_servicos',)

Loading…
Cancel
Save