public function enroll(dsPerson $person, $role, $registration = null, $partner = null, $confirm = true, $type = 'regular')
  {
    
    $enrolment = new dsClassStudent();
    $enrolment->link('Class', $this->getId() );
    $enrolment->link('Person', $person->getId());
    $enrolment->setRole( $role );
    $enrolment->setPartner( $partner );
    if (!is_null($registration)) {
      $enrolment->link('Registration', $registration);
      $registration->approve();
      $registration->save();
    } else {
      $enrolment->link('Registration', NULL);
      // $enrolment->registration_id = NULL;
    }
    
    if ($confirm)
      $enrolment->setDateConfirmed( date('Y-m-d H:i:s', time()) );
    
    // $conn->setAttribute(Doctrine_Core::ATTR_CASCADE_SAVES, false);
    
    // $enrolment->link('Registration', NULL);
    // $enrolment->unlink('Registration');
  
    // 2013-02-04 
    $enrolment->setType( $type );

    try
    {
      $enrolment->save();
      return $enrolment;
    }
    catch (Exception $e)
    {
      return false;
    }
    
    //$enrolment->confirm();
    
    // 2. send email
   // $this->sendConfirmationEmail();
    
    // return $enrolment;  // dsClassStudent
    
  }