Nicolas Goaziou <m...@nicolasgoaziou.fr> writes:

> Stig Brautaset <s...@brautaset.org> writes:
>
>> However, I would like to add an advice around =org-columns-compute-all=
>> to run the =sb/org-map-confirmed-days= function, and this I have not
>> been successful at. I've tried doing this:
>>
>> : (add-function :before org-columns-compute-all #'sb/org-map-confirmed-days)
>>
>> However, I keep getting the following error:
>>
>> : Use of gv-ref probably requires lexical-binding
>> : advice--add-function: Symbol’s value as variable is void: 
>> org-columns-compute-all
>>
>> I would appreciate if anyone has any insight into solving this.
>
> Not really your question but since you can define your own summary
> function (see `org-columns-summary-types'), just make sure the summary
> function first refreshes the new property in headlines below the node
> you're currently summarizing.

Thanks! This _almost_ works:

,----
| (defun sb/org-columns--summary-sum (values printf)
|   (org-map-entries #'sb/org-calc-confirmed-days nil 'tree)
|   (org-columns--summary-sum values printf))
|
| (setq org-columns-summary-types
|       '(("X+" . sb/org-columns--summary-sum)))
`----

Unfortunately it doesn't quite: the functions in
=org-columns-summary-types= are passed a list of values already
extracted from the properties, so my calculation of "confirmed days"
only takes effect on the _next_ call to the summary function. Is there a
hook I can use that is called before the property values are extracted?
(I wasn't able to find one.)

Stig

Reply via email to