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();
 }
Пример #3
0
 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');
 }
Пример #4
0
 /**
  * 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');
 }
Пример #5
0
 /**
  * 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);
 }