Add ability to search for UUIDs
diff --git a/crashreport_stats/views.py b/crashreport_stats/views.py
index 49313eb..9ec7dc6 100644
--- a/crashreport_stats/views.py
+++ b/crashreport_stats/views.py
@@ -5,7 +5,7 @@
from django.template import loader
from itertools import chain
from django.db import connection
-from crashreport_stats import raw_querys
+from crashreport_stats import raw_querys
from django.contrib.auth.decorators import user_passes_test
from django import forms
from django.contrib import messages
@@ -38,16 +38,26 @@
@user_passes_test(is_fairphone_staff)
def home(request):
+ """ The home view allows to search for devices. """
+ devices = None
if request.method == 'POST':
# create a form instance and populate it with data from the request:
form = DeviceUUIDForm(request.POST)
if form.is_valid():
uuid = form.cleaned_data['uuid']
if not Device.objects.filter(uuid=uuid).exists():
- messages.warning(request, "Device does not exist")
+ devices = Device.objects.filter(uuid__startswith=uuid)
+ if len(devices)==1:
+ return HttpResponseRedirect(
+ reverse("hiccup_stats_device")+'?uuid='+devices[0].uuid)
+ elif len(devices)==0:
+ messages.warning(request, "No devices found.")
else:
- return HttpResponseRedirect(reverse("hiccup_stats_device")+'?uuid='+uuid)
+ return HttpResponseRedirect(
+ reverse("hiccup_stats_device")+'?uuid='+uuid)
else:
form = DeviceUUIDForm()
template = loader.get_template('crashreport_stats/home.html')
- return HttpResponse(template.render({'form':form}, request))
+ return HttpResponse(template.render(
+ {'form':form, 'devices':devices}
+ , request))