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 import fastping_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 fastping(request): if request.POST.get('key', None) != settings.FASTPING_KEY: return HttpResponseForbidden('Invalid key.') if 'fastping' not in request.FILES: return HttpResponse(status=400) # Bad Request stats = fastping_update(request.FILES['fastping']) return HttpResponse(stats + '\n')