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:
@@ -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',
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -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 => 'Очно-заочная форма обучения'
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user