|
Проекты: цвет, сайт, фавикон, закрепление, README из репозитория (0.63–0.67)
- Цвет-метка проекта (0.63): у проекта может быть цвет-кружок. Селектор
цвета — сырым блоком в стиле кита (в ките компонента нет); кружок рисует
общий компонент ProjectColorDot.
- Сайт проекта (0.63): отдельное поле site_url. Иконку сайта тянет
бэкенд-прокси с кэшем (GET /api/projects/{id}/favicon, том favicons) —
сторонние favicon-сервисы не используются, данные не покидают VPS. В 0.65
иконка встала в метку проекта (кружок + фавикон), а ссылка на сайт —
чипом в шапке страницы проекта.
- Карточка списка кликабельна целиком (0.63; кнопка «Открыть» дублировала
ссылку), тайтл крупнее (0.65), клетки прогресса — поверх полосы кита
(0.64): сегментированной полосы в ките нет.
- Закрепление проектов (0.66): поле pinned, закреплённые — секцией сверху,
сортировка списка по свежести активности, подвал карточки — отсчёт до
ближайшего дедлайна.
- Место булавки переставлено (0.67): на карточке — правый верхний угол
рядом с бейджем актуальности и видна всегда (была приглушена в подвале),
на странице проекта — кнопка-булавка рядом с именем (искали строкой
«Закреплён» в параметрах).
- Репозиторий проекта (0.67): ссылка на git-репозиторий — отдельное поле
repository_url, отдельно от заметки и сайта. README из репозитория
показывается вторым описанием — карточкой «README из репозитория» под
заметкой, со ссылкой на репозиторий и сворачиванием длинного текста;
тянет такой же бэкенд-прокси с кэшем (GET /api/projects/{id}/readme),
не нашли — «README не найден». Распознавание ссылки на репозиторий в
заметке проекта снято (у задачи README-вместо-описания остаётся),
данные в БД не мигрировались.
- Фантомный отступ перед именем у проекта без цвета и фавикона (0.67):
ProjectMark рисовал пустой спан в ряду с gap.
- ТЗ 0.63–0.67; MCP зеркалит поля проекта (color, site_url,
repository_url, pinned). Тесты: 207.
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
|---|
|
|
| backend/Dockerfile |
|---|
| backend/alembic/versions/b1c2d3e4f5a6_project_color_site.py 0 → 100644 |
|---|
| backend/alembic/versions/c3d4e5f6a7b8_project_pinned.py 0 → 100644 |
|---|
| backend/alembic/versions/d4e5f6a7b8c9_project_repository.py 0 → 100644 |
|---|
| backend/app/api/projects.py |
|---|
| backend/app/api/repo_readme.py |
|---|
| backend/app/config.py |
|---|
| backend/app/mcp_server.py |
|---|
| backend/app/models.py |
|---|
| backend/app/schemas.py |
|---|
| backend/app/services/favicon.py 0 → 100644 |
|---|
| backend/app/services/readme.py |
|---|
| backend/tests/conftest.py |
|---|
| backend/tests/test_favicon.py 0 → 100644 |
|---|
| backend/tests/test_mcp.py |
|---|
| backend/tests/test_project_fields.py 0 → 100644 |
|---|
| backend/tests/test_project_readme.py 0 → 100644 |
|---|
| docker-compose.yml |
|---|
| docs/TZ.md |
|---|
| frontend/src/api.ts |
|---|
| frontend/src/components/Dashboard.vue |
|---|
| frontend/src/components/ProjectColorDot.vue 0 → 100644 |
|---|
| frontend/src/components/ProjectColorPicker.vue 0 → 100644 |
|---|
| frontend/src/components/ProjectMark.vue 0 → 100644 |
|---|
| frontend/src/components/TaskBadges.vue |
|---|
| frontend/src/locales/en.ts |
|---|
| frontend/src/locales/ru.ts |
|---|
| frontend/src/locales/uk.ts |
|---|
| frontend/src/projectColor.ts 0 → 100644 |
|---|
| frontend/src/taskui.ts |
|---|
| frontend/src/views/ProjectView.vue |
|---|
| frontend/src/views/ProjectsView.vue |
|---|
| frontend/src/views/TaskView.vue |
|---|