Task assignment
Tasks can be assigned to users. An user may decide to "claim" a task directly, which will assign the task to him. Otherwise, it is possible to set some arbitrary user as the assignee or remove the assignee completely through the edition form. Marking a task as completed will remove the assignee, while re-activating a task will assign it to the user who re-activated it. Also, fixed a bug which allowed a completed task to be edited.
This commit is contained in:
parent
850d2fa8d4
commit
56741bccaa
12 changed files with 180 additions and 80 deletions
includes/t-tasks
|
@ -233,6 +233,9 @@ class Ctrl_EditTaskForm
|
|||
if ( $task === null ) {
|
||||
return 'tasks';
|
||||
}
|
||||
if ( $task->completed_at !== null ) {
|
||||
return 'tasks/view?id=' . $id;
|
||||
}
|
||||
$page->setTitle( $task->title . ' (task)' );
|
||||
|
||||
|
||||
|
@ -253,6 +256,8 @@ class Ctrl_EditTaskForm
|
|||
->setDescription( 'Description:' )
|
||||
->setMandatory( false )
|
||||
->setDefaultValue( $task->description ) )
|
||||
->addField( $this->createAssigneeSelector( )
|
||||
->setDefaultValue( $task->assigned_id ) )
|
||||
->addController( Loader::Ctrl( 'edit_task' ) )
|
||||
->controller( );
|
||||
}
|
||||
|
@ -263,7 +268,7 @@ class Ctrl_EditTaskForm
|
|||
$select = Loader::Create( 'Field' , 'item' , 'select' )
|
||||
->setDescription( 'On item:' );
|
||||
|
||||
$items = Loader::DAO( 'items' )->getTreeList( );
|
||||
$items = Loader::DAO( 'items' )->getTreeList( );
|
||||
foreach ( $items as $item ) {
|
||||
$name = '-' . str_repeat( '--' , $item->depth ) . ' ' . $item->name;
|
||||
$select->addOption( $item->id , $name );
|
||||
|
@ -271,6 +276,22 @@ class Ctrl_EditTaskForm
|
|||
return $select;
|
||||
|
||||
}
|
||||
|
||||
|
||||
private function createAssigneeSelector( )
|
||||
{
|
||||
$select = Loader::Create( 'Field' , 'assigned-to' , 'select' )
|
||||
->setDescription( 'Assigned to:' )
|
||||
->setMandatory( false );
|
||||
$select->addOption( '' , '(unassigned task)' );
|
||||
|
||||
$users = Loader::DAO( 'users' )->getUsers( );
|
||||
foreach ( $users as $user ) {
|
||||
$select->addOption( $user->user_id , $user->user_view_name );
|
||||
}
|
||||
|
||||
return $select;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue