diff --git a/apiserver/apiserver/api/views.py b/apiserver/apiserver/api/views.py
index 1a15b25..405dbd4 100644
--- a/apiserver/apiserver/api/views.py
+++ b/apiserver/apiserver/api/views.py
@@ -1607,6 +1607,24 @@ class HostingViewSet(Base):
return Response(200)
+ @action(detail=False, methods=['get'])
+ def high_scores(self, request):
+ members = models.Member.objects.all()
+ members = members.annotate(
+ hosting_hours=Sum('user__hosting__hours'),
+ ).exclude(hosting_hours__isnull=True).order_by('-hosting_hours')
+
+ hours = []
+
+ for member in members:
+ hours.append(dict(
+ name=member.preferred_name + ' ' + member.last_name[0],
+ hours=member.hosting_hours,
+ member_id=member.id,
+ ))
+
+ return Response(hours)
+
class RegistrationView(RegisterView):
serializer_class = serializers.MyRegisterSerializer
diff --git a/webclient/public/toast.png b/webclient/public/toast.png
new file mode 100644
index 0000000..0f59c62
Binary files /dev/null and b/webclient/public/toast.png differ
diff --git a/webclient/src/Display.js b/webclient/src/Display.js
index 92bfdf0..72939f0 100644
--- a/webclient/src/Display.js
+++ b/webclient/src/Display.js
@@ -38,6 +38,10 @@ export function LCARS1Display(props) {
{x.hours.toFixed(2)} hours
+