/** * 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; }
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!"); } }
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; }