diff --git a/sapl/materia/views.py b/sapl/materia/views.py index e1604a74c..600283648 100644 --- a/sapl/materia/views.py +++ b/sapl/materia/views.py @@ -103,12 +103,19 @@ class ProposicaoTaView(IntegracaoTaView): @permission_required_for_app(app_label=apps.AppConfig.label) def recuperar_materia(request): tipo = TipoMateriaLegislativa.objects.get(pk=request.GET['tipo']) - materia = MateriaLegislativa.objects.filter(tipo=tipo).last() + ano = request.GET.get('ano', '') + + param = {'tipo': tipo} + param['data_apresentacao__year'] = ano if ano else datetime.now().year + + materia = MateriaLegislativa.objects.filter(**param).order_by( + 'tipo', 'ano', 'numero').values_list('numero', 'ano').last() if materia: - response = JsonResponse({'numero': materia.numero + 1, - 'ano': datetime.now().year}) + response = JsonResponse({'numero': materia[0] + 1, + 'ano': materia[1]}) else: - response = JsonResponse({'numero': 1, 'ano': datetime.now().year}) + response = JsonResponse( + {'numero': 1, 'ano': ano if ano else datetime.now().year}) return response @@ -314,7 +321,7 @@ class ProposicaoCrud(Crud): TODO: Entre outros comportamento gerais, mesmo que um usuário tenha Perfil de Autor o Crud de proposição não deverá permitir acesso a proposições. O acesso só deve ser permitido se existe um Autor registrado - e vinculado ao usuário. Essa tarefa deve ser realizada nas Tabelas Aux. + e vinculado ao usuário. Essa tarefa deve ser realizada nas Tabelas Aux. """ model = Proposicao help_path = '' diff --git a/sapl/templates/materia/layouts.yaml b/sapl/templates/materia/layouts.yaml index 47cb7f212..a2c35be9d 100644 --- a/sapl/templates/materia/layouts.yaml +++ b/sapl/templates/materia/layouts.yaml @@ -21,7 +21,7 @@ TipoFimRelatoria: MateriaLegislativa: {% trans 'Identificação Básica' %}: - - tipo numero ano + - tipo ano numero - data_apresentacao numero_protocolo tipo_apresentacao - texto_original {% trans 'Outras Informações' %}: diff --git a/sapl/templates/materia/materialegislativa_form.html b/sapl/templates/materia/materialegislativa_form.html index 7cb127605..b2bf75e8a 100644 --- a/sapl/templates/materia/materialegislativa_form.html +++ b/sapl/templates/materia/materialegislativa_form.html @@ -9,9 +9,10 @@ function recuperar_numero_ano() { var tipo = $("#id_tipo").val() + var ano = $("#id_ano").val() if (tipo) { - $.get("/materia/recuperar-materia",{tipo: tipo}, + $.get("/materia/recuperar-materia",{tipo: tipo, ano: ano}, function(data, status) { $("#id_numero").val(data.numero); $("#id_ano").val(data.ano); @@ -19,7 +20,7 @@ }); } } - $("#id_tipo").change(recuperar_numero_ano); + $("#id_tipo, #id_ano").change(recuperar_numero_ano); {% endblock %}