feat(today): focus du jour — le rituel des 3 cartes (issue #5)
Table today_picks; POST /api/today/pin (max 3, idempotent) et
/unpin; page /today (picks en direct, candidates de l'encours,
reprises d'hier, récap du jour depuis le journal); bouton 📌 sur
les cartes (délégation capture dans today.js, fragments live
compris); sections dédiées dans le briefing du matin.
This commit is contained in:
@@ -27,6 +27,22 @@ def format_briefing_text(data: dict) -> str:
|
||||
if activity.get("avg_cycle_days") is not None:
|
||||
lines.append(f"⏱️ Temps de cycle moyen (30 j) : {activity['avg_cycle_days']} j.")
|
||||
|
||||
if data.get("today_picks"):
|
||||
lines.append("\n🌅 Focus du jour :")
|
||||
for pick in data["today_picks"]:
|
||||
mark = "✅" if pick["state"] == "closed" else "📌"
|
||||
lines.append(
|
||||
f" {mark} {pick['repo']} #{pick['number']} « {pick['title']} »"
|
||||
f" — {pick['column_label']}"
|
||||
)
|
||||
if data.get("carry_over"):
|
||||
lines.append("\n↩️ À reprendre d'hier (non terminées) :")
|
||||
for pick in data["carry_over"]:
|
||||
lines.append(
|
||||
f" • {pick['repo']} #{pick['number']} « {pick['title']} »"
|
||||
f" — {pick['column_label']}"
|
||||
)
|
||||
|
||||
lines.append(f"\n🎯 En cours / en révision : {data['focus_total']} carte(s)")
|
||||
for group in data["focus_groups"][:6]:
|
||||
lines.append(f" • {group['full_name']} : {group['count']}")
|
||||
|
||||
Reference in New Issue
Block a user