summaryrefslogtreecommitdiff
path: root/app/Model
diff options
context:
space:
mode:
Diffstat (limited to 'app/Model')
-rw-r--r--app/Model/ProjectDuplication.php4
-rw-r--r--app/Model/ProjectMetadata.php19
2 files changed, 21 insertions, 2 deletions
diff --git a/app/Model/ProjectDuplication.php b/app/Model/ProjectDuplication.php
index 9c5f80ad..79011258 100644
--- a/app/Model/ProjectDuplication.php
+++ b/app/Model/ProjectDuplication.php
@@ -21,7 +21,7 @@ class ProjectDuplication extends Base
*/
public function getOptionalSelection()
{
- return array('category', 'projectPermission', 'action', 'swimlane', 'task');
+ return array('category', 'projectPermission', 'action', 'swimlane', 'task', 'projectMetadata');
}
/**
@@ -32,7 +32,7 @@ class ProjectDuplication extends Base
*/
public function getPossibleSelection()
{
- return array('board', 'category', 'projectPermission', 'action', 'swimlane', 'task');
+ return array('board', 'category', 'projectPermission', 'action', 'swimlane', 'task', 'projectMetadata');
}
/**
diff --git a/app/Model/ProjectMetadata.php b/app/Model/ProjectMetadata.php
index 85498053..256f5e1f 100644
--- a/app/Model/ProjectMetadata.php
+++ b/app/Model/ProjectMetadata.php
@@ -27,4 +27,23 @@ class ProjectMetadata extends Metadata
{
return 'project_id';
}
+
+ /**
+ * Helper method to duplicate all metadata to another project
+ *
+ * @access public
+ * @param integer $src_project_id
+ * @param integer $dst_project_id
+ * @return boolean
+ */
+ public function duplicate($src_project_id, $dst_project_id)
+ {
+ $metadata = $this->getAll($src_project_id);
+
+ if (! $this->save($dst_project_id, $metadata)) {
+ return false;
+ }
+
+ return true;
+ }
}