Browse Source

Testy fix nav for add test

Piotr Labudda 10 years ago
parent
commit
6a5e01c3fb
3 changed files with 132 additions and 39 deletions
  1. 126 27
      SE/procesy/testy.php
  2. 3 3
      SE/se-lib/ACL.php
  3. 3 9
      SE/se-lib/ProcesMenu.php

+ 126 - 27
SE/procesy/testy.php

@@ -559,14 +559,29 @@ function task_CRM_TEST() {
 	$stanowisko = DB::get_by_id('CRM_LISTA_ZASOBOW', $test_obj->ID_STANOWISKO);
 	$proces = DB::get_by_id('CRM_PROCES', $test_obj->ID_PROCES_INIT);
 
-	echo'<p>'."Test procesu ".'<b class="red">'."[{$proces->ID}] {$proces->DESC}".'</b>';
-		//echo'<br />'.'<em class="silver">'.$proces->OPIS.'</em>';
-	echo'</p>';
-	echo'<p>'."dla stanowiska ".'<b class="green">'."[{$stanowisko->ID}] {$stanowisko->DESC}".'</b>';
-		//echo'<br />'.'<em class="silver">'.$stanowisko->OPIS.'</em>';
-	echo'</p>';
-
-//echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;">test : ';print_r($test_obj);echo'</pre>';
+	if (!$proces || !$stanowisko) {
+		?>
+<div class="alert alert-danger">
+	Błędny proces lub stanowisko!
+</div>
+<?php
+		return;
+	}
+	?>
+<div class="panel panel-default">
+  <div class="panel-heading">Test:</div>
+  <div class="panel-body">
+		<ul>
+			<li>
+				Proces: <b class="text-danger">{<?php echo $proces->ID; ?>} <?php echo $proces->DESC; ?></b>
+			</li>
+			<li>
+				Stanowisko: <b class="text-success">[<?php echo $stanowisko->ID; ?>] <?php echo $stanowisko->DESC; ?></b>
+			</li>
+		</ul>
+  </div>
+</div>
+<?php
 
 	$lastTestDate = null;
 	if ($test_obj->ID_TEST_TO_FIX > 0) {
@@ -1027,18 +1042,56 @@ function task_CRM_TESTY__ADD_KANDYDAT() {
  * $_GET['stanowisko_id']
  */
 function task_CRM_TESTY__ADD_TEST() {
-	$arg_stanowisko_id = V::get('stanowisko_id', 0, $_GET, 'int');
+	$idStanowiska = V::get('stanowisko_id', 0, $_GET, 'int');
+	$idProces = V::get('proces_id', 0, $_GET, 'int');
+	$testType = V::get('test_type', '', $_GET);
 
-		?>
+	?>
 <ol class="breadcrumb">
   <li><?php echo App::link("Testy", array('task'=>'CRM_TESTY')); ?></li>
   <li><?php echo App::link("Uruchom nowy test", array('task'=>'CRM_TESTY__ADD_TEST')); ?></li>
-	<?php if ($arg_stanowisko_id > 0) : ?>
-		<li class="active">Testy dla stanowiska [<?php echo $arg_stanowisko_id; ?>]</li>
+	<?php if ($idStanowiska > 0) : ?>
+		<li class="active">Testy dla stanowiska [<?php echo $idStanowiska; ?>]</li>
 	<?php endif; ?>
 </ol>
 <?php
 
+	function this_CRM_TESTY_view_selected_args($stanowisko = null, $proces = null) {
+		// procesy5.php?task=CRM_TESTY__ADD_TEST&proces_id=5039&test_type=TEORETYCZNY&stanowisko_id=21168
+		if (!$proces && !$stanowisko) return;
+		?>
+<div class="panel panel-default">
+  <div class="panel-heading">Wybrano:</div>
+  <div class="panel-body">
+		<ul>
+			<?php if ($proces) : ?>
+			<?php
+				$changeLink = "procesy5.php?task=CRM_TESTY__ADD_TEST";
+				if ($stanowisko) $changeLink .= "&stanowisko_id={$stanowisko->ID}";
+			?>
+			<li>
+				Proces: <b class="text-danger">{<?php echo $proces->ID; ?>} <?php echo $proces->DESC; ?></b>
+				<a class="btn btn-xs btn-default"
+						 href="<?php echo $changeLink; ?>"><i class="glyphicon glyphicon-remove"></i> zmień</a>
+			</li>
+			<?php endif; ?>
+			<?php if ($stanowisko) : ?>
+			<?php
+				$changeLink = "procesy5.php?task=CRM_TESTY__ADD_TEST";
+				if ($proces) $changeLink .= "&proces_id={$proces->ID}&test_type=TEORETYCZNY";
+			?>
+			<li>
+				Stanowisko: <b class="text-success">[<?php echo $stanowisko->ID; ?>] <?php echo $stanowisko->DESC; ?></b>
+				<a class="btn btn-xs btn-default"
+						 href="<?php echo $changeLink; ?>"><i class="glyphicon glyphicon-remove"></i> zmień</a>
+			</li>
+			<?php endif; ?>
+		</ul>
+  </div>
+</div>
+<?php
+	}
+
 	function this_CRM_TESTY_proces($proces, $stanowisko) {
 		?>
 <ol class="breadcrumb">
@@ -1072,7 +1125,8 @@ function task_CRM_TESTY__ADD_TEST() {
 	}
 
 	function this_CRM_TESTY_stanowisko($stanowisko) {
-		//TODO: not used?// $idProces = V::get('proces_id', '', $_GET, 'int');
+		$idProces = V::get('proces_id', 0, $_GET, 'int');
+		$testType = V::get('test_type', '', $_GET);
 
 		{// fetch procesy_init for group
 			$procesInitList = array();
@@ -1090,16 +1144,25 @@ function task_CRM_TESTY__ADD_TEST() {
 			}
 		}
 
-		//if ($idProces > 0) {
-		//	if (!array_key_exists($idProces, $procesInitList)) {
-		//		echo'<div class="alert alert-danger">';
-		//			echo "Wrong ID";
-		//		echo'</div>';
-		//	} else {
-		//		this_CRM_TESTY_proces($procesInitList[$idProces], $stanowisko);
-		//		return;
-		//	}
-		//}
+		if ($idProces > 0) {
+			if (!array_key_exists($idProces, $procesInitList)) {
+				?>
+				<div class="alert alert-danger">
+					Brak dostępu do procesu {<?php echo $idProces; ?>}!
+					<br><a class="btn btn-xs btn-primary"
+								 href="procesy5.php?task=CRM_TESTY__ADD_TEST&proces_id=<?php echo $idProces; ?>&test_type=<?php echo $testType; ?>">Wybierz inne stanowisko</a>
+				</div>
+<?php
+			} else {
+				$proces = $procesInitList[$idProces];
+				this_CRM_TESTY_view_selected_args($stanowisko, $proces);
+				$procesInitList = array($idProces => $proces);
+				//this_CRM_TESTY_proces($procesInitList[$idProces], $stanowisko);
+				//return;
+			}
+		} else {
+			this_CRM_TESTY_view_selected_args($stanowisko, null);
+		}
 
 		echo '<h3>' . "Wybierz proces do przetestowania:" . '</h3>';
 		if (empty($procesInitList)) {
@@ -1215,6 +1278,27 @@ function task_CRM_TESTY__ADD_TEST() {
 		$sqlUsrStanowiskaId = implode(',', array_keys($usrStanowiska));
 		$sqlWhereAdd = " and z.`ID` in({$sqlUsrStanowiskaId}) ";
 	}
+	if ($idProces > 0) {
+		$usrStanowiska = User::getGroups();
+		if (empty($usrStanowiska)) {
+			?>
+			<div class="container">
+				<div class="alert alert-danger">
+					<p>Brak przypisanego stanowiska</p>
+				</div>
+			</div>
+			<?php
+			return;
+		}
+		$sqlUsrStanowiskaId = implode(',', array_keys($usrStanowiska));
+		$sqlWhereAdd = " and z.`ID` in (
+				select giv.`ID_GROUP`
+				from `CRM_PROCES_idx_GROUP_to_INIT_VIEW` giv
+				where giv.`ID_PROCES_INIT` = '{$idProces}'
+					and giv.`ID_GROUP` in({$sqlUsrStanowiskaId})
+			)
+		";
+	}
 	$sql = "select z.`ID`, z.`PARENT_ID`, z.`DESC`, z.`OPIS`, z.`TYPE`
 		from `CRM_LISTA_ZASOBOW` as z
 		where
@@ -1227,7 +1311,7 @@ function task_CRM_TESTY__ADD_TEST() {
 		$stanowiska[$r->ID] = $r;
 	}
 
-	$stanowisko_id = V::get('stanowisko_id', '', $_GET, 'int');
+	$stanowisko_id = V::get('stanowisko_id', 0, $_GET, 'int');
 	if ($stanowisko_id > 0) {
 		if (!array_key_exists($stanowisko_id, $stanowiska)) {
 			echo'<div class="box box-red">';
@@ -1245,16 +1329,31 @@ function task_CRM_TESTY__ADD_TEST() {
 	foreach ($stanowiska as $kNr => $r) {
 		$stanowiskaList[$kNr] = "[{$r->ID}] {$r->DESC} {$r->OPIS}";
 	}
+
+	if ($idProces > 0) {
+		$db = DB::getDB();
+		$proces = $db->get_by_id('CRM_PROCES', $idProces);
+		if ($proces && $proces->TYPE == 'PROCES_INIT') {
+			this_CRM_TESTY_view_selected_args(null, $proces);
+		}
+	}
+
 	?>
 	<h3>Wybierz stanowisko do przetestowania:</h3>
 
 	<form class="form-horizontal">
 		<input type="hidden" name="task" value="<?php echo $taskName; ?>" />
+		<?php if ($idProces) : ?>
+			<input type="hidden" name="proces_id" value="<?php echo $idProces; ?>" />
+		<?php endif; ?>
+		<?php if ($testType) : ?>
+			<input type="hidden" name="test_type" value="<?php echo $testType; ?>" />
+		<?php endif; ?>
 		<div class="form-group">
 			<div class="col-sm-10">
 				<select class="form-control"
 								name="stanowisko_id"
-								size="<?php echo (count($stanowiskaList) > 10)? 20 : 10;?>">
+								size="<?php echo (count($stanowiskaList) > 10)? 20 : count($stanowiskaList) + 1;?>">
 					<?php foreach ($stanowiskaList as $kNr => $stanowiskoLabel) : ?>
 						<option value="<?php echo $kNr; ?>"><?php echo $stanowiskoLabel; ?></option>
 					<?php endforeach; ?>
@@ -1270,8 +1369,8 @@ function task_CRM_TESTY__ADD_TEST() {
 	<?php
 	$tree_flat = array();
 	foreach ($stanowiska as $k_id => $r) {
-		$tree_flat [$r->ID] = null;
-		$tree_flat [$r->PARENT_ID] = null;
+		$tree_flat[$r->ID] = null;
+		$tree_flat[$r->PARENT_ID] = null;
 	}	
 
 	$tree_created = TreeHelper::build_tree_flat('CRM_LISTA_ZASOBOW', $tree_flat);

+ 3 - 3
SE/se-lib/ACL.php

@@ -6,7 +6,7 @@ class ACL {
 	/**
 	 * Ids List of Proces Init for given tabel (skip filters)
 	 */
-	public function getTableProcesInitIds($idTable) {// TODO: use in TableAjax
+	public static function getTableProcesInitIds($idTable) {
 		$procesInitList = self::getTableProcesInitList($idTable);
 		return array_keys($procesInitList);
 	}
@@ -14,7 +14,7 @@ class ACL {
 	/**
 	 * List of Proces Init for given table (skip filters)
 	 */
-	public function getTableProcesInitList($idTable) {// TODO: use in TableAjax
+	public static function getTableProcesInitList($idTable) {
 		$tableProcesInitList = array();
 		$sqlIdProcesListSql = <<<SQL
 			select tpv.`ID_PROCES`
@@ -148,7 +148,7 @@ SQL;
 		return $map;
 	}
 
-	public function canGroupViewProces($idGroup, $idProcesInit) {
+	public static function canGroupViewProces($idGroup, $idProcesInit) {
 		$isAllowed = false;
 		$idProcesInit = (int)$idProcesInit;
 		if (!$idProcesInit) return false;

+ 3 - 9
SE/se-lib/ProcesMenu.php

@@ -182,7 +182,7 @@ class ProcesMenu {
 			return;
 		}
 		?>
-		<style type="text/css">
+<style type="text/css">
 .tbl-wyniki-testow {}
  .tbl-wyniki-testow td {vertical-align:top;font-size:small;}
  .tbl-wyniki-testow .proces-box {padding:0 6px;background:#f00;color:#fff;font-weight:bold;font-family:arial;text-decoration:none}
@@ -197,13 +197,7 @@ class ProcesMenu {
  .tbl-wyniki-testow .wynik-NIEDOSTATECZNY .proces-box {background-color:#FC5151;}
  .tbl-wyniki-testow .wynik-IDEALNY .proces-box {background-color:gold;}
  .tbl-wyniki-testow .wynik-NIEAKTUALNY .proces-box {background-color:silver;}
-		</style>
-		<?php
-
-		$userGroups = $this->_acl->fetchGroups();
-		$idZasobowUsera = array_keys($userGroups);
-		$idZasobowUsera = reset($idZasobowUsera);
-		?>
+</style>
 <div class="container" style="margin-top:10px;">
 	<form action="" method="post" class="inline-form">
 		<input type="hidden" name="_CLEAN_CACHE" value="1">
@@ -249,7 +243,7 @@ class ProcesMenu {
 
 					<?php if (!in_array($wynik_teoretyczny, array('DOBRY', 'IDEALNY')) || $wynik_unactual) : ?>
 						<li>
-							<a href="procesy5.php?task=CRM_TESTY__ADD_TEST&function_init=fun_CRM_TESTY_ADD&stanowisko_id=<?php echo $idZasobowUsera; ?>&proces_id=<?php echo $proces_id; ?>&test_type=TEORETYCZNY"> Wykonaj test teoretyczny dla </a>
+							<a href="procesy5.php?task=CRM_TESTY__ADD_TEST&proces_id=<?php echo $proces_id; ?>&test_type=TEORETYCZNY"> Wykonaj test teoretyczny dla </a>
 							<?php echo $proces_id; ?>
 						</li>
 					<?php endif; ?>