Index: branches/5.0.x/core/install/upgrades.php =================================================================== diff -u -r12430 -r12466 --- branches/5.0.x/core/install/upgrades.php (.../upgrades.php) (revision 12430) +++ branches/5.0.x/core/install/upgrades.php (.../upgrades.php) (revision 12466) @@ -1,6 +1,6 @@ Conn->GetCol($sql); if ($event_ids) { - $sql = 'DELETE FROM ' . TABLE_PREFIX . 'EmailMessage - WHERE EventId IN (' . implode(',', $event_ids) . ')'; - $this->Conn->Query($sql); + $this->_deleteEvents($event_ids); - $sql = 'DELETE FROM ' . TABLE_PREFIX . 'Events - WHERE EventId IN (' . implode(',', $event_ids) . ')'; - $this->Conn->Query($sql); - $sql = 'DELETE FROM ' . TABLE_PREFIX . 'Phrase - WHERE Phrase IN ("la_event_category.modify", "la_event_category.delete")'; + WHERE Phrase IN ("la_event_category.modify", "la_event_category.delete")'; $this->Conn->Query($sql); } + + // partially delete events + $sql = 'SELECT EventId + FROM ' . TABLE_PREFIX . 'Events + WHERE (Event IN ("CATEGORY.APPROVE", "CATEGORY.DENY")) AND (Type = ' . EVENT_TYPE_ADMIN . ')'; + $event_ids = $this->Conn->GetCol($sql); + + if ($event_ids) { + $this->_deleteEvents($event_ids); + } } } + function _deleteEvents($ids) + { + $sql = 'DELETE FROM ' . TABLE_PREFIX . 'EmailMessage + WHERE EventId IN (' . implode(',', $ids) . ')'; + $this->Conn->Query($sql); + + $sql = 'DELETE FROM ' . TABLE_PREFIX . 'Events + WHERE EventId IN (' . implode(',', $ids) . ')'; + $this->Conn->Query($sql); + } } \ No newline at end of file