See #248: can now generate and list invitations in the front-end

This commit is contained in:
Eliot Berriot 2018-06-19 23:27:21 +02:00
parent d18f98e0f8
commit 107b1ea7dc
No known key found for this signature in database
GPG key ID: DD6965E2476E5C27
12 changed files with 395 additions and 8 deletions

View file

@ -62,3 +62,27 @@ class ManageUserViewSet(
context = super().get_serializer_context()
context["default_permissions"] = preferences.get("users__default_permissions")
return context
class ManageInvitationViewSet(
mixins.CreateModelMixin,
mixins.ListModelMixin,
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
viewsets.GenericViewSet,
):
queryset = (
users_models.Invitation.objects.all()
.order_by("-id")
.prefetch_related("users")
.select_related("owner")
)
serializer_class = serializers.ManageInvitationSerializer
filter_class = filters.ManageInvitationFilterSet
permission_classes = (HasUserPermission,)
required_permissions = ["settings"]
ordering_fields = ["creation_date", "expiration_date"]
def perform_create(self, serializer):
serializer.save(owner=self.request.user)