blob: 9ec7dc6409fc53cc469b4f8e50efc137615e5cad [file] [log] [blame]
from crashreports.models import *
from django.http import HttpResponse,Http404,HttpResponseRedirect
from django.shortcuts import render
from django.shortcuts import render_to_response
from django.template import loader
from itertools import chain
from django.db import connection
from crashreport_stats import raw_querys
from django.contrib.auth.decorators import user_passes_test
from django import forms
from django.contrib import messages
from django.urls import reverse
def is_fairphone_staff(user):
return user.groups.filter(name='FairphoneSoftwareTeam').exists()
class DeviceUUIDForm(forms.Form):
uuid = forms.CharField(label='Device UUID:', max_length=100)
@user_passes_test(is_fairphone_staff)
def device_stats(request):
template = loader.get_template('crashreport_stats/device.html')
uuid = request.GET.get('uuid', "NO_UUID")
if not Device.objects.filter(uuid=uuid).exists():
raise Http404("Device doesn't exist.")
return HttpResponse(template.render({'uuid':uuid}, request))
@user_passes_test(is_fairphone_staff)
def versions_all_overview(request):
template = loader.get_template('crashreport_stats/versions.html')
return HttpResponse(template.render({"is_official_release":"1"}, request))
@user_passes_test(is_fairphone_staff)
def versions_overview(request):
template = loader.get_template('crashreport_stats/versions.html')
return HttpResponse(template.render({"is_official_release":"2"}, request))
@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():
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)
else:
form = DeviceUUIDForm()
template = loader.get_template('crashreport_stats/home.html')
return HttpResponse(template.render(
{'form':form, 'devices':devices}
, request))