fixes
This commit is contained in:
parent
71abc0ca74
commit
ad97a36c60
5 changed files with 17 additions and 6 deletions
|
@ -282,11 +282,12 @@ impl VikunjaAPI {
|
||||||
serde_json::from_str(&resp).unwrap()
|
serde_json::from_str(&resp).unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn done_task(&self, task_id: isize) -> Task {
|
pub fn done_task(&self, task_id: isize, done: bool) -> Task {
|
||||||
let resp = self.post_request(
|
let resp = self.post_request(
|
||||||
&format!("/tasks/{task_id}"),
|
&format!("/tasks/{task_id}"),
|
||||||
&serde_json::json!({
|
&serde_json::json!({
|
||||||
"done": true
|
"done": done,
|
||||||
|
"done_at": if done { Some(chrono::Utc::now().to_rfc3339()) } else { None }
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
serde_json::from_str(&resp).unwrap()
|
serde_json::from_str(&resp).unwrap()
|
||||||
|
|
|
@ -32,5 +32,5 @@ pub struct Task {
|
||||||
pub bucket_id: usize,
|
pub bucket_id: usize,
|
||||||
pub position: f64,
|
pub position: f64,
|
||||||
pub kanban_position: f64,
|
pub kanban_position: f64,
|
||||||
pub created_by: User,
|
pub created_by: Option<User>,
|
||||||
}
|
}
|
||||||
|
|
|
@ -104,6 +104,7 @@ pub fn get_args() -> clap::ArgMatches {
|
||||||
.subcommand(
|
.subcommand(
|
||||||
command!()
|
command!()
|
||||||
.name("done")
|
.name("done")
|
||||||
|
.arg(arg!(-u --undo "Undo completing the task").required(false))
|
||||||
.about("Mark task as done")
|
.about("Mark task as done")
|
||||||
.arg(arg!([task_id] "Task ID").required(true)),
|
.arg(arg!([task_id] "Task ID").required(true)),
|
||||||
)
|
)
|
||||||
|
|
|
@ -128,7 +128,9 @@ fn main() {
|
||||||
}
|
}
|
||||||
Some(("done", done_args)) => {
|
Some(("done", done_args)) => {
|
||||||
let task_id: &String = done_args.get_one("task_id").unwrap();
|
let task_id: &String = done_args.get_one("task_id").unwrap();
|
||||||
api.done_task(task_id.parse().unwrap());
|
let done = !done_args.get_flag("undo");
|
||||||
|
api.done_task(task_id.parse().unwrap(), done);
|
||||||
|
ui::task::print_task_info(task_id.parse().unwrap(), &api);
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
let done = arg.get_flag("done");
|
let done = arg.get_flag("done");
|
||||||
|
|
|
@ -94,7 +94,11 @@ pub fn print_task_info(task_id: isize, api: &VikunjaAPI) {
|
||||||
crossterm::style::Color::Green,
|
crossterm::style::Color::Green,
|
||||||
&format!(
|
&format!(
|
||||||
"{} ✓ ",
|
"{} ✓ ",
|
||||||
time_relative(parse_datetime(&task.done_at).unwrap())
|
if let Some(dt) = parse_datetime(&task.done_at) {
|
||||||
|
time_relative(dt)
|
||||||
|
} else {
|
||||||
|
String::new()
|
||||||
|
}
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -110,7 +114,10 @@ pub fn print_task_info(task_id: isize, api: &VikunjaAPI) {
|
||||||
&format!(" [{}]\n", api.get_project_name_from_id(task.project_id)),
|
&format!(" [{}]\n", api.get_project_name_from_id(task.project_id)),
|
||||||
);
|
);
|
||||||
|
|
||||||
println!("Created by {}", task.created_by.username);
|
if let Some(user) = task.created_by {
|
||||||
|
println!("Created by {}", user.username);
|
||||||
|
}
|
||||||
|
|
||||||
println!(
|
println!(
|
||||||
"Created: {} | Updated: {}",
|
"Created: {} | Updated: {}",
|
||||||
time_relative(parse_datetime(&task.created).unwrap()),
|
time_relative(parse_datetime(&task.created).unwrap()),
|
||||||
|
|
Loading…
Add table
Reference in a new issue