show users in presence list based on trt array

This commit is contained in:
Ricsi
2019-10-03 13:46:37 +02:00
parent fe146cf9a5
commit 7717795fb5
8 changed files with 100 additions and 6 deletions

View File

@@ -455,7 +455,27 @@ class user_kid extends user_parent {
if (!isset($_user_value_array['uk_is_active'])) $_user_value_array['uk_is_active'] = 0;
if (!isset($_user_value_array['uk_lease'])) $_user_value_array['uk_lease'] = 0;
return $sql->insert_into('user_kid', $_user_value_array);
$trt_ids = array();
if (isset($_user_value_array['level']) && is_array($_user_value_array['level'])) {
foreach ($_user_value_array['level'] as $key => $trt_id) {
$trt_ids[] = $trt_id;
}
unset($_user_value_array['level']);
}
$kidId = $sql->insert_into('user_kid', $_user_value_array);
if (!empty($trt_ids)) {
foreach ($trt_ids as $key => $trt_id) {
$sql->insert_into('user_kid_training_type', array(
'uktt_user_kid_uk_id' => $kidId,
'uktt_training_type_tt_id' => $trt_id,
)
);
}
}
return $kidId;
}
public static function update_user($_user_value_array, $_user_id) {
@@ -535,6 +555,25 @@ class user_kid extends user_parent {
if (!isset($_user_value_array['uk_balance_expires'])) $_user_value_array['uk_balance_expires'] = 0;
if (!isset($_user_value_array['uk_lease'])) $_user_value_array['uk_lease'] = 0;
$trt_ids = array();
if (isset($_user_value_array['level']) && is_array($_user_value_array['level'])) {
foreach ($_user_value_array['level'] as $key => $trt_id) {
$trt_ids[] = $trt_id;
}
unset($_user_value_array['level']);
}
$sql->execute_query("DELETE FROM user_kid_training_type WHERE uktt_user_kid_uk_id = {$_user_id}");
if (!empty($trt_ids)) {
foreach ($trt_ids as $key => $trt_id) {
$sql->insert_into('user_kid_training_type', array(
'uktt_user_kid_uk_id' => $_user_id,
'uktt_training_type_tt_id' => $trt_id,
)
);
}
}
$sql->update_table('user_kid', $_user_value_array, array('uk_id' => $_user_id));
}
@@ -757,5 +796,11 @@ class user_kid extends user_parent {
)
);
}
public static function has_training_type($_uk_id, $_trt_id) {
global $sql;
return $sql->num_of_rows("SELECT DISTINCT uktt_id FROM user_kid_training_type WHERE uktt_user_kid_uk_id = {$_uk_id} AND uktt_training_type_tt_id = {$_trt_id};");
}
}
?>

View File

