Browse Source

WIP: Adiciona ordenação nas queries

3299-orderby-explicito
Vinícius Cantuária 4 years ago
parent
commit
91ac61a41b
  1. 2
      sapl/audiencia/views.py
  2. 2
      sapl/base/email_utils.py
  3. 8
      sapl/base/views.py
  4. 14
      sapl/compilacao/models.py
  5. 16
      sapl/compilacao/views.py
  6. 6
      sapl/materia/forms.py
  7. 6
      sapl/materia/views.py
  8. 12
      sapl/norma/models.py
  9. 12
      sapl/painel/views.py
  10. 17
      sapl/parlamentares/migrations/0033_auto_20201019_1206.py
  11. 2
      sapl/parlamentares/models.py
  12. 6
      sapl/protocoloadm/forms.py
  13. 46
      sapl/protocoloadm/tests/test_protocoloadm.py
  14. 6
      sapl/protocoloadm/views.py

2
sapl/audiencia/views.py

@ -76,7 +76,7 @@ class AudienciaCrud(Crud):
class AudienciaPublicaMixin:
def has_permission(self):
app_config = sapl.base.models.AppConfig.objects.last()
app_config = sapl.base.models.AppConfig.objects.order_by('id').last()
if app_config and app_config.documentos_administrativos == 'O':
return True

2
sapl/base/email_utils.py

