diff --git a/backend/igny8_core/modules/system/settings_views.py b/backend/igny8_core/modules/system/settings_views.py index d9521531..1306245d 100644 --- a/backend/igny8_core/modules/system/settings_views.py +++ b/backend/igny8_core/modules/system/settings_views.py @@ -312,45 +312,59 @@ class ModuleEnableSettingsViewSet(AccountModelViewSet): queryset = super().get_queryset() return queryset - def list(self, request): + def list(self, request, *args, **kwargs): """Get or create module enable settings for current account""" - account = getattr(request, 'account', None) - if not account: - user = getattr(request, 'user', None) - if user: - account = getattr(user, 'account', None) - - if not account: + try: + account = getattr(request, 'account', None) + if not account: + user = getattr(request, 'user', None) + if user: + account = getattr(user, 'account', None) + + if not account: + return error_response( + error='Account not found', + status_code=status.HTTP_400_BAD_REQUEST, + request=request + ) + + # Get or create settings for account + settings, created = ModuleEnableSettings.objects.get_or_create(account=account) + serializer = self.get_serializer(settings) + return success_response(data=serializer.data, request=request) + except Exception as e: return error_response( - error='Account not found', - status_code=status.HTTP_400_BAD_REQUEST, + error=f'Failed to load module enable settings: {str(e)}', + status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, request=request ) - - # Get or create settings for account - settings = ModuleEnableSettings.get_or_create_for_account(account) - serializer = self.get_serializer(settings) - return success_response(data=serializer.data, request=request) - def retrieve(self, request, pk=None): + def retrieve(self, request, pk=None, *args, **kwargs): """Get module enable settings for current account""" - account = getattr(request, 'account', None) - if not account: - user = getattr(request, 'user', None) - if user: - account = getattr(user, 'account', None) - - if not account: + try: + account = getattr(request, 'account', None) + if not account: + user = getattr(request, 'user', None) + if user: + account = getattr(user, 'account', None) + + if not account: + return error_response( + error='Account not found', + status_code=status.HTTP_400_BAD_REQUEST, + request=request + ) + + # Get or create settings for account + settings, created = ModuleEnableSettings.objects.get_or_create(account=account) + serializer = self.get_serializer(settings) + return success_response(data=serializer.data, request=request) + except Exception as e: return error_response( - error='Account not found', - status_code=status.HTTP_400_BAD_REQUEST, + error=f'Failed to load module enable settings: {str(e)}', + status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, request=request ) - - # Get or create settings for account - settings = ModuleEnableSettings.get_or_create_for_account(account) - serializer = self.get_serializer(settings) - return success_response(data=serializer.data, request=request) def update(self, request, pk=None): """Update module enable settings for current account"""