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,