feat: ImportMapper — универсальный редактор импорта из Excel-опросников
- Профили: 152-ФЗ, 187-ФЗ, 117-ФЗ, МУ, КЗИ, ПЗИ - Сканирование Excel: что импортируется и куда - Галочки: включить/выключить поля, добавить свои привязки - Сохранение настроек по типу опросника - Выгрузка данных в JSON (export/export_<тип>.json) - Тесты: отключение полей, пользовательские привязки, секции, ИС
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
# ImportMapper
|
||||
|
||||
Универсальный редактор импорта из Excel-опросников.
|
||||
Показывает, какие данные из файла опросника импортируются и куда,
|
||||
позволяет включить/выключить поля и добавить свои привязки.
|
||||
|
||||
Поддерживаемые типы опросников (профили в `profiles/`):
|
||||
|
||||
- `152` — 152-ФЗ «О персональных данных»
|
||||
- `187` — 187-ФЗ «О безопасности КИИ»
|
||||
- `117` — 117-ФЗ (безопасность объектов КИИ / ГИС)
|
||||
- `mu` — МУ (методические указания)
|
||||
- `kzi` — КЗИ (комплекс средств защиты информации)
|
||||
- `pzi` — ПЗИ (программные средства защиты информации)
|
||||
|
||||
## Запуск
|
||||
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
python3 main.py
|
||||
```
|
||||
|
||||
## Как пользоваться
|
||||
|
||||
1. Выберите тип опросника в выпадающем списке.
|
||||
2. Нажмите «Обзор» и укажите Excel-файл опросника.
|
||||
3. Нажмите «Сканировать» — программа покажет, что импортируется.
|
||||
4. Галочками включите/выключите нужные поля.
|
||||
5. «💾 Сохранить настройки» — сохраняет настройки для этого типа опросника.
|
||||
6. «📤 Выгрузить данные» — собирает данные из Excel в JSON по настройкам
|
||||
(файл `export/export_<тип>.json`), который может использовать генератор.
|
||||
|
||||
## Структура
|
||||
|
||||
- `main.py` — точка входа
|
||||
- `editor.py` — окно редактора
|
||||
- `core.py` — профили, сканирование Excel, извлечение данных
|
||||
- `profiles/*.json` — правила импорта для каждого типа опросника
|
||||
- `settings/settings_<тип>.json` — настройки пользователя (создаются автоматически)
|
||||
- `export/export_<тип>.json` — выгруженные данные (создаются автоматически)
|
||||
|
||||
## Профили
|
||||
|
||||
Каждый профиль — JSON-файл:
|
||||
|
||||
```json
|
||||
{
|
||||
"id": "152",
|
||||
"name": "152-ФЗ (персональные данные)",
|
||||
"common_sheet": "общие",
|
||||
"employee_sheet": "сотруд",
|
||||
"is_enabled": true,
|
||||
"rules": [
|
||||
{"pattern": "полное наименование организации", "field": "fullName", "desc": "Полное наименование организации"}
|
||||
],
|
||||
"sections": {
|
||||
"commission": {"header": "состав комиссии"}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
- `common_sheet` — лист с общими сведениями (подстрока имени листа)
|
||||
- `employee_sheet` — лист с комиссией/сотрудниками (подстрока имени листа)
|
||||
- `is_enabled` — включать ли разбор остальных листов как информационных систем
|
||||
- `rules` — правила: регулярное выражение заголовка → поле программы
|
||||
- `sections` — секции на листе сотрудников (заголовок секции → id)
|
||||
|
||||
Правила для 187/117/МУ/КЗИ/ПЗИ — базовые; их можно дополнить под конкретные
|
||||
опросники через редактор (галочка «Найдено, но не импортируется») или
|
||||
отредактировав JSON профиля.
|
||||
Reference in New Issue
Block a user