Completing a recurring parent advances recurring subtasks a second time

未关闭
#3,244 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
50/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
javascript, php
领域
backend, frontend

调研方向

使用所述的复选框步骤在 Tasks Web UI 中重现重复场景,然后跟踪父项完成路径及其对重复子任务的递归处理。根据报告的每周日期验证修复:子项在完成后已经重新安排过时,父项完成时不得再次向前推进。

由索引模型根据 Issue 内容生成。

描述

Steps to reproduce
  1. In the Nextcloud Tasks web UI, create a parent task with DTSTART and DUE set to today.
  2. Configure the parent to repeat weekly.
  3. Add a subtask with the same start date, due date, and weekly recurrence.
  4. Complete the subtask using its checkbox.
  5. Observe that the subtask is rescheduled by one recurrence interval.
  6. Complete the parent task using its checkbox.
Expected behavior

Completing the recurring parent should not silently complete the already-rescheduled occurrence of a recurring subtask and advance it a second time.

Possible safe behaviors would be:

  • do not cascade completion to a recurring child whose current occurrence is later than the parent's completed occurrence;
  • ask which open subtasks should be completed, as discussed in #2376; or
  • prevent completion of the parent until its current subtasks are complete, without affecting their newly generated occurrences.
Actual behaviour

Completing the child advances it once, as expected. Completing the parent immediately afterwards recursively completes the child's newly scheduled occurrence and advances the child a second time.

In a clean weekly reproduction:

  • parent: 2026-08-26 -> 2026-09-02;
  • child after completing the child: 2026-08-26 -> 2026-09-02;
  • same child after subsequently completing the parent: 2026-09-02 -> 2026-09-09.

The 2026-09-02 child occurrence is therefore skipped without a warning. Recurring sibling subtasks that were not completed individually were advanced once by completing the parent.

This was reproduced entirely in the Tasks web UI with temporary tasks. No external CalDAV client was involved.

Tasks app version

0.18.1

CalDAV-clients used

None for reproduction

Browser

Google Chrome

Client operating system

macOS

Server operating system

Official Nextcloud Docker image (nextcloud:34.0.2-apache)

Web server

Apache

Database engine version

PostgreSQL

PHP engine version

Bundled with the official Nextcloud 34.0.2 Apache image

Nextcloud version

34.0.2

Updated from an older installed version or fresh install

Updated from an older version

List of activated apps

Not relevant; reproduced using the Tasks web UI only.

Nextcloud configuration

Standard containerized installation. No custom Tasks patch.

Web server error log

No related error.

Log file

No related error.

Browser log

No related error.

Additional info

This is related to, but distinct from, #2376. That issue covers recursively completing open subtasks in general. This report covers the recurrence-specific consequence: an already completed and rescheduled child occurrence is completed again when the parent is completed, silently skipping the next occurrence.

Current workaround: use a permanent, undated, non-recurring parent as a container and never complete it; only the subtasks recur and are completed.

主要语言
JavaScript
星标
710
派生
125
平均合并
19 小时 37 分钟
30 天内合并 PR
12

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

nextcloud/tasks 的其他 Issue

查看 nextcloud/tasks 的全部 Issue

相似的 Issue

更多 JavaScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。