Phase 0: Fix ModuleEnableSettings 404 error - improve error handling

- Added proper exception handling in list() and retrieve() methods
- Use objects.get_or_create() directly instead of class method
- Added *args, **kwargs to method signatures for DRF compatibility
- Better error messages for debugging
- Fixes 404 'Setting not found' errors
This commit is contained in:
IGNY8 VPS (Salman)
2025-11-16 19:25:05 +00:00
parent 1d39f3f00a
commit 8fc483251e

View File

@@ -312,8 +312,9 @@ class ModuleEnableSettingsViewSet(AccountModelViewSet):
queryset = super().get_queryset() queryset = super().get_queryset()
return queryset return queryset
def list(self, request): def list(self, request, *args, **kwargs):
"""Get or create module enable settings for current account""" """Get or create module enable settings for current account"""
try:
account = getattr(request, 'account', None) account = getattr(request, 'account', None)
if not account: if not account:
user = getattr(request, 'user', None) user = getattr(request, 'user', None)
@@ -328,12 +329,19 @@ class ModuleEnableSettingsViewSet(AccountModelViewSet):
) )
# Get or create settings for account # Get or create settings for account
settings = ModuleEnableSettings.get_or_create_for_account(account) settings, created = ModuleEnableSettings.objects.get_or_create(account=account)
serializer = self.get_serializer(settings) serializer = self.get_serializer(settings)
return success_response(data=serializer.data, request=request) return success_response(data=serializer.data, request=request)
except Exception as e:
return error_response(
error=f'Failed to load module enable settings: {str(e)}',
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
request=request
)
def retrieve(self, request, pk=None): def retrieve(self, request, pk=None, *args, **kwargs):
"""Get module enable settings for current account""" """Get module enable settings for current account"""
try:
account = getattr(request, 'account', None) account = getattr(request, 'account', None)
if not account: if not account:
user = getattr(request, 'user', None) user = getattr(request, 'user', None)
@@ -348,9 +356,15 @@ class ModuleEnableSettingsViewSet(AccountModelViewSet):
) )
# Get or create settings for account # Get or create settings for account
settings = ModuleEnableSettings.get_or_create_for_account(account) settings, created = ModuleEnableSettings.objects.get_or_create(account=account)
serializer = self.get_serializer(settings) serializer = self.get_serializer(settings)
return success_response(data=serializer.data, request=request) return success_response(data=serializer.data, request=request)
except Exception as e:
return error_response(
error=f'Failed to load module enable settings: {str(e)}',
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
request=request
)
def update(self, request, pk=None): def update(self, request, pk=None):
"""Update module enable settings for current account""" """Update module enable settings for current account"""