emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Pedro <pinmacs@cas.cat>
To: emacs-orgmode@gnu.org
Subject: Re: After years without issues, Orgmode now fails to apply agenda filters to preset templates
Date: Thu, 30 May 2024 13:17:14 +0200	[thread overview]
Message-ID: <4ea7ae24-83a7-495b-a801-793b9b4a79bd@cas.cat> (raw)
In-Reply-To: <87ed9p7kxf.fsf@localhost>


[-- Attachment #1.1.1: Type: text/plain, Size: 2287 bytes --]

Hi Tory,

I use the same version emacs and orgmode version as you, and I have 
similar needs as you: filtering org-agenda by tags, etc.

I will share my whole section of org-agenda-custom-commands as it is, I 
hope you can followup it nicely. Find it attached in file: 
agenda-filters.org

Cheers,
Pedro

On 5/25/24 21:26, Ihor Radchenko wrote:
> webdev@toryanderson.com (Tory S. Anderson) writes:
>
>> After years without issue where I could choose, for example, to see my
>> daily work agenda, the filters are now failing to be applied. This is
>> in org 9.6.15, as shipped with my emacs 29.3. I have verified that
>> this problem is the same in =emacs -Q= without any other packages:
>> when I choose my agenda view, such as "C-a w d" for my daily work
>> agenda, I still get an agenda buffer named "Org_Agenda(wd)", but none
>> of my preset filters have applied. I skimmed the documentation and I
>> haven't seen any changed syntax. Here is my definition from my
>> =use-package org= =:custom= section:
>>
>> #+begin_src lisp
>>        (org-agenda-custom-commands
>> 	    '(("w" . "Work")
>> 	      ("wd" "Work Day"
>> 	       ((agenda ""
>> 			((org-agenda-span 1)
>> 			 (org-agenda-start-on-weekday nil)
>> 			 (org-agenda-regexp-filter-preset
>> 			  '("+ODH\\|AGENDA\\|CONFERENCE" "-TSA\\|PRIESTHOOD")))))
>> 	       nil)))
>> #+end_src
> According to the docstring of `org-agenda-regexp-filter-preset',
>
>      ...The preset filter is a global property of
>      the entire agenda view.  In a block agenda, it will not work reliably to
>      define a filter for one of the individual blocks.  You need to set it in
>      the global options and expect it to be applied to the entire view.
>
> So, you should set this variable as a part of global agenda command
> settings, not inside individual block.
>
> Not a bug.
> Canceled.
>
>> Why has this stopped applying my filter when it worked for so long? Is
>> it a bug, or do I need to change something to make it up-to-date?
> I have no idea because you did not tell which Org mode version had your
> settings working. I suspect that it could have happened around the time
> Org mode switched from dynamic binding to lexical binding, but it is
> just a blind guess.
>


[-- Attachment #1.1.2: agenda-filters.org --]
[-- Type: text/org, Size: 4549 bytes --]

(setq my/org-agenda_pro-filter ":2024_12_masked:\\|:2024_29_masked:\\|:2024_16_masked:\\|:2023_101_masked:\\|:2024_17_masked:")
(setq my/org-agenda_org-filter ":2023_47_masked:\\|:2023_53_masked:\\|:2024_8_masked:\\|:2024_9_masked:\\|:2024_13_masked:\\|:2024_20_masked:\\|:2024_10_masked:\\|:2024_11_masked:")
(setq my/org-agenda_home-filter ":2024_2_masked:\\|:2024_1_masked:\\|:2024_4_masked:\\|:2024_3_masked:\\|:2022_39_masked:")
(setq my/org-agenda_vol-filter ":2023_47_masked:\\|:2023_53_masked:\\|:2024_8_masked:\\|:2024_9_masked:\\|:2024_13_masked:\\|:2024_20_masked:\\|:2024_10_masked:\\|:2024_11_masked:")
(setq my/org-agenda_exp-filter ":2022_9_masked:\\|:2024_25_masked:\\|:2022_83_masked:\\|:2024_24_masked:\\|:2024_23_masked:\\|:2023_57_masked:\\|:2024_7_masked:\\|:2024_15_masked:\\|:2024_14_masked:")
(setq my/org-agenda_mus-filter ":2024_22_masked:\\|:2024_21_masked:")
(setq my/org-agenda_viaje-filter ":2023_114_masked:\\|:2022_74_masked:")

(defun my/org-agenda-skip-with-filter (filter)
  (or
   (org-agenda-skip-entry-if 'todo '("DONE" "CLOSED"))
   (org-agenda-skip-entry-if 'notregexp (concat ":appt:\\|" filter))
   ))

;; by default I only want a list of the todo items
(setq org-agenda-custom-commands
      '(("t" "list all TICKLER items" todo "TICKLER")
        ("n" "list all NEXT items" todo "NEXT")
        ("h" "list all HOLD items" todo "HOLD")
        ("b" "Agenda for board.org"
         agenda ""
         ((org-agenda-span 'day)
          (org-agenda-files '("~/org/board.org"))))
        ;; thanks chatgpt
        ("d" "Daily agenda without DONE and CLOSED (responde a pregunta: qué queda por hacer hoy)"
         agenda ""
         ((org-agenda-span 'day)
          (org-agenda-skip-function
           (lambda ()
             (or (org-agenda-skip-entry-if 'todo '("DONE" "CLOSED")))))))
        ;; trabajos profesionales
        ;;   https://emacs.stackexchange.com/questions/18179/org-agenda-command-with-org-agenda-filter-by-tag-not-working/78066#78066
        ("w" "Context 1: pro/Work"
         agenda ""
         ((org-agenda-span 'day)
          (org-agenda-skip-function '(my/org-agenda-skip-with-filter (concat ":pro:\\|" my/org-agenda_pro-filter)))
           ))
        ("o" "Context 2: Org"
         agenda ""
         ((org-agenda-span 'day)
          (org-agenda-skip-function '(my/org-agenda-skip-with-filter (concat ":org:\\|" my/org-agenda_org-filter)))
           ))
        ;; special case, includes habitos
        ("c" "Context 3: home (Casa)"
         agenda ""
         ((org-agenda-span 'day)
          (org-agenda-skip-function
           (lambda ()
             (let ((category (org-get-category)))
               ;; debug
               ;;(print category)
               (or
                (org-agenda-skip-entry-if 'todo '("DONE" "CLOSED"))
                (org-agenda-skip-entry-if 'notregexp (concat
                                                      ":appt:\\|"
                                                      ":nutricion:\\|"
                                                      ":home:\\|"
                                                      my/org-agenda_home-filter))
                ))))))
        ("v" "Context 4: Vol"
         agenda ""
         ((org-agenda-span 'day)
          (org-agenda-skip-function '(my/org-agenda-skip-with-filter (concat ":vol:\\|" my/org-agenda_vol-filter)))
           ))
        ("x" "Context 5: eXp"
         agenda ""
         ((org-agenda-span 'day)
          (org-agenda-skip-function '(my/org-agenda-skip-with-filter (concat ":exp:\\|" my/org-agenda_exp-filter)))
           ))
        ("u" "Context 6: mUs"
         agenda ""
         ((org-agenda-span 'day)
          (org-agenda-skip-function '(my/org-agenda-skip-with-filter (concat ":mus:\\|" my/org-agenda_mus-filter)))
           ))
        ("v" "Context 7: Viaje"
         agenda ""
         ((org-agenda-span 'day)
          (org-agenda-skip-function '(my/org-agenda-skip-with-filter (concat ":viaje:\\|" my/org-agenda_viaje-filter)))
           ))
        ;; free: special case, negation of work filter
        ("f" "Freedom, no pro/work"
         agenda ""
         ((org-agenda-span 'day)
          (org-agenda-skip-function
           (lambda ()
             (or
              (org-agenda-skip-entry-if 'todo '("DONE" "CLOSED"))
              (org-agenda-skip-entry-if 'regexp (concat
                                                    ":appt:\\|"
                                                    my/org-agenda_pro-filter))
              )))))
         ))

[-- Attachment #1.1.3: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 2847 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]

  reply	other threads:[~2024-05-30 11:21 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-25 19:08 After years without issues, Orgmode now fails to apply agenda filters to preset templates Tory S. Anderson
2024-05-25 19:26 ` Ihor Radchenko
2024-05-30 11:17   ` Pedro [this message]
2024-05-30 16:15     ` Tory S. Anderson
2024-05-30 16:29       ` Ihor Radchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4ea7ae24-83a7-495b-a801-793b9b4a79bd@cas.cat \
    --to=pinmacs@cas.cat \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).