Admin League Games View: show various additional information

- mark teams which have requested a game shift
- display amount of time that a game has been shifted
- display time that has passed between game and result proposal, and result proposal and result validation
- mark games with incomplete player data
This commit is contained in:
Wieland Hagen
2025-05-04 20:59:48 +02:00
parent a6fe497cad
commit 82c0f3a58b
4 changed files with 85 additions and 5 deletions
@@ -8881,7 +8881,56 @@ function adminBegegnungen(): void
$query = "SELECT t1.*, t2.teamname AS heim_name, t3.teamname AS gast_name, t4.unbestaetigtes_ergebnis_id, t4.zwischenergebnis, t2.nichtraucherschutz AS heim_nichtraucherschutz, t3.nichtraucherschutz AS gast_nichtraucherschutz," $query = "SELECT t1.*, t2.teamname AS heim_name, t3.teamname AS gast_name, t4.unbestaetigtes_ergebnis_id, t4.zwischenergebnis, t2.nichtraucherschutz AS heim_nichtraucherschutz, t3.nichtraucherschutz AS gast_nichtraucherschutz,"
. "\n EXISTS(SELECT * FROM #__sportsmanager_begegnung_historie USE INDEX (begegnung_id) WHERE #__sportsmanager_begegnung_historie.begegnung_id = t1.begegnung_id AND aktion IN (1, 5)) AS verlegt," . "\n EXISTS(SELECT * FROM #__sportsmanager_begegnung_historie USE INDEX (begegnung_id) WHERE #__sportsmanager_begegnung_historie.begegnung_id = t1.begegnung_id AND aktion IN (1, 5)) AS verlegt,"
. "\n (SELECT IF(#__sportsmanager_begegnung_historie.aktion NOT IN (0, 3, 4), NULL, #__sportsmanager_begegnung_historie.eingetragen) AS eingetragen FROM #__sportsmanager_begegnung_historie USE INDEX (begegnung_id) WHERE #__sportsmanager_begegnung_historie.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen" . "\n (SELECT IF(#__sportsmanager_begegnung_historie.aktion NOT IN (0, 3, 4), NULL, #__sportsmanager_begegnung_historie.eingetragen) AS eingetragen FROM #__sportsmanager_begegnung_historie USE INDEX (begegnung_id) WHERE #__sportsmanager_begegnung_historie.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen,"
. "\n UNIX_TIMESTAMP(t1.zeitpunkt) AS termin_spiel,"
. "\n ("
. "\n SELECT UNIX_TIMESTAMP(zeitpunkt)"
. "\n FROM #__sportsmanager_begegnung_historie"
. "\n WHERE begegnung_id = t1.begegnung_id AND aktion = 2"
. "\n ORDER BY begegnung_historie_id ASC"
. "\n LIMIT 1"
. "\n ) AS termin_original,"
. "\n ("
. "\n SELECT team_id"
. "\n FROM #__sportsmanager_begegnung_historie"
. "\n WHERE begegnung_id = t1.begegnung_id AND aktion IN (0, 3)"
. "\n ORDER BY begegnung_historie_id ASC"
. "\n LIMIT 1"
. "\n ) AS verantwortliches_team,"
. "\n ("
. "\n SELECT UNIX_TIMESTAMP(zeitpunkt)"
. "\n FROM #__sportsmanager_begegnung_historie"
. "\n WHERE begegnung_id = t1.begegnung_id AND aktion = 1"
. "\n ORDER BY begegnung_historie_id ASC"
. "\n LIMIT 1"
. "\n ) AS termin_akzeptiert,"
. "\n ("
. "\n SELECT UNIX_TIMESTAMP(eingetragen)"
. "\n FROM #__sportsmanager_begegnung_historie"
. "\n WHERE begegnung_id = t1.begegnung_id AND aktion = 6"
. "\n ORDER BY begegnung_historie_id ASC"
. "\n LIMIT 1"
. "\n ) AS ergebnis_vorgeschlagen,"
. "\n ("
. "\n SELECT UNIX_TIMESTAMP(eingetragen)"
. "\n FROM #__sportsmanager_begegnung_historie"
. "\n WHERE begegnung_id = t1.begegnung_id AND aktion = 7"
. "\n ORDER BY begegnung_historie_id ASC"
. "\n LIMIT 1"
. "\n ) AS ergebnis_akzeptiert,"
. "\n ("
. "\n SELECT COUNT(*) FROM #__sportsmanager_teamspiel"
. "\n WHERE begegnung_id = t1.begegnung_id"
. "\n AND (heim_spieler_1_id = 0 OR heim_spieler_2_id = 0 OR gast_spieler_1_id = 0 OR gast_spieler_2_id = 0)"
. "\n ) AS fehlende_spieler"
. "\n FROM #__sportsmanager_begegnung AS t1" . "\n FROM #__sportsmanager_begegnung AS t1"
. "\n LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id" . "\n LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id"
. "\n LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id" . "\n LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id"
@@ -12,6 +12,27 @@ defined('_JEXEC') or die('Restricted access');
require_once JPATH_SITE . '/components/com_sportsmanager/views/sportsmanager/view_tools.php'; require_once JPATH_SITE . '/components/com_sportsmanager/views/sportsmanager/view_tools.php';
require_once JPATH_SITE . '/components/com_sportsmanager/util/image.php'; require_once JPATH_SITE . '/components/com_sportsmanager/util/image.php';
function formatTimediff( $timestamp1, $timestamp2, $verbose ) {
if (empty($timestamp1) || empty($timestamp2)) {
return "";
} else {
$hourdiff = ($timestamp2 - $timestamp1) / 3600.0;
if (abs($hourdiff) > 23) {
return sprintf($verbose ? "%+d d" : "%dd", round($hourdiff / 24.0));
} else {
return "-";
}
}
}
function formatTeamName( $team_name, $team_id, $highlight_team_id ) {
if ($team_id == $highlight_team_id) {
return "<b><i>" . htmlentities_utf8($team_name) . "</i></b>";
} else {
return htmlentities_utf8($team_name);
}
}
class HTML_sportsmanager_admin class HTML_sportsmanager_admin
{ {
static function adminUebersicht($veranstaltungen, $spielerstatistiken, $turniere, $ranglisten, $individualwettbewerbe, $statistik, $saisons, $filter_saison_id, $externe_datenbank): void static function adminUebersicht($veranstaltungen, $spielerstatistiken, $turniere, $ranglisten, $individualwettbewerbe, $statistik, $saisons, $filter_saison_id, $externe_datenbank): void
@@ -8605,6 +8626,7 @@ class HTML_sportsmanager_admin
<strong><?php echo $modus->punktetyp == 0 ? Text::_('COM_SPORTSMANAGER_GOALS') : Text::_('COM_SPORTSMANAGER_SETS'); ?></strong> <strong><?php echo $modus->punktetyp == 0 ? Text::_('COM_SPORTSMANAGER_GOALS') : Text::_('COM_SPORTSMANAGER_SETS'); ?></strong>
</th> </th>
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_GAME_POINTS'); ?></strong></th> <th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_GAME_POINTS'); ?></strong></th>
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_GAME_RESULT_DELAYS');?></strong></th>
</tr> </tr>
<?php <?php
@@ -8637,7 +8659,7 @@ class HTML_sportsmanager_admin
if ($row->verlegung_eingetragen != null) if ($row->verlegung_eingetragen != null)
echo " **"; echo " **";
else if ($row->verlegt != 0) else if ($row->verlegt != 0)
echo " *"; echo " (" . formatTimediff($row->termin_original, $row->termin_akzeptiert, true) . ")";
if ($row->nichtraucherschutz == 0 && ((($row->heim_nichtraucherschutz == 1 || $row->heim_nichtraucherschutz == 2 || $row->heim_nichtraucherschutz == 3) && ($row->gast_nichtraucherschutz == 3 || $row->gast_nichtraucherschutz == 7 || $row->gast_nichtraucherschutz == 8)) || (($row->heim_nichtraucherschutz == 5 || $row->heim_nichtraucherschutz == 6 || $row->heim_nichtraucherschutz == 8) && ($row->gast_nichtraucherschutz == 1 || $row->gast_nichtraucherschutz == 4 || $row->gast_nichtraucherschutz == 5)))) if ($row->nichtraucherschutz == 0 && ((($row->heim_nichtraucherschutz == 1 || $row->heim_nichtraucherschutz == 2 || $row->heim_nichtraucherschutz == 3) && ($row->gast_nichtraucherschutz == 3 || $row->gast_nichtraucherschutz == 7 || $row->gast_nichtraucherschutz == 8)) || (($row->heim_nichtraucherschutz == 5 || $row->heim_nichtraucherschutz == 6 || $row->heim_nichtraucherschutz == 8) && ($row->gast_nichtraucherschutz == 1 || $row->gast_nichtraucherschutz == 4 || $row->gast_nichtraucherschutz == 5))))
echo " !"; echo " !";
?> ?>
@@ -8647,13 +8669,20 @@ class HTML_sportsmanager_admin
echo "<br/><small>" . Text::_('COM_SPORTSMANAGER_MATCH_TABLE') . ": " . htmlentities_utf8($row->tisch) . "</small>"; echo "<br/><small>" . Text::_('COM_SPORTSMANAGER_MATCH_TABLE') . ": " . htmlentities_utf8($row->tisch) . "</small>";
?> ?>
</td> </td>
<td nowrap><?php echo htmlentities_utf8($row->heim_name); ?></td> <td nowrap><?php echo formatTeamName($row->heim_name, $row->heim_team_id, $row->verantwortliches_team); ?></td>
<td nowrap><?php echo htmlentities_utf8($row->gast_name); ?></td> <td nowrap><?php echo formatTeamName($row->gast_name, $row->gast_team_id, $row->verantwortliches_team); ?></td>
<td nowrap style="text-align: center"><a <td nowrap style="text-align: center"><a
href="<?php echo SportsManagerURL('&task=admin_begegnung_spielplan_edit&veranstaltungid=' . $veranstaltung->veranstaltung_id . '&id=' . $row->begegnung_id); ?>"><?php if ($ergebnis_vorhanden) echo $row->heim_punkte . " : " . $row->gast_punkte; else echo "_ : _" ?></a><?php if ($row->unbestaetigtes_ergebnis_id != null) echo "<br /><small>" . ($row->zwischenergebnis ? "live" : "unbest&auml;tigt") . "</small>"; ?> href="<?php echo SportsManagerURL('&task=admin_begegnung_spielplan_edit&veranstaltungid=' . $veranstaltung->veranstaltung_id . '&id=' . $row->begegnung_id); ?>"><?php if ($ergebnis_vorhanden) echo $row->heim_punkte . " : " . $row->gast_punkte; else echo "_ : _" ?></a><?php if ($row->unbestaetigtes_ergebnis_id != null) echo "<br /><small>" . ($row->zwischenergebnis ? "live" : "unbest&auml;tigt") . "</small>"; else if ($row->fehlende_spieler > 0) echo " (*)"; ?>
</td> </td>
<td nowrap <td nowrap
style="text-align: center"><?php if ($ergebnis_vorhanden) echo $row->heim_spielpunkte . " : " . $row->gast_spielpunkte; else echo "_ : _" ?><?php if ($row->unbestaetigtes_ergebnis_id != null) echo "<br /><small>" . ($row->zwischenergebnis ? "live" : "unbest&auml;tigt") . "</small>"; ?></td> style="text-align: center"><?php if ($ergebnis_vorhanden) echo $row->heim_spielpunkte . " : " . $row->gast_spielpunkte; else echo "_ : _" ?><?php if ($row->unbestaetigtes_ergebnis_id != null) echo "<br /><small>" . ($row->zwischenergebnis ? "live" : "unbest&auml;tigt") . "</small>"; ?></td>
<td nowrap align="center">
<?php echo
formatTimediff($row->termin_spiel, $row->ergebnis_vorgeschlagen, false)
. " / "
. formatTimediff($row->ergebnis_vorgeschlagen, $row->ergebnis_akzeptiert, false);
?>
</td>
<td nowrap><small><a <td nowrap><small><a
href="<?php echo SportsManagerURL('&task=admin_begegnung_heimtausch&veranstaltungid=' . $veranstaltung->veranstaltung_id . '&id=' . $row->begegnung_id); ?>"><?php echo Text::_('COM_SPORTSMANAGER_HOME_EXCHANGE'); ?></a></small> href="<?php echo SportsManagerURL('&task=admin_begegnung_heimtausch&veranstaltungid=' . $veranstaltung->veranstaltung_id . '&id=' . $row->begegnung_id); ?>"><?php echo Text::_('COM_SPORTSMANAGER_HOME_EXCHANGE'); ?></a></small>
</td> </td>
@@ -990,3 +990,4 @@ COM_SPORTSMANAGER_ARIA_LABEL_LASTNAME="Nachname"
COM_SPORTSMANAGER_ARIA_LABEL_FIRSTNAME="Vorname" COM_SPORTSMANAGER_ARIA_LABEL_FIRSTNAME="Vorname"
COM_SPORTSMANAGER_ARIA_LABEL_CLUB="Verein" COM_SPORTSMANAGER_ARIA_LABEL_CLUB="Verein"
COM_SPORTSMANAGER_NUM_REQUESTED_SHIFTS="Verschiebungen" COM_SPORTSMANAGER_NUM_REQUESTED_SHIFTS="Verschiebungen"
COM_SPORTSMANAGER_GAME_RESULT_DELAYS="Verzögerung"
@@ -988,3 +988,4 @@ COM_SPORTSMANAGER_ARIA_LABEL_LASTNAME="Lastname"
COM_SPORTSMANAGER_ARIA_LABEL_FIRSTNAME="Firstname" COM_SPORTSMANAGER_ARIA_LABEL_FIRSTNAME="Firstname"
COM_SPORTSMANAGER_ARIA_LABEL_CLUB="Club" COM_SPORTSMANAGER_ARIA_LABEL_CLUB="Club"
COM_SPORTSMANAGER_NUM_REQUESTED_SHIFTS="Shifts" COM_SPORTSMANAGER_NUM_REQUESTED_SHIFTS="Shifts"
COM_SPORTSMANAGER_GAME_RESULT_DELAYS="Delay"