from django.contrib.auth.decorators import login_required from django.urls import resolve, reverse_lazy from django.utils.decorators import method_decorator from django.views.generic import CreateView, DetailView, ListView, UpdateView from oauth2_provider.models import get_application_model from apps.gooyal_oauth2.forms import ApplicationCreateForm, ApplicationUpdateForm from apps.gooyal_oauth2.models import Application @method_decorator(login_required, name='dispatch') class ApplicationCreateView(CreateView): template_name = "gooyal_oauth2/application_create.html" form_class = ApplicationCreateForm def get_success_url(self): return reverse_lazy("gooyal_oauth2:application_detail", kwargs={"pk": self.object.pk}) def form_valid(self, form): form.instance.user = self.request.user form.instance.client_type = Application.CLIENT_PUBLIC return super().form_valid(form) @method_decorator(login_required, name='dispatch') class ApplicationUpdateView(UpdateView): template_name = "gooyal_oauth2/application_create.html" form_class = ApplicationUpdateForm def get_queryset(self): return Application.objects.filter(user=self.request.user) def get_success_url(self): return reverse_lazy("gooyal_oauth2:application_detail", kwargs={"pk": self.object.pk}) def form_valid(self, form): # form.instance.user = self.request.user # form.instance.client_type = Application.CLIENT_PUBLIC return super().form_valid(form) @method_decorator(login_required, name='dispatch') class ApplicationDetailView(DetailView): model = Application template_name = "gooyal_oauth2/application_detail.html" def get_queryset(self): return Application.objects.filter(user=self.request.user) @method_decorator(login_required, name='dispatch') class ApplicationListView(ListView): model = Application template_name = "gooyal_oauth2/application_list.html" paginate_by = 20 def get_queryset(self): return Application.objects.filter(user=self.request.user)