Mark task as "done"

As usual we have one Kanban column at the right that is called “Done”, thus all tasks which have been completed are moved there.

Kanboard does not allow to mark a task as “done”, without archiving=removing it from the board. This would make it invisible.

Issue: A “done” card moved to that column still will become overdue, if the due date is surpassed.
Proposed solution: Like in other Kanban tools, there should be an additional menu item to “Mark task done” = keep it visible but mark as done (eg with a tick mark where usually the due date is shown on the card. And use the current menu item to close cards, as “Close task”=make it invisible in the board.

PLus an automatic action would be required that allows whenever a card is moved to a specific column (“Done” column), is marked as done
This would be marvellous.

Apart from that: Amazing piece of software, Kanboard is :slight_smile:

We have two automated actions for that:

  1. move task into done, will remove the due date
  2. task is closed after 7 days in this columns
  • so no due date reminder is sent for overdue and finished tasks
  • tasks are visible for one week, until they will be removed from the board.

What is the automated action to remove a sue date? Can‘t find this! That would help as a workaround at least.

Ah now you are asking, I wrote a private plugin with an action which removes the due date.

<?php

namespace Kanboard\Plugin\XXXXXXX\Action;

use Kanboard\Model\TaskModel;
use Kanboard\Model\ProjectGroupRoleModel;
use Kanboard\Action\Base;

class RemoveDueDateInColumn extends Base
{
    /**
     * Get automatic action description
     *
     * @access public
     * @return string
     */
    public function getDescription()
    {
        return t('Remove due date when moved to a specific column');
    }

    /**
     * Get the list of compatible events
     *
     * @access public
     * @return array
     */
    public function getCompatibleEvents()
    {
        return array(
            TaskModel::EVENT_MOVE_COLUMN,
        );
    }

    /**
     * Get the required parameter for the action (defined by the user)
     *
     * @access public
     * @return array
     */
    public function getActionRequiredParameters()
    {
        return array(
            'column_id' => t('Column'),
        );
    }

    /**
     * Get the required parameter for the event
     *
     * @access public
     * @return string[]
     */
    public function getEventRequiredParameters()
    {
        return array(
            'task_id',
            'task' => array(
                'project_id',
                'column_id',
            ),
        );
    }

    /**
     * Execute the action (assign the given user)
     *
     * @access public
     * @param  array   $data   Event data dictionary
     * @return bool            True if the action was executed or false when not executed
     */
    public function doAction(array $data)
    {
        $values = array(
            'id' => $data['task_id'],
            'date_due' => null,
        );

        return $this->taskModificationModel->update($values);
    }

    /**
     * Check if the event data meet the action condition
     *
     * @access public
     * @param  array   $data   Event data dictionary
     * @return bool
     */
    public function hasRequiredCondition(array $data)
    {
        return $data['task']['column_id'] == $this->getParam('column_id');
    }
}

Maybe I could implement this into the Kanboard Core if needed.

Hi,

Thanks a lot for the idea.
I wrote a public plugin now that
a) removes the due date if moved to a specific column (“done”)
b) and also adds a string with a check mark and the former due date into the “reference” field.
This helps to track former due dates, also after stuff was marked done.

You can find it on github under
mkrecek234/kanboard-TaskRemoveDate

Don’t know how to add it to the integrated plugins directions of Kanboard, but works absolutely well. I derived it from another plugin.