Add command to remove project activities after one year

This commit is contained in:
Frédéric Guillot
2017-12-01 11:54:02 -08:00
parent 0573c92d09
commit 0153cb33de
11 changed files with 45 additions and 32 deletions

View File

@@ -33,17 +33,14 @@ class ProjectActivityModel extends Base
*/
public function createEvent($project_id, $task_id, $creator_id, $event_name, array $data)
{
$values = array(
return $this->db->table(self::TABLE)->insert(array(
'project_id' => $project_id,
'task_id' => $task_id,
'creator_id' => $creator_id,
'event_name' => $event_name,
'date_creation' => time(),
'data' => json_encode($data),
);
$this->cleanup(PROJECT_ACTIVITIES_MAX_EVENTS - 1);
return $this->db->table(self::TABLE)->insert($values);
));
}
/**
@@ -73,15 +70,10 @@ class ProjectActivityModel extends Base
* Remove old event entries to avoid large table
*
* @access public
* @param integer $max Maximum number of items to keep in the table
* @param integer $ts Timestamp
*/
public function cleanup($max)
public function cleanup($ts)
{
$total = $this->db->table(self::TABLE)->count();
if ($total > $max) {
$ids = $this->db->table(self::TABLE)->asc('id')->limit($total - $max)->findAllByColumn('id');
$this->db->table(self::TABLE)->in('id', $ids)->remove();
}
$this->db->table(self::TABLE)->lt('date_creation', $ts)->remove();
}
}