Split dashboard views and compact detail loading
This commit is contained in:
@@ -417,6 +417,47 @@ def get_actuator(actuator_entity_id: str, request: Request) -> ActuatorRecord:
|
||||
raise HTTPException(status_code=404, detail=str(exc)) from exc
|
||||
|
||||
|
||||
@router.get("/{actuator_entity_id}/detail", response_model=ActuatorRecord)
|
||||
def get_actuator_detail(actuator_entity_id: str, request: Request) -> ActuatorRecord:
|
||||
try:
|
||||
record = _service(request).get_actuator(actuator_entity_id)
|
||||
except KeyError as exc:
|
||||
raise HTTPException(status_code=404, detail=str(exc)) from exc
|
||||
selected_ids = {
|
||||
entity_id
|
||||
for entity_id in [
|
||||
record.assignment.selected_numeric_entity_id,
|
||||
*record.assignment.selected_context_entity_ids,
|
||||
]
|
||||
if entity_id
|
||||
}
|
||||
compact_snapshots = [
|
||||
snapshot.model_copy(update={"patterns": []})
|
||||
for snapshot in record.behavior.model_snapshots[-5:]
|
||||
]
|
||||
compact_behavior = record.behavior.model_copy(
|
||||
update={
|
||||
"patterns": [],
|
||||
"model_snapshots": compact_snapshots,
|
||||
}
|
||||
)
|
||||
return record.model_copy(
|
||||
update={
|
||||
"behavior": compact_behavior,
|
||||
"numeric_candidates": [
|
||||
candidate
|
||||
for candidate in record.numeric_candidates
|
||||
if candidate.entity_id in selected_ids
|
||||
],
|
||||
"context_candidates": [
|
||||
candidate
|
||||
for candidate in record.context_candidates
|
||||
if candidate.entity_id in selected_ids
|
||||
],
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@router.delete("/{actuator_entity_id}", status_code=204)
|
||||
def delete_actuator(actuator_entity_id: str, request: Request) -> None:
|
||||
_service(request).delete_actuator(actuator_entity_id)
|
||||
|
||||
Reference in New Issue
Block a user