kanban-tui 0.9.0

Terminal user interface for the kanban project management tool
Documentation
use super::App;

impl App {
    pub(in crate::app) fn check_ended_sprints(&self) {
        let ended_sprints: Vec<_> = self
            .model
            .sprints()
            .iter()
            .filter(|s| s.is_ended(chrono::Utc::now()))
            .collect();

        if !ended_sprints.is_empty() {
            tracing::warn!(
                "Found {} ended sprint(s) that need attention:",
                ended_sprints.len()
            );
            for sprint in &ended_sprints {
                if let Some(board) = self
                    .model
                    .boards_state()
                    .loaded_or_empty()
                    .iter()
                    .find(|b| b.id == sprint.board_id)
                {
                    tracing::warn!(
                        "  - {} (ended: {})",
                        sprint.formatted_name(board, None),
                        sprint
                            .end_date
                            .map(|d| d.format("%Y-%m-%d %H:%M UTC").to_string())
                            .unwrap_or_else(|| "unknown".to_string())
                    );
                }
            }
        }
    }

    pub(in crate::app) fn migrate_sprint_logs(&mut self) -> usize {
        match self.ctx.migrate_sprint_logs() {
            Ok(n) => n,
            Err(e) => {
                tracing::error!("Failed to migrate sprint logs: {}", e);
                0
            }
        }
    }
}