Commit 8fb82c2f authored by zYne's avatar zYne

Fixes #427, now the AuditLog component should work

parent 1f1fef74
......@@ -74,13 +74,20 @@ class Doctrine_AuditLog extends Doctrine_Plugin
$name = $table->getComponentName();
$className = $name . 'Version';
// check that class doesn't exist (otherwise we cannot create it)
if (class_exists($className)) {
return false;
}
$columns = $table->getColumns();
// remove all sequential and autoincrement definitions
foreach ($columns as $column => $definition) {
unset($columns[$column]['autoincrement']);
unset($columns[$column]['sequence']);
}
// the version column should be part of the primary key definition
$columns[$this->_options['versionColumn']]['primary'] = true;
......
......@@ -44,7 +44,7 @@ class Doctrine_AuditLog_Listener extends Doctrine_Record_Listener
$event->getInvoker()->set($versionColumn, 1);
}
public function preDelete(Doctrine_Event $event)
public function postInsert(Doctrine_Event $event)
{
$class = $this->_auditLog->getOption('className');
......@@ -53,25 +53,35 @@ class Doctrine_AuditLog_Listener extends Doctrine_Record_Listener
$version = new $class();
$version->merge($record->toArray());
$version->save();
}
public function preDelete(Doctrine_Event $event)
{
$class = $this->_auditLog->getOption('className');
$record = $event->getInvoker();
$versionColumn = $this->_auditLog->getOption('versionColumn');
$version = $record->get($versionColumn);
$record->set($versionColumn, ++$version);
$version = new $class();
$version->merge($record->toArray());
$version->save();
}
public function preUpdate(Doctrine_Event $event)
{
$class = $this->_auditLog->getOption('className');
$record = $event->getInvoker();
$version = new $class();
$version->merge($record->toArray());
$version->save();
$class = $this->_auditLog->getOption('className');
$record = $event->getInvoker();
$versionColumn = $this->_auditLog->getOption('versionColumn');
$version = $record->get($versionColumn);
$record->set($versionColumn, ++$version);
$version = new $class();
$version->merge($record->toArray());
$version->save();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment