refactor: общий список ПО в shared/dictionary

Список программ жил в модели «Заявки на подбор»; теперь он нужен и
«Организации рабочего места». Вынесен в shared/dictionary/software.ts, чтобы
обе формы брали его из одного места.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Тимур Городецкий
2026-10-30 09:58:31 +05:00
parent 88ce1d498e
commit cf039f4d08
4 changed files with 29 additions and 24 deletions
@@ -207,28 +207,6 @@ export const LANGUAGE_LEVEL_OPTIONS: ISelectOption[] = [
{ value: 'Свободный', label: 'Свободный' } { value: 'Свободный', label: 'Свободный' }
]; ];
/**
* Программы (ПО) — ВРЕМЕННЫЙ список, пока нет справочника в API. Используется в
* мультивыборе «Необходимые знания в программах». Меняется здесь одним местом.
*/
export const SOFTWARE_OPTIONS: ISelectOption[] = [
{ value: '1С:Предприятие', label: '1С:Предприятие' },
{ value: 'MS Word', label: 'MS Word' },
{ value: 'MS Excel', label: 'MS Excel' },
{ value: 'MS PowerPoint', label: 'MS PowerPoint' },
{ value: 'MS Outlook', label: 'MS Outlook' },
{ value: 'MS Project', label: 'MS Project' },
{ value: 'AutoCAD', label: 'AutoCAD' },
{ value: 'Autodesk Forma', label: 'Autodesk Forma' },
{ value: 'BIM', label: 'BIM' },
{ value: 'Revit', label: 'Revit' },
{ value: 'ArchiCAD', label: 'ArchiCAD' },
{ value: 'Компас-3D', label: 'Компас-3D' },
{ value: 'Primavera', label: 'Primavera' },
{ value: 'SAP', label: 'SAP' },
{ value: 'Adobe Photoshop', label: 'Adobe Photoshop' }
];
/** Категории «Обеспечение рабочего места» (+ «Другое» через allowOther). */ /** Категории «Обеспечение рабочего места» (+ «Другое» через allowOther). */
export const WORKPLACE_PROVISION_OPTIONS: ISelectOption[] = [ export const WORKPLACE_PROVISION_OPTIONS: ISelectOption[] = [
{ value: 'Оргтехника', label: 'Оргтехника' }, { value: 'Оргтехника', label: 'Оргтехника' },
@@ -1,6 +1,6 @@
import * as React from 'react'; import * as React from 'react';
import { CollapseSection, FormField, TextInput, TextArea, Select, MultiChoiceField } from '../../../shared/ui'; import { CollapseSection, FormField, TextInput, TextArea, Select, MultiChoiceField } from '../../../shared/ui';
import { PositionPicker } from '../../../shared/dictionary'; import { PositionPicker, SOFTWARE_OPTIONS } from '../../../shared/dictionary';
import { LanguagesField } from './LanguagesField'; import { LanguagesField } from './LanguagesField';
import { import {
ISectionProps, ISectionProps,
@@ -8,7 +8,6 @@ import {
EDUCATION_OPTIONS, EDUCATION_OPTIONS,
WORK_EXPERIENCE_OPTIONS, WORK_EXPERIENCE_OPTIONS,
RESIDENCE_OPTIONS, RESIDENCE_OPTIONS,
SOFTWARE_OPTIONS,
OTHER_VALUE OTHER_VALUE
} from '../model'; } from '../model';
@@ -50,3 +50,4 @@ export {
parseOrganizationLine parseOrganizationLine
} from './organizationLines'; } from './organizationLines';
export type { IOrganizationLine } from './organizationLines'; export type { IOrganizationLine } from './organizationLines';
export { SOFTWARE_OPTIONS } from './software';
@@ -0,0 +1,27 @@
import { ISelectOption } from '@tnsu/ui-kit';
/**
* Программы (ПО) — ВРЕМЕННЫЙ список, пока нет справочника в API. Общий для форм:
* «Заявка на подбор» (3.8 Необходимые знания в программах) и «Организация
* рабочего места» (Необходимое ПО). Пункт добавляется здесь — появляется в обеих.
*
* Значения уходят в условия маршрута как текст («Software содержит AutoCAD»),
* поэтому существующие значения не переименовывать без правки условий в админке.
*/
export const SOFTWARE_OPTIONS: ISelectOption[] = [
{ value: '1С:Предприятие', label: '1С:Предприятие' },
{ value: 'MS Word', label: 'MS Word' },
{ value: 'MS Excel', label: 'MS Excel' },
{ value: 'MS PowerPoint', label: 'MS PowerPoint' },
{ value: 'MS Outlook', label: 'MS Outlook' },
{ value: 'MS Project', label: 'MS Project' },
{ value: 'AutoCAD', label: 'AutoCAD' },
{ value: 'Autodesk Forma', label: 'Autodesk Forma' },
{ value: 'BIM', label: 'BIM' },
{ value: 'Revit', label: 'Revit' },
{ value: 'ArchiCAD', label: 'ArchiCAD' },
{ value: 'Компас-3D', label: 'Компас-3D' },
{ value: 'Primavera', label: 'Primavera' },
{ value: 'SAP', label: 'SAP' },
{ value: 'Adobe Photoshop', label: 'Adobe Photoshop' }
];