mirror of https://github.com/interlegis/sapl.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.2 KiB
36 lines
1.2 KiB
5 years ago
|
# Gerar hash de proposições para recebimento sem recibo
|
||
|
from sapl.materia.models import Proposicao
|
||
|
from sapl.utils import gerar_hash_arquivo, SEPARADOR_HASH_PROPOSICAO
|
||
|
from datetime import datetime
|
||
|
|
||
|
def gerar_hash(proposicao):
|
||
|
if proposicao.texto_original:
|
||
|
try:
|
||
|
proposicao.hash_code = gerar_hash_arquivo(
|
||
|
proposicao.texto_original.path, str(proposicao.pk))
|
||
|
except IOError:
|
||
|
raise Exception("Existem proposicoes com arquivos inexistentes.")
|
||
|
elif proposicao.texto_articulado.exists():
|
||
|
ta = proposicao.texto_articulado.first()
|
||
|
proposicao.hash_code = 'P' + ta.hash() + SEPARADOR_HASH_PROPOSICAO + str(proposicao.pk)
|
||
|
print(proposicao.hash_code)
|
||
|
proposicao.save()
|
||
|
|
||
|
|
||
|
def gerar_hash_proposicoes():
|
||
|
di = datetime.now()
|
||
|
print(di)
|
||
|
props = Proposicao.objects.filter(hash_code='').exclude(data_envio__isnull=True)
|
||
|
print("Total de proposicoes: %s" % props.count())
|
||
|
for prop in props:
|
||
|
try:
|
||
|
print(".",end="")
|
||
|
gerar_hash(prop)
|
||
|
except Exception as e:
|
||
|
print('Erro para proposicao', prop)
|
||
|
print(e)
|
||
|
|
||
|
elapsed = datetime.now() - di
|
||
|
print("\n {}s".format(elapsed.seconds))
|
||
|
|