示例#1
0
 /**
  * Palauttaa taulukon, jonka avulla henkilöitä voidaan suodattaa tai
  * suodatuksia poistaa. 
  * 
  * @param Henkilo $omistaja
  * @param type $kohdehenkilo
  * @param type $paluupainike
  * @return type
  */
 public function nayta_suodatinlomake($omistaja, $kohdehenkilot, $paluupainike)
 {
     $maar_array = array();
     // Kun ei määritteitä tarvita.
     //======================================================================
     // Sitten taulukko kasaan, Rivi 1:
     $sisalto = Html::luo_tablerivi(Html::luo_tablesolu_otsikko(Kayttajatekstit::$suodattimet_lomaketeksti_otsikko, array(Maarite::colspan(2))), $maar_array);
     // Rivi 2:
     $sisalto .= Html::luo_tablerivi(Html::luo_tablesolu_otsikko(Kayttajatekstit::$suodattimet_lomaketeksti_omat_suodattimet, array()) . Html::luo_tablesolu_otsikko(Kayttajatekstit::$suodattimet_lomaketeksti_kohdehenkilo, array()), $maar_array);
     // Suodatinrivit (käyttäjä itse ei ole mukana):
     foreach ($kohdehenkilot as $henkilo) {
         if ($henkilo instanceof Henkilo) {
             // Katsotaan, onko kohde jo suodatettu:
             if ($henkilo->getSuodatus_kohde() == Henkilo::$suodatus_ON) {
                 $valittu = Maarite::checked();
             } else {
                 $valittu = "";
             }
             // Katsotaan, suodattaako kohde jo käyttäjän:
             if ($henkilo->getSuodatus_lahde() == Henkilo::$suodatus_ON) {
                 $vari = Html::luo_img(array(Maarite::src("kuvat/ympyra_pun.png"), Maarite::alt("Red circle"), Maarite::title(Kayttajatekstit::$suodattimet_lomaketeksti_punapallo_title)));
             } else {
                 $vari = Html::luo_img(array(Maarite::src("kuvat/ympyra_vihr.png"), Maarite::alt("Green circle"), Maarite::title(Kayttajatekstit::$suodattimet_lomaketeksti_viherpallo_title)));
             }
             $sisalto .= Html::luo_tablerivi(Html::luo_tablesolu(Html::luo_checkbox(array($valittu, Maarite::id("suodatus" . $henkilo->get_id()), Maarite::onclick("suodata", array($omistaja->get_id(), $henkilo->get_id(), Maarite::js_this_juttu("this.piip"))))), array(Maarite::style("text-align:center"))) . Html::luo_tablesolu(Html::luo_span($henkilo->get_arvo(Henkilo::$sarakenimi_etunimi) . " " . $vari, array(Maarite::style("white-space:nowrap"))), array(Maarite::style("text-align:left"))), $maar_array);
         }
     }
     // Lisätään vielä paluupainike:
     $sisalto .= Html::luo_tablerivi(Html::luo_tablesolu_otsikko($paluupainike, array(Maarite::colspan(2))), $maar_array);
     $taulukkohtml = Html::luo_table($sisalto, array(Maarite::id("suodatuslomake")));
     return $taulukkohtml;
 }
