diff --git a/sapl/materia/views.py b/sapl/materia/views.py index 2545064ad..60d47802b 100644 --- a/sapl/materia/views.py +++ b/sapl/materia/views.py @@ -1712,6 +1712,57 @@ class MateriaLegislativaCrud(Crud): return initial + def form_valid(self, form): + self.object = form.save() + tipo_materia = TipoMateriaLegislativa.objects.get(id=self.object.tipo_id) + + self.logger.debug( + "Tentando obter a configuração selecionada para o registro de numeração " \ + "na criação de materias." + ) + config = BaseAppConfig.objects.last().registro_numeracao_materia + if not config: + self.logger.error( + "Não foi possível obter a configuração selecionada para o registro " \ + "de numeração na criação de matérias." + ) + + msg = _( + 'Não foi possível obter a configuração selecionada para o registro ' \ + 'de numeração na criação de matérias.' + ) + messages.add_message(self.request, messages.WARNING, msg) + elif config == "A": + numeros = [ + int(n.numero_materia) for n in Numeracao.objects.filter( + ano_materia=self.object.ano + ) + ] + numeros.sort() + numero = numeros[len(numeros)-1] + 1 + + Numeracao.objects.create( + materia=self.object, tipo_materia=tipo_materia, + numero_materia=numero, ano_materia=self.object.ano, + data_materia=self.object.data_apresentacao + ) + elif config == "U": + numeros = [ int(n.numero_materia) for n in Numeracao.objects.all() ] + numeros.sort() + numero = numeros[len(numeros)-1] + 1 + + Numeracao.objects.create( + materia=self.object, tipo_materia=tipo_materia, + numero_materia=numero, ano_materia=self.object.ano, + data_materia=self.object.data_apresentacao + ) + else: + self.logger.debug( + "A configuração selecionada para o registro de numeração na criação " \ + "de matérias é: Não registrar numeração." + ) + return super().form_valid(form) + @property def cancel_url(self): return self.search_url