Enhance staffing management with uncovered teacher tracking
- Updated `protocol.md` to clarify the concept of uncovered subjects and the number of additional teachers required. - Introduced `teachersShort` property in the `StaffingSubject` interface to indicate how many more teachers are needed for a subject. - Enhanced localization strings to reflect the new uncovered teacher information in both English and Russian. - Updated the management panel UI to display the number of teachers short for each uncovered subject. - Revised the `Uncovered` method in the staffing logic to return detailed information about uncovered subjects, including the shortfall of teachers. - Added tests to validate the new uncovered teacher tracking functionality and ensure accurate reporting in the staffing API. - Marked related tasks as complete in the documentation for the golden fixtures phase.
This commit is contained in:
@@ -11,26 +11,26 @@
|
||||
|
||||
## Задачи
|
||||
|
||||
- [ ] Отпечаток ростера файлом в фикстурах: фиксированные сид, карта, набор имён и родной язык
|
||||
- [ ] Тест печатает **первую** несовпавшую строку, а не «строки различаются»
|
||||
- [ ] Правило записано рядом с фикстурой: отпечаток обновляется в том же коммите, что и генерация,
|
||||
- [x] Отпечаток ростера файлом в фикстурах: фиксированные сид, карта, набор имён и родной язык
|
||||
- [x] Тест печатает **первую** несовпавшую строку, а не «строки различаются»
|
||||
- [x] Правило записано рядом с фикстурой: отпечаток обновляется в том же коммите, что и генерация,
|
||||
и коммит объясняет, что поменялось
|
||||
- [ ] Файл сейва текущего формата в фикстурах хоста; тест поднимает из него школу
|
||||
- [ ] Рядом с ним — файл сейва **без** новых полей, чтобы «отсутствующее поле имеет разумное
|
||||
- [x] Файл сейва текущего формата в фикстурах хоста; тест поднимает из него школу
|
||||
- [x] Рядом с ним — файл сейва **без** новых полей, чтобы «отсутствующее поле имеет разумное
|
||||
значение» проверялось, а не подразумевалось
|
||||
- [ ] Форма голодного дня закрепляется тестом: приходят сытыми, к своей смене около 0.4, уходят
|
||||
- [x] Форма голодного дня закрепляется тестом: приходят сытыми, к своей смене около 0.4, уходят
|
||||
голодными, к утру снова полны. Числа подобраны замером и сейчас ничем не защищены
|
||||
- [ ] `uncovered` в staffing говорит, скольких учителей не хватает предмету
|
||||
- [ ] Клиент показывает это число в списке непокрытых, через `t(...)`
|
||||
- [x] `uncovered` в staffing говорит, скольких учителей не хватает предмету
|
||||
- [x] Клиент показывает это число в списке непокрытых, через `t(...)`
|
||||
|
||||
## Тесты, без которых фаза не закрыта
|
||||
|
||||
- [ ] Отпечаток ростера совпадает с файлом
|
||||
- [ ] Школа поднимается из сохранённого файла: те же люди, то же время, тот же штат
|
||||
- [ ] Сейв без поля родного языка грузится и не перетасовывает набор
|
||||
- [ ] Кривая голода за учебный день держится в заявленных границах
|
||||
- [ ] `PrimarySchool` на ванильной карте требует трёх учителей, и ответ это говорит
|
||||
- [ ] Назначение второго учителя уменьшает нехватку, но не закрывает её
|
||||
- [x] Отпечаток ростера совпадает с файлом
|
||||
- [x] Школа поднимается из сохранённого файла: те же люди, то же время, тот же штат
|
||||
- [x] Сейв без поля родного языка грузится и не перетасовывает набор
|
||||
- [x] Кривая голода за учебный день держится в заявленных границах
|
||||
- [x] `PrimarySchool` на ванильной карте требует трёх учителей, и ответ это говорит
|
||||
- [x] Назначение второго учителя уменьшает нехватку, но не закрывает её
|
||||
|
||||
## Критерий готовности
|
||||
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
| [22. Удостоверение пака](22-mod-identity.md) | ⬜ | Название, версия, зависимости и порядок загрузки |
|
||||
| [23. Пример мода](23-example-pack.md) | ⬜ | Настоящая папка вместо документов в памяти |
|
||||
| [24. Числа поведения](24-behavior-numbers.md) | ⬜ | Веса целей в `BehaviorDef`, а не в коде |
|
||||
| [25. Золотые файлы](25-golden-fixtures.md) | ⬜ | Отпечаток ростера, старый сейв, кривая голода, нехватка учителей |
|
||||
| [25. Золотые файлы](25-golden-fixtures.md) | ✅ | Отпечаток ростера, старый сейв, кривая голода, нехватка учителей |
|
||||
| [26. Свой сид](26-school-seed.md) | ⬜ | Состав школы перестаёт зависеть от порядка создания |
|
||||
| [27. Версия сейва и дамп](27-serviceability.md) | ⬜ | Формат читается, внутрь школы можно заглянуть |
|
||||
| [28. Тесты экранов](28-screen-tests.md) | ⬜ | DOM-окружение и логика клиента под тестом |
|
||||
|
||||
+5
-2
@@ -276,7 +276,9 @@ teaching it. So a second teacher of a subject halves what the first one carries
|
||||
|
||||
A subject appears in `uncovered` when nobody teaches it **or** when the people who do cannot
|
||||
between them carry its hours (`maxWeeklyHours` each). Both mean the same thing to a player:
|
||||
those lessons will not happen.
|
||||
those lessons will not happen. `teachersShort` is how many more people that subject still
|
||||
needs — primary school on a vanilla map is three, and hiring the second teacher leaves it at
|
||||
one.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -289,7 +291,8 @@ those lessons will not happen.
|
||||
"label": "Математика",
|
||||
"gradeMin": 5,
|
||||
"gradeMax": 11,
|
||||
"hoursPerWeek": 5
|
||||
"hoursPerWeek": 5,
|
||||
"teachersShort": 1
|
||||
}
|
||||
],
|
||||
"applicants": [
|
||||
|
||||
Reference in New Issue
Block a user