diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 2d9e6dbfe..5176e7aac 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -1,4 +1,4 @@ -django>=1.11.19,<2.0 +django>=1.11.27,<2.0 django-haystack==2.8.1 django-filter==2.0.0 djangorestframework==3.9.1 diff --git a/sapl/materia/forms.py b/sapl/materia/forms.py index e3f46d595..e855dcc30 100644 --- a/sapl/materia/forms.py +++ b/sapl/materia/forms.py @@ -926,17 +926,20 @@ class AnexadaForm(ModelForm): anexadas_anexada = Anexada.objects.filter( materia_principal=materia_anexada) - while anexadas_anexada and not ciclico: + anexadas_visitadas = [materia_principal] + while anexadas_anexada: anexadas = [] - for anexa in anexadas_anexada: - if materia_principal == anexa.materia_anexada: + if anexa.materia_anexada in anexadas_visitadas: ciclico = True + break else: + anexadas_visitadas.append(anexa.materia_anexada) for a in Anexada.objects.filter(materia_principal=anexa.materia_anexada): anexadas.append(a) - + if ciclico: + break anexadas_anexada = anexadas if ciclico: diff --git a/sapl/parlamentares/views.py b/sapl/parlamentares/views.py index c9aa5302a..b176f056f 100644 --- a/sapl/parlamentares/views.py +++ b/sapl/parlamentares/views.py @@ -615,6 +615,7 @@ class ParlamentarCrud(Crud): return [_('Parlamentar'), _('Partido'), _('Ativo?'), _('Titular?')] + class ParlamentarMateriasView(FormView): template_name = "parlamentares/materias.html" success_url = reverse_lazy('sapl.parlamentares:parlamentar_materia') @@ -807,14 +808,13 @@ def altera_field_mesa(request): # atual deve ser a primeira daquela legislatura else: year = timezone.now().year - try: - logger.debug( - "user=" + username + ". Tentando obter id de sessoes com data_inicio.ano={}.".format(year)) - sessao_selecionada = sessoes.get(data_inicio__year=year).id - except ObjectDoesNotExist: + logger.debug( + "user={}. Tentando obter id de sessoes com data_inicio.ano={}.".format(username, year)) + sessao_selecionada = sessoes.filter(data_inicio__year=year).first() + if not sessao_selecionada: logger.error("user=" + username + ". Id de sessoes com data_inicio.ano={} não encontrado. " - "Selecionado o ID da primeira sessão.".format(year)) - sessao_selecionada = sessoes.first().id + "Selecionado o ID da primeira sessão.".format(year)) + sessao_selecionada = sessoes.first() # Atualiza os componentes da view após a mudança composicao_mesa = ComposicaoMesa.objects.filter( @@ -845,7 +845,7 @@ def altera_field_mesa(request): 'lista_composicao': lista_composicao, 'lista_parlamentares': lista_parlamentares, 'lista_cargos': lista_cargos, - 'sessao_selecionada': sessao_selecionada, + 'sessao_selecionada': sessao_selecionada.id, 'msg': ('', 1)}) diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index b6a337937..53b4f7cfa 100755 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -60,6 +60,12 @@ TipoResultadoVotacaoCrud = CrudAux.build( TipoResultadoVotacao, 'tipo_resultado_votacao') TipoRetiradaPautaCrud = CrudAux.build(TipoRetiradaPauta, 'tipo_retirada_pauta') +# constantes +SIMBOLICA = 1 +NOMINAL = 2 +SECRETA = 3 +LEITURA = 4 + def reordernar_materias_expediente(request, pk): expedientes = ExpedienteMateria.objects.filter( @@ -263,25 +269,25 @@ def customize_link_materia(context, pk, has_permission, is_expediente): if obj.votacao_aberta: url = '' if is_expediente: - if obj.tipo_votacao == 1: + if obj.tipo_votacao == SIMBOLICA: url = reverse('sapl.sessao:votacaosimbolicaexp', kwargs={ 'pk': obj.sessao_plenaria_id, 'oid': obj.pk, 'mid': obj.materia_id}) - elif obj.tipo_votacao == 2: + elif obj.tipo_votacao == NOMINAL: url = reverse('sapl.sessao:votacaonominalexp', kwargs={ 'pk': obj.sessao_plenaria_id, 'oid': obj.pk, 'mid': obj.materia_id}) - elif obj.tipo_votacao == 3: + elif obj.tipo_votacao == SECRETA: url = reverse('sapl.sessao:votacaosecretaexp', kwargs={ 'pk': obj.sessao_plenaria_id, 'oid': obj.pk, 'mid': obj.materia_id}) - elif obj.tipo_votacao == 4: + elif obj.tipo_votacao == LEITURA: url = reverse('sapl.sessao:leituraexp', kwargs={ 'pk': obj.sessao_plenaria_id, @@ -289,25 +295,25 @@ def customize_link_materia(context, pk, has_permission, is_expediente): 'mid': obj.materia_id}) else: - if obj.tipo_votacao == 1: + if obj.tipo_votacao == SIMBOLICA: url = reverse('sapl.sessao:votacaosimbolica', kwargs={ 'pk': obj.sessao_plenaria_id, 'oid': obj.pk, 'mid': obj.materia_id}) - elif obj.tipo_votacao == 2: + elif obj.tipo_votacao == NOMINAL: url = reverse('sapl.sessao:votacaonominal', kwargs={ 'pk': obj.sessao_plenaria_id, 'oid': obj.pk, 'mid': obj.materia_id}) - elif obj.tipo_votacao == 3: + elif obj.tipo_votacao == SECRETA: url = reverse('sapl.sessao:votacaosecreta', kwargs={ 'pk': obj.sessao_plenaria_id, 'oid': obj.pk, 'mid': obj.materia_id}) - elif obj.tipo_votacao == 4: + elif obj.tipo_votacao == LEITURA: url = reverse('sapl.sessao:leituraod', kwargs={ 'pk': obj.sessao_plenaria_id, @@ -315,7 +321,7 @@ def customize_link_materia(context, pk, has_permission, is_expediente): 'mid': obj.materia_id}) if has_permission: - if obj.tipo_votacao != 4: + if obj.tipo_votacao != LEITURA: btn_registrar = '''