@ -180,7 +180,7 @@ def criar_email_tramitacao(base_url, casa_legislativa, tipo, doc_mat, status,
kwargs={'pk': doc_mat.id})
autores = ""
ementa = doc_mat.assunto
tramitacao = doc_mat.tramitacaoadministrativo_set.last()
tramitacao = doc_mat.tramitacaoadministrativo_set.order_by('id').last()
templates = load_email_templates(['email/tramitacao.txt',
'email/tramitacao.html'],

8
sapl/base/views.py

@ -554,7 +554,7 @@ class RelatorioPresencaSessaoView(RelatorioMixin, FilterView):
Q(data_inicio_mandato__lte=_range[0], data_fim_mandato__isnull=True) |
Q(data_inicio_mandato__gte=_range[0], data_fim_mandato__lte=_range[1]) |
# mandato suplente
Q(data_inicio_mandato__gte=_range[0], data_fim_mandato__lte=_range[1]))
Q(data_inicio_mandato__gte=_range[0], data_fim_mandato__lte=_range[1])).order_by('id')
m = m.last()
parlamentares_presencas.append({
@ -2074,7 +2074,7 @@ class AppConfigCrud(CrudAux):
create_url = ''
def form_valid(self, form):
recibo_prop_atual = AppConfig.objects.last().receber_recibo_proposicao
recibo_prop_atual = AppConfig.objects.order_by('id').last().receber_recibo_proposicao
recibo_prop_novo = self.request.POST['receber_recibo_proposicao']
if recibo_prop_novo == 'False' and recibo_prop_atual:
props = Proposicao.objects.filter(hash_code='', data_recebimento__isnull=True).exclude(data_envio__isnull=True)
@ -2120,8 +2120,8 @@ class AppConfigCrud(CrudAux):
form_class = ConfiguracoesAppForm
def form_valid(self, form):
numeracao = AppConfig.objects.last().sequencia_numeracao_protocolo
numeracao_antiga = AppConfig.objects.last().inicio_numeracao_protocolo
numeracao = AppConfig.objects.order_by('id').last().sequencia_numeracao_protocolo
numeracao_antiga = AppConfig.objects.order_by('id').last().inicio_numeracao_protocolo
self.object = form.save()
numeracao_nova = self.object.inicio_numeracao_protocolo

14
sapl/compilacao/models.py

@ -520,7 +520,7 @@ class TextoArticulado(TimestampedMixin):
def reagrupar_ordem_de_dispositivos(self):
dpts = Dispositivo.objects.filter(ta=self)
dpts = Dispositivo.objects.filter(ta=self).order_by('id')
if not dpts.exists():
return
@ -538,7 +538,7 @@ class TextoArticulado(TimestampedMixin):
def reordenar_dispositivos(self):
dpts = Dispositivo.objects.filter(ta=self)
dpts = Dispositivo.objects.filter(ta=self).order_by('id')
if not dpts.exists():
return
@ -1758,10 +1758,10 @@ class Dispositivo(BaseModel, TimestampedMixin):
'ordem').filter(nivel=0, ta_id=self.ta_id)
def select_next_root(self):
return self.select_roots().filter(ordem__gt=self.ordem).first()
return self.select_roots().filter(ordem__gt=self.ordem).order_by('id').first()
def select_prev_root(self):
return self.select_roots().filter(ordem__lt=self.ordem).last()
return self.select_roots().filter(ordem__lt=self.ordem).order_by('id').last()
# metodo obsoleto, foi acrescentado o campo auto_inserido no modelo
def is_relative_auto_insert__obsoleto(self, perfil_pk=None):
@ -1875,11 +1875,9 @@ class Dispositivo(BaseModel, TimestampedMixin):
not self.tipo_dispositivo.dispositivo_de_alteracao:
return
filhos = Dispositivo.objects.order_by(
'ordem_bloco_atualizador').filter(
filhos = Dispositivo.objects.filter(
Q(dispositivo_pai_id=self.pk) |
Q(dispositivo_atualizador_id=self.pk))
Q(dispositivo_atualizador_id=self.pk)).order_by('ordem_bloco_atualizador')
if not filhos.exists():
return

16
sapl/compilacao/views.py

@ -1442,17 +1442,15 @@ class ActionDragAndMoveDispositivoAlteradoMixin(ActionsCommonsMixin):
else:
dpt.dispositivo_atualizador = bloco
filhos = Dispositivo.objects.order_by(
'ordem_bloco_atualizador').filter(
filhos = Dispositivo.objects.filter(
Q(dispositivo_pai_id=bloco.pk) |
Q(dispositivo_atualizador_id=bloco.pk))
Q(dispositivo_atualizador_id=bloco.pk)).order_by('ordem_bloco_atualizador')
if not filhos.exists():
dpt.ordem_bloco_atualizador = Dispositivo.INTERVALO_ORDEM
else:
index = int(self.request.GET['index'])
fpks = filhos.values_list(
'pk', flat=True).order_by('ordem_bloco_atualizador')
fpks = filhos.values_list('pk', flat=True).order_by('ordem_bloco_atualizador')
index_dpt = 0
try:
@ -1749,13 +1747,12 @@ class ActionDeleteDispositivoMixin(ActionsCommonsMixin):
for d in dcc: # ultimo DCC do tipo encontrado
if d.tipo_dispositivo.class_css not in base_adicao:
ultimo_dcc = Dispositivo.objects.order_by(
'ordem').filter(
ultimo_dcc = Dispositivo.objects.filter(
ta_id=base.ta_id,
ordem__lt=base.ordem,
ordem__gt=nivel_zero_anterior,
tipo_dispositivo__contagem_continua=True,
tipo_dispositivo=d.tipo_dispositivo).last()
tipo_dispositivo=d.tipo_dispositivo).order_by('ordem').last()
if not ultimo_dcc:
break
@ -2219,8 +2216,7 @@ class ActionDispositivoCreateMixin(ActionsCommonsMixin):
registro_inclusao = True
tipo = TipoDispositivo.objects.get(pk=context['tipo_pk'])
pub_last = Publicacao.objects.order_by(
'data', 'hora').filter(ta=base.ta).last()
pub_last = Publicacao.objects.filter(ta=base.ta).order_by('data', 'hora').last()
variacao = int(context['variacao'])
parents = [base, ] + base.get_parents()

6
sapl/materia/forms.py

@ -1912,7 +1912,7 @@ class ProposicaoForm(FileFieldCheckMixin, forms.ModelForm):
]
if AppConfig.objects.last().escolher_numero_materia_proposicao:
if AppConfig.objects.order_by('id').last().escolher_numero_materia_proposicao:
fields.append(to_column(('numero_materia_futuro', 12)),)
else:
if 'numero_materia_futuro' in self._meta.fields:
@ -2024,7 +2024,7 @@ class ProposicaoForm(FileFieldCheckMixin, forms.ModelForm):
def save(self, commit=True):
cd = self.cleaned_data
inst = self.instance
receber_recibo = AppConfig.objects.last().receber_recibo_proposicao
receber_recibo = AppConfig.objects.order_by('id').last().receber_recibo_proposicao
if inst.pk:
if 'tipo_texto' in cd:
@ -2236,7 +2236,7 @@ class ConfirmarProposicaoForm(ProposicaoForm):
)
]
if not AppConfig.objects.last().escolher_numero_materia_proposicao or \
if not AppConfig.objects.order_by('id').last().escolher_numero_materia_proposicao or \
not self.instance.numero_materia_futuro:
if 'numero_materia_futuro' in self._meta.fields:
del fields[0][0][3]

