Add clone support for scene and automation cards, update sync clock descriptions
- Scene clone: opens capture modal with prefilled name/description/targets instead of server-side duplication; removed backend clone endpoint - Automation clone: opens editor with prefilled conditions, scene, logic, deactivation mode (webhook tokens stripped for uniqueness) - Updated sync clock i18n descriptions to reflect speed-only-on-clock model - Added entity card clone pattern documentation to server/CLAUDE.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -164,27 +164,6 @@ async def delete_scene_preset(
|
||||
raise HTTPException(status_code=404, detail=str(e))
|
||||
|
||||
|
||||
# ===== Clone =====
|
||||
|
||||
@router.post(
|
||||
"/api/v1/scene-presets/{preset_id}/clone",
|
||||
response_model=ScenePresetResponse,
|
||||
tags=["Scene Presets"],
|
||||
status_code=201,
|
||||
)
|
||||
async def clone_scene_preset(
|
||||
preset_id: str,
|
||||
_auth: AuthRequired,
|
||||
store: ScenePresetStore = Depends(get_scene_preset_store),
|
||||
):
|
||||
"""Duplicate a scene preset with all its stored target snapshots."""
|
||||
try:
|
||||
cloned = store.clone_preset(preset_id)
|
||||
except ValueError as e:
|
||||
raise HTTPException(status_code=404, detail=str(e))
|
||||
|
||||
return _preset_to_response(cloned)
|
||||
|
||||
|
||||
# ===== Recapture =====
|
||||
|
||||
|
||||
Reference in New Issue
Block a user