Open lizianem opened 5 years ago
O problema é que isso vai fazer voltar esse problema aqui: https://github.com/interlegis/sapl/issues/2072
Existem uma série de questões técnicas pelo fato desse campo número ser texto (o que foi feito por conta de numerações do tipo 139-A, 3151, 3151-A, 3151-B, etc). Isso gerou uma série de problemas para inserção e recuperação destes números. Temos que estudar a melhor forma de fazer isso.
Uma ideia, que deve ser construída e aprimorada, é criar um campo estruturado paralelo do tipo ArrayField, por exemplo numero_search = ArrayField()
os procedimentos envolveria três alterações:
1) criar o campo, gerar o migrate, e incluir um RunPython gerando o numero_search=ArrayField a partir do numero=CharField
2) implementar em NormaJuridica.save o algoritmo de conversão para as futuras edições e inserções
3) implementar em NormaFilterSet a customização do campo número com um method filter onde o conteudo seja transformado em Array e aplicado ao queryset do django-filter
3.1) o queryset deverá, possívelmente usar o lookup contain
e não o overlap
: veja aqui
código de conversão de string para array, produzido pelo @edwardoliveira em tempo de diálogo pelo telegram sobre essa issue:
In [4]: x = '000.10.000-9/A'
In [5]: list(map(lambda x: int(x) if x.isnumeric() else x , re.compile('[-/.]').split(x)))
Out[5]: [0, 10, 0, 9, 'A']
@LeandroJatai esta ideia já foi implementada?
https://github.com/interlegis/sapl/issues/2747#issuecomment-486383777
Numeração Normas Jurídicas - uso do dígito 0
Comportamento Esperado Na versão 3.1.153 não conseguimos pesquisar ou cadastrar normas que apresenta o dígito zero (0) na NUMERAÇÃO (campo NÚMERO). Ex.: Resolução SMAMS 001.
Precisamos voltar a cadastrar com o dígito 0 (zero), pois esse número faz parte da nomenclatura oficial da Norma. Sem o cadastro e a pesquisa, não localizaremos todas as normas cadastradas até momento e perderemos o histórico. Também não se pode ignorar a nomenclatura oficial das normas jurídicas do Município, pois muitas iniciam com 0 ou 00.
Seu Ambiente