diff --git a/stade/core/templates/stats.html b/stade/core/templates/stats.html
index 166cd66..40fa218 100644
--- a/stade/core/templates/stats.html
+++ b/stade/core/templates/stats.html
@@ -90,7 +90,7 @@
Success/Total
{% endif %}
-
+
{{ task.name }}
diff --git a/stade/core/views.py b/stade/core/views.py
index eb46a59..d40c953 100644
--- a/stade/core/views.py
+++ b/stade/core/views.py
@@ -8,7 +8,8 @@
from django.contrib.auth.models import User
from django.db.models import Count, Exists, OuterRef, Prefetch
from django.http import Http404, HttpResponseRedirect
-from django.shortcuts import get_object_or_404, render
+from django.shortcuts import get_object_or_404, redirect, render
+from django.template.loader import TemplateDoesNotExist, get_template
from django.urls import reverse
from django.utils import timezone
from django.views.decorators.http import require_http_methods
@@ -108,15 +109,15 @@ def leaderboard_page(request, challenge):
def task_landing(request, challenge, task_id):
task = get_object_or_404(Task.objects.filter(challenge=challenge), pk=task_id)
- # The 2019 challenge doesn't have distinct task landing pages
- if challenge.slug == '2019':
- return challenge_landing(request, challenge)
+ template = f'landing/{challenge.slug}/{task_id}.html'
- return render(
- request,
- f'landing/{challenge.slug}/{task_id}.html',
- {'challenge': challenge, 'task': task},
- )
+ # certain challenges don't have distinct task landing pages e.g. 2019 and MILK10k
+ try:
+ get_template(template)
+ except TemplateDoesNotExist:
+ return redirect(reverse('challenge-landing', args=[challenge.slug]))
+
+ return render(request, template, {'challenge': challenge, 'task': task})
def challenge_landing(request, challenge):