Реструктуризация: два глобальных раздела — Яша и Семен

Весь контент перенесён в content/yasha/ (7 подразделов).
Создан content/semen/ с подразделами: changelog, kb, diary.
Навигация — dropdown в навбаре, двухуровневое меню в hugo.toml.
Шаблоны, сайдбар, поиск обновлены под вложенные секции.
This commit is contained in:
Агальцов Антон
2026-04-26 19:44:52 +03:00
parent cc0b342208
commit dd67d2c2ec
249 changed files with 6900 additions and 9153 deletions
@@ -0,0 +1,103 @@
---
title: "Leadera — Экспорт диаграммы Ганта в Excel"
date: 2026-04-09
lastmod: 2026-04-09
tags: ["leadera", "gantt", "excel", "export"]
weight: 120
---
# Экспорт диаграммы Ганта в Excel
**Дата:** 09.04.2026
**Статус:** Требования
**Проект:** Leadera
---
## Общее описание
Пользователь нажимает кнопку экспорта в интерфейсе диаграммы Ганта. Система запрашивает диапазон дат выгрузки (по умолчанию — текущий видимый диапазон из интерфейса). После указания диапазона скачивается Excel-файл с визуальным представлением диаграммы Ганта.
---
## Вводные данные
- **Источник:** текущая диаграмма Ганта проекта (один проект = одна диаграмма)
- **Диапазон дат:** пользователь указывает начальную и конечную дату. По умолчанию подставляется видимый в момент запроса диапазон из интерфейса
- **Масштаб таймлайна:** берётся тот, который выбран пользователем в интерфейсе в момент запроса (не сохранённый в системе, а текущий). Варианты: по ячейкам или по дням
---
## Структура Excel-файла
### Шапка (первые строки)
- Название диаграммы (название проекта)
- Диапазон дат, в рамках которого сделана выгрузка
### Лист — один
Вся диаграмма размещается на одном листе.
### Секции
- Секции отображаются как **визуальная группировка строк** (не отдельные листы)
- Название секции — строка-заголовок над группой задач
### Задачи
Каждая задача — отдельная строка. Данные задачи:
- **Название** (текстовая колонка слева)
- **Дата начала** (текстовая колонка слева)
- **Дата конца** (текстовая колонка слева)
- **Цвет** — ячейки таймлайна, соответствующие задаче, закрашены в цвет задачи
### Таймлайн
- Таймлайн представлен колонками дат в верхней части (горизонтальная ось времени)
- Масштаб колонок соответствует выбранному пользователем в момент экспорта (по ячейкам / по дням)
- Задачи отображаются как **merged cells** по соответствующим колонкам дат — визуальная полоса диаграммы Ганта
### Вехи
- Отображаются **отдельной строкой** (как задача, но с маркировкой вехи)
- Позиционируются на соответствующей дате в таймлайне
### Зависимости
- **Не отображаются** (стрелочки/связи между задачами не нужны)
---
## Пользовательский сценарий
1. Пользователь открывает диаграмму Ганта проекта
2. Настраивает масштаб таймлайна (по ячейкам / по дням)
3. Нажимает кнопку «Экспорт в Excel»
4. Система показывает диалог с выбором диапазона дат (предзаполнен текущим видимым диапазоном)
5. Пользователь подтверждает / корректирует диапазон
6. Система генерирует Excel-файл и инициирует скачивание
---
## Технические требования
### Backend (Go API)
- Новый endpoint для генерации Excel (например, `GET /api/v1/gantt/:projectId/export`)
- Query-параметры: `dateFrom`, `dateTo`, `scale` (cell|day)
- Ответ: binary Excel-файл (`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`)
- Авторизация: обязательна (только участники проекта)
- Библиотека для генерации Excel: `excelize` (Go)
### Frontend (Angular)
- Кнопка экспорта в тулбаре диаграммы Ганта
- Модальное окно выбора диапазона дат с datepicker'ами
- Предзаполнение диапазона из текущего видимого viewport'а
- Скачивание файла через `Blob` / `saveAs`
### Фильтрация данных
- Выгружаются все задачи и вехи, которые:
- Начинаются в диапазоне, ИЛИ
- Заканчиваются в диапазоне, ИЛИ
- Начинаются до диапазона и заканчиваются после (перекрывают целиком)
- Секции включаются, если в них есть хотя бы одна попавшая задача
---
## Открытые вопросы
_(Нет)_