Merge branch 'master' into udf

This commit is contained in:
Paolo
2017-08-01 18:31:30 +02:00
18 changed files with 1143 additions and 385 deletions
@@ -0,0 +1,140 @@
<?php
if (!defined("BASEPATH")) exit("No direct script access allowed");
class Studienjahr extends VileSci_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model("organisation/Studienjahr_model", "StudienjahrModel");
}
public function index()
{
$this->listStudienjahr();
}
public function listStudienjahr()
{
$studienjahr = $this->StudienjahrModel->load();
if ($studienjahr->error)
{
show_error($studienjahr->retval);
}
$data = array(
"studienjahr" => $studienjahr->retval
);
$this->load->view("organisation/studienjahr.php", $data);
}
public function editStudienjahr($studienjahr_kurzbez)
{
$studienjahr_kurzbez = str_replace("_", "/", $studienjahr_kurzbez);
$studienjahr = $this->StudienjahrModel->load($studienjahr_kurzbez);
if ($studienjahr->error)
{
show_error($studienjahr->retval);
}
$data = array(
"studienjahr" => $studienjahr->retval
);
$this->load->view("organisation/studienjahrEdit.php", $data);
}
public function newStudienjahr()
{
$this->StudienjahrModel->addOrder('studienjahr_kurzbz', "DESC");
$allstudienjahrkurzbz = $this->StudienjahrModel->load();
if ($allstudienjahrkurzbz->error)
{
show_error($allstudienjahrkurzbz->retval);
}
$studienjahrkurzbz = $allstudienjahrkurzbz->retval[0]->studienjahr_kurzbz;
$years = $this->__getYearsFromStudienjahr($studienjahrkurzbz);
$data = array(
"studienjahrkurzbz" => ($years[0] + 1)."/".($years[1] + 1)
);
$this->load->view("organisation/studienjahrNew.php", $data);
}
private function __getYearsFromStudienjahr($studienjahr_kurzbez)
{
$firstyear = intval(substr($studienjahr_kurzbez, 0, 4));
$secondyear = intval(substr($studienjahr_kurzbez, 5, 2));
return array($firstyear, $secondyear);
}
public function insStudienjahr()
{
$data = $this->__retrieveStudienjahrData();
$studienjahr = $this->StudienjahrModel->insert($data);
if ($studienjahr->error)
{
show_error($studienjahr->retval);
}
redirect("/organisation/studienjahr/editStudienjahr/".str_replace("/", "_", $data['studienjahr_kurzbz']."?saved=true"));
}
private function __retrieveStudienjahrData(){
$studienjahr_kurzbz = $this->input->post("studienjahrkurzbz");
$bezeichnung = $this->input->post("studienjahrbz");
$data = array(
"studienjahr_kurzbz" => $studienjahr_kurzbz,
"bezeichnung" => $bezeichnung,
);
$validation = $this->_validate($data);
if (isSuccess($validation))
{
return $data;
} else
{
show_error($validation->retval);
}
}
private function _validate($data)
{
$studienjahr_kurzbz = $data['studienjahr_kurzbz'];
$years = $this->__getYearsFromStudienjahr($studienjahr_kurzbz);
//if not desired form or second year comes not right after the first
$correctyears = $years[0] % 100 == $years[1] - 1;
if (!preg_match("/^\d{4}\/\d{2}$/", $studienjahr_kurzbz) || !$correctyears)
return error("Studienjahrbezeichnung muss folgende Form haben: Jahreszahl/letzeZweiZahlenDesNächstenJahres, z.B. 2017/18");
return success("Semesterdaten sind valide");
}
public function saveStudienjahr()
{
$data = $this->__retrieveStudienjahrData();
$studienjahr = $this->StudienjahrModel->update($data['studienjahr_kurzbz'], $data);
if ($studienjahr->error)
{
show_error($studienjahr->retval);
}
redirect("/organisation/studienjahr/editStudienjahr/".str_replace("/", "_", $data['studienjahr_kurzbz']."?saved=true"));
}
public function deleteStudienjahr($studienjahr_kurzbez)
{
$studienjahr_kurzbez = str_replace("_", "/", $studienjahr_kurzbez);
$studienjahr = $this->StudienjahrModel->delete($studienjahr_kurzbez);
if ($studienjahr->error)
{
show_error($studienjahr->retval);
}
redirect("/organisation/studienjahr/listStudienjahr");
}
}
@@ -0,0 +1,166 @@
<?php
if (!defined("BASEPATH")) exit("No direct script access allowed");
/**
* Description of Semester
*
* @author root
*/
class Studiensemester extends VileSci_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model("organisation/Studiensemester_model", "StudiensemesterModel");
$this->load->model("organisation/Studienjahr_model", "StudienjahrModel");
}
public function index()
{
$this->listStudiensemester();
}
public function listStudiensemester()
{
$semester = $this->StudiensemesterModel->load();
if ($semester->error)
{
show_error($semester->retval);
}
$data = array(
"semester" => $semester->retval
);
$this->load->view("organisation/studiensemester.php", $data);
}
public function editStudiensemester($semester_kurzbez)
{
$semester = $this->StudiensemesterModel->load($semester_kurzbez);
if ($semester->error)
{
show_error($semester->retval);
}
$this->StudienjahrModel->addOrder('studienjahr_kurzbz', "DESC");
$allstudienjahre = $this->StudienjahrModel->load();
if ($allstudienjahre->error)
{
show_error($allstudienjahre->retval);
}
$data = array(
"semester" => $semester->retval,
"allstudienjahre" => $allstudienjahre->retval
);
$this->load->view("organisation/studiensemesterEdit.php", $data);
}
public function newStudiensemester()
{
$this->StudienjahrModel->addOrder('studienjahr_kurzbz', "DESC");
$allstudienjahre = $this->StudienjahrModel->load();
if ($allstudienjahre->error)
{
show_error($allstudienjahre->retval);
}
$data = array(
"allstudienjahre" => $allstudienjahre->retval
);
$this->load->view("organisation/studiensemesterNew.php", $data);
}
/**
* inserts a Studiensemester
* formats dates in english as required by database
*/
public function insStudiensemester()
{
$data = $this->__retrieveStudiensemesterData();
$semester = $this->StudiensemesterModel->insert($data);
if ($semester->error)
{
show_error($semester->retval);
}
redirect("/organisation/studiensemester/editStudiensemester/".$data['studiensemester_kurzbz']."?saved=true");
}
private function __retrieveStudiensemesterData()
{
$studiensemester_kurzbz = $this->input->post("semkurzbz");
$bezeichnung = $this->input->post("sembz");
$start = $this->input->post("semstart");
$ende = $this->input->post("semende");
$studienjahr_kurzbz = $this->input->post("studienjahrkurzbz");
$beschreibung = $this->input->post("beschreibung");
$onlinebewerbung = $this->input->post("onlinebewerbung");
$onlinebewerbung = isset($onlinebewerbung);
$data = array(
"studiensemester_kurzbz" => $studiensemester_kurzbz,
"bezeichnung" => $bezeichnung,
"start" => $start,
"ende" => $ende,
"studienjahr_kurzbz" => $studienjahr_kurzbz,
"beschreibung" => $beschreibung,
"onlinebewerbung" => $onlinebewerbung
);
$validation = $this->_validate($data);
if (isSuccess($validation))
{
//dateconversion
$data["start"] = date_format(date_create($start), "Y-m-d");
$data["ende"] = date_format(date_create($ende), "Y-m-d");
return $data;
} else
{
show_error($validation->retval);
}
}
private function _validate($data)
{
$datepattern = "/^\d{2}.\d{2}.\d{4}$/";
if (!preg_match("/^(WS|SS)\d{4}$/", $data['studiensemester_kurzbz']))
return error("Semesterkurzbezeichnung muss mit WS oder SS beginnen und mit einer Jahreszahl enden, z.B. SS2017");
if (!preg_match($datepattern, $data['start']))
return error("Falsches Startdatumsformat. Richtiges Format: dd.mm.yyyy");
if (!preg_match($datepattern, $data['ende']))
return error("Falsches Enddatumsformat. Richtiges Format: dd.mm.yyyy");
return success("Semesterdaten sind valide");
}
public function saveStudiensemester()
{
$data = $this->__retrieveStudiensemesterData();
$semester = $this->StudiensemesterModel->update($data['studiensemester_kurzbz'], $data);
if ($semester->error)
{
show_error($semester->retval);
}
redirect("/organisation/studiensemester/editStudiensemester/".$data['studiensemester_kurzbz']."?saved=true");
}
public function deleteStudiensemester($semester_kurzbez)
{
$semester = $this->StudiensemesterModel->delete($semester_kurzbez);
if ($semester->error)
{
show_error($semester->retval);
}
redirect("/organisation/studiensemester/listStudiensemester");
}
}