Skip to content

Commit d6489dd

Browse files
authored
Merge pull request #162 from cmu-delphi/OKRS24-235
OKRS24-235 Added caching.
2 parents 64a98d3 + 77c5a3f commit d6489dd

File tree

4 files changed

+17
-3
lines changed

4 files changed

+17
-3
lines changed

src/signal_documentation/settings.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,8 @@
261261
}
262262
}
263263

264+
CACHE_TIME = int(os.environ.get('CACHE_TIME', 60 * 60 * 24)) # 24 hours
265+
264266

265267
# Celery
266268
# https://docs.celeryq.dev/en/stable/index.html

src/signals/serializers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class SignalSerializer(ModelSerializer):
2121

2222
links = LinkSerializer(many=True)
2323
pathogen = SlugRelatedField(many=True, read_only=True, slug_field='name')
24-
signal_type = SlugRelatedField(many=True, read_only=True, slug_field='name')
24+
signal_type = SlugRelatedField(read_only=True, slug_field='name')
2525
available_geography = SlugRelatedField(many=True, read_only=True, slug_field='name')
2626
category = SlugRelatedField(read_only=True, slug_field='name')
2727
source = SlugRelatedField(read_only=True, slug_field='name')

src/signals/urls.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
from django.urls import path
22
from django.urls.resolvers import URLPattern
3+
from django.views.decorators.cache import cache_page
34

45
from signals.views import (
56
SignalsDetailView,
67
SignalsListApiView,
78
SignalsListView,
89
)
10+
from signal_documentation.settings import CACHE_TIME
911

1012
urlpatterns: list[URLPattern] = [
11-
path('', SignalsListView.as_view(), name='signals'),
13+
path('', cache_page(CACHE_TIME)(SignalsListView.as_view()), name='signals'),
1214
path('signals/<int:pk>/', SignalsDetailView.as_view(), name='signal'),
1315
path('signals/<pk>/', SignalsDetailView.as_view(), name='signal'),
1416

src/signals/views.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,17 @@ def get_context_data(self, **kwargs) -> Dict[str, Any]:
9393
context["url_params_str"] = url_params_str
9494
context["filter"] = SignalFilter(self.request.GET, queryset=self.get_queryset())
9595

96-
context["signals"] = self.get_queryset()
96+
context["signals"] = self.get_queryset().prefetch_related(
97+
"pathogen",
98+
"available_geography",
99+
"geographic_scope",
100+
"source",
101+
).select_related(
102+
"base",
103+
"signal_type",
104+
"category",
105+
"license"
106+
)
97107
return context
98108

99109

0 commit comments

Comments
 (0)