Completing a recurring parent advances recurring subtasks a second time

Aperta
#3,244 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
50/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
javascript, php
Ambito
backend, frontend

Direzione di ricerca

Riproduci lo scenario di ricorrenza nell’interfaccia web di Tasks usando i passaggi descritti con le caselle di controllo, quindi traccia il percorso di completamento dell’elemento padre e la sua gestione ricorsiva delle sottoattività ricorrenti. Verifica la correzione rispetto alle date settimanali segnalate: un elemento figlio già ripianificato dopo il completamento non deve essere anticipato nuovamente quando viene completato l’elemento padre.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

Lingua principale
JavaScript
Stelle
710
Fork
125
Merge medio
19h 37m
PR unite (30g)
12

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di nextcloud/tasks

Tutte le issue di nextcloud/tasks

Issue simili

Altre issue su JavaScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.