adjust position when deleting Achievements
This commit is contained in:
parent
7873ee0d5b
commit
b1a92bcd03
2 changed files with 27 additions and 4 deletions
|
|
@ -940,7 +940,7 @@
|
||||||
if(!is_null($this->request->getPostParam('delete')))
|
if(!is_null($this->request->getPostParam('delete')))
|
||||||
{
|
{
|
||||||
// Delete seminary
|
// Delete seminary
|
||||||
$this->Achievements->deleteAchievement($achievement['id']);
|
$this->Achievements->deleteAchievement($achievement);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Redirect to entry
|
// Redirect to entry
|
||||||
|
|
|
||||||
|
|
@ -1136,11 +1136,34 @@
|
||||||
/**
|
/**
|
||||||
* Delete an Achievement.
|
* Delete an Achievement.
|
||||||
*
|
*
|
||||||
* @param int $achievementId ID of Achievement to delete
|
* @param int $achievement Achievement to delete
|
||||||
*/
|
*/
|
||||||
public function deleteAchievement($achievementId)
|
public function deleteAchievement($achievement)
|
||||||
{
|
{
|
||||||
|
$this->db->setAutocommit(false);
|
||||||
|
try {
|
||||||
|
// Delete Achievement
|
||||||
$this->db->query('DELETE FROM achievements WHERE id = ?', 'i', $achievementId);
|
$this->db->query('DELETE FROM achievements WHERE id = ?', 'i', $achievementId);
|
||||||
|
|
||||||
|
// Adjust positions
|
||||||
|
$this->db->query(
|
||||||
|
'UPDATE achievements '.
|
||||||
|
'SET pos = pos - 1 '.
|
||||||
|
'WHERE seminary_id = ? AND pos > ?',
|
||||||
|
'ii',
|
||||||
|
$achievement['seminary_id'],
|
||||||
|
$achievement['pos']
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->db->commit();
|
||||||
|
}
|
||||||
|
catch(\Exception $e) {
|
||||||
|
$this->db->rollback();
|
||||||
|
$this->db->setAutocommit(true);
|
||||||
|
throw $e;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->setAutocommit(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue