Fixed issue 183, project can not be deleted because of foreign key integrity constraints.

This commit is contained in:
Loic d'Anterroches 2009-04-16 13:27:41 +02:00
parent b9773b555c
commit 1656c99a48
3 changed files with 22 additions and 0 deletions

View File

@ -123,4 +123,9 @@ class IDF_IssueFile extends Pluf_Model
} }
$this->modif_dtime = gmdate('Y-m-d H:i:s'); $this->modif_dtime = gmdate('Y-m-d H:i:s');
} }
function preDelete()
{
@unlink(Pluf::f('upload_issue_path').'/'.$this->attachment);
}
} }

View File

@ -541,4 +541,20 @@ class IDF_Project extends Pluf_Model
Pluf_Signal::send('IDF_Project::created', Pluf_Signal::send('IDF_Project::created',
'IDF_Project', $params); 'IDF_Project', $params);
} }
/**
* The delete() call do not like circular references and the
* IDF_Tag is creating some. We predelete to solve these issues.
*/
public function preDelete()
{
$what = array('IDF_Upload', 'IDF_Review', 'IDF_Issue',
'IDF_WikiPage', 'IDF_Commit',
);
foreach ($what as $m) {
foreach (Pluf::factory($m)->getList(array('filter' => 'project='.(int)$this->id)) as $item) {
$item->delete();
}
}
}
} }

View File

@ -160,6 +160,7 @@ class IDF_Upload extends Pluf_Model
function preDelete() function preDelete()
{ {
IDF_Timeline::remove($this); IDF_Timeline::remove($this);
@unlink(Pluf::f('upload_path').'/'.$this->project->shortname.'/files/'.$this->file);
} }
/** /**