/**
  * @param IRSVPTemplate $template
  * @param IRSVP $rsvp
  * @param ISummitEvent $event
  * @param string $form_name
  * @return BootstrapForm|PresentationSpeaker
  */
 public function build(IRSVPTemplate $template, IRSVP $rsvp, ISummitEvent $event, $form_name = 'RSVPForm')
 {
     $fields = new FieldList();
     foreach ($template->getQuestions() as $q) {
         $type = $q->Type();
         $builder_class = $type . 'UIBuilder';
         // @IRSVPQuestionTemplateUIBuilder
         $builder = Injector::inst()->create($builder_class);
         $answer = $rsvp ? $rsvp->findAnswerByQuestion($q) : null;
         $field = $builder->build($rsvp, $q, $answer);
         $fields->add($field);
     }
     $validator = null;
     if ($rsvp) {
         $fields->add(new HiddenField('rsvp_id', 'rsvp_id', $rsvp->getIdentifier()));
     }
     $fields->add(new HiddenField('event_id', 'event_id', $event->getIdentifier()));
     $fields->add(new HiddenField('summit_id', 'summit_id', $event->Summit()->getIdentifier()));
     $fields->add(new HiddenField('seat_type', 'seat_type', $event->getCurrentRSVPSubmissionSeatType()));
     $fields->add(new LiteralField('hr', '<hr>'));
     $actions = new FieldList(FormAction::create('submit_rsvp')->setTitle('Send RSVP')->addExtraClass('rsvp_submit'));
     $form = new BootstrapForm(Controller::curr(), $form_name . '_' . $event->getIdentifier(), $fields, $actions, $validator);
     $form->setAttribute('class', 'rsvp_form');
     return $form;
 }
Ejemplo n.º 2
0
 public function isEventInsideSummitDuration(ISummitEvent $summit_event)
 {
     $event_start_date = new DateTime($summit_event->getStartDate());
     $event_end_date = new DateTime($summit_event->getEndDate());
     $summit_start_date = new DateTime($this->getBeginDate());
     $summit_end_date = new DateTime($this->getEndDate());
     return $event_start_date >= $summit_start_date && $event_start_date <= $summit_end_date && $event_end_date <= $summit_end_date && $event_end_date >= $event_start_date;
 }
Ejemplo n.º 3
0
 /**
  * @param ISummit $summit
  * @param ISummitEvent $event
  * @return mixed
  */
 public function unpublishEvent(ISummit $summit, ISummitEvent $event)
 {
     $event_repository = $this->event_repository;
     return $this->tx_service->transaction(function () use($summit, $event, $event_repository) {
         if (intval($event->SummitID) !== intval($summit->getIdentifier())) {
             throw new EntityValidationException(array('event doest not belongs to summit'));
         }
         $event->unPublish();
         return $event;
     });
 }
Ejemplo n.º 4
0
 /**
  * @param ISummitEvent $event
  * @return string
  */
 public function getGoogleCalEventId(ISummitEvent $event)
 {
     $event_extra_fields = $this->Schedule()->getExtraData('SummitEvent', $event->getIdentifier());
     return $event_extra_fields['GoogleCalEventId'];
 }
Ejemplo n.º 5
0
 /**
  * @param ISummitEvent $event
  * @param SummitEventType $type
  * @return bool
  */
 public static function checkEventType(ISummitEvent $event, SummitEventType $type)
 {
     if ($event->isPresentation()) {
         return self::IsPresentationEventType($type->Type);
     }
     return self::IsSummitEventType($type->Type);
 }