Browse Source

Fix #2920 - Campo de ordenação em TipoExpediente (#2923)

* Fix #2920 - Adiciona campo de ordenação em TipoExpediente

* Melhora forma como é obtida variável expedientes vazios
pull/2944/head
Cesar Carvalho 5 years ago
parent
commit
2eb0b796db
  1. 24
      sapl/sessao/migrations/0044_auto_20190816_1336.py
  2. 23
      sapl/sessao/migrations/0045_auto_20190816_1337.py
  3. 6
      sapl/sessao/models.py
  4. 12
      sapl/sessao/views.py
  5. 2
      sapl/templates/sessao/layouts.yaml

24
sapl/sessao/migrations/0044_auto_20190816_1336.py

@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-08-16 16:36
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('sessao', '0043_auto_20190712_1053'),
]
operations = [
migrations.AlterModelOptions(
name='tipoexpediente',
options={'ordering': ['ordenacao'], 'verbose_name': 'Tipo de Expediente', 'verbose_name_plural': 'Tipos de Expediente'},
),
migrations.AddField(
model_name='tipoexpediente',
name='ordenacao',
field=models.PositiveIntegerField(blank=True, null=True, verbose_name='Ordenação'),
),
]

23
sapl/sessao/migrations/0045_auto_20190816_1337.py

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-08-16 16:37
from __future__ import unicode_literals
from django.db import migrations
def migra_ordenacao_tipos(apps, schema_editor):
TipoExpediente = apps.get_model('sessao', 'TipoExpediente')
for i,tipo in enumerate(TipoExpediente.objects.all().order_by('nome')):
tipo.ordenacao=i+1
tipo.save()
class Migration(migrations.Migration):
dependencies = [
('sessao', '0044_auto_20190816_1336'),
]
operations = [
migrations.RunPython(migra_ordenacao_tipos)
]

6
sapl/sessao/models.py

@ -350,11 +350,15 @@ class ExpedienteMateria(AbstractOrdemDia):
@reversion.register()
class TipoExpediente(models.Model):
nome = models.CharField(max_length=100, verbose_name=_('Tipo'))
ordenacao = models.PositiveIntegerField(
blank=True,
null=True,
verbose_name=_("Ordenação"))
class Meta:
verbose_name = _('Tipo de Expediente')
verbose_name_plural = _('Tipos de Expediente')
ordering = ['nome']
ordering = ['ordenacao']
def __str__(self):
return self.nome

12
sapl/sessao/views.py

@ -2081,16 +2081,14 @@ class ExpedienteView(FormMixin, DetailView):
def get(self, request, *args, **kwargs):
self.object = self.get_object()
context = self.get_context_data(object=self.object)
tipos = TipoExpediente.objects.all().order_by('nome')
tipos = TipoExpediente.objects.all().order_by('ordenacao', 'nome')
expedientes_sessao = ExpedienteSessao.objects.filter(
sessao_plenaria_id=self.object.id).order_by('tipo__nome')
sessao_plenaria_id=self.object.id).order_by('tipo__ordenacao', 'tipo__nome')
expedientes_salvos = []
for e in expedientes_sessao:
expedientes_salvos.append(e.tipo)
expedientes_salvos = [e.tipo.id for e in expedientes_sessao]
tipos_null = TipoExpediente.objects.all().exclude(id__in=expedientes_salvos).order_by('ordenacao', 'nome')
tipos_null = list(set(tipos) - set(expedientes_salvos))
tipos_null.sort(key=lambda x: x.nome)
expedientes = []
for e, t in zip(expedientes_sessao, tipos):

2
sapl/templates/sessao/layouts.yaml

@ -27,7 +27,7 @@ TipoResultadoVotacao:
TipoExpediente:
{% trans 'Tipo de Expediente' %}:
- nome
- nome ordenacao
RegistroVotacao:
{% trans 'Votação Simbólica' %}:

Loading…
Cancel
Save