示例#2
0
 public function testaa_suodattimen_muokkaus_ja_poisto()
 {
     //==================== Suodattimen muokkaus ============================
     $this->lisaa_lihava_kommentti("Testataan muokkausta. Kokeillaan ensin" . " normaalimuokkausta ja sitten sellaista, jossa tulisi " . "tuplasuodatin.");
     // Haetaan tietokannasta ihmisen id, joka muutetaan suodattimelle.
     // Oletus on että tietokannassa on jp!
     $taulunimi = "henkilot";
     $sarakenimi = "kayttajatunnus";
     $hakuarvo = "jp";
     $haku = $this->tietokantaolio->hae_eka_osuma_oliona($taulunimi, $sarakenimi, $hakuarvo);
     if ($haku != Tietokantaolio::$HAKU_PALAUTTI_TYHJAN) {
         $uusi = $haku->id;
     }
     $this->suodatin1->set_arvo($uusi, Suodatin::$sarakenimi_vastapuoli_id);
     $muutos = $this->suodatin1->tallenna_muutokset();
     if ($muutos == Suodatin::$OPERAATIO_ONNISTUI) {
         $this->lisaa_kommentti("Muutos ok!");
     } else {
         $this->lisaa_virheilmoitus("Virhe muutoksen tallennuksessa! <br/>" . $this->suodatin1->tulosta_virheilmoitukset());
     }
     $this->lisaa_kommentti("Kokeillaan muuttaa jo olemassaolevaksi");
     $this->suodatin1->set_arvo($this->henkilo2->get_id(), Suodatin::$sarakenimi_omistaja_id);
     $this->suodatin1->set_arvo($this->henkilo1->get_id(), Suodatin::$sarakenimi_vastapuoli_id);
     $muutos = $this->suodatin1->tallenna_muutokset();
     if ($muutos == Suodatin::$OPERAATIO_ONNISTUI) {
         $this->lisaa_virheilmoitus("Virhe: muutoksen tallennuksessa!");
     } else {
         $this->lisaa_kommentti("Oikein! Huono muutos ei onnistunut! <br/>" . "Ilmoitukset: " . $this->suodatin1->tulosta_virheilmoitukset());
     }
     //======================= Poisto ===================================
     $this->lisaa_lihava_kommentti("Testataan poistoa. Yritan poistaa" . " suodatin2:n");
     $poisto = $this->suodatin2->poista();
     if ($poisto == Suodatin::$OPERAATIO_ONNISTUI) {
         // Tarkistetaan tietokanta:
         $taulunimi = Suodatin::$taulunimi;
         $sarakenimi = Suodatin::$SARAKENIMI_ID;
         $hakuarvo = $this->suodatin2->get_id();
         $haku = $this->tietokantaolio->hae_eka_osuma_oliona($taulunimi, $sarakenimi, $hakuarvo);
         if ($haku == Tietokantaolio::$HAKU_PALAUTTI_TYHJAN) {
             $this->lisaa_kommentti("Suodattimen poisto ok!");
         } else {
             $this->lisaa_virheilmoitus("Suodattimen poisto ei onnistunut!");
         }
     } else {
         $this->lisaa_virheilmoitus("Suodattimen poisto ei onnistunut!");
     }
 }
