Uwe Brauer <o...@mat.ucm.es> writes: > * Everything [3/4] > ... > *** DONE Books > ... > ** DONE Car > ... > ** DONE Food > ... > *** WAIT Computer > ... > ... The expected behavior should be > > #+BEGIN: columnview :maxlevel 2 :skip-empty-rows t :hlines 1 :indent nil > :format "%5TODO(Status) %5Nr(Nr) %5Comp1(Comp1){X/} %5Comp2(Comp2){X/}" > | Status | Nr | Comp1 | Comp2 | > |--------+----+-------+-------| > | | | [1/2] | [2/2] | > | DONE | 2 | [X] | [X] | > | DONE | 3 | [ ] | [X] | > #+END:
I am not sure if it is expected. Why doesn't "DONE Books" contribute to the summary? It is also under "Everything" headline and has a checkbox. With the attached patch, the result would be the following: #+BEGIN: columnview :maxlevel 2 :skip-empty-rows t :hlines 1 :indent nil :format "%5TODO(Status) %5Nr(Nr)%5Comp1(Comp1){X/} %5Comp2(Comp2){X/}" | Status | Nr | Comp1 | Comp2 | |--------+----+-------+-------| | | | [3/3] | [2/3] | | DONE | 2 | [X] | [X] | | DONE | 3 | [1/1] | [0/1] | #+END:
>From a4927f9ea530db180efdaea6bb01511c03bb1051 Mon Sep 17 00:00:00 2001 Message-ID: <a4927f9ea530db180efdaea6bb01511c03bb1051.1706541069.git.yanta...@posteo.net> From: Ihor Radchenko <yanta...@posteo.net> Date: Mon, 29 Jan 2024 16:09:29 +0100 Subject: [PATCH] lisp/org-colview.el: Fix computing summary with low-level first child * lisp/org-colview.el (org-columns--compute-spec): Do not assume that all the children of an entry have the same LAST-LEVEL. Handle situation when the first child has lower level: * Heading ****** Child 1 ** Child 2 ** Child 3 Reported-by: Uwe Brauer <o...@mat.ucm.es> Link: https://orgmode.org/list/87wn8yj2i5.fsf@localhost --- lisp/org-colview.el | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lisp/org-colview.el b/lisp/org-colview.el index b1b79257b..39ca01502 100644 --- a/lisp/org-colview.el +++ b/lisp/org-colview.el @@ -1244,9 +1244,9 @@ (defun org-columns--compute-spec (spec &optional update) ;; property `org-summaries', in alist whose key is SPEC. (let* ((summary (and summarize - (let ((values (append (and (/= last-level inminlevel) - (aref lvals last-level)) - (aref lvals inminlevel)))) + (let ((values + (cl-loop for l from (1+ level) to lmax + append (aref lvals l)))) (and values (funcall summarize values printf)))))) ;; Leaf values are not summaries: do not mark them. (when summary -- 2.43.0
-- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92>