public function getHodnotenia(Trace $trace) { $this->openIfNotAlready($trace); $data = $this->executor->readTable(array('list' => $this->idZapisnyList), 'hodnotenia'); $table = new DataTableImpl(HodnoteniaRegression::get(), $data); return $table; }
/** * Akcia ktora zobrazi terminy, na ktore je mozne potencialne sa prihlasit. * * @param Trace $trace trace object * @param Context $context */ public function runZoznamTerminov(Trace $trace, Context $context) { $request = $context->getRequest(); $response = $context->getResponse(); $predmetyZapisnehoListu = $this->terminyHodnoteniaScreen->getPredmetyZapisnehoListu($trace); FajrUtils::warnWrongTableStructure($response, 'terminy hodnotenia - predmety', regression\ZapisanePredmetyRegression::get(), $predmetyZapisnehoListu->getTableDefinition()); $hodnotenia = $this->hodnoteniaScreen->getHodnotenia($trace); FajrUtils::warnWrongTableStructure($response, 'hodnotenia', regression\HodnoteniaRegression::get(), $hodnotenia->getTableDefinition()); $hodnoteniaData = array(); foreach ($hodnotenia->getData() as $row) { $hodnoteniaData[$row[HodnoteniaFields::PREDMET_SKRATKA]] = $row; } $mozePrihlasitHelper = new MozePrihlasitNaTerminHelper($hodnoteniaData); $terminyData = array(); foreach ($predmetyZapisnehoListu->getData() as $predmetRow) { $predmetSkratka = $predmetRow[PredmetyFields::SKRATKA]; $predmetId = $predmetRow[PredmetyFields::INDEX]; $predmet = $predmetRow[PredmetyFields::NAZOV]; $childTrace = $trace->addChild('Zoznam terminov k predmetu ' . $predmet); $dialog = $this->terminyHodnoteniaScreen->getZoznamTerminovDialog($childTrace, $predmetId); $terminy = $dialog->getZoznamTerminov($childTrace); FajrUtils::warnWrongTableStructure($response, 'zoznam terminov k predmetu ' . $predmet, regression\TerminyKPredmetuRegression::get(), $terminy->getTableDefinition()); // explicitly close this dialog otherwise we will be blocked for next iteration! $dialog->closeIfNeeded($childTrace); foreach ($terminy->getData() as $row) { $prihlasTerminyRow = $row; $prihlasTerminyRow[PrihlasTerminyFields::PREDMET] = $predmet; $prihlasTerminyRow[PrihlasTerminyFields::PREDMET_INDEX] = $predmetId; $prihlasTerminyRow[PrihlasTerminyFields::PREDMET_SKRATKA] = $predmetSkratka; $prihlasTerminyRow[PrihlasTerminyFields::ZNAMKA] = $hodnoteniaData[$predmetSkratka][HodnoteniaFields::ZNAMKA]; $prihlasTerminyRow[PrihlasTerminyFields::HASH_PRIHLASENIE] = StudiumUtils::hashNaPrihlasenie($predmetSkratka, $row); // PrihlasTerminyFields::ZNAMKA, PREDMET_SKRATKA must be set before! $prihlasTerminyRow[PrihlasTerminyFields::FAJR_MOZE_PRIHLASIT] = $mozePrihlasitHelper->mozeSaPrihlasit($prihlasTerminyRow, $request->getRequestTime()); $terminyData[] = $prihlasTerminyRow; } } $response->set('prihlaseni', null); if ($request->getParameter('termin') !== '' && $request->getParameter('predmet') !== '') { $prihlaseni = $this->terminyHodnoteniaScreen->getZoznamTerminovDialog($trace, $request->getParameter('predmet'))->getZoznamPrihlasenychDialog($trace, $request->getParameter('termin'))->getZoznamPrihlasenych($trace); FajrUtils::warnWrongTableStructure($response, 'zoznam prihlasenych k terminu', regression\PrihlaseniNaTerminRegression::get(), $prihlaseni->getTableDefinition()); $response->set('prihlaseni', $prihlaseni->getData()); } $response->set('predmetyZapisnehoListu', $predmetyZapisnehoListu); $response->set('terminy', $terminyData); $response->set('termin', $request->getParameter('termin')); $response->set('predmet', $request->getParameter('predmet')); $response->setTemplate('studium/zoznamTerminov'); }
/** * Akcia pre zobrazenie mojich terminov hodnotenia * * @param Trace $trace trace object * @param Request $request request from browser * @param Response $response response information */ public function runMojeTerminyHodnotenia(Trace $trace, Context $context) { $request = $context->getRequest(); $response = $context->getResponse(); $termin = $request->getParameter('termin'); $terminyHodnotenia = $this->terminyHodnoteniaScreen->getTerminyHodnotenia($trace->addChild("get terminy hodnotenia")); $hodnotenia = $this->hodnoteniaScreen->getHodnotenia($trace->addChild("get hodnotenia")); FajrUtils::warnWrongTableStructure($response, 'priemery', regression\HodnoteniaRegression::get(), $hodnotenia->getTableDefinition()); $hodnoteniePredmetu = array(); foreach ($hodnotenia->getData() as $hodnoteniaRow) { $hodnoteniePredmetu[$hodnoteniaRow[HodnoteniaFields::PREDMET_SKRATKA]] = $hodnoteniaRow[HodnoteniaFields::ZNAMKA]; } $terminyHodnoteniaActive = array(); $terminyHodnoteniaOld = array(); foreach ($terminyHodnotenia->getData() as $terminyRow) { $mojeTerminyRow = $terminyRow; if ($terminyRow[TerminyFields::ZNAMKA] == '') { // skusme najst znamku v hodnoteniach $predmet = $terminyRow[TerminyFields::PREDMET_SKRATKA]; if (isset($hodnoteniePredmetu[$predmet]) && $hodnoteniePredmetu[$predmet] != '') { // TODO(ppershing): move this to another field and deal with it in template! $mojeTerminyRow[TerminyFields::ZNAMKA] = $hodnoteniePredmetu[$predmet] . " (nepriradená k termínu)"; } } $datum = AIS2Utils::parseAISDateTime($terminyRow[TerminyFields::DATUM] . " " . $terminyRow[TerminyFields::CAS]); if ($datum < time()) { if ($terminyRow[TerminyFields::JE_PRIHLASENY] == 'TRUE') { $terminyHodnoteniaOld[] = $mojeTerminyRow; } } else { if ($terminyRow[TerminyFields::MOZE_ODHLASIT] == 1) { $mojeTerminyRow[MojeTerminyFields::HASH_ODHLASENIE] = StudiumUtils::hashNaOdhlasenie($terminyRow); } $terminyHodnoteniaActive[] = $mojeTerminyRow; } } $response->set('prihlaseni', null); if ($request->getParameter('termin') !== '') { $prihlaseni = $this->terminyHodnoteniaScreen->getZoznamPrihlasenychDialog($trace, $termin)->getZoznamPrihlasenych($trace); $response->set('prihlaseni', $prihlaseni->getData()); } $response->set('terminyActive', $terminyHodnoteniaActive); $response->set('terminyOld', $terminyHodnoteniaOld); $response->set('termin', $termin); $response->setTemplate('studium/mojeTerminyHodnotenia'); }