mirror of https://github.com/interlegis/sapl.git
joao
11 months ago
1 changed files with 57 additions and 0 deletions
@ -0,0 +1,57 @@ |
|||||
|
import json |
||||
|
from django.contrib.auth import get_user_model |
||||
|
from datetime import datetime |
||||
|
from django.core.serializers.json import DjangoJSONEncoder |
||||
|
|
||||
|
|
||||
|
# Função para tratar a serialização de objetos datetime |
||||
|
class CustomJSONEncoder(DjangoJSONEncoder): |
||||
|
def default(self, obj): |
||||
|
if isinstance(obj, datetime): |
||||
|
return obj.isoformat() |
||||
|
return super().default(obj) |
||||
|
|
||||
|
|
||||
|
# Receber o nome do usuário como parâmetro |
||||
|
nome_usuario = input("Digite o nome do usuário: ") |
||||
|
|
||||
|
# Encontrar o usuário |
||||
|
User = get_user_model() |
||||
|
try: |
||||
|
usuario = User.objects.get(username=nome_usuario) |
||||
|
except User.DoesNotExist: |
||||
|
print(f"Usuário '{nome_usuario}' não encontrado.") |
||||
|
exit() |
||||
|
|
||||
|
# Encontrar o autor relacionado |
||||
|
try: |
||||
|
autor = OperadorAutor.objects.get(user=usuario).autor |
||||
|
except OperadorAutor.DoesNotExist: |
||||
|
print(f"Nenhum autor encontrado para o usuário '{nome_usuario}'.") |
||||
|
exit() |
||||
|
|
||||
|
# Buscar proposições não recebidas criadas por esse autor |
||||
|
proposicoes = Proposicao.objects.filter(autor=autor, data_recebimento__isnull=True) |
||||
|
|
||||
|
# Exibir a quantidade de registros |
||||
|
print(f"Total de proposições encontradas: {proposicoes.count()}") |
||||
|
|
||||
|
# Opção para imprimir todas as proposições filtradas |
||||
|
if input("Deseja imprimir todas as proposições? (s/n): ").lower() == 's': |
||||
|
for proposicao in proposicoes: |
||||
|
print(proposicao) |
||||
|
|
||||
|
# Escolha para proceder com a deleção |
||||
|
if input("Deseja proceder com a deleção das proposições? (s/n): ").lower() == 's': |
||||
|
# Backup dos dados com a customização para datetime |
||||
|
dados_backup = list(proposicoes.values()) |
||||
|
with open('backup_proposicoes.json', 'w') as file: |
||||
|
json.dump(dados_backup, file, cls=CustomJSONEncoder) |
||||
|
|
||||
|
# Deletar as proposições |
||||
|
num_proposicoes = proposicoes.count() |
||||
|
proposicoes.delete() |
||||
|
|
||||
|
print(f"{num_proposicoes} proposições foram deletadas. Backup realizado em 'backup_proposicoes.json'.") |
||||
|
else: |
||||
|
print("Deleção cancelada.") |
Loading…
Reference in new issue