core settings update capabilities

This commit is contained in:
kappa118 2025-03-01 11:19:15 -05:00
parent 19cac3ccad
commit c42f2d048a
7 changed files with 246 additions and 53 deletions

View file

@ -28,27 +28,3 @@ class CoreSettingsViewSet(viewsets.ModelViewSet):
"""
queryset = CoreSettings.objects.all()
serializer_class = CoreSettingsSerializer
permission_classes = [IsAuthenticated]
def create(self, request, *args, **kwargs):
if CoreSettings.objects.exists():
return Response(
{"detail": "Core settings already exist. Use PUT to update."},
status=status.HTTP_400_BAD_REQUEST
)
return super().create(request, *args, **kwargs)
def list(self, request, *args, **kwargs):
# Always return the singleton instance (creating it if needed)
settings_instance, created = CoreSettings.objects.get_or_create(pk=1)
serializer = self.get_serializer(settings_instance)
return Response([serializer.data]) # Return as a list for DRF router compatibility
def retrieve(self, request, *args, **kwargs):
# Retrieve the singleton instance
settings_instance = get_object_or_404(CoreSettings, pk=1)
serializer = self.get_serializer(settings_instance)
return Response(serializer.data)