admin: remove more duplicate code

This commit is contained in:
Jens Langhammer 2020-05-13 13:45:57 +02:00
parent d5f6714ed7
commit 461fed5567
4 changed files with 7 additions and 12 deletions

View file

@ -14,7 +14,7 @@ from guardian.mixins import PermissionListMixin, PermissionRequiredMixin
from passbook.admin.forms.policies import PolicyTestForm from passbook.admin.forms.policies import PolicyTestForm
from passbook.core.models import Policy from passbook.core.models import Policy
from passbook.lib.utils.reflection import path_to_class from passbook.lib.utils.reflection import all_subclasses, path_to_class
from passbook.lib.views import CreateAssignPermView from passbook.lib.views import CreateAssignPermView
from passbook.policies.engine import PolicyEngine from passbook.policies.engine import PolicyEngine
@ -30,7 +30,7 @@ class PolicyListView(LoginRequiredMixin, PermissionListMixin, ListView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
kwargs["types"] = { kwargs["types"] = {
x.__name__: x._meta.verbose_name for x in Policy.__subclasses__() x.__name__: x._meta.verbose_name for x in all_subclasses(Policy)
} }
return super().get_context_data(**kwargs) return super().get_context_data(**kwargs)
@ -62,7 +62,7 @@ class PolicyCreateView(
def get_form_class(self): def get_form_class(self):
policy_type = self.request.GET.get("type") policy_type = self.request.GET.get("type")
model = next(x for x in Policy.__subclasses__() if x.__name__ == policy_type) model = next(x for x in all_subclasses(Policy) if x.__name__ == policy_type)
if not model: if not model:
raise Http404 raise Http404
return path_to_class(model.form) return path_to_class(model.form)

View file

@ -12,7 +12,7 @@ from django.views.generic import DeleteView, ListView, UpdateView
from guardian.mixins import PermissionListMixin, PermissionRequiredMixin from guardian.mixins import PermissionListMixin, PermissionRequiredMixin
from passbook.core.models import Provider from passbook.core.models import Provider
from passbook.lib.utils.reflection import path_to_class from passbook.lib.utils.reflection import all_subclasses, path_to_class
from passbook.lib.views import CreateAssignPermView from passbook.lib.views import CreateAssignPermView
@ -27,7 +27,7 @@ class ProviderListView(LoginRequiredMixin, PermissionListMixin, ListView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
kwargs["types"] = { kwargs["types"] = {
x.__name__: x._meta.verbose_name for x in Provider.__subclasses__() x.__name__: x._meta.verbose_name for x in all_subclasses(Provider)
} }
return super().get_context_data(**kwargs) return super().get_context_data(**kwargs)
@ -52,9 +52,7 @@ class ProviderCreateView(
def get_form_class(self): def get_form_class(self):
provider_type = self.request.GET.get("type") provider_type = self.request.GET.get("type")
model = next( model = next(x for x in all_subclasses(Provider) if x.__name__ == provider_type)
x for x in Provider.__subclasses__() if x.__name__ == provider_type
)
if not model: if not model:
raise Http404 raise Http404
return path_to_class(model.form) return path_to_class(model.form)

View file

@ -34,9 +34,7 @@ class InvitationSerializer(ModelSerializer):
fields = [ fields = [
"pk", "pk",
"expires", "expires",
"fixed_username", "fixed_data",
"fixed_email",
"needs_confirmation",
] ]

View file

@ -15,7 +15,6 @@ class PasswordStageSerializer(ModelSerializer):
"pk", "pk",
"name", "name",
"backends", "backends",
"password_policies",
] ]