Beide Module wurden aus einem anderen Kundenprojekt kopiert und bereinigt: Knowledgecenter: - Bild-Cache (1.985 Dateien) geleert, Ordnerstruktur mit .gitkeep behalten - Files-Gallery-Lizenzschlüssel entfernt (config.php) - Kundenspezifische Kategorien gelöscht: Teil I/II/III QM-Struktur, nummerierte QM-Kapitel, Gremien (Präsidium/Finanzausschuss/Landesausschuss), Sitzungsservice-Serie, Protokoll-Abteilungen, Testeinträge - 56 generische Kategorien bleiben (Downloads, Onboarding, Personalthemen …) Tasks: - Alle Betriebsdaten gelöscht (114 Tasks, 914 Submissions, 579 Assignments) - Task-Definitionen und Verlinkungen geleert - Kategoriestruktur bleibt (Allgemein, IT, Personal, Buchhaltung …) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
108 lines
3.0 KiB
PHP
108 lines
3.0 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
class TaskCertConstants
|
|
{
|
|
public const ASSIGNMENT_STATUSES = [
|
|
'open', 'in_progress', 'approval_pending', 'overdue', 'completed', 'rejected', 'expired',
|
|
];
|
|
|
|
public const COMPLETED_STATUSES = ['completed', 'expired'];
|
|
|
|
public const SUBMISSION_STATUSES = [
|
|
'submitted', 'auto_passed', 'awaiting_approval', 'approved', 'rejected',
|
|
];
|
|
|
|
public const METHOD_TYPES = [
|
|
'knowledge_read', 'form_submit', 'quiz', 'manual_approval',
|
|
];
|
|
|
|
public const FIELD_TYPES = [
|
|
'text', 'textarea', 'number', 'date', 'select', 'checkbox', 'radio', 'file',
|
|
];
|
|
|
|
public const CERTIFICATE_STATUSES = ['valid', 'expired', 'revoked'];
|
|
|
|
public static function assignmentStatusLabels(): array
|
|
{
|
|
return [
|
|
'open' => 'Offen',
|
|
'in_progress' => 'In Bearbeitung',
|
|
'approval_pending' => 'Warten auf Freigabe',
|
|
'overdue' => 'Überfällig',
|
|
'completed' => 'Abgeschlossen',
|
|
'rejected' => 'Bitte erneut einreichen',
|
|
'expired' => 'Abgelaufen',
|
|
];
|
|
}
|
|
|
|
public static function submissionStatusLabels(): array
|
|
{
|
|
return [
|
|
'submitted' => 'Eingereicht',
|
|
'auto_passed' => 'Erledigt',
|
|
'awaiting_approval' => 'Wartet auf Freigabe',
|
|
'approved' => 'Freigegeben',
|
|
'rejected' => 'Abgelehnt',
|
|
];
|
|
}
|
|
|
|
public static function methodLabels(): array
|
|
{
|
|
return [
|
|
'knowledge_read' => 'Wissensbeiträge lesen',
|
|
'form_submit' => 'Formular ausfüllen',
|
|
'quiz' => 'Quiz beantworten',
|
|
'manual_approval' => 'Antrag auf Freigabe',
|
|
];
|
|
}
|
|
|
|
public static function certificateStatusLabels(): array
|
|
{
|
|
return [
|
|
'valid' => 'Gültig',
|
|
'expired' => 'Abgelaufen',
|
|
'revoked' => 'Widerrufen',
|
|
];
|
|
}
|
|
|
|
public static function fieldTypeLabels(): array
|
|
{
|
|
return [
|
|
'text' => 'Text',
|
|
'textarea' => 'Textbereich',
|
|
'number' => 'Zahl',
|
|
'date' => 'Datum',
|
|
'select' => 'Auswahl',
|
|
'checkbox' => 'Checkbox',
|
|
'radio' => 'Radio',
|
|
'file' => 'Datei-Upload',
|
|
];
|
|
}
|
|
|
|
public static function isValidAssignmentStatus(string $status): bool
|
|
{
|
|
return in_array($status, self::ASSIGNMENT_STATUSES, true);
|
|
}
|
|
|
|
public static function isValidSubmissionStatus(string $status): bool
|
|
{
|
|
return in_array($status, self::SUBMISSION_STATUSES, true);
|
|
}
|
|
|
|
public static function isValidMethodType(string $type): bool
|
|
{
|
|
return in_array($type, self::METHOD_TYPES, true);
|
|
}
|
|
|
|
public static function isValidFieldType(string $type): bool
|
|
{
|
|
return in_array($type, self::FIELD_TYPES, true);
|
|
}
|
|
|
|
public static function isValidCertificateStatus(string $status): bool
|
|
{
|
|
return in_array($status, self::CERTIFICATE_STATUSES, true);
|
|
}
|
|
}
|