Skip to content

Commit 3e239d9

Browse files
authored
Merge pull request #555 from ProgressPlanner/filip/fix-cli-list
Fix WP CLI task list command
2 parents 46754d9 + 86b1895 commit 3e239d9

1 file changed

Lines changed: 27 additions & 11 deletions

File tree

classes/wp-cli/class-task-command.php

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,33 @@ public function list( $args, $assoc_args ) {
6363
}
6464

6565
$format = isset( $assoc_args['format'] ) ? $assoc_args['format'] : 'table';
66-
$fields = isset( $assoc_args['fields'] ) ? \explode( ',', $assoc_args['fields'] ) : [ 'task_id', 'provider_id', 'category', 'date', 'status' ];
66+
$fields = isset( $assoc_args['fields'] ) ? \explode( ',', $assoc_args['fields'] ) : [ 'task_id', 'provider_id', 'category', 'date', 'post_status' ];
67+
68+
$formatted_tasks = [];
69+
foreach ( $tasks as $task ) {
70+
$formatted = [];
71+
foreach ( $fields as $field ) {
72+
switch ( $field ) {
73+
case 'task_id':
74+
case 'date':
75+
case 'post_status':
76+
$formatted[ $field ] = $task->$field ?? '';
77+
break;
78+
case 'provider_id':
79+
$formatted[ $field ] = is_object( $task->provider ?? null ) && isset( $task->provider->name ) ? $task->provider->name : '';
80+
break;
81+
case 'category':
82+
$formatted[ $field ] = is_object( $task->category ?? null ) && isset( $task->category->name ) ? $task->category->name : '';
83+
break;
84+
default:
85+
$formatted[ $field ] = $task->$field ?? '';
86+
}
87+
}
88+
89+
$formatted_tasks[] = $formatted;
90+
}
6791

68-
WP_CLI\Utils\format_items( $format, $tasks, $fields ); // @phpstan-ignore-line
92+
WP_CLI\Utils\format_items( $format, $formatted_tasks, $fields ); // @phpstan-ignore-line
6993
}
7094

7195
/**
@@ -188,19 +212,11 @@ public function delete( $args, $assoc_args ) {
188212
* @return array
189213
*/
190214
private function get_tasks( $args ) {
191-
$tasks = \progress_planner()->get_settings()->get( 'tasks', [] ); // Get tasks from the database, without filtering.
192-
215+
$tasks = \progress_planner()->get_suggested_tasks_db()->get_tasks_by( $args );
193216
if ( empty( $tasks ) ) {
194217
return [];
195218
}
196219

197-
// Set fields which are not set for all tasks.
198-
foreach ( $tasks as $key => $task ) {
199-
if ( ! isset( $task['date'] ) ) {
200-
$tasks[ $key ]['date'] = '';
201-
}
202-
}
203-
204220
return $tasks;
205221
}
206222

0 commit comments

Comments
 (0)