Browse Source

Ajusta listagem de mandatos conforme issue #676

pull/691/head
LeandroRoberto 8 years ago
parent
commit
23187f959a
  1. 21
      sapl/crud/base.py
  2. 19
      sapl/parlamentares/views.py

21
sapl/crud/base.py

@ -379,17 +379,12 @@ class CrudListView(PermissionRequiredContainerCrudMixin, ListView):
if m == self.model:
s.append(force_text(f.verbose_name))
else:
s.append(force_text(m._meta.verbose_name))
s.append(force_text(f.verbose_name))
s = ' / '.join(s)
r.append(s)
return r
def _as_row(self, obj):
"""
FIXME: Refatorar função para capturar url correta em caso de uso de
campos foreignkey. getHeaders faz isso para construir o título.
falta fazer com esta função
"""
r = []
for i, name in enumerate(self.list_field_names):
url = self.resolve_url(
@ -401,20 +396,28 @@ class CrudListView(PermissionRequiredContainerCrudMixin, ListView):
url = url + ('?pkk=' + self.kwargs['pk']
if 'pk' in self.kwargs else '')
if not isinstance(name, tuple):
name = name,
""" se elemento de list_field_name for uma tupla, constrói a
informação com ' - ' se os campos forem simples,
ou com <br> se for m2m """
if isinstance(name, tuple):
s = ''
for j, n in enumerate(name):
ss = get_field_display(obj, n)[1]
m = obj
n = n.split('__')
for f in n[:-1]:
m = getattr(m, f)
if not m:
break
if m:
ss = get_field_display(m, n[-1])[1]
ss = (
('<br>' if '<ul>' in ss else ' - ') + ss)\
if ss and j != 0 and s else ss
s += ss
r.append((s, url))
else:
r.append((get_field_display(obj, name)[1], url))
return r
def get_context_data(self, **kwargs):

19
sapl/parlamentares/views.py

@ -118,25 +118,14 @@ class MandatoCrud(MasterDetailCrud):
model = Mandato
parent_field = 'parlamentar'
public = [RP_DETAIL, RP_LIST]
list_field_names = ['legislatura',
'votos_recebidos',
'coligacao',
'coligacao__numero_votos']
class ListView(MasterDetailCrud.ListView):
ordering = ('-legislatura__numero')
def get_headers(self):
return [_('Legislatura'), _('Votos do Mandato'),
_('Coligação'), _('Votos da Coligação')]
def get_rows(self, object_list):
mandatos = []
for m in object_list:
mandato = [(m, reverse('sapl.parlamentares:mandato_detail',
kwargs={'pk': m.pk})),
(m.votos_recebidos, None),
(m.coligacao, None),
(m.coligacao.numero_votos, None)]
mandatos.append(mandato)
return mandatos
class ComposicaoColigacaoCrud(MasterDetailCrud):
model = ComposicaoColigacao

Loading…
Cancel
Save