Selaa lähdekoodia

Testy ocena BRAK_PYTAN (-1) jeśli brakuje pytań

Piotr Labudda 11 vuotta sitten
vanhempi
commit
4eac8218e6
3 muutettua tiedostoa jossa 21 lisäystä ja 15 poistoa
  1. 1 1
      SE/VERSION
  2. 13 14
      SE/procesy/testy.php
  3. 7 0
      SE/se-lib/ProcesMenu.php

+ 1 - 1
SE/VERSION

@@ -1 +1 @@
-3.9.7.4
+3.9.7.5

+ 13 - 14
SE/procesy/testy.php

@@ -321,17 +321,16 @@ function fun_CRM_TEST_EDIT() {
 			$oceny_id = array();// [ID_PYT] = {ID,ID_PYTANIE,ID_PROCES,ODPOWIEDZ,ODP_0/1/2/3/4,OCENA}
 			$oceny_empty = array();// zazanczone oceny ($_POST), ale brak rekordow w tabeli odpowiedzi - user not answer
 			$pytania_empty = array();// j/w
-$ocena_srednia = 0;// TODO: RMME
 			$avg_odpowiedzi_pyt = array();// wszystkie odpowiedzi [ID_PROCES][ID_PYT] = OCENA
-			Lib::loadClass( 'ProcesTestyHelper' );
-			$odpowiedzi = ProcesTestyHelper::get_odpowiedzi( $test_obj->ID );
+			Lib::loadClass('ProcesTestyHelper');
+			$odpowiedzi = ProcesTestyHelper::get_odpowiedzi($test_obj->ID);
 
 			$pytania_id = array();
 			foreach ($odpowiedzi as $k_id_proces => $v_odp) {
 				foreach ($v_odp as $k_id_pyt => $v_pyt) {
 					$oceny_id[$k_id_pyt] = $v_pyt;
-				}//end foreach
-			}//end foreach
+				}
+			}
 
 			// zaznaczone oceny
 			if (!empty($_POST)) {
@@ -339,21 +338,17 @@ $ocena_srednia = 0;// TODO: RMME
 				foreach ($_POST as $k => $v) {
 					if (substr($k, 0, strlen($req_prefix)) == $req_prefix) {
 						$id_pyt = substr($k, strlen($req_prefix));
-						$oceny[ $id_pyt ] = $v;
+						$oceny[$id_pyt] = $v;
 						if (!array_key_exists($id_pyt, $oceny_id)) {
-							$oceny_empty [$id_pyt] = true;
+							$oceny_empty[$id_pyt] = true;
 						}
 					}
-				}//end foreach
+				}
 			}
 
-//echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;">oceny: ';print_r($oceny);echo'</pre>';
-//echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;">oceny_id: ';print_r($oceny_id);echo'</pre>';
 			// dla kazdego procesu obliczyc srednia na podstawie ocen odpowiedzi na pytania
-//echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;">oceny_empty: ';print_r($oceny_empty);echo'</pre>';
 			if (!empty($oceny_empty)) {
-				$pytania_empty = ProcesTestyHelper::get_pytania_by_id( array_keys($oceny_empty) );
-//echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;">pytania_empty: ';print_r($pytania_empty);echo'</pre>';
+				$pytania_empty = ProcesTestyHelper::get_pytania_by_id(array_keys($oceny_empty));
 			}
 
 			foreach ($oceny as $k_id_pyt => $v_odp) {
@@ -382,7 +377,7 @@ $ocena_srednia = 0;// TODO: RMME
 				else {
 					// TODO: error unknown!
 				}
-			}//end foreach
+			}
 
 			$ocena_avg = 0;
 			// oblicz srednia dla kazdego procesu
@@ -412,6 +407,10 @@ $ocena_srednia = 0;// TODO: RMME
 				}
 			}
 
+			if (empty($avg_odpowiedzi_pyt) && $ocena_avg == 0) {
+				$ocena_avg = -1;// Brak pytań
+			}
+
 			$sql_obj = new stdClass();
 			$sql_obj->ID = $test_obj->ID;
 			$sql_obj->A_STATUS = 'OFF_HARD';// test oceniony

+ 7 - 0
SE/se-lib/ProcesMenu.php

@@ -191,6 +191,7 @@ class ProcesMenu {
 
  .tbl-wyniki-testow .wynik-cell {padding:0 3px;background-color:#f7f7f7;}
  .tbl-wyniki-testow .wynik-BRAK_TESTU .proces-box {background-color:silver;}
+ .tbl-wyniki-testow .wynik-BRAK_PYTAN .proces-box {background-color:#8F8F8F;}
  .tbl-wyniki-testow .wynik-DOBRY .proces-box {background-color:lightgreen;}
  .tbl-wyniki-testow .wynik-DOSTATECZNY .proces-box {background-color:#FFFFB1; color:#777;}
  .tbl-wyniki-testow .wynik-NIEDOSTATECZNY .proces-box {background-color:#FC5151;}
@@ -209,6 +210,9 @@ class ProcesMenu {
 		<?php
 			$wynik_teoretyczny = $this->get_ocena_testu($proces_id, 'TEORETYCZNY');
 			$wynik_teoretyczny_value = $this->get_ocena_testu_value($proces_id, 'TEORETYCZNY');
+			if ($wynik_teoretyczny == 'BRAK_PYTAN') {
+				$wynik_teoretyczny_value = '';
+			}
 			$wynik_praktyczny = $this->get_ocena_testu($proces_id, 'PRAKTYCZNY');
 			$wynik_unactual = $this->isTestUnactual($proces_id, 'TEORETYCZNY');
 		?>
@@ -725,6 +729,9 @@ class ProcesMenu {
 		if (!$ocena) {
 			return 'BRAK_TESTU';
 		}
+		else if ($ocena == -1) {
+			return 'BRAK_PYTAN';
+		}
 		else if ($ocena == 3) {
 			return 'IDEALNY';
 		}