Make sure that tags are duplicated for recurring tasks

This commit is contained in:
Frederic Guillot
2016-07-02 15:45:55 -04:00
parent b7ac354e83
commit 8e56148a6d
9 changed files with 139 additions and 129 deletions

View File

@@ -107,9 +107,9 @@ class BoardTooltipController extends BaseController
$this->response->html($this->template->render('task_recurrence/info', array(
'task' => $task,
'recurrence_trigger_list' => $this->taskModel->getRecurrenceTriggerList(),
'recurrence_timeframe_list' => $this->taskModel->getRecurrenceTimeframeList(),
'recurrence_basedate_list' => $this->taskModel->getRecurrenceBasedateList(),
'recurrence_trigger_list' => $this->taskRecurrenceModel->getRecurrenceTriggerList(),
'recurrence_timeframe_list' => $this->taskRecurrenceModel->getRecurrenceTimeframeList(),
'recurrence_basedate_list' => $this->taskRecurrenceModel->getRecurrenceBasedateList(),
)));
}

View File

@@ -31,10 +31,10 @@ class TaskRecurrenceController extends BaseController
'values' => $values,
'errors' => $errors,
'task' => $task,
'recurrence_status_list' => $this->taskModel->getRecurrenceStatusList(),
'recurrence_trigger_list' => $this->taskModel->getRecurrenceTriggerList(),
'recurrence_timeframe_list' => $this->taskModel->getRecurrenceTimeframeList(),
'recurrence_basedate_list' => $this->taskModel->getRecurrenceBasedateList(),
'recurrence_status_list' => $this->taskRecurrenceModel->getRecurrenceStatusList(),
'recurrence_trigger_list' => $this->taskRecurrenceModel->getRecurrenceTriggerList(),
'recurrence_timeframe_list' => $this->taskRecurrenceModel->getRecurrenceTimeframeList(),
'recurrence_basedate_list' => $this->taskRecurrenceModel->getRecurrenceBasedateList(),
)));
}

View File

@@ -27,17 +27,17 @@ class TaskHelper extends Base
public function recurrenceTriggers()
{
return $this->taskModel->getRecurrenceTriggerList();
return $this->taskRecurrenceModel->getRecurrenceTriggerList();
}
public function recurrenceTimeframes()
{
return $this->taskModel->getRecurrenceTimeframeList();
return $this->taskRecurrenceModel->getRecurrenceTimeframeList();
}
public function recurrenceBasedates()
{
return $this->taskModel->getRecurrenceBasedateList();
return $this->taskRecurrenceModel->getRecurrenceBasedateList();
}
public function selectTitle(array $values, array $errors)

View File

@@ -5,7 +5,7 @@ namespace Kanboard\Model;
use Kanboard\Core\Base;
/**
* Task model
* Task Model
*
* @package Kanboard\Model
* @author Frederic Guillot
@@ -117,64 +117,6 @@ class TaskModel extends Base
return 0;
}
/**
* Return the list user selectable recurrence status
*
* @access public
* @return array
*/
public function getRecurrenceStatusList()
{
return array(
TaskModel::RECURRING_STATUS_NONE => t('No'),
TaskModel::RECURRING_STATUS_PENDING => t('Yes'),
);
}
/**
* Return the list recurrence triggers
*
* @access public
* @return array
*/
public function getRecurrenceTriggerList()
{
return array(
TaskModel::RECURRING_TRIGGER_FIRST_COLUMN => t('When task is moved from first column'),
TaskModel::RECURRING_TRIGGER_LAST_COLUMN => t('When task is moved to last column'),
TaskModel::RECURRING_TRIGGER_CLOSE => t('When task is closed'),
);
}
/**
* Return the list options to calculate recurrence due date
*
* @access public
* @return array
*/
public function getRecurrenceBasedateList()
{
return array(
TaskModel::RECURRING_BASEDATE_DUEDATE => t('Existing due date'),
TaskModel::RECURRING_BASEDATE_TRIGGERDATE => t('Action date'),
);
}
/**
* Return the list recurrence timeframes
*
* @access public
* @return array
*/
public function getRecurrenceTimeframeList()
{
return array(
TaskModel::RECURRING_TIMEFRAME_DAYS => t('Day(s)'),
TaskModel::RECURRING_TIMEFRAME_MONTHS => t('Month(s)'),
TaskModel::RECURRING_TIMEFRAME_YEARS => t('Year(s)'),
);
}
/**
* Get task progress based on the column position
*

View File

@@ -13,6 +13,64 @@ use DateTime;
*/
class TaskRecurrenceModel extends TaskDuplicationModel
{
/**
* Return the list user selectable recurrence status
*
* @access public
* @return array
*/
public function getRecurrenceStatusList()
{
return array(
TaskModel::RECURRING_STATUS_NONE => t('No'),
TaskModel::RECURRING_STATUS_PENDING => t('Yes'),
);
}
/**
* Return the list recurrence triggers
*
* @access public
* @return array
*/
public function getRecurrenceTriggerList()
{
return array(
TaskModel::RECURRING_TRIGGER_FIRST_COLUMN => t('When task is moved from first column'),
TaskModel::RECURRING_TRIGGER_LAST_COLUMN => t('When task is moved to last column'),
TaskModel::RECURRING_TRIGGER_CLOSE => t('When task is closed'),
);
}
/**
* Return the list options to calculate recurrence due date
*
* @access public
* @return array
*/
public function getRecurrenceBasedateList()
{
return array(
TaskModel::RECURRING_BASEDATE_DUEDATE => t('Existing due date'),
TaskModel::RECURRING_BASEDATE_TRIGGERDATE => t('Action date'),
);
}
/**
* Return the list recurrence timeframes
*
* @access public
* @return array
*/
public function getRecurrenceTimeframeList()
{
return array(
TaskModel::RECURRING_TIMEFRAME_DAYS => t('Day(s)'),
TaskModel::RECURRING_TIMEFRAME_MONTHS => t('Month(s)'),
TaskModel::RECURRING_TIMEFRAME_YEARS => t('Year(s)'),
);
}
/**
* Duplicate recurring task
*
@@ -31,7 +89,9 @@ class TaskRecurrenceModel extends TaskDuplicationModel
$recurring_task_id = $this->save($task_id, $values);
if ($recurring_task_id > 0) {
if ($recurring_task_id !== false) {
$this->tagDuplicationModel->duplicateTaskTags($task_id, $recurring_task_id);
$parent_update = $this->db
->table(TaskModel::TABLE)
->eq('id', $task_id)