feat: замена period_type на start_date в wishlist, обновление UI формы условий
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m5s
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m5s
- Добавлена миграция 020 для замены period_type на start_date в score_conditions - Обновлена функция подсчёта баллов: calculateProjectPointsFromDate вместо calculateProjectPointsForPeriod - Добавлен компонент DateSelector для выбора даты начала подсчёта - По умолчанию выбран тип условия 'Баллы' - Переименованы опции: 'Баллы' и 'Задача' - Версия: 3.9.3
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
-- Migration: Change period_type to start_date in score_conditions
|
||||
-- This allows specifying a start date for counting points instead of period type
|
||||
-- Date can be in the past or future, NULL means count all time
|
||||
|
||||
-- Добавляем новое поле start_date
|
||||
ALTER TABLE score_conditions
|
||||
ADD COLUMN IF NOT EXISTS start_date DATE;
|
||||
|
||||
-- Миграция данных: для существующих записей с period_type устанавливаем start_date
|
||||
-- Если period_type = 'week', то start_date = начало текущей недели
|
||||
-- Если period_type = 'month', то start_date = начало текущего месяца
|
||||
-- Если period_type = 'year', то start_date = начало текущего года
|
||||
-- Если period_type IS NULL, то start_date = NULL (за всё время)
|
||||
UPDATE score_conditions
|
||||
SET start_date = CASE
|
||||
WHEN period_type = 'week' THEN DATE_TRUNC('week', CURRENT_DATE)::DATE
|
||||
WHEN period_type = 'month' THEN DATE_TRUNC('month', CURRENT_DATE)::DATE
|
||||
WHEN period_type = 'year' THEN DATE_TRUNC('year', CURRENT_DATE)::DATE
|
||||
ELSE NULL
|
||||
END
|
||||
WHERE start_date IS NULL;
|
||||
|
||||
-- Обновляем уникальное ограничение (удаляем старое, добавляем новое)
|
||||
ALTER TABLE score_conditions
|
||||
DROP CONSTRAINT IF EXISTS unique_score_condition;
|
||||
|
||||
ALTER TABLE score_conditions
|
||||
ADD CONSTRAINT unique_score_condition
|
||||
UNIQUE (project_id, required_points, start_date);
|
||||
|
||||
-- Обновляем комментарии
|
||||
COMMENT ON COLUMN score_conditions.start_date IS 'Date from which to start counting points. NULL means count all time.';
|
||||
|
||||
-- Примечание: поле period_type оставляем пока для обратной совместимости
|
||||
-- Его можно будет удалить позже после проверки, что всё работает:
|
||||
-- ALTER TABLE score_conditions DROP COLUMN period_type;
|
||||
|
||||
Reference in New Issue
Block a user