diff --git a/src/agenda_culturel/serializers.py b/src/agenda_culturel/serializers.py new file mode 100644 index 0000000..fd3f774 --- /dev/null +++ b/src/agenda_culturel/serializers.py @@ -0,0 +1,7 @@ +from rest_framework import serializers +from .models import Event + +class EventSerializer(serializers.ModelSerializer): + class Meta: + model = Event + fields = '__all__' \ No newline at end of file diff --git a/src/agenda_culturel/settings/base.py b/src/agenda_culturel/settings/base.py index d085539..4c528f2 100644 --- a/src/agenda_culturel/settings/base.py +++ b/src/agenda_culturel/settings/base.py @@ -65,8 +65,19 @@ INSTALLED_APPS = [ "template_profiler_panel", 'django_cleanup.apps.CleanupConfig', 'django_unused_media', + 'rest_framework', ] +REST_FRAMEWORK = { + 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', + 'PAGE_SIZE': 10, + # Use Django's standard `django.contrib.auth` permissions, + # or allow read-only access for unauthenticated users. + "DEFAULT_PERMISSION_CLASSES": [ + "rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly", + ] +} + HONEYPOT_FIELD_NAME = "alias_name" MIDDLEWARE = [ diff --git a/src/agenda_culturel/urls.py b/src/agenda_culturel/urls.py index f9deb2d..2d58c00 100644 --- a/src/agenda_culturel/urls.py +++ b/src/agenda_culturel/urls.py @@ -3,6 +3,7 @@ from django.conf.urls.static import static from django.contrib import admin from django.contrib.staticfiles.urls import staticfiles_urlpatterns from django.urls import path, include, re_path +from .views import EventListAPIView from django.views.i18n import JavaScriptCatalog from django.contrib.sitemaps.views import sitemap from django.contrib.sitemaps import GenericSitemap @@ -238,6 +239,7 @@ urlpatterns = [ name="cached-sitemap", ), path("cache/clear", clear_cache, name="clear_cache"), + path('api/events/', EventListAPIView.as_view(), name='event-list-api'), ] diff --git a/src/agenda_culturel/views.py b/src/agenda_culturel/views.py index f10d1c7..6541304 100644 --- a/src/agenda_culturel/views.py +++ b/src/agenda_culturel/views.py @@ -2478,4 +2478,11 @@ def clear_cache(request): return render( request, "agenda_culturel/clear_cache.html", - ) \ No newline at end of file + ) + +from rest_framework import generics +from .serializers import EventSerializer + +class EventListAPIView(generics.ListAPIView): + queryset = Event.objects.all() + serializer_class = EventSerializer \ No newline at end of file