6
sapl/materia/views.py

@ -488,7 +488,7 @@ class ProposicaoPendente(PermissionRequiredMixin, ListView):
data_devolucao__isnull=True)
paginator = context['paginator']
page_obj = context['page_obj']
context['AppConfig'] = sapl.base.models.AppConfig.objects.all().last()
context['AppConfig'] = sapl.base.models.AppConfig.objects.order_by('id').last()
context['page_range'] = make_pagination(
page_obj.number, paginator.num_pages)
context['NO_ENTRIES_MSG'] = 'Nenhuma proposição pendente.'
@ -783,7 +783,7 @@ class ProposicaoCrud(Crud):
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['subnav_template_name'] = ''
context['AppConfig'] = sapl.base.models.AppConfig.objects.all().last()
context['AppConfig'] = sapl.base.models.AppConfig.objects.order_by('id').last()
context['title'] = '%s <small>(%s)</small>' % (
self.object, self.object.autor)
@ -2843,7 +2843,7 @@ def get_pdf_docacessorios(request, pk):
def configEtiquetaMateriaLegislativaCrud(request):
config = ConfigEtiquetaMateriaLegislativa.objects.last()
config = ConfigEtiquetaMateriaLegislativa.objects.order_by('id').last()
if request.method == "POST":
form = ConfigEtiquetaMateriaLegislativaForms(request.POST, instance=config)
if form.is_valid():

12
sapl/norma/models.py

@ -91,14 +91,8 @@ class NormaJuridicaManager(models.Manager):
def normas_com_textos_articulados_pendentes(self):
qs = self.get_queryset()
qs = qs.filter(
texto_articulado__editable_only_by_owners=False)
q = models.Q(
texto_articulado__privacidade=0
) | models.Q(
texto_articulado__isnull=True
)
qs = qs.filter(texto_articulado__editable_only_by_owners=False)
q = models.Q(texto_articulado__privacidade=0) | models.Q(texto_articulado__isnull=True)
qs = qs.exclude(q)
for n in qs:
@ -107,7 +101,7 @@ class NormaJuridicaManager(models.Manager):
if count == 1:
count = 0
elif count == 2:
d = ta.dispositivos_set.last()
d = ta.dispositivos_set.order_by('id').last()
if d.auto_inserido or not d.texto or d.texto == n.ementa:
count = 0
elif count == 3:

12
sapl/painel/views.py

@ -354,23 +354,19 @@ def get_cronometro_status(request, name):
def get_materia_aberta(pk):
return OrdemDia.objects.filter(
sessao_plenaria_id=pk, votacao_aberta=True).last()
return OrdemDia.objects.filter(sessao_plenaria_id=pk, votacao_aberta=True).last()
def get_presentes(pk, response, materia):
if type(materia) == OrdemDia:
presentes = PresencaOrdemDia.objects.filter(
sessao_plenaria_id=pk)
presentes = PresencaOrdemDia.objects.filter(sessao_plenaria_id=pk)
else:
presentes = SessaoPlenariaPresenca.objects.filter(
sessao_plenaria_id=pk)
presentes = SessaoPlenariaPresenca.objects.filter(sessao_plenaria_id=pk)
sessao = SessaoPlenaria.objects.get(id=pk)
num_presentes = len(presentes)
data_sessao = sessao.data_inicio
oradores = OradorExpediente.objects.filter(
sessao_plenaria_id=pk).order_by('numero_ordem')
oradores = OradorExpediente.objects.filter(sessao_plenaria_id=pk).order_by('numero_ordem')
oradores_list = []
for o in oradores:

