From 9ec89080917525c71290b19b7698fc78dd319846 Mon Sep 17 00:00:00 2001 From: "IGNY8 VPS (Salman)" Date: Sun, 16 Nov 2025 19:26:18 +0000 Subject: [PATCH] Phase 0: Fix ModuleEnableSettings list() - use get() instead of get_or_create - Changed to use get() with DoesNotExist exception handling - Creates settings only if they don't exist - Better error handling with traceback - Fixes 404 'Setting not found' errors --- .../igny8_core/modules/system/settings_views.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/backend/igny8_core/modules/system/settings_views.py b/backend/igny8_core/modules/system/settings_views.py index fac91a30..51422645 100644 --- a/backend/igny8_core/modules/system/settings_views.py +++ b/backend/igny8_core/modules/system/settings_views.py @@ -327,8 +327,8 @@ class ModuleEnableSettingsViewSet(AccountModelViewSet): account = getattr(request, 'account', None) if not account: user = getattr(request, 'user', None) - if user: - account = getattr(user, 'account', None) + if user and hasattr(user, 'account'): + account = user.account if not account: return error_response( @@ -337,11 +337,18 @@ class ModuleEnableSettingsViewSet(AccountModelViewSet): request=request ) - # Get or create settings for account - settings, created = ModuleEnableSettings.objects.get_or_create(account=account) + # Get or create settings for account (one per account) + try: + settings = ModuleEnableSettings.objects.get(account=account) + except ModuleEnableSettings.DoesNotExist: + # Create default settings for account + settings = ModuleEnableSettings.objects.create(account=account) + serializer = self.get_serializer(settings) return success_response(data=serializer.data, request=request) except Exception as e: + import traceback + error_trace = traceback.format_exc() return error_response( error=f'Failed to load module enable settings: {str(e)}', status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,