[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Help: Saving Agenda Views
From: |
Tory S. Anderson |
Subject: |
Re: [O] Help: Saving Agenda Views |
Date: |
Thu, 05 Feb 2015 06:39:02 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) |
THanks for the good tips and examples; I'll keep them handy. So, listing the
org-agenda variables the one I want to edit is org-agenda filter; however,
changing this in my function does NOT change my agenda view the way it should.
Here's what I'm trying:
--8<---------------cut here---------------start------------->8---
;; saving views
(setq org-agenda-custom-commands
'(("c" "Class agendas"
; ((agenda "" ((org-agenda-span 7) (org-agenda-tag-filter
"+LMC_6215"))))))) ;; No different results
((agenda "" ((org-agenda-span 7) (org-agenda-tag-filter
'("+LMC_6215"))))))))
;; in the agenda, org-agenda-tag-filter remains nil no matter what
--8<---------------cut here---------------end--------------->8---
Why is `org-agenda-tag-filter` being ignored when `org-agenda-span` is working?
Subhan Michael Tindall <address@hidden> writes:
> Well, to start with your syntax is WAY off. Org custom agendas can be pretty
> arcane.
> I'd start with setting up some custom agendas using the customizer, saving
> them, and then looking at how they are structured.
> Next, C-h v org-agenda TAB in an org buffer should get you a list of the
> various settings you can use in a custom block. Note that not all variables
> are valid in all types of blocks.
> And finally, take a look at the documentation for org-agenda-skip-function,
> as I believe this is what you will need to use to accomplish the goals you
> set below
>
> And, as a bonus, here's a snippet out of my emacs showing a couple of
> different custom agendas with mulitiple blocks.
> ;;This one does a sorted list of all my TODOs, followed by an agenda block
> for 1 day
> ("D" "Todos+Clock" ((alltodo "" ((org-agenda-sticky nil)
>
> (org-agenda-sorting-strategy (quote ((agenda category-up todo-state-up
> deadline-up time-up))))))
> (agenda ""
> ((org-agenda-sticky nil)
>
> (org-agenda-sorting-strategy (quote ((agenda habit-down time-up priority-down
> category-keep))))
>
> (org-agenda-span 1)
>
> (org-agenda-use-time-grid t)
>
> (org-agenda-show-log (quote clockcheck))
>
> (org-agenda-clockreport nil)))))
>
> ;; this one does all todos of type RECURRING, then a tags search for
> everything with a STYLE property (tags does many things), followed by a list
> of all my todos using alltodo, using a skip function to screen out anything
> not matching the regex , followed by a list of TODOs from a specific file (I
> use multiple project files for most things)
> ("R" "Recuring+Habits"
>
> ((todo "RECURRING")
>
> (tags "STYLE={.+}")
>
> (alltodo "" (
>
> (org-agenda-skip-function (lambda nil
> (org-agenda-skip-entry-if
>
>
> (quote notregexp) "\\:LastWorked\\:")))
>
> (org-agenda-sticky nil)
>
> (org-agenda-max-entries 10)
>
> (org-agenda-clockreport nil)
>
> (org-agenda-sorting-strategy (quote ((todo
> tsia-down todo-state-up priority-down time-down)
>
>
> )))))
>
>
> (agenda "my-todos"
>
> ((org-agenda-files '("<path-to>/my-todos.org"))
>
> (org-agenda-span 1)
>
> (org-agenda-clockreport nil)
>
> ))))
> Hope this helps, there are not that many good complex agenda examples out
> there
>
>
>> -----Original Message-----
>> From: address@hidden
>> [mailto:address@hidden On
>> Behalf Of Tory S. Anderson
>> Sent: Wednesday, February 04, 2015 1:28 PM
>> To: orgmode list
>> Subject: Re: [O] Help: Saving Agenda Views
>>
>> Okay, I've attempted to use my newbie elisp skills to hack together a
>> solution
>> but it doesn't work, yelling at me about wrong number of arguments (why?).
>> Here's what I've put together (clearly inspired by the `org-agenda-filter-by-
>> tag` function). Can anyone help me piece together what's wrong here?
>>
>> --8<---------------cut here---------------start------------->8---
>> ;; saving views
>> (setq org-agenda-custom-commands
>> '(("x" agenda)
>> ("y" agenda*)
>> ("c" "Class agendas"
>> ((agenda "" ((org-agenda-span 7)))
>> (my-org-agenda-filter-by-tag "LMC_6215" "-"))
>> ;;(org-agenda-filter-apply "+LMC_6215" "tag") ;; This one doesn't
>> work because I can't see what "tag" should be
>> ;; (org-agenda-redo)) ;; would be needed after org-agenda-filter-
>> apply
>> )
>> ))
>>
>> ;; For my usage
>> (defun my-org-agenda-filter-by-tag (tag char)
>> "A non-interactive version for use in custom commands. Keep only those
>> lines in the agenda buffer that have a specific tag. Char should be + or -,
>> filtering or narrowing."
>> ; (interactive "P")
>> (let* ((alist org-tag-alist-for-agenda)
>> (tag-chars (mapconcat
>> (lambda (x) (if (and (not (symbolp (car x)))
>> (cdr x))
>> (char-to-string (cdr x))
>> ""))
>> alist ""))
>> (efforts (org-split-string
>> (or (cdr (assoc (concat org-effort-property "_ALL")
>> org-global-properties))
>> "0 0:10 0:30 1:00 2:00 3:00 4:00 5:00 6:00 7:00 8:00"
>> "")))
>> (effort-op org-agenda-filter-effort-default-operator)
>> (effort-prompt "")
>> (inhibit-read-only t)
>> (current org-agenda-tag-filter)
>> maybe-refresh a n tag)
>> (when (member char '(?+ ?-))
>> ;; Narrowing down
>> (cond ((equal char ?-) (setq strip t narrow t))
>> ((equal char ?+) (setq strip nil narrow t))))
>> (cond
>> ((equal char ?/)
>> (org-agenda-filter-show-all-tag)
>> (when (get 'org-agenda-tag-filter :preset-filter)
>> (org-agenda-filter-apply org-agenda-tag-filter 'tag))
>> (setq maybe-refresh t))
>>
>>
>> ((equal char ?. )
>> (setq org-agenda-tag-filter
>> (mapcar (lambda(tag) (concat "+" tag))
>> (org-get-at-bol 'tags)))
>> (org-agenda-filter-apply org-agenda-tag-filter 'tag)
>> (setq maybe-refresh t))
>> ((or (equal char ?\ )
>> (setq a (rassoc char alist))
>> (and (>= char ?0) (<= char ?9)
>> (setq n (if (= char ?0) 9 (- char ?0 1))
>> tag (concat effort-op (nth n efforts))
>> a (cons tag nil)))
>> (and (= char ??)
>> (setq tag "?eff")
>> a (cons tag nil))
>> (and tag (setq a (cons tag nil))))
>> (org-agenda-filter-show-all-tag)
>> (setq tag (car a))
>> (setq org-agenda-tag-filter
>> (cons (concat (if strip "-" "+") tag)
>> (if narrow current nil)))
>> (org-agenda-filter-apply org-agenda-tag-filter 'tag)
>> (setq maybe-refresh t))
>> (t (error "Invalid tag selection character %c" char)))
>> (when maybe-refresh
>> (org-agenda-redo))))
>> --8<---------------cut here---------------end--------------->8---
>>
>>
>>
>>
>> address@hidden (Tory S. Anderson) writes:
>>
>> > I'm trying to save an agenda view that I can arrive at in the following
>> > way:
>> >
>> > 1. Load agenda (default 1-day view)
>> > 2. / TAB "English_Class" (reduce to only entries tagged English_Class)
>>
>> > 3. \ - TAB "schedule" (further reduce by removing entries
>> > having a
>> :schedule tag)
>> > 4. w (load a 7-day span, week-view)
>> >
>> > However, I've been unable to grok the directions at
>> > http://orgmode.org/worg/org-tutorials/org-custom-agenda-
>> commands.html
>> >
>> > The closest I've come is this:
>> >
>> > --8<---------------cut here---------------start------------->8---
>> > (setq org-agenda-custom-commands
>> > '(("c" "Class agendas" agenda ""
>> > ((org-agenda-tag-filter '("+LMC_6215"))
>> > (org-agenda-span 7)))))
>> > --8<---------------cut here---------------end--------------->8---
>> >
>> > But while this successfully sets the span, it fails to filter the buffer
>> > (let alone
>> getting to my second filter). Where am I going wrong?
>
>
> This message is intended for the sole use of the individual and entity to
> which it is addressed and may contain information that is privileged,
> confidential and exempt from disclosure under applicable law. If you are not
> the intended addressee, nor authorized to receive for the intended addressee,
> you are hereby notified that you may not use, copy, disclose or distribute to
> anyone the message or any information contained in the message. If you have
> received this message in error, please immediately advise the sender by reply
> email and delete the message. Thank you.