fix demo load
This commit is contained in:
@@ -519,8 +519,37 @@ async def get_user_progress(
|
||||
"""Get current user's onboarding progress"""
|
||||
|
||||
try:
|
||||
user_id = current_user["user_id"]
|
||||
is_demo = current_user.get("is_demo", False)
|
||||
|
||||
# DEMO FIX: Demo users don't need onboarding - return fully completed progress
|
||||
# Demo tenants are pre-configured through cloning, so onboarding is not required
|
||||
if is_demo or user_id.startswith("demo-user-"):
|
||||
logger.info(f"Demo user {user_id} accessing onboarding progress - returning completed state")
|
||||
|
||||
# Create all steps as completed for demo users
|
||||
demo_steps = []
|
||||
for step_name in ONBOARDING_STEPS:
|
||||
demo_steps.append(OnboardingStepStatus(
|
||||
step_name=step_name,
|
||||
completed=True,
|
||||
completed_at=datetime.now(timezone.utc),
|
||||
data={"auto_completed": True, "demo_mode": True}
|
||||
))
|
||||
|
||||
return UserProgress(
|
||||
user_id=user_id,
|
||||
steps=demo_steps,
|
||||
current_step="completion",
|
||||
next_step=None,
|
||||
completion_percentage=100.0,
|
||||
fully_completed=True,
|
||||
last_updated=datetime.now(timezone.utc)
|
||||
)
|
||||
|
||||
# Regular user flow
|
||||
onboarding_service = OnboardingService(db)
|
||||
progress = await onboarding_service.get_user_progress(current_user["user_id"])
|
||||
progress = await onboarding_service.get_user_progress(user_id)
|
||||
return progress
|
||||
|
||||
except Exception as e:
|
||||
@@ -552,6 +581,31 @@ async def get_user_progress_by_id(
|
||||
)
|
||||
|
||||
try:
|
||||
# DEMO FIX: Handle demo users - return fully completed progress
|
||||
if user_id.startswith("demo-user-"):
|
||||
logger.info(f"Service requesting demo user {user_id} onboarding progress - returning completed state")
|
||||
|
||||
# Create all steps as completed for demo users
|
||||
demo_steps = []
|
||||
for step_name in ONBOARDING_STEPS:
|
||||
demo_steps.append(OnboardingStepStatus(
|
||||
step_name=step_name,
|
||||
completed=True,
|
||||
completed_at=datetime.now(timezone.utc),
|
||||
data={"auto_completed": True, "demo_mode": True}
|
||||
))
|
||||
|
||||
return UserProgress(
|
||||
user_id=user_id,
|
||||
steps=demo_steps,
|
||||
current_step="completion",
|
||||
next_step=None,
|
||||
completion_percentage=100.0,
|
||||
fully_completed=True,
|
||||
last_updated=datetime.now(timezone.utc)
|
||||
)
|
||||
|
||||
# Regular user flow
|
||||
onboarding_service = OnboardingService(db)
|
||||
progress = await onboarding_service.get_user_progress(user_id)
|
||||
return progress
|
||||
@@ -570,15 +624,43 @@ async def update_onboarding_step(
|
||||
db: AsyncSession = Depends(get_db)
|
||||
):
|
||||
"""Update a specific onboarding step"""
|
||||
|
||||
|
||||
try:
|
||||
user_id = current_user["user_id"]
|
||||
is_demo = current_user.get("is_demo", False)
|
||||
|
||||
# DEMO FIX: Demo users don't update onboarding - return completed progress
|
||||
if is_demo or user_id.startswith("demo-user-"):
|
||||
logger.info(f"Demo user {user_id} attempting to update onboarding step - returning completed state (no-op)")
|
||||
|
||||
# Create all steps as completed for demo users
|
||||
demo_steps = []
|
||||
for step_name in ONBOARDING_STEPS:
|
||||
demo_steps.append(OnboardingStepStatus(
|
||||
step_name=step_name,
|
||||
completed=True,
|
||||
completed_at=datetime.now(timezone.utc),
|
||||
data={"auto_completed": True, "demo_mode": True}
|
||||
))
|
||||
|
||||
return UserProgress(
|
||||
user_id=user_id,
|
||||
steps=demo_steps,
|
||||
current_step="completion",
|
||||
next_step=None,
|
||||
completion_percentage=100.0,
|
||||
fully_completed=True,
|
||||
last_updated=datetime.now(timezone.utc)
|
||||
)
|
||||
|
||||
# Regular user flow
|
||||
onboarding_service = OnboardingService(db)
|
||||
progress = await onboarding_service.update_step(
|
||||
current_user["user_id"],
|
||||
user_id,
|
||||
update_request
|
||||
)
|
||||
return progress
|
||||
|
||||
|
||||
except HTTPException:
|
||||
raise
|
||||
except Exception as e:
|
||||
@@ -636,12 +718,26 @@ async def complete_onboarding(
|
||||
db: AsyncSession = Depends(get_db)
|
||||
):
|
||||
"""Complete entire onboarding process"""
|
||||
|
||||
|
||||
try:
|
||||
user_id = current_user["user_id"]
|
||||
is_demo = current_user.get("is_demo", False)
|
||||
|
||||
# DEMO FIX: Demo users don't need to complete onboarding - return success
|
||||
if is_demo or user_id.startswith("demo-user-"):
|
||||
logger.info(f"Demo user {user_id} attempting to complete onboarding - returning success (no-op)")
|
||||
return {
|
||||
"success": True,
|
||||
"message": "Onboarding already completed for demo account",
|
||||
"optional_steps_skipped": [],
|
||||
"demo_mode": True
|
||||
}
|
||||
|
||||
# Regular user flow
|
||||
onboarding_service = OnboardingService(db)
|
||||
result = await onboarding_service.complete_onboarding(current_user["user_id"])
|
||||
result = await onboarding_service.complete_onboarding(user_id)
|
||||
return result
|
||||
|
||||
|
||||
except HTTPException:
|
||||
raise
|
||||
except Exception as e:
|
||||
|
||||
Reference in New Issue
Block a user