26 lines
793 B
Python
26 lines
793 B
Python
"""block_service.py — Logique métier du tableau de bord (widgets)."""
|
|
|
|
from models import block_model
|
|
|
|
|
|
def list_blocks(db):
|
|
return block_model.fetch_all(db)
|
|
|
|
|
|
def add_block(db, block_type, column, data):
|
|
if block_type not in {"iframe", "buttons", "html"}:
|
|
raise ValueError(f"Type de bloc inconnu : {block_type}")
|
|
if column not in {"left", "center", "right"}:
|
|
raise ValueError(f"Colonne inconnue : {column}")
|
|
return block_model.insert(db, block_type, column, data)
|
|
|
|
|
|
def save_layout(db, layout):
|
|
"""layout : liste de {id, column, position} après un drag & drop."""
|
|
for item in layout:
|
|
block_model.update_position(db, item["id"], item["column"], item["position"])
|
|
|
|
|
|
def delete_block(db, block_id):
|
|
return block_model.delete(db, block_id)
|