diff --git a/sigi/apps/casas/admin.py b/sigi/apps/casas/admin.py
index 03a2aeb..fa81b1d 100644
--- a/sigi/apps/casas/admin.py
+++ b/sigi/apps/casas/admin.py
@@ -13,6 +13,7 @@ from sigi.apps.utils import queryset_ascii
from sigi.apps.contatos.models import Telefone
from sigi.apps.convenios.models import Projeto, Convenio, EquipamentoPrevisto, Anexo
from sigi.apps.mesas.models import Legislatura
+from sigi.apps.diagnosticos.models import Diagnostico
class TelefonesInline(generic.GenericTabularInline):
model = Telefone
@@ -38,10 +39,46 @@ class FuncionariosInline(admin.StackedInline):
def queryset(self, request):
return self.model.objects.exclude(cargo="Presidente")
-class ConveniosInline(admin.TabularInline):
+class ConveniosInline(admin.StackedInline):
model = Convenio
- exclude = ['equipada','conveniada','observacao']
- extra = 1
+ fieldsets = (
+ (None, {'fields': (('link_convenio', 'num_processo_sf','num_convenio','projeto','observacao'),
+ ('data_adesao', 'data_retorno_assinatura', 'data_termo_aceite', 'data_pub_diario', 'data_devolucao_via', 'data_postagem_correio'),
+ ('data_devolucao_sem_assinatura','data_retorno_sem_assinatura',),
+ ('get_tramitacoes', 'get_anexos', 'get_equipamentos',),
+ )}
+ ),
+ )
+ readonly_fields = ['get_tramitacoes', 'get_anexos', 'get_equipamentos', 'link_convenio',]
+ extra = 0
+ def get_tramitacoes(self, obj):
+ return '
'.join([t.__unicode__() for t in obj.tramitacao_set.all()])
+ get_tramitacoes.short_description = 'Tramitações'
+ get_tramitacoes.allow_tags = True
+
+ def get_anexos(self, obj):
+ return '
'.join(['%s' % (a.arquivo.url, a.__unicode__()) for a in obj.anexo_set.all()])
+ get_anexos.short_description = 'Anexos'
+ get_anexos.allow_tags = True
+
+ def get_equipamentos(self, obj):
+ return '
'.join([e.__unicode__() for e in obj.equipamentoprevisto_set.all()])
+ get_equipamentos.short_description = 'Equipamentos previstos'
+ get_equipamentos.allow_tags = True
+
+ def link_convenio(self, obj):
+ if obj.pk is None:
+ return ""
+ from django.core.urlresolvers import reverse
+ url = reverse('admin:%s_%s_change' %(obj._meta.app_label, obj._meta.module_name), args=[obj.pk] )
+ url = url + '?_popup=1'
+ return """
+
+ Editar
+ """ % (obj.pk, obj.pk, url)
+
+ link_convenio.short_description = 'Editar convenio'
+ link_convenio.allow_tags = True
class LegislaturaInline(admin.TabularInline):
model = Legislatura
@@ -61,13 +98,35 @@ class LegislaturaInline(admin.TabularInline):
link_parlamentares.short_description = 'Parlamentares'
link_parlamentares.allow_tags = True
+
+class DiagnosticoInline(admin.TabularInline):
+ model = Diagnostico
+ fields = ['data_visita_inicio', 'data_visita_fim', 'publicado', 'data_publicacao', 'responsavel', 'link_diagnostico',]
+ readonly_fields = ['data_visita_inicio', 'data_visita_fim', 'publicado', 'data_publicacao', 'responsavel', 'link_diagnostico',]
+ extra = 0
+ max_num=0
+ can_delete = False
+
+ def link_diagnostico(self, obj):
+ if obj.pk is None:
+ return ""
+ from django.core.urlresolvers import reverse
+ url = reverse('admin:%s_%s_change' %(obj._meta.app_label, obj._meta.module_name), args=["%s.pdf" % obj.pk] )
+ return """
+
+ Abrir PDF
+ """ % (obj.pk, obj.pk, url)
+
+ link_diagnostico.short_description = 'Ver PDF'
+ link_diagnostico.allow_tags = True
+
class CasaLegislativaAdmin(admin.ModelAdmin):
form = CasaLegislativaForm
change_form_template = 'casas/change_form.html'
change_list_template = 'casas/change_list.html'
actions = ['adicionar_casas',]
- inlines = (TelefonesInline, PresidenteInline, FuncionariosInline, ConveniosInline, LegislaturaInline, )
+ inlines = (TelefonesInline, PresidenteInline, FuncionariosInline, ConveniosInline, LegislaturaInline, DiagnosticoInline, )
list_display = ('nome','municipio','logradouro', 'ult_alt_endereco')
list_display_links = ('nome',)
list_filter = ('tipo', 'municipio')
diff --git a/sigi/apps/convenios/models.py b/sigi/apps/convenios/models.py
index 2ffdd89..4b4b0c9 100644
--- a/sigi/apps/convenios/models.py
+++ b/sigi/apps/convenios/models.py
@@ -127,7 +127,7 @@ class EquipamentoPrevisto(models.Model):
verbose_name_plural = 'equipamentos previstos'
def __unicode__(self):
- return '%s %s(s)' % (self.quantidade, self.equipamento)
+ return u'%s %s(s)' % (self.quantidade, self.equipamento)
class Anexo(models.Model):
""" Modelo para giardar os documentos gerados
@@ -146,7 +146,7 @@ class Anexo(models.Model):
ordering = ('-data_pub',)
def __unicode__(self):
- return unicode(self.arquivo.name)
+ return unicode("%s publicado em %s" % (self.descricao, self.data_pub))
class UnidadeAdministrativa(models.Model):
""" Modelo para representar uma Unidade Administrativa
@@ -178,5 +178,8 @@ class Tramitacao(models.Model):
verbose_name_plural = u'Tramitações'
def __unicode__(self):
- return unicode(self.unid_admin)
+ if self.observacao:
+ return unicode("%s em %s (%s)" % (self.unid_admin, self.data, self.observacao))
+ else:
+ return unicode("%s em %s" % (self.unid_admin, self.data))