public function getHtml() { $trace = $this->trace->addChild("ZapisanePredmetyCallback"); $predmetyZapisnehoListu = $this->skusky->getPredmetyZapisnehoListu($trace); $predmetyZapisnehoListuTable = new Table(TableDefinitions::predmetyZapisnehoListu()); $predmetyZapisnehoListuCollapsible = new Collapsible(new HtmlHeader('Predmety zápisného listu'), $predmetyZapisnehoListuTable); $kreditovCelkomLeto = 0; $kreditovCelkomZima = 0; $pocetPredmetovLeto = 0; $pocetPredmetovZima = 0; foreach (Sorter::sort($predmetyZapisnehoListu->getData(), array("kodSemester" => -1, "nazov" => 1)) as $row) { if ($row['kodSemester'] == 'L') { $pocetPredmetovLeto += 1; $kreditovCelkomLeto += $row['kredit']; $class = 'leto'; } else { $pocetPredmetovZima += 1; $kreditovCelkomZima += $row['kredit']; $class = 'zima'; } $predmetyZapisnehoListuTable->addRow($row, array('class' => $class)); } $pocetPredmetovText = 'Celkom '; $pocetPredmetovText .= FajrUtils::formatPlural($pocetPredmetovLeto + $pocetPredmetovZima, '0 predmetov', '1 predmet', '%d predmety', '%d predmetov'); if ($pocetPredmetovLeto > 0 && $pocetPredmetovZima > 0) { $pocetPredmetovText .= sprintf(' (%d v zime, %d v lete)', $pocetPredmetovZima, $pocetPredmetovLeto); } $kreditovCelkomText = '' . ($kreditovCelkomLeto + $kreditovCelkomZima); if ($kreditovCelkomLeto > 0 && $kreditovCelkomZima > 0) { $kreditovCelkomText .= sprintf(' (%d+%d)', $kreditovCelkomZima, $kreditovCelkomLeto); } $predmetyZapisnehoListuTable->addFooter(array('nazov' => $pocetPredmetovText, 'kredit' => $kreditovCelkomText), array()); $predmetyZapisnehoListuTable->setUrlParams(array('studium' => Input::get('studium'), 'list' => Input::get('list'))); return $predmetyZapisnehoListuTable->getHtml(); }
public function getHtml() { $trace = $this->trace->addChild("HodnoteniaCallback"); $hodnotenia = $this->app->getHodnotenia($trace); $hodnoteniaTable = new Table(TableDefinitions::hodnotenia()); $priemeryCalculator = new PriemeryCalculator(); foreach (Sorter::sort($hodnotenia->getData(), array("semester" => -1, "nazov" => 1)) as $row) { if ($row['semester'] == 'L') { $class = 'leto'; $priemeryCalculator->add(PriemeryCalculator::SEMESTER_LETNY, $row['znamka'], $row['kredit']); } else { $class = 'zima'; $priemeryCalculator->add(PriemeryCalculator::SEMESTER_ZIMNY, $row['znamka'], $row['kredit']); } $hodnoteniaTable->addRow($row, array('class' => $class)); } $hodnoteniaCollapsible = new Collapsible(new HtmlHeader('Hodnotenia'), $hodnoteniaTable); $priemery = $this->app->getPriemery($trace); $priemeryTable = new Table(TableDefinitions::priemery()); $priemeryTable->addRows($priemery->getData()); $priemeryContainer = new Container(); $priemeryContainer->addChild(new Label('Nasledovné priemery sú prebraté z AISu, čiže to (ne)funguje presne rovnako:')); $priemeryContainer->addChild($priemeryTable); if ($priemeryCalculator->hasPriemer()) { $priemeryFajrText = '<p><br />Nasledovné vážené študijné priemery sú počítané Fajrom priebežne z tabuľky Hodnotenia, <strong>preto nemôžu byť považované za oficiálne</strong>:<br /><br />'; $priemeryFajrText .= $priemeryCalculator->getHtml(); $priemeryFajrText .= '</p>'; $priemeryContainer->addChild(new Label($priemeryFajrText)); } $priemeryCollapsible = new Collapsible(new HtmlHeader('Priemery'), $priemeryContainer); return $hodnoteniaCollapsible->getHtml() . $priemeryCollapsible->getHtml(); }
public function runZapisanePredmety(Trace $trace, Context $context) { $request = $context->getRequest(); $response = $context->getResponse(); $predmetyZapisnehoListu = $this->terminyHodnoteniaScreen->getPredmetyZapisnehoListu($trace); $this->kreditovCelkomLeto = 0; $this->kreditovCelkomZima = 0; $this->pocetPredmetovLeto = 0; $this->pocetPredmetovZima = 0; $this->predmetyZapisnehoListuData = Sorter::sort($predmetyZapisnehoListu->getData(), array("kodSemester" => -1, "nazov" => 1)); foreach ($this->predmetyZapisnehoListuData as $row) { if ($row['kodSemester'] == 'L') { $this->pocetPredmetovLeto += 1; $this->kreditovCelkomLeto += $row['kredit']; } else { $this->pocetPredmetovZima += 1; $this->kreditovCelkomZima += $row['kredit']; } } $response->set('predmetyZapisnehoListu', $this->predmetyZapisnehoListuData); $response->set('kreditovCelkomLeto', $this->kreditovCelkomLeto); $response->set('kreditovCelkomZima', $this->kreditovCelkomZima); $response->set('pocetPredmetovLeto', $this->pocetPredmetovLeto); $response->set('pocetPredmetovZima', $this->pocetPredmetovZima); $response->setTemplate('studium/zapisanePredmety'); }
/** * Akcia ktora zobrazi predmety zapisane danym clovekom * * @param Trace $trace trace object * @param Context $context */ public function runZapisanePredmety(Trace $trace, Context $context) { $request = $context->getRequest(); $response = $context->getResponse(); $predmetyZapisnehoListu = $this->terminyHodnoteniaScreen->getPredmetyZapisnehoListu($trace); $priemeryCalculator = new PriemeryCalculator(); $predmetyZapisnehoListuData = Sorter::sort($predmetyZapisnehoListu->getData(), array("kodSemester" => -1, "nazov" => 1)); foreach ($predmetyZapisnehoListuData as $predmetyRow) { $semester = $predmetyRow[PredmetyFields::SEMESTER] == 'L' ? PriemeryCalculator::SEMESTER_LETNY : PriemeryCalculator::SEMESTER_ZIMNY; $priemeryCalculator->add($semester, '', $predmetyRow[PredmetyFields::KREDIT]); } $response->set('predmetyZapisnehoListu', $predmetyZapisnehoListuData); $response->set('predmetyStatistika', $priemeryCalculator); $response->setTemplate('studium/zapisanePredmety'); }
/** * Akcia ktora zobrazi predmety zapisane danym clovekom * * @param Trace $trace trace object * @param Request $request */ public function runZapisanePredmety(Trace $trace, Request $request) { $this->templateParams['currentTab'] = 'ZapisnyList'; if ($this->terminyHodnoteniaScreen == null) { return $this->renderResponse('studium/terminyHodnoteniaNedostupne', $this->templateParams); } $predmetyZapisnehoListu = $this->terminyHodnoteniaScreen->getPredmetyZapisnehoListu($trace); $this->warnings->warnWrongTableStructure($trace, 'terminy hodnotenia-predmety', regression\ZapisanePredmetyRegression::get(), $predmetyZapisnehoListu->getTableDefinition()); $priemeryCalculator = new PriemeryCalculator(); $predmetyZapisnehoListuData = Sorter::sort($predmetyZapisnehoListu->getData(), array("semester" => -1, "nazov" => 1)); foreach ($predmetyZapisnehoListuData as $predmetyRow) { $semester = $predmetyRow[PredmetyFields::SEMESTER] == 'L' ? PriemeryCalculator::SEMESTER_LETNY : PriemeryCalculator::SEMESTER_ZIMNY; $priemeryCalculator->add($semester, '', $predmetyRow[PredmetyFields::KREDIT]); } $this->templateParams['predmetyZapisnehoListu'] = $predmetyZapisnehoListuData; $this->templateParams['predmetyStatistika'] = $priemeryCalculator; return $this->renderResponse('studium/zapisanePredmety', $this->templateParams); }