public function setDefaultActivity($activity) { $this->getObject()->setActivity($activity); $this->setDefault('Activity_id', $activity->getId()); $this->widgetSchema['Activity_id'] = new sfWidgetFormInputHidden(); $this->widgetSchema->setLabel('Activity_id', 'Activity'); if ($activity->countReservationreasons() > 0) { $this->widgetSchema['ReservationReason_id'] = new sfWidgetFormPropelChoice(array('model' => 'Reservationreason', 'add_empty' => false, 'criteria' => ReservationreasonPeer::getFromActivityCriteria($activity->getId()))); $this->widgetSchema->setLabel('ReservationReason_id', 'Reason'); // FIXME: On dirait que le critère n'est pas pris en compte : bug de symfony ? $this->validatorSchema['ReservationReason_id'] = new sfValidatorPropelChoice(array('model' => 'Reservationreason', 'column' => 'id', 'required' => true, 'criteria' => ReservationreasonPeer::getFromActivityCriteria($activity->getId()))); } if ($this->getObject()->isNew()) { $this->setDefault('guests_count', $activity->getMinimumOccupation() - 1); } }