Browse Source

Keep going

main
Celestino Rey 8 months ago
parent
commit
339b614278
6 changed files with 36 additions and 51 deletions
  1. +1
    -3
      src/entrenadores/urls.py
  2. +2
    -2
      src/macrociclos/apps.py
  3. +21
    -21
      src/macrociclos/management/commands/importar_repostajes.py
  4. +10
    -17
      src/macrociclos/urls.py
  5. +1
    -3
      src/templates/_cabecera.html
  6. +1
    -5
      src/templates/repostajes/_menu-repostajes.html

+ 1
- 3
src/entrenadores/urls.py View File

@ -25,9 +25,7 @@ from . import views
urlpatterns = [
path('obreros/', admin.site.urls),
path('repostajes/', include('repostajes.urls')),
path('lyrics/', include('lyrics.urls')),
path('macrociclos/', include('macrociclos.urls')),
path("accounts/", include("accounts.urls")), # new


+ 2
- 2
src/macrociclos/apps.py View File

@ -1,6 +1,6 @@
from django.apps import AppConfig
class RepostajesConfig(AppConfig):
class MacrociclosConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'repostajes'
name = 'macrociclos'

+ 21
- 21
src/macrociclos/management/commands/importar_repostajes.py View File

@ -1,10 +1,10 @@
import json
from django.core.management.base import BaseCommand
from repostajes.models import Repostaje, Vehiculo
from entrenadores.models import Entrenador, Macrociclo
class Command(BaseCommand):
help = "Importa repostajes desde un archivo JSON"
help = "Importa entrenadores desde un archivo JSON"
def add_arguments(self, parser):
parser.add_argument('archivo_json', type=str, help="Ruta del archivo JSON")
@ -16,36 +16,36 @@ class Command(BaseCommand):
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)} repostajes en el archivo '{archivo_json}'."))
self.stdout.write(self.style.WARNING(f"\nSe encontraron {len(datos)} entrenadores 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
repostajes_creados = 0
for repostaje_data in datos:
entrenadores_creados = 0
for entrenador_data in datos:
try:
vehiculo = Vehiculo.objects.get(matricula=repostaje_data["vehiculo_matricula"])
creado = Repostaje.objects.create(
vehiculo=vehiculo,
fecha=repostaje_data['fecha'],
kms=repostaje_data['kms'],
litros=repostaje_data['litros'],
descuento=repostaje_data['descuento'],
importe=repostaje_data['importe'],
precioxlitro=repostaje_data['precioxlitro'],
kmsrecorridos=repostaje_data['kmsrecorridos'],
consumo=repostaje_data['consumo']
macrociclo = Macrociclo.objects.get(matricula=entrenador_data["macrociclo_matricula"])
creado = Entrenador.objects.create(
macrociclo=macrociclo,
fecha=entrenador_data['fecha'],
kms=entrenador_data['kms'],
litros=entrenador_data['litros'],
descuento=entrenador_data['descuento'],
importe=entrenador_data['importe'],
precioxlitro=entrenador_data['precioxlitro'],
kmsrecorridos=entrenador_data['kmsrecorridos'],
consumo=entrenador_data['consumo']
)
if creado:
repostajes_creados += 1
entrenadores_creados += 1
except Vehiculo.DoesNotExist:
self.stderr.write(self.style.ERROR(f"Vehiculo con matrícula '{repostaje_data['vehiculo_matricula']}' no encontrado."))
except Macrociclo.DoesNotExist:
self.stderr.write(self.style.ERROR(f"Macrociclo con matrícula '{entrenador_data['macrociclo_matricula']}' no encontrado."))
self.stdout.write(self.style.SUCCESS(f'Se importaron {repostajes_creados} repostajes correctamente.'))
self.stdout.write(self.style.SUCCESS(f'Se importaron {entrenadores_creados} entrenadores correctamente.'))
except FileNotFoundError:
self.stderr.write(self.style.ERROR(f"El archivo {archivo_json} no se encontró."))


+ 10
- 17
src/macrociclos/urls.py View File

@ -1,26 +1,19 @@
from django.urls import path
from . import views
from .views import api_lista_vehiculos, api_detalle_vehiculo
from .views import api_lista_repostajes, api_detalle_repostaje
from .views import api_lista_macrociclos, api_detalle_macrociclo
app_name = 'repostajes'
app_name = 'macrociclos'
urlpatterns = [
path('', views.principal, name='principal'),
path('vehiculos/', views.lista_vehiculos, name='lista_vehiculos'),
path('vehiculos/nuevo/', views.nuevo_vehiculo, name='nuevo_vehiculo'),
path('vehiculos/<int:vehiculo_id>/', views.detalle_vehiculo, name='detalle_vehiculo'),
path('vehiculos/<int:vehiculo_id>/editar/', views.editar_vehiculo, name='editar_vehiculo'),
path('vehiculos/<int:vehiculo_id>/eliminar/', views.eliminar_vehiculo, name='eliminar_vehiculo'),
path('repostajes/', views.lista_repostajes, name='lista_repostajes'),
path('repostajes/nuevo/', views.nuevo_repostaje, name='nuevo_repostaje'),
path('repostajes/<int:repostaje_id>/', views.detalle_repostaje, name='detalle_repostaje'),
path('repostajes/<int:repostaje_id>/editar/', views.editar_repostaje, name='editar_repostaje'),
path('repostajes/<int:repostaje_id>/eliminar/', views.eliminar_repostaje, name='eliminar_repostaje'),
path('api/vehiculos/', api_lista_vehiculos, name='api_lista_vehiculos'),
path('api/vehiculos/<int:vehiculo_id>/', api_detalle_vehiculo, name='api_detalle_vehiculo'),
path('api/repostajes/', api_lista_repostajes, name='api_lista_repostajes'),
path('api/repostajes/<int:repostaje_id>/', api_detalle_repostaje, name='api_detalle_repostaje'),
path('macrociclos/', views.lista_macrociclos, name='lista_macrociclos'),
path('macrociclos/nuevo/', views.nuevo_macrociclo, name='nuevo_macrociclo'),
path('macrociclos/<int:macrociclo_id>/', views.detalle_macrociclo, name='detalle_macrociclo'),
path('macrociclos/<int:macrociclo_id>/editar/', views.editar_macrociclo, name='editar_macrociclo'),
path('macrociclos/<int:macrociclo_id>/eliminar/', views.eliminar_macrociclo, name='eliminar_macrociclo'),
path('api/macrociclos/', api_lista_macrociclos, name='api_lista_macrociclos'),
path('api/macrociclos/<int:macrociclo_id>/', api_detalle_macrociclo, name='api_detalle_macrociclo'),
]

+ 1
- 3
src/templates/_cabecera.html View File

@ -108,9 +108,7 @@
</a><!--//nav-link-->
<div id="submenu-1" class="collapse submenu submenu-1" data-bs-parent="#menu-accordion">
<ul class="submenu-list list-unstyled">
<li class="submenu-item"><a class="submenu-link" href="{% url 'libros:principal' %}">Libros</a></li>
<li class="submenu-item"><a class="submenu-link" href="{% url 'repostajes:principal' %}">Vehículos</a></li>
<li class="submenu-item"><a class="submenu-link" href="{% url 'lyrics:principal' %}">Letras</a></li>
<li class="submenu-item"><a class="submenu-link" href="{% url 'macrociclos:principal' %}">Entrenadores</a></li>
</ul>
</div>
</li><!--//nav-item-->


+ 1
- 5
src/templates/repostajes/_menu-repostajes.html View File

@ -1,7 +1,3 @@
<div class="app-utility-item">
<a class="btn btn-primary" href="{% url 'repostajes:lista_vehiculos' %}" role="button">Vehículos</a>
</div><!--//app-utility-item-->
<div class="app-utility-item">
<a class="btn btn-primary" href="{% url 'repostajes:lista_repostajes' %}" role="button">Repostajes</a>
<a class="btn btn-primary" href="{% url 'macrociclos:lista_entrenadores' %}" role="button">Entrenadores</a>
</div><!--//app-utility-item-->

Loading…
Cancel
Save