Fix remaining multi-weekday recurrence bugs (#838)

This commit is contained in:
Chris 2026-02-13 17:07:00 +02:00 committed by GitHub
parent ca5bd127b8
commit 65943e7599
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 23 additions and 1 deletions

View file

@ -148,7 +148,24 @@ async function calculateNextIterations(task, startFromDate, userTimezone) {
);
} else if (task.recurrence_type === 'weekly') {
const interval = task.recurrence_interval || 1;
if (
if (task.recurrence_weekdays) {
const weekdays = Array.isArray(task.recurrence_weekdays)
? task.recurrence_weekdays
: JSON.parse(task.recurrence_weekdays);
let found = false;
for (let daysAhead = 1; daysAhead <= 7; daysAhead++) {
const testDate = new Date(nextDate);
testDate.setUTCDate(testDate.getUTCDate() + daysAhead);
if (weekdays.includes(testDate.getUTCDay())) {
nextDate = testDate;
found = true;
break;
}
}
if (!found) {
nextDate.setUTCDate(nextDate.getUTCDate() + interval * 7);
}
} else if (
task.recurrence_weekday !== null &&
task.recurrence_weekday !== undefined
) {

View file

@ -461,6 +461,7 @@ router.patch('/task/:uid', requireTaskWriteAccess, async (req, res) => {
recurrence_interval,
recurrence_end_date,
recurrence_weekday,
recurrence_weekdays,
recurrence_month_day,
recurrence_week_of_month,
completion_based,
@ -504,6 +505,10 @@ router.patch('/task/:uid', requireTaskWriteAccess, async (req, res) => {
recurrence_weekday !== undefined
? recurrence_weekday
: parentTask.recurrence_weekday,
recurrence_weekdays:
recurrence_weekdays !== undefined
? recurrence_weekdays
: parentTask.recurrence_weekdays,
recurrence_month_day:
recurrence_month_day !== undefined
? recurrence_month_day