|
|
|
@ -0,0 +1,41 @@ |
|
|
|
import json |
|
|
|
from django.core.management.base import BaseCommand |
|
|
|
from gestion_reservas.models import Ayuda |
|
|
|
|
|
|
|
|
|
|
|
class Command(BaseCommand): |
|
|
|
help = "Importa la ayuda desde un archivo JSON" |
|
|
|
|
|
|
|
def add_arguments(self, parser): |
|
|
|
parser.add_argument('archivo_json', type=str, help="Ruta del archivo JSON") |
|
|
|
|
|
|
|
def handle(self, *args, **kwargs): |
|
|
|
archivo_json = kwargs['archivo_json'] |
|
|
|
|
|
|
|
try: |
|
|
|
with open(archivo_json, 'r', encoding='utf-8') as file: |
|
|
|
datos = json.load(file) |
|
|
|
|
|
|
|
self.stdout.write(self.style.WARNING(f"\nSe encontraron {len(datos)} elementos de ayuda en el archivo '{archivo_json}'.")) |
|
|
|
confirmar = input("¿Deseas continuar con la importación? (s/n): ").strip().lower() |
|
|
|
|
|
|
|
if confirmar != 's': |
|
|
|
self.stdout.write(self.style.ERROR("Importación cancelada.")) |
|
|
|
return |
|
|
|
|
|
|
|
ayuda_creados = 0 |
|
|
|
for ayuda_data in datos: |
|
|
|
creado = Ayuda.objects.create( |
|
|
|
titulo=ayuda_data['titulo'], |
|
|
|
descripcion=ayuda_data['descripcion'], |
|
|
|
apartado=ayuda_data['apartado'], |
|
|
|
) |
|
|
|
if creado: |
|
|
|
ayuda_creados += 1 |
|
|
|
|
|
|
|
self.stdout.write(self.style.SUCCESS(f'Se importaron {ayuda_creados} entradas de ayuda correctamente.')) |
|
|
|
|
|
|
|
except FileNotFoundError: |
|
|
|
self.stderr.write(self.style.ERROR(f"El archivo {archivo_json} no se encontró.")) |
|
|
|
except json.JSONDecodeError: |
|
|
|
self.stderr.write(self.style.ERROR("Error al leer el archivo JSON. Asegúrate de que el formato sea correcto.")) |