from django.shortcuts import render from django.contrib.auth.decorators import login_required from django.views.generic import DetailView, CreateView, UpdateView from django.contrib.auth.mixins import LoginRequiredMixin from whoisdb.generic import MntGenericMixin from .models import Domain, Nameserver from .forms import DomainForm, NameserverForm @login_required def overview(request): mnts = request.user.maintainer_set.all() # get all domains and nameservers domains = Domain.objects.filter(mnt_by__in=mnts) nameservers = Nameserver.objects.filter(mnt_by__in=mnts) return render(request, "domains/overview.html", {"domains": domains, "nameservers": nameservers}) class DomainCreate(LoginRequiredMixin, CreateView): template_name = "domains/obj_create.html" form_class = DomainForm def get_form_kwargs(self, *args, **kwargs): kwargs = super(DomainCreate, self).get_form_kwargs(*args, **kwargs) kwargs["user"] = self.request.user return kwargs class DomainDetail(LoginRequiredMixin, DetailView): model = Domain slug_field = "name" slug_url_kwarg = "domain" class DomainEdit(MntGenericMixin, LoginRequiredMixin, UpdateView): template_name = "domain" class NameserverCreate(LoginRequiredMixin, CreateView): template_name = "domains/obj_create.html" form_class = NameserverForm def get_form_kwargs(self, *args, **kwargs): kwargs = super(NameserverCreate, self).get_form_kwargs(*args, **kwargs) kwargs["user"] = self.request.user return kwargs class NameserverDetail(LoginRequiredMixin, DetailView): model = Nameserver #slug_field = "name" #slug_url_kwarg = "domain"