|
|
<?php |
|
|
|
|
|
namespace Kanboard\Console; |
|
|
|
|
|
use Kanboard\Model\ProjectModel; |
|
|
use Symfony\Component\Console\Input\InputInterface; |
|
|
use Symfony\Component\Console\Output\OutputInterface; |
|
|
|
|
|
class ProjectArchiveCommand extends BaseCommand |
|
|
{ |
|
|
protected function configure() |
|
|
{ |
|
|
$this |
|
|
->setName('projects:archive') |
|
|
->setDescription('Disable projects not touched during one year'); |
|
|
} |
|
|
|
|
|
protected function execute(InputInterface $input, OutputInterface $output): int |
|
|
{ |
|
|
$projects = $this->db->table(ProjectModel::TABLE) |
|
|
->eq('is_active', 1) |
|
|
->lt('last_modified', strtotime('-1 year')) |
|
|
->findAll(); |
|
|
|
|
|
foreach ($projects as $project) { |
|
|
$output->writeln('Deactivating project: #'.$project['id'].' - '.$project['name']); |
|
|
$this->projectModel->disable($project['id']); |
|
|
} |
|
|
return 0; |
|
|
} |
|
|
} |
|
|
|