Files
awo-hamburg-intranet/module/tasks/lib/TaskCertConstants.php
Moritz Weinmann 743476f64a Module tasks + knowledgecenter_update aus Kundenprojekt übernehmen (bereinigt)
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>
2026-06-22 09:20:02 +02:00

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);
}
}