summaryrefslogtreecommitdiff
path: root/app/Model/TaskRecurrenceModel.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/Model/TaskRecurrenceModel.php')
-rw-r--r--app/Model/TaskRecurrenceModel.php62
1 files changed, 61 insertions, 1 deletions
diff --git a/app/Model/TaskRecurrenceModel.php b/app/Model/TaskRecurrenceModel.php
index a5f2ab90..ffe43f8c 100644
--- a/app/Model/TaskRecurrenceModel.php
+++ b/app/Model/TaskRecurrenceModel.php
@@ -14,6 +14,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
*
* @access public
@@ -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)