public function getZapisneListy(Trace $trace, $studiumIndex)
 {
     $this->studiumIndex = $studiumIndex;
     $data = $this->executor->readTable(array('studium' => $this->getStudiumIdFromIndex($studiumIndex)), 'zoznamZapisnychListov');
     return new DataTableImpl(ZoznamZapisnychListovRegression::get(), $data);
 }
예제 #2
0
 /**
  * Invoke an action given its name
  *
  * This function requests information necessary to operate on
  * VSES017 AIS application
  *
  * @param Trace $trace trace object
  * @param string $action action name
  * @param Request $request incoming request
  */
 public function invokeAction(Trace $trace, $action, Request $request)
 {
     Preconditions::checkIsString($action);
     if (!$this->loginManager->isLoggedIn()) {
         throw new AuthenticationRequiredException();
     }
     Preconditions::checkNotNull($request);
     // check access to application
     $apps = $this->session->read('ais/aisApps');
     if (!is_array($apps)) {
         throw new Exception("Interná chyba - zoznam AIS aplikácii je nekorektný.");
     }
     if (!in_array(AIS2ApplicationEnum::ADMINISTRACIA_STUDIA, $apps)) {
         return $this->renderResponse('studium/notAvailable');
     }
     $screenFactory = $this->factory;
     $adminStudia = $screenFactory->newAdministraciaStudiaScreen($trace);
     $this->administraciaStudiaScreen = $adminStudia;
     $this->studium = $request->getParameter('studium', '0');
     $this->zoznamStudii = $adminStudia->getZoznamStudii($trace->addChild("Get Zoznam Studii:"));
     $this->zapisneListy = $adminStudia->getZapisneListy($trace->addChild('getZapisneListy'), $this->studium);
     $this->warnings->warnWrongTableStructure($trace, 'zoznam studii', regression\ZoznamStudiiRegression::get(), $this->zoznamStudii->getTableDefinition());
     $this->warnings->warnWrongTableStructure($trace, 'zoznam zapisnych listov', regression\ZoznamZapisnychListovRegression::get(), $this->zapisneListy->getTableDefinition());
     $zapisneListyData = $this->zapisneListy->getData();
     if (count($zapisneListyData) == 0) {
         $this->zapisnyList = null;
         $this->terminyHodnoteniaScreen = null;
         $this->hodnoteniaScreen = null;
         $this->templateParams['zapisnyListObj'] = null;
     } else {
         $this->zapisnyList = $request->getParameter('list');
         if ($this->zapisnyList === '') {
             // Ak nemame nastaveny zapisny list, zobreme aktualny
             // ak nenajdeme aktualny, zoberme posledny v zozname
             $aktualnyAkadRok = FajrUtils::getAcademicYear();
             $this->zapisnyList = null;
             foreach ($zapisneListyData as $zapList) {
                 if ($zapList['popisAkadRok'] == $aktualnyAkadRok) {
                     $this->zapisnyList = $zapList['index'];
                 }
             }
             // nenasli sme
             if ($this->zapisnyList === null) {
                 $lastList = end($zapisneListyData);
                 $this->zapisnyList = $lastList['index'];
             }
         }
         $this->zapisnyList = intval($this->zapisnyList);
         $this->zapisnyListObj = $zapisneListyData[$this->zapisnyList];
         $this->templateParams['zapisnyListObj'] = $this->zapisnyListObj;
         try {
             $this->terminyHodnoteniaScreen = $screenFactory->newTerminyHodnoteniaScreen($trace, $adminStudia->getParamNameFromZapisnyListIndex($trace, $this->zapisnyList, VSES017\AdministraciaStudiaScreen::ACTION_TERMINY_HODNOTENIA));
         } catch (ParseException $e) {
             $this->terminyHodnoteniaScreen = null;
         }
         // FIXME: chceme to nejak refaktorovat, aby sme nevytvarali zbytocne
         // objekty, ktore v konstruktore robia requesty
         $this->hodnoteniaScreen = $screenFactory->newHodnoteniaPriemeryScreen($trace, $adminStudia->getParamNameFromZapisnyListIndex($trace, $this->zapisnyList, VSES017\AdministraciaStudiaScreen::ACTION_HODNOTENIA_PRIEMERY));
     }
     $this->templateParams['currentTab'] = '';
     $this->templateParams['zoznamStudii'] = $this->zoznamStudii;
     $this->templateParams['studium'] = $this->studium;
     // TODO(anty): refactor
     $zoznamStudiiData = $this->zoznamStudii->getData();
     $this->templateParams['studiumObj'] = $zoznamStudiiData[$this->studium];
     $this->templateParams['zapisneListy'] = $this->zapisneListy;
     $this->templateParams['zapisnyList'] = $this->zapisnyList;
     // TODO(anty): refactor
     if (array_key_exists($action, $this->actionInfo)) {
         $info = $this->actionInfo[$action];
         if ($info['requiresZapisnyList'] && $this->zapisnyList === null) {
             $this->templateParams['activeTab'] = $info['tabName'];
             return $this->renderResponse('studium/chybaZapisnyList', $this->templateParams);
         }
     }
     $result = parent::invokeAction($trace, $action, $request);
     if ($this->terminyHodnoteniaScreen) {
         $this->terminyHodnoteniaScreen->closeWindow();
     }
     if ($this->hodnoteniaScreen) {
         $this->hodnoteniaScreen->closeWindow();
     }
     if ($this->administraciaStudiaScreen) {
         $this->administraciaStudiaScreen->closeWindow();
     }
     return $result;
 }