diff options
Diffstat (limited to 'app/Model/ProjectMetadataModel.php')
-rw-r--r-- | app/Model/ProjectMetadataModel.php | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/app/Model/ProjectMetadataModel.php b/app/Model/ProjectMetadataModel.php new file mode 100644 index 00000000..760acd7d --- /dev/null +++ b/app/Model/ProjectMetadataModel.php @@ -0,0 +1,54 @@ +<?php + +namespace Kanboard\Model; + +/** + * Project Metadata + * + * @package Kanboard\Model + * @author Frederic Guillot + */ +class ProjectMetadataModel extends MetadataModel +{ + /** + * Get the table + * + * @abstract + * @access protected + * @return string + */ + protected function getTable() + { + return 'project_has_metadata'; + } + + /** + * Define the entity key + * + * @access protected + * @return string + */ + protected function getEntityKey() + { + 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; + } +} |