from django.views.generic import DetailView from django.contrib.auth.mixins import LoginRequiredMixin from django.views.decorators.http import require_POST from django.http import HttpResponseForbidden, HttpResponse from django.conf import settings from django.views.decorators.csrf import csrf_exempt from .models import Service from .utils.fastpinger import fastpinger_update class ServiceDetail(LoginRequiredMixin, DetailView): def get_queryset(self): adhesions = self.request.user.profile.adhesions.values_list('pk') return Service.objects.filter(adhesion__pk__in=adhesions).order_by('service_type') @csrf_exempt @require_POST def fastpinger(request): if request.POST.get('key', None) != settings.FASTPINGER_KEY: return HttpResponseForbidden('Invalid key.') if 'fastpinger' not in request.FILES: return HttpResponse(status=400) # Bad Request stats = fastpinger_update(request.FILES['fastpinger']) return HttpResponse(stats + '\n')