public function save(Workflow_SubmissionModel $model)
 {
     $settings = craft()->workflow->getSettings();
     $isNewSubmission = !$model->id;
     if ($model->id) {
         $record = Workflow_SubmissionRecord::model()->findById($model->id);
     } else {
         $record = new Workflow_SubmissionRecord();
     }
     $record->setAttributes($model->getAttributes(), false);
     $record->validate();
     $model->addErrors($record->getErrors());
     if ($model->hasErrors()) {
         WorkflowPlugin::log(print_r($model->getAllErrors(), true), LogLevel::Error, true);
         return false;
     }
     // Fire an 'onBeforeSaveSubmission' event
     $event = new Event($this, array('submission' => $model));
     $this->onBeforeSaveSubmission($event);
     // Allow event to cancel submission saving
     if (!$event->performAction) {
         return false;
     }
     if (!craft()->elements->saveElement($model)) {
         return false;
     }
     if ($isNewSubmission) {
         $record->id = $model->id;
     }
     $record->save(false);
     if ($isNewSubmission) {
         $model->id = $record->id;
     }
     // Fire an 'onSaveSubmission' event
     $this->onSaveSubmission(new Event($this, array('submission' => $model)));
     if ($isNewSubmission) {
         // Trigger notification to publisher
         if ($settings->publisherNotifications) {
             $this->_sendPublisherNotificationEmail($model);
         }
     }
     return true;
 }
 public function populateElementModel($row)
 {
     return Workflow_SubmissionModel::populateModel($row);
 }