Sync: Inhalte aus origin/main in develop übernommen; .gitea und .github unverändert belassen (falls vorhanden).
All checks were successful
Deploy Workshop-Wahlen (DEV / PROD) / deploy (push) Successful in 13s

This commit is contained in:
ProgrammGamer
2026-01-30 21:30:23 +01:00
parent 64546f3b62
commit 7fc12ba7bb
5 changed files with 84 additions and 99 deletions

View File

@@ -8,12 +8,12 @@ function kc_install_tables() {
global $wpdb;
$prefix = $wpdb->prefix;
$charset_collate = $wpdb->get_charset_collate();
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
// --- Tabellen-Definitionen ---
// Tables definitions
$tables_sql = [];
// Wahl-Tabelle
$tables_sql[] = "CREATE TABLE {$prefix}kc_wahlen (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
name varchar(191) NOT NULL,
@@ -26,7 +26,6 @@ function kc_install_tables() {
PRIMARY KEY (id)
) $charset_collate";
// Workshop-Tabelle
$tables_sql[] = "CREATE TABLE {$prefix}kc_workshops (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
name varchar(191) NOT NULL,
@@ -36,7 +35,6 @@ function kc_install_tables() {
PRIMARY KEY (id)
) $charset_collate";
// Teamer-Tabelle
$tables_sql[] = "CREATE TABLE {$prefix}kc_teamer (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
vorname varchar(191) DEFAULT NULL,
@@ -44,7 +42,6 @@ function kc_install_tables() {
PRIMARY KEY (id)
) $charset_collate";
// Teilnehmer-Tabelle
$tables_sql[] = "CREATE TABLE {$prefix}kc_teilnehmer (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
vorname varchar(191) DEFAULT NULL,
@@ -54,11 +51,10 @@ function kc_install_tables() {
wunsch1 bigint(20) unsigned DEFAULT NULL,
wunsch2 bigint(20) unsigned DEFAULT NULL,
wunsch3 bigint(20) unsigned DEFAULT NULL,
deleted tinyint(1) NOT NULL DEFAULT 0,
deleted tinyint(1) NOT NULL DEFAULT 0,
PRIMARY KEY (id)
) $charset_collate";
// Zuordnungstabelle Wahl <-> Workshops
$tables_sql[] = "CREATE TABLE {$prefix}kc_wahl_workshops (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
wahl_id bigint(20) unsigned NOT NULL DEFAULT 0,
@@ -67,7 +63,6 @@ function kc_install_tables() {
PRIMARY KEY (id)
) $charset_collate";
// Manuelle (Force-)Zuteilungen
$tables_sql[] = "CREATE TABLE {$prefix}kc_force_zuteilung (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
teilnehmer_id bigint(20) unsigned NOT NULL DEFAULT 0,
@@ -78,7 +73,6 @@ function kc_install_tables() {
PRIMARY KEY (id)
) $charset_collate";
// Ergebnis-Zuteilungen
$tables_sql[] = "CREATE TABLE {$prefix}kc_zuteilung (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
teilnehmer_id bigint(20) unsigned NOT NULL DEFAULT 0,
@@ -90,27 +84,26 @@ function kc_install_tables() {
wunsch_rang tinyint DEFAULT NULL,
PRIMARY KEY (id)
) $charset_collate";
$tables_sql[] = "CREATE TABLE {$prefix}kc_workshop_teamer (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
workshop_id bigint(20) unsigned DEFAULT NULL,
teamer_id bigint(20) unsigned DEFAULT NULL,
PRIMARY KEY (id)
) $charset_collate";
// Zuordnung Workshop <-> Teamer
$tables_sql[] = "CREATE TABLE {$prefix}kc_workshop_teamer (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
workshop_id bigint(20) unsigned DEFAULT NULL,
teamer_id bigint(20) unsigned DEFAULT NULL,
PRIMARY KEY (id)
) $charset_collate";
// Tabellen anlegen
foreach ($tables_sql as $sql) {
dbDelta($sql);
}
// Migration: min_teilnehmer nachziehen, falls bei Update nötig
// Post-creation migration guard: ensure min_teilnehmer exists for older installs
$col = $wpdb->get_var($wpdb->prepare("SHOW COLUMNS FROM {$prefix}kc_workshops LIKE %s", 'min_teilnehmer'));
if (empty($col)) {
// try to add the column (no-op on newer installs)
$wpdb->query("ALTER TABLE {$prefix}kc_workshops ADD COLUMN min_teilnehmer INT NOT NULL DEFAULT 0");
}
// Plugin-Version speichern
// Optionally store plugin version
add_option('kc_workshopwahl_db_version', '1.0');
}