示例#3
0
 public function testaa_ratkaisun_luominen()
 {
     $this->lisaa_lihava_kommentti("Luodaan testiratkaisu (testiomistajalle):");
     $ratkaisukontrolleri = new Ratkaisukontrolleri($this->tietokantaolio, $this->parametriolio);
     $ratkaisunakymat = new Ratkaisunakymat();
     $ratk = $this->luo_testiratkaisu();
     if ($ratk instanceof Ratkaisu) {
         $this->lisaa_kommentti("Testiratkaisun luominen onnistui");
         // Näytetään ratkaisu eri valtuuksilla:
         $this->lisaa_kommentti("Testiratkaisun tulostus tehtävän lisäys " . "-valtuuksilla:");
         $id_kokon = -1;
         $id_teht = -1;
         // Muutetaan valtuudet:
         $this->testiapuhenkilo->set_arvo(Valtuudet::$TEHTAVA_LISAYS, Henkilo::$sarakenimi_valtuudet);
         $this->testiapuhenkilo->tallenna_muutokset();
         $this->lisaa_kommentti("Apuhenkilön valtuudet (pitäs olla 5)= " . $this->testiapuhenkilo->get_arvo(Henkilo::$sarakenimi_valtuudet));
         /*$this->lisaa_kommentti("Muutetaan ratkaisun omistajaksi testiapuhenkilö");
           $ratk->setHenkilo_id($this->testiapuhenkilo->get_id());
           $ratk->tallenna_muutokset();*/
         // Tämä vaaditaan, jotta valtuudet menevät läpi:
         $omaid = $this->testiapuhenkilo->get_id();
         $id_ratk = $ratk->getId();
         $this->parametriolio->set_omaid($this->testiapuhenkilo->get_id());
         $painikkeet = $ratkaisukontrolleri->luo_ratkaisupainikkeet($id_ratk);
         $this->lisaa_kommentti($ratkaisukontrolleri->tulosta_kaikki_ilmoitukset());
         $ratkaisukontrolleri->tyhjenna_kaikki_ilmoitukset();
         $this->lisaa_kommentti($ratkaisunakymat->tulosta_ratkaisu($id_kokon, $ratk, $omaid, $painikkeet));
         $this->testiapuhenkilo->tyhjenna_virheilmoitukset();
         $this->lisaa_kommentti("Testiratkaisun tulostus hallinta-valtuuksilla:");
         $id_kokon = -1;
         $id_teht = -1;
         // Muutetaan testiapuhenkilön valtuudet:
         if ($this->testiapuhenkilo->set_arvo(Valtuudet::$HALLINTA, Henkilo::$sarakenimi_valtuudet) == Pohja::$OPERAATIO_ONNISTUI) {
             if ($this->testiapuhenkilo->tallenna_muutokset() === Henkilo::$OPERAATIO_ONNISTUI) {
                 // Tässä === aiheutti virheen.
                 if ($this->testiapuhenkilo->get_arvo(Henkilo::$sarakenimi_valtuudet) == Valtuudet::$HALLINTA) {
                     $omaid = $this->testiapuhenkilo->get_id();
                     $id_ratk = $ratk->getId();
                     $painikkeet = $ratkaisukontrolleri->luo_ratkaisupainikkeet($id_ratk);
                     $this->lisaa_kommentti($ratkaisukontrolleri->tulosta_kaikki_ilmoitukset());
                     $this->lisaa_kommentti($ratkaisunakymat->tulosta_ratkaisu($id_kokon, $ratk, $omaid, $painikkeet));
                 } else {
                     $this->lisaa_virheilmoitus("Virhe: apuhenkilön " . " valtuusmuutostallennus ok, mutta arvo ei! <br/>" . "Valtuuden arvo = " . $this->testiapuhenkilo->get_arvo(Henkilo::$sarakenimi_valtuudet));
                 }
             } else {
                 $this->lisaa_virheilmoitus("Virhe apuhenkilön " . " valtuusmuutoksen tallennuksessa! <br/>" . $this->testiapuhenkilo->tulosta_virheilmoitukset());
             }
         } else {
             $this->lisaa_virheilmoitus("Virhe apuhenkilön " . " valtuusmuutoksen asetuksessa! <br/>" . $this->testiapuhenkilo->tulosta_virheilmoitukset());
         }
         // Muutetaan valtuudet takaisin tehtävien lisäykseen:
         $this->testiapuhenkilo->set_arvo(Valtuudet::$TEHTAVA_LISAYS, Henkilo::$sarakenimi_valtuudet);
         $this->testiapuhenkilo->tallenna_muutokset();
         $this->testiratkaisu = $ratk;
     } else {
         $this->lisaa_virheilmoitus("Virhe testiratkaisun luomisessa");
     }
 }
 /**
  * Näyttää perusnäkymän sekä kirjautuneelle että kirjautumattomalle käyttäjälle.
  * Opettajalle näkymä on erilainen sisältäen enemmän toimintoja.
  * @param Palaute $palauteolio Vakio palauteolio näkymätietojen säilyttämiseen.
  */
 public function toteuta_nayta(&$palauteolio)
 {
     $sisalto = "";
     $param = $this->get_parametriolio();
     $lang_id = $param->kieli_id;
     if (Henkilo::on_kirjautunut($param->get_omaid(), $this->get_tietokantaolio())) {
         $teacher = new Henkilo($param->get_omaid(), $this->get_tietokantaolio());
         $myCourseInfos = $this->get_all_her_courses($teacher->get_id());
         $sisalto = $this->palautusnakymat->show_teacher_view($teacher, $myCourseInfos, $lang_id);
     } else {
         $sisalto = $this->palautusnakymat->show_submit_form($lang_id, $this->public_courses_found());
     }
     $palauteolio->set_sisalto($sisalto);
 }
 public function toteuta_nayta_lisavaltuuslomake(&$palaute)
 {
     $tietokantaolio = $this->get_tietokantaolio();
     $parametriolio = $this->get_parametriolio();
     $omistaja = new Henkilo($parametriolio->lv_omistaja_id, $tietokantaolio);
     $omistajan_nimi = $omistaja->get_arvo(Henkilo::$sarakenimi_etunimi) . " " . $omistaja->get_arvo(Henkilo::$sarakenimi_sukunimi);
     // Luodaan ensin valikot:
     // Henkilövalikko: =====================================================
     $name_arvo = Kayttajakontrolleri::$lv_name_kohdehenkilo_id;
     $minimivaltuus = Valtuudet::$TEHTAVA_LISAYS;
     $taulunimi = Henkilo::$taulunimi;
     $henkilot = Henkilo::hae_valtuutetut_henkilot($minimivaltuus, $taulunimi, $tietokantaolio);
     $arvot = array();
     // Henkilön id-arvot.
     $nimet = array();
     // Henkilöiden nimet
     // haetaan arvot ja nimet henkilöiltä, muttei omistajalta:
     foreach ($henkilot as $henkilo) {
         if ($henkilo instanceof Henkilo && $henkilo->get_id() != $omistaja->get_id()) {
             $nimi = $henkilo->get_arvo(Henkilo::$sarakenimi_etunimi) . " " . $henkilo->get_arvo(Henkilo::$sarakenimi_sukunimi);
             array_push($nimet, $nimi);
             array_push($arvot, $henkilo->get_arvo(Henkilo::$SARAKENIMI_ID));
         }
     }
     $select_maaritteet = array(Attr::name($name_arvo));
     $option_maaritteet = array();
     $oletusvalinta_arvo = "";
     $otsikko = "";
     $henkilovalikko = Html::luo_pudotusvalikko_uusi($arvot, $nimet, $select_maaritteet, $option_maaritteet, $oletusvalinta_arvo, $otsikko);
     //======================================================================
     // Kohdevalikko:
     $name_arvo = Kayttajakontrolleri::$lv_name_vaikutusalue;
     $arvot = Lisavaltuudet::hae_vaikutusaluearvot();
     $nimet = Lisavaltuudet::hae_vaikutusaluekuvaukset();
     $select_maaritteet = array(Attr::name($name_arvo));
     $option_maaritteet = array();
     $oletusvalinta_arvo = Lisavaltuudet::$vain_nykyinen_olio;
     $otsikko = "";
     $kohdevalikko = Html::luo_pudotusvalikko_uusi($arvot, $nimet, $select_maaritteet, $option_maaritteet, $oletusvalinta_arvo, $otsikko);
     //======================================================================
     // Oikeusvalikko:
     $name_arvo = Kayttajakontrolleri::$lv_name_oikeudet;
     $arvot = Lisavaltuudet::hae_lisavaltuusarvot();
     $nimet = Lisavaltuudet::hae_lisavaltuuskuvaukset();
     $select_maaritteet = array(Attr::name($name_arvo));
     $option_maaritteet = array();
     $oletusvalinta_arvo = Lisavaltuudet::$SAA_MUOKATA_EI_POISTAA;
     $otsikko = "";
     $oikeusvalikko = Html::luo_pudotusvalikko_uusi($arvot, $nimet, $select_maaritteet, $option_maaritteet, $oletusvalinta_arvo, $otsikko);
     //===================== painikkeet ====================================
     $submit_painike = Html::luo_input(array(Attr::type("submit"), Attr::name(Toimintonimet::$lv_toiminto), Attr::value(Kayttajatekstit::$lisavaltuudet_lomaketeksti_painike_tallenna)));
     $paluupainike = Html::luo_input(array(Attr::type("submit"), Attr::name(Toimintonimet::$lv_toiminto), Attr::value(Kayttajatekstit::$lisavaltuudet_lomaketeksti_painike_takaisin)));
     //===================== painikkeet ====================================
     // Actionkyselymuuttujien arvot. Näin saadaan tiedot kulkemaan
     // lomakkeeseen ja siitä eteenpäin.
     $actionkyselyarvot = array($parametriolio->id_kokon, $parametriolio->oppiaine_kokon, $parametriolio->kieli_id, $parametriolio->lv_kohde_id, $parametriolio->lv_kohdetyyppi, $parametriolio->lv_omistaja_id);
     $palaute->set_sisalto($this->kayttajanakymat->nayta_lisavaltuuslomake($omistajan_nimi, $henkilovalikko, $kohdevalikko, $oikeusvalikko, $submit_painike, $paluupainike, $actionkyselyarvot));
     return $palaute;
 }