Отображение изменения рейтинга (#77) #79

Merged
NotBigGhost merged 1 commits from issue-77-history-rating-delta into dev 2026-09-14 23:52:41 +03:00
Collaborator

Что сделано

В истории партий профиля (свой и чужой профиль) на каждой карточке теперь видно, сколько общего рейтинга владелец профиля получил или потерял за партию.

  • API. GET /api/users/{id}/matches отдаёт у каждой партии rating_delta — ΔR владельца истории в общей цепочке, с одним знаком после запятой. Поле есть в обоих режимах, включая «лучшую партию». История и рейтинг считаются одним проигрыванием на запрос. В списке партий группы (/api/groups/{id}/matches) поле пустое: там непонятно, чья это была бы дельта.
  • Компактная карточка: второй строкой «Рейтинг: +12.3».
  • Подробная карточка (MatchListView): последней строкой, только когда дельта есть. У списка группы ничего не меняется.
  • Формат: всегда со знаком, минус типографский (formatRatingDelta); рост — зелёным, падение — красным, 0.0 — без цвета. Один знак после запятой, как в примерах справки: целое число съедало бы типичные изменения опытных игроков.

Коммиты

  • 6f54e0f История: изменение рейтинга на карточках партий профиля

Проверки

  • .\.venv\Scripts\python.exe -m pytest — 190 passed. Новый тест:
    • дуэль новичков даёт +32/−32 в обеих историях, реванш — обратные знаки;
    • сумма изменений сходится с рейтингом;
    • в списке группы дельты нет;
    • режим «лучшая» её отдаёт.
  • npm run gen:api + npm run build — зелёные.
  • HTTP-проверка на копии dev-БД: у игрока с 10 партиями все дельты заполнены (есть и 0.0); 1500 + сумма = 1465.1 при рейтинге 1465; в списке партий группы все rating_delta = null.
  • Не проверено: вёрстка карточек в браузере — расширение Chrome не подключено. Стоит посмотреть обе карточки на ширине телефона.

Отклонения от плана

Нет. Строка вынесена в маленький компонент RatingDelta, общий для компактной и подробной карточки.

Closes #77

🤖 Generated with Claude Code

https://claude.ai/code/session_01LqSoRj99iwVEH5U5fnZgsd

## Что сделано В истории партий профиля (свой и чужой профиль) на каждой карточке теперь видно, сколько общего рейтинга владелец профиля получил или потерял за партию. - **API.** `GET /api/users/{id}/matches` отдаёт у каждой партии `rating_delta` — ΔR владельца истории в общей цепочке, с одним знаком после запятой. Поле есть в обоих режимах, включая «лучшую партию». История и рейтинг считаются одним проигрыванием на запрос. В списке партий группы (`/api/groups/{id}/matches`) поле пустое: там непонятно, чья это была бы дельта. - **Компактная карточка:** второй строкой «Рейтинг: +12.3». - **Подробная карточка** (`MatchListView`): последней строкой, только когда дельта есть. У списка группы ничего не меняется. - **Формат:** всегда со знаком, минус типографский (`formatRatingDelta`); рост — зелёным, падение — красным, `0.0` — без цвета. Один знак после запятой, как в примерах справки: целое число съедало бы типичные изменения опытных игроков. ## Коммиты - `6f54e0f` История: изменение рейтинга на карточках партий профиля ## Проверки - `.\.venv\Scripts\python.exe -m pytest` — **190 passed**. Новый тест: - дуэль новичков даёт +32/−32 в обеих историях, реванш — обратные знаки; - сумма изменений сходится с рейтингом; - в списке группы дельты нет; - режим «лучшая» её отдаёт. - `npm run gen:api` + `npm run build` — зелёные. - HTTP-проверка на копии dev-БД: у игрока с 10 партиями все дельты заполнены (есть и `0.0`); `1500 + сумма = 1465.1` при рейтинге `1465`; в списке партий группы все `rating_delta = null`. - **Не проверено:** вёрстка карточек в браузере — расширение Chrome не подключено. Стоит посмотреть обе карточки на ширине телефона. ## Отклонения от плана Нет. Строка вынесена в маленький компонент `RatingDelta`, общий для компактной и подробной карточки. Closes #77 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01LqSoRj99iwVEH5U5fnZgsd
Agent added 1 commit 2026-09-14 23:51:55 +03:00
GET /users/{id}/matches отдаёт у каждой партии rating_delta — изменение
общего рейтинга владельца истории за неё (один знак после запятой), в обоих
режимах, включая «лучшую партию»; история и рейтинг считаются одним
проигрыванием. В списке партий группы поле пустое: там непонятно, чья это
дельта.

Фронт: компактная карточка истории — второй строкой «Рейтинг: +12.3»,
подробная (MatchListView) — последней строкой, только когда дельта есть.
Рост — зелёным, падение — красным, минус типографский (formatRatingDelta).
schema.d.ts перегенерирован.

Тест: дуэль новичков ±32 в обеих историях, реванш с обратными знаками,
сумма изменений сходится с рейтингом, в списке группы дельты нет, режим
«лучшая» её отдаёт. #77

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LqSoRj99iwVEH5U5fnZgsd
NotBigGhost merged commit 25c3c5ba4d into dev 2026-09-14 23:52:41 +03:00
NotBigGhost deleted branch issue-77-history-rating-delta 2026-09-14 23:52:42 +03:00
Sign in to join this conversation.