Реализована возможность изменения проектов

- Добавлено поле deleted в таблицу projects (миграция 007)
- Изменена иконка перехода на экран проектов (список вместо звезды)
- Заменен крестик на троеточие в списке проектов
- Добавлено модальное окно с кнопками 'Перенести' и 'Удалить'
- Реализован экран переноса проекта с выбором существующего или созданием нового
- Добавлены API endpoints: /project/move и /project/delete
- При переносе проекта обновляются nodes и weekly_goals с обработкой конфликтов
- При удалении проекта удаляются все связанные weekly_goals
- Добавлена фильтрация удаленных проектов во всех SQL запросах
- Обновлена materialized view для исключения удаленных проектов
This commit is contained in:
poignatov
2025-12-29 21:31:43 +03:00
parent 8d79a8f692
commit fc83bed1a3
6 changed files with 486 additions and 42 deletions

View File

@@ -34,6 +34,8 @@ LEFT JOIN
1, 2, 3
) agg
ON p.id = agg.project_id
WHERE
p.deleted = FALSE
ORDER BY
p.id, agg.report_year, agg.report_week
WITH DATA;

View File

@@ -0,0 +1,13 @@
-- Migration: Add deleted field to projects table
-- This script adds a deleted boolean field to mark projects as deleted (soft delete)
-- Add deleted column to projects table
ALTER TABLE projects
ADD COLUMN IF NOT EXISTS deleted BOOLEAN NOT NULL DEFAULT FALSE;
-- Create index on deleted column for better query performance
CREATE INDEX IF NOT EXISTS idx_projects_deleted ON projects(deleted);
-- Add comment for documentation
COMMENT ON COLUMN projects.deleted IS 'Soft delete flag: TRUE if project is deleted, FALSE otherwise';