From 561fd9e1e58ac0e68c974b123c9d9002f34dfe39 Mon Sep 17 00:00:00 2001 From: xeruf <27jf@pm.me> Date: Sat, 9 Nov 2024 20:41:22 +0100 Subject: [PATCH] feat: implement priority filtering --- src/task.rs | 2 +- src/tasks.rs | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/task.rs b/src/task.rs index 47fba0c..b13740a 100644 --- a/src/task.rs +++ b/src/task.rs @@ -194,7 +194,7 @@ impl Task { "created" => Some(format_timestamp_local(&self.event.created_at)), "kind" => Some(self.event.kind.to_string()), // Dynamic - "priority" | "prio" => self.priority_raw().map(|c| c.to_string()), + "priority" => self.priority_raw().map(|c| c.to_string()), "status" => self.state_label().map(|c| c.to_string()), "desc" => self.descriptions().last().cloned(), "description" => Some(self.descriptions().join(" ")), diff --git a/src/tasks.rs b/src/tasks.rs index 6fb6f3e..5ca052a 100644 --- a/src/tasks.rs +++ b/src/tasks.rs @@ -446,6 +446,9 @@ impl TasksRelay { fn filter(&self, task: &Task) -> bool { self.state.matches(task) && + self.priority.is_none_or(|prio| { + task.priority().unwrap_or(DEFAULT_PRIO) >= prio + }) && task.tags.as_ref().map_or(true, |tags| { !tags.iter().any(|tag| self.tags_excluded.contains(tag)) }) && @@ -540,6 +543,12 @@ impl TasksRelay { "progress" => prog_string.clone(), "author" | "creator" => format!("{:.6}", self.get_username(&task.event.pubkey)), // FIXME temporary until proper column alignment + "prio" => task.priority_raw().map(|p| p.to_string()).unwrap_or_else(|| + if self.priority.is_some() { + DEFAULT_PRIO.to_string().dimmed().to_string() + } else { + "".to_string() + }), "path" => self.get_task_path(Some(task.event.id)), "rpath" => self.relative_path(task.event.id), // TODO format strings configurable