@@ -32,11 +32,15 @@ switch ($this->get_id()) {
$region_query = "SELECT * FROM region WHERE reg_deleted = 0 ORDER BY reg_name ASC;";
$region_assoc_array = $sql->assoc_array($region_query);
//training type array
$tt_assoc_array = $sql->assoc_array("SELECT * FROM training_type WHERE trt_deleted = 0 ORDER by trt_name ASC;");
$smarty->assign('region_assoc_array', $region_assoc_array);
$smarty->assign('shirt_size_assoc_array', $shirt_size_assoc_array);
$smarty->assign('school_assoc_array', $schools);
$smarty->assign('school_city_assoc_array', $school_cities);
$smarty->assign('parent_assoc_array', $parent_assoc_array);
$smarty->assign('tt_assoc_array', $tt_assoc_array);
$smarty->assign('today', date("Y-m-d"));
$smarty->display('user_data_create.tpl');

View File

@@ -34,6 +34,10 @@ if ($this->is_id()) {
//REGION ARRAY
$region_query = "SELECT * FROM region WHERE reg_deleted = 0 ORDER BY reg_name ASC;";
$region_assoc_array = $sql->assoc_array($region_query);
//training type array
$tt_assoc_array = $sql->assoc_array("SELECT * FROM training_type WHERE trt_deleted = 0 ORDER by trt_name ASC;");
//smarty thingz
$smarty->assign('school_assoc_array', $schools);
$smarty->assign('school_city_assoc_array', $school_cities);
@@ -41,6 +45,7 @@ if ($this->is_id()) {
$smarty->assign('user_data', $user_data_assoc_array[0]);
$smarty->assign('shirt_size_assoc_array', $shirt_size_assoc_array);
$smarty->assign('parent_assoc_array', $parent_assoc_array);
$smarty->assign('tt_assoc_array', $tt_assoc_array);
$smarty->display('user_data_'.$tpl.'.tpl');
}
else {

View File

@@ -72,6 +72,7 @@ if ($this->is_id()) {
$exeptions[] = $user->get_uk_id();
}
/*
$rest_user_query = "
SELECT
*
@@ -92,6 +93,18 @@ if ($this->is_id()) {
GROUP BY uk_id
ORDER BY uk_name;
";
*/
$rest_user_query = "
SELECT
DISTINCT uktt_user_kid_uk_id uk_id
FROM
user_kid
JOIN
user_kid_training_type ON uktt_user_kid_uk_id = uk_id
WHERE
uktt_training_type_tt_id = {$training->get_tr_training_type_trt_id()};
";
//var_dump($rest_user_query);
$rest_user_assoc_array = $sql->assoc_array($rest_user_query);
foreach ($rest_user_assoc_array as $rest_user) {

View File

@@ -83,7 +83,7 @@ if (isset($_POST['action'])) {
unset($_POST['uk_id']);
user_kid::update_user($_POST, $uid);
log::register('update_member', $uid);
header("Location: /admin/members");
header("Location: /admin/members/{$uid}");
break;
default:

17
queries/20191002_uktt.sql Normal file
View File

@@ -0,0 +1,17 @@
CREATE TABLE `user_kid_training_type` (
`uktt_id` INT NOT NULL AUTO_INCREMENT,
`uktt_user_kid_uk_id` INT NOT NULL,
`uktt_training_type_tt_id` INT NOT NULL,
PRIMARY KEY (`uktt_id`),
INDEX `fk_user_kid_training_type_1_idx` (`uktt_user_kid_uk_id` ASC),
INDEX `fk_user_kid_training_type_2_idx` (`uktt_training_type_tt_id` ASC),
CONSTRAINT `fk_user_kid_training_type_1`
FOREIGN KEY (`uktt_user_kid_uk_id`)
REFERENCES `user_kid` (`uk_id`)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `fk_user_kid_training_type_2`
FOREIGN KEY (`uktt_training_type_tt_id`)
REFERENCES `training_type` (`trt_id`)
ON DELETE CASCADE
ON UPDATE CASCADE);

View File

@@ -86,8 +86,13 @@
</div>
<div>
<label class="desc" for="uk_level">Szint:</label>
<div><input type="text" name="uk_level" id="uk_level"></div>
<label for="level">Szint:</label>
{foreach $tt_assoc_array as $tt}
<div>
<input type="checkbox" name="level[]" value="{$tt['trt_id']}">
<span style="position: relative; bottom: 3px;">{$tt['trt_name']}</span>
</div>
{/foreach}
</div>

View File

@@ -121,8 +121,13 @@
</div>
<div>
<label class="desc" for="uk_level">Szint:</label>
<div><input type="text" name="uk_level" id="uk_level" value="{$user_data.uk_level}"></div>
<label for="level">Szint:</label>
{foreach $tt_assoc_array as $tt}
<div>
<input type="checkbox" name="level[]" value="{$tt['trt_id']}"{if user_kid::has_training_type($user_data.uk_id, $tt['trt_id'])} checked{/if}>
<span style="position: relative; bottom: 3px;">{$tt['trt_name']}</span>
</div>
{/foreach}
</div>