Moving exceptions to clean method

master
Nathan Adams 2014-12-27 19:40:29 -06:00
parent cc6f2b2ca8
commit b8c7f906eb
1 changed files with 13 additions and 8 deletions

View File

@ -43,14 +43,9 @@ class IDF_Form_ProjectRequest extends Pluf_Form
$this->user = $extra['user'];
}
function save($commit=true)
public function clean_shortname()
{
if (!$this->isValid()) {
throw new Exception(__('Cannot save the model from an invalid form.'));
}
$shortname = $this->cleaned_data['shortname'];
$shortname = mb_strtolower($this->cleaned_data['shortname']);
if (preg_match('/[^\-A-Za-z0-9]/', $shortname)) {
throw new Pluf_Form_Invalid(__('This shortname contains illegal characters, please use only letters, digits and dash (-).'));
}
@ -61,6 +56,16 @@ class IDF_Form_ProjectRequest extends Pluf_Form
throw new Pluf_Form_Invalid(__('The shortname cannot end with the dash (-) character.'));
}
return trim($shortname);
}
function save($commit=true)
{
if (!$this->isValid()) {
throw new Exception(__('Cannot save the model from an invalid form.'));
}
$checksql = new Pluf_SQL(sprintf("shortname='%s'", $this->cleaned_data['shortname']));
$requestcheck = Pluf::factory("IDF_Project")->getCount(array('filter'=>$checksql->gen()));
if ($requestcheck == 1)
@ -70,7 +75,7 @@ class IDF_Form_ProjectRequest extends Pluf_Form
$request = new IDF_ProjectRequest();
// The trim really isn't needed - but does ensure that no whitespace will end up in the name
$request->shortname = trim($shortname);
$request->shortname = $this->cleaned_data['shortname'];
$request->repotype = $this->cleaned_data['repotype'];
$request->desc = $this->cleaned_data['desc'];
$request->submitter = $this->user;