diff --git a/ReyMotaAppsDj/requirements.txt b/ReyMotaAppsDj/requirements.txt index 17e59e2..af504e9 100644 --- a/ReyMotaAppsDj/requirements.txt +++ b/ReyMotaAppsDj/requirements.txt @@ -1,14 +1,20 @@ asgiref==3.8.1 Django==4.2 +django-calculation==1.0.0 +djangorestframework==3.15.2 flake8==7.1.1 gunicorn==22.0.0 mccabe==0.7.0 +numpy==2.2.2 packaging==24.1 +pandas==2.2.3 pillow==10.4.0 psycopg2-binary==2.9.6 pycodestyle==2.12.1 pyflakes==3.2.0 +python-dateutil==2.9.0.post0 +pytz==2025.1 +six==1.17.0 sqlparse==0.5.1 typing_extensions==4.12.2 -django-calculation==1.0.0 -pandas==2.2.3 \ No newline at end of file +tzdata==2025.1 diff --git a/ReyMotaAppsDj/reymota/repostajes/serializers.py b/ReyMotaAppsDj/reymota/repostajes/serializers.py new file mode 100644 index 0000000..21dd35e --- /dev/null +++ b/ReyMotaAppsDj/reymota/repostajes/serializers.py @@ -0,0 +1,8 @@ +from rest_framework import serializers +from .models import Vehiculo + + +class VehiculoSerializer(serializers.ModelSerializer): + class Meta: + model = Vehiculo + fields = '__all__' # Incluir todos los campos del modelo diff --git a/ReyMotaAppsDj/reymota/repostajes/urls.py b/ReyMotaAppsDj/reymota/repostajes/urls.py index 0b5ba04..5ef4c6a 100644 --- a/ReyMotaAppsDj/reymota/repostajes/urls.py +++ b/ReyMotaAppsDj/reymota/repostajes/urls.py @@ -1,6 +1,7 @@ from django.urls import path from . import views +from .views import api_lista_vehiculos, api_detalle_vehiculo app_name = 'repostajes' @@ -17,4 +18,6 @@ urlpatterns = [ path('repostajes//', views.detalle_repostaje, name='detalle_repostaje'), path('repostajes//editar/', views.editar_repostaje, name='editar_repostaje'), path('repostajes//eliminar/', views.eliminar_repostaje, name='eliminar_repostaje'), + path('api/vehiculos/', api_lista_vehiculos, name='api_lista_vehiculos'), + path('api/vehiculos//', api_detalle_vehiculo, name='api_detalle_vehiculo'), ] diff --git a/ReyMotaAppsDj/reymota/repostajes/views.py b/ReyMotaAppsDj/reymota/repostajes/views.py index 29c6800..9f6c02a 100644 --- a/ReyMotaAppsDj/reymota/repostajes/views.py +++ b/ReyMotaAppsDj/reymota/repostajes/views.py @@ -2,8 +2,12 @@ from django.shortcuts import render, get_object_or_404, redirect from django.contrib.auth.decorators import login_required +from rest_framework.response import Response +from rest_framework.decorators import api_view + from .models import Vehiculo, Repostaje from .forms import VehiculoForm, RepostajeForm +from .serializers import VehiculoSerializer @login_required @@ -143,3 +147,22 @@ def eliminar_repostaje(request, repostaje_id): repostaje = Repostaje.objects.get(pk=repostaje_id) repostaje.delete() return redirect('repostajes:lista_repostajes') + + +@api_view(['GET']) +def api_lista_vehiculos(request): + """Devuelve la lista de todos los vehiculos.""" + vehiculos = Vehiculo.objects.all() + serializer = VehiculoSerializer(vehiculos, many=True) + return Response(serializer.data) + + +@api_view(['GET']) +def api_detalle_vehiculo(request, vehiculo_id): + """Devuelve los detalles de un vehiculo especĂ­fico.""" + try: + vehiculo = Vehiculo.objects.get(id=vehiculo_id) + serializer = VehiculoSerializer(vehiculo) + return Response(serializer.data) + except Vehiculo.DoesNotExist: + return Response({'error': 'Vehiculo no encontrado'}, status=404) diff --git a/ReyMotaAppsDj/reymota/reymota/settings.py b/ReyMotaAppsDj/reymota/reymota/settings.py index e510a8e..52fcc9f 100644 --- a/ReyMotaAppsDj/reymota/reymota/settings.py +++ b/ReyMotaAppsDj/reymota/reymota/settings.py @@ -40,9 +40,10 @@ INSTALLED_APPS = [ 'django.contrib.staticfiles', 'repostajes', - 'libros', 'reymotausers', 'lyrics', + + 'rest_framework', ] MIDDLEWARE = [