added API VICON integration for updating admission plans via admin panel (queued).

Updated exams and contests display on programs/show page.
Added relevant enums for admission plans.
This commit is contained in:
F4ilji
2025-04-09 15:58:29 +05:00
parent 7793d078e9
commit 88e729aa87
19 changed files with 684 additions and 100 deletions
+44 -8
View File
@@ -7,13 +7,31 @@ use Filament\Support\Contracts\HasColor;
enum BudgetEducation: int implements HasLabel, HasColor
{
case budget_quantity_position = 1;
case non_budget_quantity_position = 2;
case MAIN_QUOTA = 1;
case TARGET_QUOTA = 2;
case SPECIAL_QUOTA = 3;
case PAID_EDUCATION = 4;
case OTHER_SOURCES = 5;
case SEPARATE_QUOTA = 6;
case COMBINED_QUOTA_ALL = 7;
case COMBINED_QUOTA_TARGET_SPECIAL = 8;
case COMBINED_QUOTA_TARGET_SEPARATE = 9;
case COMBINED_QUOTA_SPECIAL_SEPARATE = 10;
case DETAILED_TARGET_QUOTA = 11;
public static function fromName(string $name): ?self {
return match ($name) {
'budget_quantity_position' => self::budget_quantity_position,
'non_budget_quantity_position' => self::non_budget_quantity_position,
'MAIN_QUOTA' => self::MAIN_QUOTA,
'TARGET_QUOTA' => self::TARGET_QUOTA,
'SPECIAL_QUOTA' => self::SPECIAL_QUOTA,
'PAID_EDUCATION' => self::PAID_EDUCATION,
'OTHER_SOURCES' => self::OTHER_SOURCES,
'SEPARATE_QUOTA' => self::SEPARATE_QUOTA,
'COMBINED_QUOTA_ALL' => self::COMBINED_QUOTA_ALL,
'COMBINED_QUOTA_TARGET_SPECIAL' => self::COMBINED_QUOTA_TARGET_SPECIAL,
'COMBINED_QUOTA_TARGET_SEPARATE' => self::COMBINED_QUOTA_TARGET_SEPARATE,
'COMBINED_QUOTA_SPECIAL_SEPARATE' => self::COMBINED_QUOTA_SPECIAL_SEPARATE,
'DETAILED_TARGET_QUOTA' => self::DETAILED_TARGET_QUOTA,
default => null,
};
}
@@ -21,16 +39,34 @@ enum BudgetEducation: int implements HasLabel, HasColor
public function getLabel(): ?string
{
return match ($this) {
self::budget_quantity_position => 'Бюджетные места',
self::non_budget_quantity_position => 'С оплатой обучения',
self::MAIN_QUOTA => 'Основные места',
self::TARGET_QUOTA => 'Целевая квота',
self::SPECIAL_QUOTA => 'Особая квота',
self::PAID_EDUCATION => 'С оплатой обучения',
self::OTHER_SOURCES => 'За счёт иных средств',
self::SEPARATE_QUOTA => 'Отдельная квота',
self::COMBINED_QUOTA_ALL => 'Совмещенная квота (целевая, особая и отдельная квоты)',
self::COMBINED_QUOTA_TARGET_SPECIAL => 'Совмещенная квота (целевая и особая квоты)',
self::COMBINED_QUOTA_TARGET_SEPARATE => 'Совмещенная квота (целевая и отдельная квоты)',
self::COMBINED_QUOTA_SPECIAL_SEPARATE => 'Совмещенная квота (особая и отдельная квоты)',
self::DETAILED_TARGET_QUOTA => 'Детализированная целевая квота',
};
}
public function getColor(): string|array|null
{
return match ($this) {
self::budget_quantity_position => 'success', // Цвет для очной формы
self::non_budget_quantity_position => 'warning', // Цвет для заочной формы
self::MAIN_QUOTA => 'primary',
self::TARGET_QUOTA => 'info',
self::SPECIAL_QUOTA => 'danger',
self::PAID_EDUCATION => 'warning',
self::OTHER_SOURCES => 'gray',
self::SEPARATE_QUOTA => 'success',
self::COMBINED_QUOTA_ALL => 'indigo',
self::COMBINED_QUOTA_TARGET_SPECIAL => 'violet',
self::COMBINED_QUOTA_TARGET_SEPARATE => 'fuchsia',
self::COMBINED_QUOTA_SPECIAL_SEPARATE => 'pink',
self::DETAILED_TARGET_QUOTA => 'amber',
};
}
}
+6 -4
View File
@@ -8,16 +8,18 @@ use Filament\Support\Contracts\HasColor;
enum FormEducation: int implements HasLabel, HasColor
{
case FULL_TIME = 1; // Очная форма обучения
case PART_TIME = 2; // Заочная форма обучения
case FULL_PART_TIME = 3; // Заочная форма обучения
case FULL_PART_TIME = 2; // Заочная форма обучения
case PART_TIME = 3; // Заочная форма обучения
public static function fromName(string $name): ?self {
return match ($name) {
'FULL_TIME' => self::FULL_TIME,
'PART_TIME' => self::PART_TIME,
'FULL_PART_TIME' => self::FULL_PART_TIME,
'PART_TIME' => self::PART_TIME,
default => null,
};
}
@@ -26,8 +28,8 @@ enum FormEducation: int implements HasLabel, HasColor
{
return match ($this) {
self::FULL_TIME => 'Очная форма обучения',
self::FULL_PART_TIME => 'Очно-заочная форма обучения',
self::PART_TIME => 'Заочная форма обучения',
self::FULL_PART_TIME => 'Очно-заочная форма обучения'
};
}
+45
View File
@@ -0,0 +1,45 @@
<?php
namespace App\Enums;
use Filament\Support\Contracts\HasLabel;
use Filament\Support\Contracts\HasColor;
enum TypeExam: int implements HasLabel, HasColor
{
case EGE = 1;
case INTERNAL_EXAM = 2;
case AVG_SCORE = 3;
case ACCREDITATION = 4;
public function getLabel(): ?string
{
return match ($this) {
self::EGE => 'ЕГЭ',
self::INTERNAL_EXAM => 'ВИ, проводимое организацией самостоятельно',
self::AVG_SCORE => 'Ср. балл документа об образовании',
self::ACCREDITATION => 'Аккредитация',
};
}
public function getColor(): string|array|null
{
return match ($this) {
self::EGE => 'primary',
self::INTERNAL_EXAM => 'info',
self::AVG_SCORE => 'success',
self::ACCREDITATION => 'warning',
};
}
public static function fromName(string $name): ?self
{
return match ($name) {
'EGE' => self::EGE,
'INTERNAL_EXAM' => self::INTERNAL_EXAM,
'AVG_SCORE' => self::AVG_SCORE,
'ACCREDITATION' => self::ACCREDITATION,
default => null,
};
}
}