Browse Source

melhorando ordenacao de categorias e pergunta no admin

diagnosticos
Felipe Vieira 13 years ago
parent
commit
a83973ad32
  1. 21
      sigi/apps/diagnosticos/admin.py
  2. 6
      sigi/apps/diagnosticos/models.py

21
sigi/apps/diagnosticos/admin.py

@ -40,24 +40,13 @@ class DiagnosticoAdmin(BaseEntityAdmin):
(u'01. Identificação da Casa Legislativa', {'fields': ('casa_legislativa',)}), (u'01. Identificação da Casa Legislativa', {'fields': ('casa_legislativa',)}),
(u'02. Identificação de Competências da Casa Legislativa', {'fields': ()}) (u'02. Identificação de Competências da Casa Legislativa', {'fields': ()})
] ]
# separa as perguntas (title e name) dentro das categorias existente para ordenar
dict_categoria = {}
for pergunta in Pergunta.objects.all():
if pergunta.categoria:
categoria = pergunta.categoria.nome
else:
categoria = None
if categoria in dict_categoria.keys(): # popula o eav fieldsets ordenando as categorias e as perguntas
dict_categoria[categoria].append((pergunta.title.strip(), pergunta.name)) # para serem exibidas no admin
else: for categoria in Categoria.objects.all():
dict_categoria[categoria] = [(pergunta.title.strip(), pergunta.name)]
# popula o eav fieldset ordenando as categorias e as perguntas
# para ser exibido no admin
for categoria in sorted(dict_categoria.keys()):
# ordena as perguntas pelo title e utiliza o name no fieldset # ordena as perguntas pelo title e utiliza o name no fieldset
perguntas = [pergunta[1] for pergunta in sorted(dict_categoria[categoria])] perguntas_by_title = [(p.title, p.name) for p in categoria.perguntas.all()]
perguntas = [pergunta[1] for pergunta in sorted(perguntas_by_title)]
eav_fieldsets.append((categoria, { eav_fieldsets.append((categoria, {
'fields': tuple(perguntas), 'fields': tuple(perguntas),

6
sigi/apps/diagnosticos/models.py

@ -52,6 +52,9 @@ class Categoria(models.Model):
""" """
nome = models.CharField(max_length=255) nome = models.CharField(max_length=255)
class Meta:
ordering = ('nome',)
def __unicode__(self): def __unicode__(self):
return self.nome return self.nome
@ -97,6 +100,9 @@ class Equipe(models.Model):
diagnostico = models.ForeignKey(Diagnostico) diagnostico = models.ForeignKey(Diagnostico)
membro = models.ForeignKey('servidores.Servidor') membro = models.ForeignKey('servidores.Servidor')
class Meta:
verbose_name, verbose_name_plural = 'equipe', 'equipe'
def __unicode__(self): def __unicode__(self):
return str(self.membro) return str(self.membro)

Loading…
Cancel
Save