diff --git a/backend/kernelCI/settings.py b/backend/kernelCI/settings.py index b1785100..4ddb8d5d 100644 --- a/backend/kernelCI/settings.py +++ b/backend/kernelCI/settings.py @@ -126,6 +126,13 @@ def get_json_env_var(name, default): } +CACHES = { + 'default': { + 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', + 'LOCATION': 'ecom', + } +} + # Password validation # https://docs.djangoproject.com/en/5.0/ref/settings/#auth-password-validators @@ -188,3 +195,5 @@ def __getitem__(self, item): CSRF_COOKIE_SECURE = False SECURE_SSL_REDIRECT = False SECURE_HSTS_SECONDS = 3600 + +CACHE_TIMEOUT = int(get_json_env_var("CACHE_TIMEOUT", "600")) diff --git a/backend/kernelCI_app/urls.py b/backend/kernelCI_app/urls.py index e2398bff..5863ce4f 100644 --- a/backend/kernelCI_app/urls.py +++ b/backend/kernelCI_app/urls.py @@ -1,18 +1,29 @@ from django.urls import path +from django.views.decorators.cache import cache_page +from django.conf import settings from kernelCI_app import views +timeout = settings.CACHE_TIMEOUT urlpatterns = [ - path("tree/", views.TreeView.as_view(), name="tree"), - path("tree//commits", views.TreeCommitsHistory.as_view(), name="treeCommits"), - path("tree/tests/", views.groupedTests.as_view(), name="treeGroupedTests"), - path("tree/", views.TreeDetails.as_view(), name="treeDetails"), + path("tree/", cache_page(timeout) + (views.TreeView.as_view()), name="tree"), + path("tree//commits", cache_page(timeout) + (views.TreeCommitsHistory.as_view()), name="treeCommits"), + path("tree/tests/", cache_page(timeout) + (views.groupedTests.as_view()), name="treeGroupedTests"), + path("tree/", cache_page(timeout) + (views.TreeDetails.as_view()), name="treeDetails"), path( - "tree//tests/", views.TreeTestsView.as_view(), name="treeTests" + "tree//tests/", + cache_page(timeout)(views.TreeTestsView.as_view()), name="treeTests" ), - path("build/", views.BuildDetails.as_view(), name="buildDetails"), - path("build//tests", views.BuildTests.as_view(), name="buildTests"), - path("tests/test/", views.TestDetails.as_view(), name="testDetails"), + path("build/", cache_page(timeout) + (views.BuildDetails.as_view()), name="buildDetails"), + path("build//tests", cache_page(timeout) + (views.BuildTests.as_view()), name="buildTests"), + path("tests/test/", cache_page(timeout) + (views.TestDetails.as_view()), name="testDetails"), path("tests/", - views.TestsByTreeAndCommitHash.as_view(), name="testsByTreeAndCommitHash"), + cache_page(timeout)(views.TestsByTreeAndCommitHash.as_view()), name="testsByTreeAndCommitHash"), ]