You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.4 KiB
38 lines
1.4 KiB
from django.shortcuts import render, HttpResponse, redirect
|
|
from django.urls import reverse_lazy
|
|
from download.models import DownloadAttempt
|
|
from datetime import datetime
|
|
|
|
# Create your views here.
|
|
def index(request):
|
|
if not request.user.is_authenticated:
|
|
return redirect(reverse_lazy('login'))
|
|
# TODO: Allow search
|
|
return render(request, 'viewrequests/requests.html', {
|
|
'requests': DownloadAttempt.objects.all().order_by('-timestamp')[:10]
|
|
})
|
|
|
|
def csv_resp(max_items=-1):
|
|
header = "Email,Address,IP,Geolocation,Timestamp,Valid Code,Email Sent\n"
|
|
body = ""
|
|
if max_items == -1:
|
|
das = DownloadAttempt.objects.all().order_by('-timestamp')
|
|
else:
|
|
das = DownloadAttempt.objects.all().order_by('-timestamp')[:max_items]
|
|
|
|
for dla in das:
|
|
body += dla.user.email + ',' + dla.pdf.address.address + ',' + dla.ip + ',"' + dla.geolocation + '",' + dla.timestamp.strftime('%Y/%m/%d %H:%M:%S') + ',' + str(dla.code_correct) + ',' + str(dla.email_sent) + "\n"
|
|
resp = HttpResponse(header + body, content_type='text/csv')
|
|
resp['Content-Disposition'] = "attachment; filename=download_attempts.csv"
|
|
return resp
|
|
|
|
|
|
def csv(request):
|
|
if not request.user.is_authenticated:
|
|
return redirect(reverse_lazy('login'))
|
|
return csv_resp(100)
|
|
|
|
def csv_all(request):
|
|
if not request.user.is_authenticated:
|
|
return redirect(reverse_lazy('login'))
|
|
return csv_resp() |