17
sapl/parlamentares/migrations/0033_auto_20201019_1206.py

@ -0,0 +1,17 @@
# Generated by Django 2.2.13 on 2020-10-19 15:06
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('parlamentares', '0032_frente_parlamentar'),
]
operations = [
migrations.AlterModelOptions(
name='mandato',
options={'ordering': ('id',), 'verbose_name': 'Mandato', 'verbose_name_plural': 'Mandatos'},
),
]

2
sapl/parlamentares/models.py

@ -460,7 +460,7 @@ class Mandato(models.Model):
class Meta:
verbose_name = _('Mandato')
verbose_name_plural = _('Mandatos')
ordering = ('parlamentar', 'legislatura__numero')
ordering = ('id',)
def __str__(self):
return _('%(parlamentar)s %(legislatura)s') % {

6
sapl/protocoloadm/forms.py

@ -782,7 +782,7 @@ class TramitacaoAdmForm(ModelForm):
anexados_list = lista_anexados(documento, False)
for da in anexados_list:
if not da.tramitacaoadministrativo_set.all() \
or da.tramitacaoadministrativo_set.last() \
or da.tramitacaoadministrativo_set.order_by('id').last() \
.unidade_tramitacao_destino == tramitacao.unidade_tramitacao_local:
da.tramitacao = False if tramitacao.status.indicador == "F" else True
da.save()
@ -901,7 +901,7 @@ class TramitacaoAdmEditForm(TramitacaoAdmForm):
if tramitar_anexados:
anexados_list = lista_anexados(documento, False)
for da in anexados_list:
tram_anexada = da.tramitacaoadministrativo_set.last()
tram_anexada = da.tramitacaoadministrativo_set.order_by('id').last()
if compara_tramitacoes_doc(ant_tram_principal, tram_anexada):
tram_anexada.status = nova_tram_principal.status
tram_anexada.data_tramitacao = nova_tram_principal.data_tramitacao
@ -1666,7 +1666,7 @@ class TramitacaoEmLoteAdmForm(ModelForm):
anexados = lista_anexados(doc, False)
for da in anexados:
if not da.tramitacaoadministrativo_set.all() \
or da.tramitacaoadministrativo_set.last() \
or da.tramitacaoadministrativo_set.order_by('id').last() \
.unidade_tramitacao_destino == tramitacao.unidade_tramitacao_local:
da.tramitacao = False if tramitacao.status.indicador == "F" else True
da.save()

46
sapl/protocoloadm/tests/test_protocoloadm.py

@ -271,7 +271,7 @@ def test_create_tramitacao(admin_client):
'data_tramitacao': date(2016, 8, 21)},
follow=True)
tramitacao = TramitacaoAdministrativo.objects.last()
tramitacao = TramitacaoAdministrativo.objects.order_by('id').last()
# Verifica se a tramitacao que obedece as regras de negócios é criada
assert tramitacao.data_tramitacao == date(2016, 8, 21)
@ -600,11 +600,11 @@ def test_tramitacoes_documentos_anexados(admin_client):
assert form.is_valid()
tramitacao_principal = form.save()
tramitacao_anexada = documento_anexado.tramitacaoadministrativo_set.last()
tramitacao_anexada_anexada = documento_anexado_anexado.tramitacaoadministrativo_set.last()
tramitacao_anexada = documento_anexado.tramitacaoadministrativo_set.order_by('id').last()
tramitacao_anexada_anexada = documento_anexado_anexado.tramitacaoadministrativo_set.order_by('id').last()
# Verifica se foram criadas as tramitações para os documentos anexados e anexados aos anexados
assert documento_principal.tramitacaoadministrativo_set.last() == tramitacao_principal
assert documento_principal.tramitacaoadministrativo_set.order_by('id').last() == tramitacao_principal
assert tramitacao_principal.documento.tramitacao == (tramitacao_principal.status.indicador != "F")
assert compara_tramitacoes_doc(tramitacao_principal, tramitacao_anexada)
assert DocumentoAdministrativo.objects.get(id=documento_anexado.pk).tramitacao \
@ -627,8 +627,8 @@ def test_tramitacoes_documentos_anexados(admin_client):
assert form.is_valid()
tramitacao_principal = form.save()
tramitacao_anexada = documento_anexado.tramitacaoadministrativo_set.last()
tramitacao_anexada_anexada = documento_anexado_anexado.tramitacaoadministrativo_set.last()
tramitacao_anexada = documento_anexado.tramitacaoadministrativo_set.order_by('id').last()
tramitacao_anexada_anexada = documento_anexado_anexado.tramitacaoadministrativo_set.order_by('id').last()
assert tramitacao_principal.unidade_tramitacao_destino == unidade_tramitacao_destino_2
assert tramitacao_anexada.unidade_tramitacao_destino == unidade_tramitacao_destino_2
@ -656,8 +656,8 @@ def test_tramitacoes_documentos_anexados(admin_client):
assert form.is_valid()
tramitacao_principal = form.save()
tramitacao_anexada = documento_anexado.tramitacaoadministrativo_set.last()
tramitacao_anexada_anexada = documento_anexado_anexado.tramitacaoadministrativo_set.last()
tramitacao_anexada = documento_anexado.tramitacaoadministrativo_set.order_by('id').last()
tramitacao_anexada_anexada = documento_anexado_anexado.tramitacaoadministrativo_set.order_by('id').last()
form = TramitacaoAdmEditForm(data={})
# Alterando unidade_tramitacao_destino
@ -671,7 +671,7 @@ def test_tramitacoes_documentos_anexados(admin_client):
assert form.is_valid()
tramitacao_anexada = form.save()
tramitacao_anexada_anexada = documento_anexado_anexado.tramitacaoadministrativo_set.last()
tramitacao_anexada_anexada = documento_anexado_anexado.tramitacaoadministrativo_set.order_by('id').last()
assert tramitacao_principal.unidade_tramitacao_destino == unidade_tramitacao_destino_1
assert tramitacao_anexada.unidade_tramitacao_destino == unidade_tramitacao_destino_2
@ -690,8 +690,8 @@ def test_tramitacoes_documentos_anexados(admin_client):
assert form.is_valid()
tramitacao_principal = form.save()
tramitacao_anexada = documento_anexado.tramitacaoadministrativo_set.last()
tramitacao_anexada_anexada = documento_anexado_anexado.tramitacaoadministrativo_set.last()
tramitacao_anexada = documento_anexado.tramitacaoadministrativo_set.order_by('id').last()
tramitacao_anexada_anexada = documento_anexado_anexado.tramitacaoadministrativo_set.order_by('id').last()
assert tramitacao_principal.texto == "Testando a alteração"
assert not tramitacao_anexada.texto == "Testando a alteração"
@ -730,11 +730,11 @@ def test_tramitacoes_documentos_anexados(admin_client):
assert form.is_valid()
tramitacao_principal = form.save()
tramitacao_anexada = documento_anexado.tramitacaoadministrativo_set.last()
tramitacao_anexada_anexada = documento_anexado_anexado.tramitacaoadministrativo_set.last()
tramitacao_anexada = documento_anexado.tramitacaoadministrativo_set.order_by('id').last()
tramitacao_anexada_anexada = documento_anexado_anexado.tramitacaoadministrativo_set.order_by('id').last()
# Verifica se não foram criadas as tramitações para os documentos anexados e anexados aos anexados
assert documento_principal.tramitacaoadministrativo_set.last() == tramitacao_principal
assert documento_principal.tramitacaoadministrativo_set.order_by('id').last() == tramitacao_principal
assert tramitacao_principal.documento.tramitacao == (tramitacao_principal.status.indicador != "F")
assert not tramitacao_anexada
assert not tramitacao_anexada_anexada
@ -752,11 +752,11 @@ def test_tramitacoes_documentos_anexados(admin_client):
assert form.is_valid()
tramitacao_anexada = form.save()
tramitacao_principal = documento_principal.tramitacaoadministrativo_set.last()
tramitacao_anexada_anexada = documento_anexado_anexado.tramitacaoadministrativo_set.last()
tramitacao_principal = documento_principal.tramitacaoadministrativo_set.order_by('id').last()
tramitacao_anexada_anexada = documento_anexado_anexado.tramitacaoadministrativo_set.order_by('id').last()
assert documento_principal.tramitacaoadministrativo_set.all().count() == 1
assert documento_anexado.tramitacaoadministrativo_set.last() == tramitacao_anexada
assert documento_anexado.tramitacaoadministrativo_set.order_by('id').last() == tramitacao_anexada
assert not tramitacao_anexada_anexada
form = TramitacaoAdmEditForm(data={})
@ -772,8 +772,8 @@ def test_tramitacoes_documentos_anexados(admin_client):
assert form.is_valid()
tramitacao_principal = form.save()
tramitacao_anexada = documento_anexado.tramitacaoadministrativo_set.last()
tramitacao_anexada_anexada = documento_anexado_anexado.tramitacaoadministrativo_set.last()
tramitacao_anexada = documento_anexado.tramitacaoadministrativo_set.order_by('id').last()
tramitacao_anexada_anexada = documento_anexado_anexado.tramitacaoadministrativo_set.order_by('id').last()
assert tramitacao_principal.unidade_tramitacao_destino == unidade_tramitacao_destino_2
assert tramitacao_anexada.unidade_tramitacao_destino == unidade_tramitacao_destino_1
@ -792,8 +792,8 @@ def test_tramitacoes_documentos_anexados(admin_client):
assert form.is_valid()
tramitacao_anexada = form.save()
tramitacao_principal = documento_principal.tramitacaoadministrativo_set.last()
tramitacao_anexada_anexada = documento_anexado_anexado.tramitacaoadministrativo_set.last()
tramitacao_principal = documento_principal.tramitacaoadministrativo_set.order_by('id').last()
tramitacao_anexada_anexada = documento_anexado_anexado.tramitacaoadministrativo_set.order_by('id').last()
assert tramitacao_principal.unidade_tramitacao_destino == unidade_tramitacao_destino_2
assert tramitacao_anexada.unidade_tramitacao_destino == unidade_tramitacao_destino_2
@ -1167,8 +1167,8 @@ def test_tramitacao_lote_documentos_views(admin_client):
assert documento_anexado.tramitacaoadministrativo_set.all().count() == 1
assert documento_anexado_anexado.tramitacaoadministrativo_set.all().count() == 0
tramitacao_principal = documento_principal.tramitacaoadministrativo_set.last()
tramitacao_anexada = documento_anexado.tramitacaoadministrativo_set.last()
tramitacao_principal = documento_principal.tramitacaoadministrativo_set.order_by('id').last()
tramitacao_anexada = documento_anexado.tramitacaoadministrativo_set.order_by('id').last()
assert compara_tramitacoes_doc(tramitacao_anexada, tramitacao_principal)
documentos = [documento_principal.id]

6
sapl/protocoloadm/views.py

@ -96,7 +96,7 @@ def doc_texto_integral(request, pk):
can_see = True
if not request.user.is_authenticated:
app_config = AppConfig.objects.last()
app_config = AppConfig.objects.order_by('id').last()
if app_config and app_config.documentos_administrativos == 'R':
can_see = False
@ -318,7 +318,7 @@ class AcompanhamentoDocumentoView(CreateView):
class DocumentoAdministrativoMixin:
def has_permission(self):
app_config = AppConfig.objects.last()
app_config = AppConfig.objects.order_by('id').last()
if app_config and app_config.documentos_administrativos == 'O':
return True
@ -1370,7 +1370,7 @@ class TramitacaoAdmCrud(MasterDetailCrud):
if tramitar_anexados:
docs_anexados = lista_anexados(documento, False)
for da in docs_anexados:
tram_anexada = da.tramitacaoadministrativo_set.last()
tram_anexada = da.tramitacaoadministrativo_set.order_by('id').last()
if compara_tramitacoes_doc(tram_anexada, tramitacao):
tramitacoes_deletar.append(tram_anexada)
if da.tramitacaoadministrativo_set.count() == 0:

Loading…
Cancel
Save